Domanda

Come posso forzare Automake a generare monitoraggio della dipendenza per file di suffisso C ++ non standard? In particolare intendo generare contenuto del file di directory .deps. Sto usando anche Libtool.

Grazie

È stato utile?

Soluzione

Date un'occhiata al Questa sezione nel manuale di Automake Regalading Default _SOURCES. Sembra che dicesse:

bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo

Ti porterà oltre il primo passo. Quindi, ora Automake sa dove cercare la prima dipendenza (target.foo) e chiederà a GCC di calcolare le dipendenze di target.foo in base ai nomi dei file di intestazione inclusi in quel file. GCC sputa i nomi degli oggetti inferiti, trasformando i stem.h -> stem.o. Ed ecco dove ho colpito un muro. Per avere il tuo script automatico completamente portatile, non è possibile utilizzare il % modelli. Devi usare il suffisso, come ha dimostrato Wallyk nella sua risposta.

A seconda dei requisiti di portabilità, potresti semplicemente ignorarlo e definire la regola implicita in Makefile. Per essere qualcosa di simile:

%.o : %.foo
    $(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<

Se la portabilità è un requisito rigoroso temo di essere sfortunato senza molto hacking.

Altri suggerimenti

Aggiungi una regola implicita. Ad esempio, per compilare *.foo File che utilizzano un compilatore Foo foocc:

.foo.o:
      foocc -c -o $@ $<
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top