一、今天參照gnu hello,終於做出了hello makefile,
已經解決的問題:
1.configure.in:35: required file `config.h.in' not found
answer:在執行automake --add-missing之前執行autoheader,生成config.h.in
2.makefile.am: required file `./news' not found
makefile.am: required file `./readme' not found
makefile.am: required file `./authors' not found
makefile.am: required file `./changelog' not found
answer:add a command,just like this: touch readme news authors changelog(即在根目錄新增)
3.還沒有解決的問題:
1.intl/dcigettext.c:129: warning: getwd is deprecated, use getcwd instead
configure.in: warning: missing am_gnu_gettext wanted by: intl/intl-compat.c:101
2.configure.in:35: required file `tests/hello.in' not found
3.[leizhige@localhost hello]$ chmod +x tests/hello(我把這條語句去掉了)
chmod: cannot access `tests/hello': no such file or directory
二、####make a makefile(using gnu automake)####
test
|----- comm
| |---- debug.c
| `----debug.h
||---- doc
| |--|-- test.conf
| `--|-- test.man.3||
`---- src
|----test.c
`----test.h
cd /test
autoscan ->configure.scan
mv configure.scan->configure.in
ac_output([makefile comm/makefile src/makefile doc/makefile])
ac_prog_ranlib #because use the "lib"
aclocal
autoconf
create makefile.am,comm/makefile.am, src/makefile.am,doc/makefile.am
頂層的makefile.am內容如下
subdirs = doc comm src test 這裡注意把comm放在src前面
comm/makefile.am內容如下:
noinst_libraries=libcomm.a noinst指的是該庫不要install到prefix/lib目錄下,因為只是乙個臨時的libcomm_a_lib=debug.h debug.c 注意命名
# src/makefile.am內容如下
bin_programs=test
hello_sources=test.h test.c
doc/makefile.am內容如下
man_mans=test.man.3
sysconf_data=test.conf
autoheader
automake --add-missing --copy
./configure
make
####complete####
三、生成makefile的步驟:
1) 執行autoscan命令
2) 將configure.scan 檔案重新命名為configure.in,並修改configure.in檔案
3) 在project目錄下新建makefile.am檔案,並在子目錄下也新建makefile.am檔案
4) 在project目錄下新建news、 readme、 changelog 、authors檔案
touch news readme changelog authors
5) 將/usr/share/automake-1.8/目錄下的depcomp和complie檔案拷貝到本目錄下
6) 執行aclocal 命令
7) 執行autoconf命令
8) 執行autoheader命令
9) 執行automake --add-missing 命令
10) 執行./confiugre指令碼
11) 執行make
Mac OS Linux下automake的流程
參考 首先我們假設在這個目錄下已經有一些 了,例如main.c,我們使用automake來建立makefile,步驟如下。1 首先在目錄下執行autoscan。2 修改configure.scan為configure.in。3 編輯configure.in autoconf process this...
automake的使用方法
使用automake生成 makefile 檔案的 1 使用autoscanf 工具生成configure.scan 2 把configure.scan的內容複製到configure.in中,注意新增am init automake 3 使用aclocal命令生成configure.h.in檔案 4...
含有ObjectC的Automake操作
寫完基本的程式後 hello.m import int main int argc,const char argv step 1.autoscan 會產生 configure.scan step 2.mv configure.scan configure.in 修改configure.in的內容,並...