关于Makefile.am中与Build相关的变量设置
今天尝试使用autoconf和automake重新构建一个遗留库的Build环境。之前改造的lcut的目录结构还是相对简单,改造时并未遇到什么难题,不过今天就没那么幸运了,我在头文件目录包含设置这个看似简单的环节上遇到了一些小麻烦。 这个库结构其实也没那么复杂,只是源文件和头文件不在一个目录下罢了: testproj/ – Makefile.am – configure.in – include/ – xx.h – yy.h – module1 – xx.c – Makefile.am – moudle2 – yy.c – Makefile.am 开始也没多想,参照以前的经验一步一步生成configure脚本。执行configure脚本生成Makefile文件,敲入make。在进入module1目录后,提示编译xx.c文件失败,无法找到xx.h!看了一下gcc的编译选项,的确没有-I上层的include目录,只有"-I.“和”-I.."。翻看了一下automake的manual,发现automake默认情况下是将config.h所在的目录当作-I的参数。我的configure.in中是这样设置的:AC_CONFIG_HEADERS([config.h]),怪不得无法正确设置目录呢!将该句改为AC_CONFIG_HEADERS([include/config.h])后,重新生成Makefile并执行make,这回gcc命令行上出现了"-I../include"的字样,编译也很是顺利。 ...