Makefile

1.

TARGET_DIR=../build_tmp/test/

all:

build: ${TARGET_DIR}/test_makefile ${TARGET_DIR}/test.py ${TARGET_DIR}/test.sh ${TARGET_DIR}/test.pl


${TARGET_DIR}/test_makefile: test_makefile
	[ -d ${TARGET_DIR} ] || mkdir -p ${TARGET_DIR}
	cp -p $? $@
	chmod 755 $@
${TARGET_DIR}/test.py: test.py
	[ -d ${TARGET_DIR} ] || mkdir -p ${TARGET_DIR}
	cp -p $? $@
	chmod 755 $@
${TARGET_DIR}/test.py.sh: test.py.sh
	[ -d ${TARGET_DIR} ] || mkdir -p ${TARGET_DIR}
	cp -p $? $@
	chmod 755 $@
${TARGET_DIR}/test.pl: test.pl
	[ -d ${TARGET_DIR} ] || mkdir -p ${TARGET_DIR}
	cp -p $? $@
	chmod 755 $@
clean:
	rm -f ${TARGET_DIR}/test_makefile
	rm -f ${TARGET_DIR}/test.py
	rm -f ${TARGET_DIR}/test.sh
	rm -f ${TARGET_DIR}/test.pl

注意:

Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法

01 src := $(shell ls *.c) /*把当前目录下所有c源代码赋给变量src*/

02 obj := $(patsubst %.c,%.o,$(src)) /*调用makefile 中的函数patsubst, 用.o文件代替.c文件*/

03

04 test: $(objs)

05 gcc -o $@ $^

06

07 %.o:%.c

08 gcc -c -o $@ $<

09

10 clean:

11 rm -f test *.o

上述Makefile中的“$@", "$^", "$<" 称为自动变量。

Linux环境下的make和makefile详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值