14年的时候,刚碰c语言,用过一下makefile。当时基本读不懂makefile manual。今天在《Linux程序语言设计》又遇到了它,Development Tool章节。算是又多了些了解。因为自己编的程序一般复杂不到哪里去,所以写的makefile都很简单。
今天看到了makefile with macro了解到了更多用法。下面上代码和截屏留个提醒。
P.S. 貌似vim不认tab,一般写makefile都用gedit。
all: myapp
#Which compiler
CC = gcc
#Where to install
INSTDIR = /home/huangq
#Where are include files kept
INCLUDE = .
# Options for development
CFLAGS = -g -Wall -ansi
# Options for release
#CFLAGS = -o -Wall -ansi
myapp: main.o 2.o 3.o
$(CC) -o myapp main.o 2.o 3.o
main.o: main.c a.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c main.c
2.o: 2.c a.h b.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c 2.c
3.o: 3.c b.h c.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c 3.c
clean:
-rm main.o 2.o 3.o
install: myapp
@if [ -d $(INSTDIR) ]; \
then \
cp myapp $(INSTDIR); \
chmod a+x $(INSTDIR)/myapp;\
chmod og-w $(INSTDIR)/myapp;\
echo "Installed in $(INSTDIR)";\
else \
echo "Sorry, $(INSTDIR) does not exist";\
fi
用法看截图: