Go to the first, previous, next, last section, table of contents.
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 (see section Automatic de-ANSI-fication). 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
Go to the first, previous, next, last section, table of contents.