configure を作ってみる
configure を作ってみたので内容をメモしておきます。以下の Web ページを参考に見よう見まねでやってみました。
・初心者への GNU autoconf のススメ
http://sharl.haun.org/autoconf.html
1.ソースを用意する
configure 作ることが目的なので以下のように簡単な感じで。
■ test.c
#include <stdio.h> void main(int argc, char *argv[]) { int i; for(i = 1; i < argc; i++) { printf("%s\n", argv[i]); } }
2.makefile.in を作成する
touch コマンドでひとまず空の makefile.in を作成する。
# touch makefile.in
3.configure.in を作成する
autoscan を実行して作成された configure.scan を元に configure.in を作成する。
# autoscan # cp configure.scan configure.in
4.configure を作成する
autoconf を実行して configure を作成する
# autoconf
5.makefile.in を修正する
上述の Web ページを参考に test.c をコンパイルするための makefile.in を作成する
■ makefile.in
CC = @CC@ SRCS = test.c PROG = test all: $(PROG) $(PROG): $(SRCS) $(CC) -o $(PROG) $(SRCS)
6.configure を実行する
configure を実行すると makefile が作成される。
# ./configure checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed configure: creating ./config.status config.status: creating makefile config.status: error: cannot find input file: config.h.in # ls autom4te.cache autoscan.log config.log config.status configure configure.in configure.scan makefile makefile.in test.c
作成された makefile の内容は以下。@CC@ としていた箇所が gcc に置き換わっている。
# cat makefile CC = gcc SRCS = test.c PROG = test all: $(PROG) $(PROG): $(SRCS) $(CC) -o $(PROG) $(SRCS)
make コマンドを実行すると test が作成される。
# make gcc -o test test.c # ls autom4te.cache autoscan.log config.log config.status configure configure.in configure.scan makefile makefile.in test test.c
うん、無事動いてそう。
# ./test a b c a b c
簡単ですが以上です。