(automk14.info.gz) etags
Info Catalog
(automk14.info.gz) Hello
(automk14.info.gz) Examples
3.3 Building 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 ( 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
Info Catalog
(automk14.info.gz) Hello
(automk14.info.gz) Examples
automatically generated byinfo2html