Copyright (C) 2000-2012 |
GNU Info (automake.info)etagsBuilding etags and ctags ======================== Here is another, trickier example. It shows how to generate two programs (`ctags' and `etags') from the same source file (`etags.c'). The difficult part is that each compilation of `etags.c' requires different `cpp' flags. bin_PROGRAMS = etags ctags ctags_SOURCES = ctags_LDADD = ctags.o etags.o: etags.c $(COMPILE) -DETAGS_REGEXPS -c etags.c ctags.o: etags.c $(COMPILE) -DCTAGS -o ctags.o -c etags.c Note that `ctags_SOURCES' is defined to be empty--that way no implicit value is substituted. The implicit value, however, is used to generate `etags' from `etags.o'. `ctags_LDADD' is used to get `ctags.o' into the link line. `ctags_DEPENDENCIES' is generated by Automake. The above rules won't work if your compiler doesn't accept both `-c' and `-o'. The simplest fix for this is to introduce a bogus dependency (to avoid problems with a parallel `make'): etags.o: etags.c ctags.o $(COMPILE) -DETAGS_REGEXPS -c etags.c ctags.o: etags.c $(COMPILE) -DCTAGS -c etags.c && mv etags.o ctags.o Also, these explicit rules do not work if the de-ANSI-fication feature is used (Note: ANSI). Supporting de-ANSI-fication requires a little more work: etags._o: etags._c ctags.o $(COMPILE) -DETAGS_REGEXPS -c etags.c ctags._o: etags._c $(COMPILE) -DCTAGS -c etags.c && mv etags._o ctags.o automatically generated by info2www version 1.2.2.9 |