我正在尝试在 Automake 中添加一些编译选项,但这些方法都不起作用。
这是我的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 - 添加
AM_CFLAGS = ...到其他两个Makefile.ams - 将 myprog_ 添加
CFLAGS = ...到 Makefile.am(这应该在编译 myprog 时设置 CFLAGS)
但这些都没有任何影响。我的程序 ( myprog) 和它的库 ( mylib) 都在编译/链接一些默认标志,这些标志类似于-DHAVE_CONFIG -g -O2.
我也尝试过使用INCLUDES而不是AM_CFLAGS,但没有帮助。
任何人都知道这里发生了什么以及如何解决它?