设为首页 加入收藏

TOP

从头开始写项目Makefile(十):make内嵌函数及make命令显示(二)
2015-07-20 18:01:54 来源: 作者: 【 】 浏览:5
Tags:从头 开始 项目 Makefile make 函数 命令 显示
C_LIB),) $(LIBDIR)/$(SRC_LIB) : $(SRC_OBJ) >---@echo " ARCHIVE $(notdir $@)..." >---@$(AR) rcs $@ $^ >---@echo " COPY $@ to $(SRC_BASE)/libs" >---@cp $@ $(SRC_BASE)/libs endif $(SRC_OBJ) : $(OBJDIR)/%.o : %.c >---@echo " COMPILE $(notdir $<)..." >---@$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

编译输出如下:
# make
make[1]: Entering directory `/home/Myprojects/example_make/version-3.1/src/ipc'
    COMPILE ipc.c...
    ARCHIVE libipc.a...
    COPY ../../build/unix_dbg/lib/libipc.a to ../../libs
make[1]: Leaving directory `/home/Myprojects/example_make/version-3.1/src/ipc'
make[1]: Entering directory `/home/Myprojects/example_make/version-3.1/src/tools'
    COMPILE base64.c...
    COMPILE md5.c...
    COMPILE tools.c...
    ARCHIVE libtools.a...
    COPY ../../build/unix_dbg/lib/libtools.a to ../../libs
make[1]: Leaving directory `/home/Myprojects/example_make/version-3.1/src/tools'
make[1]: Entering directory `/home/Myprojects/example_make/version-3.1/src/main'
    COMPILE main.c...
   LINK target_bin...
make[1]: Leaving directory `/home/Myprojects/example_make/version-3.1/src/main'
#


其中目录切换的输出仍然很多,我们可以将其关闭,这需要使用到make的参数,在make -C是指定--no-print-
directory参数。我们将顶层目录下Makefile规则修改如下:
$(BUILDDIR):
>---@echo "    Create directory $@ ..."
>---mkdir -p $(BUILDDIR)/bin $(BUILDDIR)/lib

$(MODULES):
>---@$(MAKE) -C $(DIR)/$@ MODULE=$@ --no-print-directory

main:tools ipc

clean :
>---@for subdir in $(MODULES); \
>---do $(MAKE) -C $(DIR)/$$subdir MODULE=$$subdir $@ --no-print-directory; \
>---done
编译输出:
# make
    COMPILE ipc.c...
    ARCHIVE libipc.a...
    COPY ../../build/unix_dbg/lib/libipc.a to ../../libs
    COMPILE base64.c...
    COMPILE md5.c...
    COMPILE tools.c...
    ARCHIVE libtools.a...
    COPY ../../build/unix_dbg/lib/libtools.a to ../../libs
    COMPILE main.c...
   LINK target_bin...
# make clean
rm -f  ../../build/unix_dbg/obj/ipc/ipc.o ../../build/unix_dbg/lib/libipc.a
rm -f  ../../build/unix_dbg/obj/main/main.o ../../build/unix_dbg/bin/target_bin
rm -f  ../../build/unix_dbg/obj/tools/base64.o  ../../build/unix_dbg/obj/tools/md5.o   
../../build/unix_dbg/obj/tools/tools.o ../../build/unix_dbg/lib/libtools.a

#

这样看上去输出清爽多了。其实我们也可以使用make -s 来全面禁止命令的显示。



首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj 1698 Alice's Chance(网.. 下一篇LightOJ 1205 Palindromic Numbers

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: