DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(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