依存解決

make

make makes many problems
http://pc10.2ch.net/test/read.cgi/tech/1029599472/


最小の Makefile
なんと、Makefile が存在せず hoge.c があるとき

make hoge

と打つと

cc -O -pipe   hoge.c  -o hoge

を実行してくれる。(空の Makefile がある場合も同じ)
Vim の中からこれをやるには

:mak %<

とすればよい。
そして実行するには

:!%<
LDLIBS=-lm
hoge: hoge.c

と書いておいて make と打つと

cc   -lm  hoge.c  -o hoge

を実行してくれる。賢い。

簡単な Makefile のテンプレート作成スクリプト

#!/bin/sh

SRCS=`echo *.c *.cpp| sed -e 's/\*\.cpp//; s/\*\.c//'`
OBJS=`echo "$SRCS" | sed -e 's/\.c/.o/g; s/\.cpp/.o/g'`

cat << "EOF" > Makefile
TARGET = a.out

CC = gcc
CFLAGS = -g -DDEBUG=1
#CFLAGS = -O2
CFLAGS += -W -Wall -Wshadow -Wsign-compare -Wno-unused
#LDFLAGS = -lglut -lGLU -lGL 
EOF

cat << EOF  >> Makefile

SRCS = $SRCS
OBJS = $OBJS 
EOF

cat << "EOF" >> Makefile

.c.o:
	$(CC) $(CFLAGS) -o $@ -c $<

all: $(TARGET)

a.out: $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)

depend:
	makedepend -- $(CFLAGS) -- $(SRCS)

clean:
	rm -f $(OBJS) tags $(TARGET)

tags:
	ctags -R .

EOF


make depend

dummy := $(shell echo some text 1>&2)
とすれば、Makefileでprintfデバッグができる。

http://d.hatena.ne.jp/mzp/20070328/make

makedepend

Makefileを生成
または gcc -M、gcc -MM(<>でインクルードしているファイルは除く)

autoconf/automake

25 From:デフォルトの名無しさん Date:02/08/19 19:48 Mail:sage
>>23
いや、それは Autoconf と突っ込んでみる。

Makefile より Makefile.am の方が簡単だと思うし、
自分のところで動けばいいなら autoscan した後、
$ mv configure.scan configure.ac
して、
- AC_CONFIG_HEADER([config.h])
+ AM_INIT_AUTOMAKE([foreign])

- AC_CONFIG_FILES([])
+ AC_CONFIG_FILES([Makefile])
するだけで結構うまくいったりするが、どうよ。
高度な事すると結構面倒だけどね。