多makefile文件的编译

hhcdwy 2007-12-06 03:29:02
在目录src下有A,B,C三个目录,三个目录下都有自己的makefile, 请问如何在src下写一个类似批处理的makefile;
能使这些目录下的makefile按照指定的顺序自动被make; (不能遍历,是因为这些目录下的程序有一定的依赖关系, 所以只能指定顺序)
请大家给点示例,谢谢
...全文
125 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2007-12-06
  • 打赏
  • 举报
回复
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}
ocean放飞 2007-12-06
  • 打赏
  • 举报
回复
makefile 如下:
//////////////////////

SRCDIR= a b c
All :
for i in ${SRCDIR};\
do\
echo "Make" $$i : `pwd`/$$i;\
cd $$i;\
make All;\
echo "";\
cd ..;\
done



NC 2007-12-06
  • 打赏
  • 举报
回复
cat makefile

make -f src/A/makefile
make -f src/B/makefile
make -f src/C/makefile
hhcdwy 2007-12-06
  • 打赏
  • 举报
回复
automake现在还没有时间去了解;
请问有没有直接在makefile里书写的示例呢?
mymtom 2007-12-06
  • 打赏
  • 举报
回复
用automake就很简单!

$ cat Makefile.am
AUTOMAKE_OPTIONS = foreign
SUBDIRS = server client utils
$ cat configure.ac
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_INIT(utils/utils.c)
AM_INIT_AUTOMAKE(subdirs, 1.0)

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT([Makefile
server/Makefile
client/Makefile
utils/Makefile])

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧