当前位置: 技术问答>linux和unix
多makefile文件的编译
来源: 互联网 发布时间:2016-02-20
本文导语: 在目录src下有A,B,C三个目录,三个目录下都有自己的makefile, 请问如何在src下写一个类似批处理的makefile; 能使这些目录下的makefile按照指定的顺序自动被make; (不能遍历,是因为这些目录下的程序有一定的依赖关系,...
在目录src下有A,B,C三个目录,三个目录下都有自己的makefile, 请问如何在src下写一个类似批处理的makefile;
能使这些目录下的makefile按照指定的顺序自动被make; (不能遍历,是因为这些目录下的程序有一定的依赖关系, 所以只能指定顺序)
请大家给点示例,谢谢
能使这些目录下的makefile按照指定的顺序自动被make; (不能遍历,是因为这些目录下的程序有一定的依赖关系, 所以只能指定顺序)
请大家给点示例,谢谢
|
makefile 如下:
//////////////////////
SRCDIR= a b c
All :
for i in ${SRCDIR};
do
echo "Make" $$i : `pwd`/$$i;
cd $$i;
make All;
echo "";
cd ..;
done
//////////////////////
SRCDIR= a b c
All :
for i in ${SRCDIR};
do
echo "Make" $$i : `pwd`/$$i;
cd $$i;
make All;
echo "";
cd ..;
done
|
mymtom@x4100:src/cpp/ticpp$ cat Makefile
#
# Makefile
#
SUBDIR = C02 C03 C04 C05 C06 C07
all:
@curdir=`pwd`;
for entry in $(SUBDIR); do
if test -d $${curdir}/$${entry}; then
echo "===> $(DIRPRFX)$${entry} $@";
edir=$${entry};
cd $${curdir}/$${edir};
$(MAKE) $1 $@;
DIRPRFX=${DIRPRFX}$${edir}/;
fi;
done
clean:
@curdir=`pwd`;
for entry in $(SUBDIR); do
if test -d $${curdir}/$${entry}; then
echo "===> $(DIRPRFX)$${entry} $@";
edir=$${entry};
cd $${curdir}/$${edir};
$(MAKE) $@;
DIRPRFX=${DIRPRFX}$${edir}/;
fi;
done
tar: clean
@curdir=`pwd`;
pkg=`basename $${curdir}`;
cd ..;
tar zcvf $${pkg}.tgz $${pkg}
#
# Makefile
#
SUBDIR = C02 C03 C04 C05 C06 C07
all:
@curdir=`pwd`;
for entry in $(SUBDIR); do
if test -d $${curdir}/$${entry}; then
echo "===> $(DIRPRFX)$${entry} $@";
edir=$${entry};
cd $${curdir}/$${edir};
$(MAKE) $1 $@;
DIRPRFX=${DIRPRFX}$${edir}/;
fi;
done
clean:
@curdir=`pwd`;
for entry in $(SUBDIR); do
if test -d $${curdir}/$${entry}; then
echo "===> $(DIRPRFX)$${entry} $@";
edir=$${entry};
cd $${curdir}/$${edir};
$(MAKE) $@;
DIRPRFX=${DIRPRFX}$${edir}/;
fi;
done
tar: clean
@curdir=`pwd`;
pkg=`basename $${curdir}`;
cd ..;
tar zcvf $${pkg}.tgz $${pkg}
|
cat makefile
make -f src/A/makefile
make -f src/B/makefile
make -f src/C/makefile
make -f src/A/makefile
make -f src/B/makefile
make -f src/C/makefile