我想使用的autoconf/automake的工具链,以创建一个非常简单的构建脚本空make文件(主要是作为一个学习的过程。)的Autoconf/Automake的生成
大多数例子似乎表明,你需要一个将每个源目录中的Makefile.am
分开,并且项目根目录中的Makefile.am
文件应包含SUBDIRS
指令,该指令告诉autoconf在哪里查找其他Makefile。
我认为对于一个非常简单的项目,在项目根目录中可能只有一个Makefile.am
。但是,当我尝试执行此操作并运行生成的configure
脚本时,它将在项目根目录中创建一个空的Makefile(0字节)。
我不确定我在做什么错误。
所以,我的目录结构非常简单:
MyProject
---src
------myproject.cpp
---Makefile.am
---configure.ac
的configure.ac
文件是最小的:
AC_INIT(myproject, 1.0)
AC_MSG_NOTICE([My Project])
AC_PROG_CXX
AC_LANG(C++)
AC_CHECK_HEADERS(iostream)
AC_CONFIG_SRCDIR(src/myproject.cpp)
AM_INIT_AUTOMAKE(MyProject, 1.0)
AC_OUTPUT(Makefile)
而且Makefile.am
也很简单:
bin_PROGRAMS = myproject
myproject_SOURCES = src/myproject.cpp
myproject_CPPFLAGS = --std=c++11
我跑:
autoconf configure.ac > configure
当我运行configure脚本时,没有错误。
然后我看到它产生在项目根目录Makefile
:
# ls -lh | grep Make
-rw-r--r-- 1 root root 0 Nov 8 16:13 Makefile
-rw-r--r-- 1 root root 98 Nov 8 15:53 Makefile.am
-rw-r--r-- 1 root root 0 Nov 8 15:00 Makefile.in
而且你可以看到,它产生的Makefile文件完全是空的。
所以我显然误解了autoconf/automake应该如何工作的根本原因。我在这里做错了什么?
你运行过'automake'吗? – reinierpost 2014-11-09 22:43:47