多层目录Makefile

今天结合网上的一个例子,自己写了一个可适用于多层目录的Makefile。


ARCH= armv5l-linux-
CC= $(ARCH)gcc
LD = $(ARCH)ld
AS = $(ARCH)as
CPP = $(ARCH)g++
AR = $(ARCH)ar
CFLAGS= -g -O2 -D_GNU_SOURCE -DHAVE_CONFIG_H

LIBS= -lpthread -lrt -lm
INCLUDE= -I.

APPDIR= $(PWD)
APPINCH=$(shell find $(APPDIR) -name "*.h*")
TMPDIR=$(dir $(APPINCH))
APPINCDIR=$(sort $(TMPDIR))
INCLUDE += $(foreach temp, $(APPINCDIR), -I$(temp))
SRC=$(shell find $(APPDIR) -name '*.c')
APP=$(SRC:%.c=%.o)

all:    main

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

main: clean $(APP)
     $(CC) -o $@ $(LIBS) $(INCLUDE) $(APP)

clean:
    -rm -rf $(APP)
    -rm -f main

.PHONY: clean

可以搜索路径下的源文件和头文件,最后生成一个可执行程序。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值