Mam Makefile.am, który będzie odpowiedzialny za budowę ostatecznej binarnego aplikacji:Jak określić w skrypcie Makefile.am, że chcę kompilować tylko pliki .o, które można później połączyć?
projekt/src/Makefile.am
również w katalogu src jest podkatalog o nazwie ctrnn który zawiera dalsze Makefile.am:
projekt/src/ctrnn/Makefile.am
teraz ctrnn/Makefile.am powinien generować tylko obiekt .o plików z ideą jest, że najwyższego poziomu Makefile.am powinien użyć pliki obiektowe wygenerowane w podkatalogu ctrnn w celu zbudowania pliku binarnego.
To ctrnn/Makefile.am
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @[email protected]
Na podstawie tego pliku Makefile.am, chcę skończyć z network.o i neuron.o. Jestem generowania Makefile według użyciem automake etc, ale gdy próbuję, a następnie uruchomić plik make, to nie robić nic i po prostu mówi:
Producent: Nic do zrobienia w `all”
I wiem, dlaczego tak jest, muszę określić cel kompilacji. Ale jak to zrobić w skrypcie ctrnn/Makefile.am, biorąc pod uwagę, że nie chcę budować pliku binarnego, który wymagałby bin_PROGRAMS, ale rzeczywistych plików obiektowych network.o i neuron.o?
(Uwaga, jeśli określę nazwę bin_PROGRAMS, słusznie kończy się narzekaniem na niezdefiniowane odniesienie do głównej).
Co robię źle?
Dzięki, Ben.
Dzięki! Skończyłem z użyciem metody libtool, działa idealnie :-) –
Dzięki za pomocną dłoń dla mnie dążenie do autotools/libtool hell. I zrób nam wszystkim przysługę: żyj długo i szczęśliwie! – rockdaboot
foo_LDADD? Czy to nie ma być foo_LIBADD –