常見的做法是每個文件夾一個Makefile。下面是一個簡單Makefile.am腳本的根文件夾:
#SUBDIRS = src tests
all:
make -C ./src
make -C ./tests
install:
make -C ./src install
uninstall:
make -C ./src uninstall
clean:
make -C ./src clean
test:
make -C ./tests test
相應Makefile.am爲SRC文件夾將是這樣的:
AM_CPPFLAGS = -I./
bin_PROGRAMS = progName
progName_SOURCES = foo.cpp main.cpp
LDADD = lib-to-link
progName_LDADD = ../libs/
Makefile文件。 am for 測試看起來類似:
AM_CPPFLAGS = -I../src
bin_PROGRAMS = tests
tests_SOURCES = test_foo.cpp test_all.cpp
使用automake從.am文件生成Makefile.in文件。 配置腳本將使用.in文件生成Makefiles。 (對於小型項目,您希望直接對Makefiles進行手動編碼)。
這似乎沒有考慮src/foo.o中test_all.cpp的依賴性。例如。清潔後會發生什麼?在頂級目錄中進行測試? – 2010-09-16 09:16:07
如果測試是從main.cpp驅動的,則不會有任何依賴性問題。 – 2010-09-16 11:38:40
但main.cpp將是應用程序的可執行文件,而不是驅動測試。執行測試的可執行文件應駐留在測試文件夾中。 – 2010-09-16 12:14:59