多文件下的Makefile编写:(会生成两个可执行文件)
例如一个文件包含 customer.c mylock.c producer.c mylock.h
编写Makefile文件如下:
EXEC1 = producer
EXEC2 = customer
OBJS1 = producer.o mylock.o
OBJS2 = customer.o mylock.o
HEADERS = mylock.h
CC = gcc
CFLAGS = -O2 -g
all:${EXEC1} ${EXEC2}
${EXEC1} : ${OBJS1}
${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS1}
${EXEC2} : ${OBJS2}
${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS2}
${OBJS1} : ${HEADERS}
${OBJS2} : ${HEADERS}
.PHONY : clean
clean :
-rm -f ${OBJS1} ${EXEC1}
-rm -f ${OBJS2} ${EXEC2}
cat /dev/null > myfifo
cat /dev/null > myfifo
【*】例如一个文件包含:com_target.c uart_api.c uart_api.h
多文件下的Makefile编写:(会生成一个可执行文件)
EXEC = com_target OBJS = com_target.o uart_api.o HEADERS = uart_api.h HOST_CC = gcc TARGET_CC = arm-linux-gcc CC = ${TARGET_CC} INC = -I. CFLAGS = ${INC} -g all:${EXEC} ${EXEC} : ${OBJS} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${OBJS2} : ${HEADERS} .PHONY : clean clean : rm -f ${OBJS} ${EXEC}