Hi I am currently converting a heap of stuff from custom make system to the GNU autotools, most things are really easy to convert however...
I have a couple of modules that use homegrown compilers to generate multiple .cpp and .h files from specification files. Here is the original make file. ---------------------------------------------------------------------- DICTIONARY := oiMsgs oiMsgGroups oiFields -include sourcefiles oimsg_src := $(SOURCE_FILES) oimsg_hdr := $(HEADER_FILES) LIBRARY := oimsg INCLUDES := $(oimsg_hdr) OITypes.h OITypedefs.h EXTRA_GENERATED := $(oimsg_src) $(oimsg_hdr) EXPORT_INCLUDES=$(INCLUDES) EXPORT_LIBRARIES=liboimsg.a include bby.mk --------------------------------------------------------------------------------------------- This is my attempt at an automake .am file. COMPILER= ../src/oimsg sourcefiles $(oimsg_src) $(oimsg_hdr): dict.stamp dict.stamp:$(DICTIONARY) $(COMPILER) mkdir -p tmp cp $(DICTIONARY) tmp/ (cd tmp && ../$(COMPILER) $(DICTIONARY) && for i in *; do cmp -s $$i ../$$i || (echo Updating $$i ; mv $$i ../) ; do ne) touch dict.stamp rm -rf tmp CXXFLAGS = -Wall -O $(COMPILER): # Do nothing to stop stupid recursive rules applying -------------------------------------------------------------------------------------------------------- The file 'sourcefiles' is also generated by the compiler and contains declarations for SOURCE_FILES and HEADER_FILES with all the source and header files the compiler generated in the appropriate variable. Here is my attempt at getting this working with automake. include $(top_srcdir)/../Make.include OI_DICTIONARY = oiMsgs \ oiMsgGroups \ oiFields OI_COMPILER = ../src/oimsg sourcefiles: mkdir -p tmp cp $(OI_DICTIONARY) tmp/ (cd tmp && ../$(OI_COMPILER) $(OI_DICTIONARY) && for i in *; do cmp -s $$i ../$$i || (echo Updating $$i ; mv $$i ../ ) ; done) touch dict.stamp rm -rf tmp lib_LTLIBRARIES = liboimsg.la liboimsg_la_DEPENDENCIES = $(OI_DICTIONARY) \ $(OI_COMPILER) \ sourcefiles liboimsg_la_SOURCES = $(wildcard *.cpp) include_HEADERS = $(wildcard *.h) The problem is that during a 'make install' all the headers are picked up ok, during a make however none of the cpp files are being picked up even if I have run the compiler myself so they are sitting in the directory before make is run. Can anyone offer any assistance with this? I'm not a make expert by any means and I'm very new to the autotools, any help is greatly appreciated. thanks. Gary.