Tracciamento della dipendenza da Automake per suffisso C ++ non standard
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
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 $@ $<