我試圖在Automake的添加一些編譯選項,但沒有辦法的工作。的Automake:AM_CFLAGS沒有效果
這裏是我的configure.ac
:
AC_INIT(...)
AC_PREREQ([2.59])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([1.10 foreign -Wall no-define])
AC_PROG_CXX
AC_PROG_LIBTOOL
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile src/Makefile test/Makefile])
AC_LANG(C++)
AC_OUTPUT
而且我父Makefile.am
(在頂級目錄):
#AM_CFLAGS = ... # doesn't work
AUTOMAKE_OPTIONS = subdir-objects
ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
SUBDIRS = src test
dist_noinst_SCRIPTS = autogen.sh
併爲每個源代碼目錄一個Makefile.am
; src/Makefile
:
include_HEADERS = ...
lib_LIBRARIES = ...
和test/Makefile
:
#AM_CFLAGS = ... # doesn't work
bin_PROGRAMS = myprog #test
myprog_SOURCES = ...
myprog_LDADD = ../src/libmylib.a
#myprog_CFLAGS = ... # Doesn't work either
我試圖在取消註釋行的所有組合,即:
- 添加
AM_CFLAGS = ...
父Makefile.am
- 這應該設置CFLAGS所有受影響的來源 - add
AM_CFLAGS = ...
t Ø另外兩個Makefile.am
小號 - 添加myprog_
CFLAGS = ...
到Makefile.am(這應該編譯MYPROG時設置CFLAGS)
但這些都不具有任何影響。我的程序(myprog
)和它的程序庫(mylib
)都被編譯/鏈接了一些類似-DHAVE_CONFIG -g -O2
的默認標誌。
我也嘗試過使用INCLUDES
代替AM_CFLAGS
,但並沒有幫助。
任何人有一些想法是怎麼怎麼回事,如何解決?
感謝。順便說一句,你的意思是7.,你會怎麼做?我是autotools的新手。 – eold 2013-03-17 18:22:41
不用擔心。 'ACLOCAL_AMFLAGS'是你設置額外標誌以傳遞給'aclocal'的地方(通常是'-I m4',如果你有一個自定義宏目錄的話)。如果你不設置'ACLOCAL_FLAGS',根本就不需要這條線。 – 2013-03-17 20:55:26