多层级的makefile编写——递归调用makefile
来源:互联网 发布:小米电视怎么设置网络 编辑:程序博客网 时间:2024/05/22 17:31
文件层级结构:
│ Makefile
│ tmp
│
├─include
│ public.h
│
└─src
├─moda
│ Makefile
│ moda.c
│ moda.h
│
└─modb
Makefile
modb.c
modb.h
public.h
#define MAX_SIZE 10
moda.c (modb.c类似) #include <stdio.h>#include "moda.h"#include "public.h"int main(void){ printf("This is mod A, MAX_SIZE:%d \n", MAX_SIZE); return 0;}
顶层makefile:
CC = gccROOT := $(shell pwd)INCLUDE := $(ROOT)/includeSRC := $(ROOT)/srcUSR_SUB_DIR := $(SRC)/moda $(SRC)/modbdefault:usrusr: @for n in $(USR_SUB_DIR); do $(MAKE) -C $$n ; done clean: @for n in $(USR_SUB_DIR); do $(MAKE) -C $$n clean; done
moda目录下makefile :
CC = gccROOT := $(shell pwd)/../..INCLUDE := $(ROOT)/includeCFLAGS += -I$(INCLUDE)target:modamodb:moda.o $(CC) -o moda moda.omodb.o:moda.c $(CC) $(CFLAGS) -c moda.c clean: -rm *.o moda执行:
linux:/mnt/hgfs/vmware-share/makefile # make make[1]: Entering directory `/mnt/hgfs/vmware-share/makefile/src/moda'gcc -I/mnt/hgfs/vmware-share/makefile/src/moda/../../include -c -o moda.o moda.cgcc moda.o -o modamake[1]: Leaving directory `/mnt/hgfs/vmware-share/makefile/src/moda'make[1]: Entering directory `/mnt/hgfs/vmware-share/makefile/src/modb'gcc -I/mnt/hgfs/vmware-share/makefile/src/modb/../../include -c modb.c gcc -o modb modb.omake[1]: Leaving directory `/mnt/hgfs/vmware-share/makefile/src/modb'linux:/mnt/hgfs/vmware-share/makefile #linux:/mnt/hgfs/vmware-share/makefile # cd src/moda/linux:/mnt/hgfs/vmware-share/makefile/src/moda # ll总用量 5drwxrwxrwx 1 root root 0 2014-03-25 23:51 .drwxrwxrwx 1 root root 0 2014-03-25 23:10 ..-rwxrwxrwx 1 root root 219 2014-03-25 23:30 Makefile-rwxrwxrwx 1 root root 6803 2014-03-25 23:51 moda-rwxrwxrwx 1 root root 149 2014-03-25 23:39 moda.c-rwxrwxrwx 1 root root 0 2014-03-25 23:10 moda.h-rwxrwxrwx 1 root root 908 2014-03-25 23:51 moda.olinux:/mnt/hgfs/vmware-share/makefile/src/moda # ./modaThis is mod A, MAX_SIZE:10
linux:/mnt/hgfs/vmware-share/makefile #linux:/mnt/hgfs/vmware-share/makefile #linux:/mnt/hgfs/vmware-share/makefile #linux:/mnt/hgfs/vmware-share/makefile # make clean
make[1]: Entering directory `/mnt/hgfs/vmware-share/makefile/src/moda'
rm *.o moda
make[1]: Leaving directory `/mnt/hgfs/vmware-share/makefile/src/moda'
make[1]: Entering directory `/mnt/hgfs/vmware-share/makefile/src/modb'
rm *.o modb
make[1]: Leaving directory `/mnt/hgfs/vmware-share/makefile/src/modb'
0 0
- 多层级的makefile编写——递归调用makefile
- 多层级的makefile编写——递归调用makefile
- 多层目录编译的makefile文件编写
- makefile递归调用实例
- Makefile的编写方法
- MakeFile的编写指导
- MakeFile的编写指导
- 编写Makefile的心得
- Makefile的编写
- Makefile文件的编写
- makefile的编写
- 编写vxworks的MakeFile
- Makefile的编写指导
- 编写简单的makefile
- Makefile的编写
- makefile文件的编写
- [转]Makefile的编写
- Makefile的编写
- gcc __attribute__关键字举例之visibility
- UNIX入职理解
- 算法导论 第四章:分治法(一)
- cf NEERC 14 J - Jokewithpermutation
- 自定义列表选择Dialog,适用网络请求数据
- 多层级的makefile编写——递归调用makefile
- Linux命令echo -e -n
- 表达式求值难度3
- Java面试题全集(上)
- PHP unset销毁变量并释放内存
- iOS设计模式——Category
- android raw与assets区别
- 懒汉、饿汉单例模式具体代码
- 欢迎使用CSDN-markdown编辑器