OpenWrt编译使用$(warning $(call subdir,$(curdir)))将宏subdir展开的结果打印出来

来源:互联网 发布:剑雨江湖进阶祝福数据 编辑:程序博客网 时间:2024/05/16 02:56

tools/Makefile、target/Makefile、package/Makefile、toolchain/Makefile

这4个文件最后一行使用$(eval $(call subdir,$(curdir)))展开生成各个子目录的编译规则


以tools/Makefile中展开宏subdir为例


include/subdir.mk中定义的宏subdir

使用warning打印展开的结果

$(warning $(call subdir,$(curdir)))


片段。。。

tools/clean: .config prereq tools/gmp/clean tools/mpfr/clean tools/mpc/clean tools/libelf/clean tools/m4/clean tools/libtool/clean tools/autoconf/clean tools/automake/clean tools/flex/clean tools/bison/clean tools/pkg-config/clean tools/sed/clean tools/mklibs/clean tools/sstrip/clean tools/ipkg-utils/clean tools/genext2fs/clean tools/e2fsprogs/clean tools/mtd-utils/clean tools/mkimage/clean tools/firmware-utils/clean tools/patch-cmdline/clean tools/quilt/clean tools/yaffs2/clean tools/flock/clean tools/padjffs2/clean tools/mm-macros/clean tools/xorg-macros/clean tools/xfce-macros/clean tools/missing-macros/clean tools/xz/clean tools/cmake/clean tools/scons/clean tools/lzma-old/clean tools/squashfs/clean tools/lzma/clean tools/squashfs4/clean
   tools/download: .config prereq tools/gmp/download tools/mpfr/download tools/mpc/download tools/libelf/download tools/m4/download tools/libtool/download tools/autoconf/download tools/automake/download tools/flex/download tools/bison/download tools/pkg-config/download tools/sed/download tools/mklibs/download tools/sstrip/download tools/ipkg-utils/download tools/genext2fs/download tools/e2fsprogs/download tools/mtd-utils/download tools/mkimage/download tools/firmware-utils/download tools/patch-cmdline/download tools/quilt/download tools/yaffs2/download tools/flock/download tools/padjffs2/download tools/mm-macros/download tools/xorg-macros/download tools/xfce-macros/download tools/missing-macros/download tools/xz/download tools/cmake/download tools/scons/download tools/lzma-old/download tools/squashfs/download tools/lzma/download tools/squashfs4/download
   tools/prepare: .config prereq tools/gmp/prepare tools/mpfr/prepare tools/mpc/prepare tools/libelf/prepare tools/m4/prepare tools/libtool/prepare tools/autoconf/prepare tools/automake/prepare tools/flex/prepare tools/bison/prepare tools/pkg-config/prepare tools/sed/prepare tools/mklibs/prepare tools/sstrip/prepare tools/ipkg-utils/prepare tools/genext2fs/prepare tools/e2fsprogs/prepare tools/mtd-utils/prepare tools/mkimage/prepare tools/firmware-utils/prepare tools/patch-cmdline/prepare tools/quilt/prepare tools/yaffs2/prepare tools/flock/prepare tools/padjffs2/prepare tools/mm-macros/prepare tools/xorg-macros/prepare tools/xfce-macros/prepare tools/missing-macros/prepare tools/xz/prepare tools/cmake/prepare tools/scons/prepare tools/lzma-old/prepare tools/squashfs/prepare tools/lzma/prepare tools/squashfs4/prepare
   tools/compile: .config prereq tools/gmp/compile tools/mpfr/compile tools/mpc/compile tools/libelf/compile tools/m4/compile tools/libtool/compile tools/autoconf/compile tools/automake/compile tools/flex/compile tools/bison/compile tools/pkg-config/compile tools/sed/compile tools/mklibs/compile tools/sstrip/compile tools/ipkg-utils/compile tools/genext2fs/compile tools/e2fsprogs/compile tools/mtd-utils/compile tools/mkimage/compile tools/firmware-utils/compile tools/patch-cmdline/compile tools/quilt/compile tools/yaffs2/compile tools/flock/compile tools/padjffs2/compile tools/mm-macros/compile tools/xorg-macros/compile tools/xfce-macros/compile tools/missing-macros/compile tools/xz/compile tools/cmake/compile tools/scons/compile tools/lzma-old/compile tools/squashfs/compile tools/lzma/compile tools/squashfs4/compile
   tools/install: .config prereq tools/gmp/install tools/mpfr/install tools/mpc/install tools/libelf/install tools/m4/install tools/libtool/install tools/autoconf/install tools/automake/install tools/flex/install tools/bison/install tools/pkg-config/install tools/sed/install tools/mklibs/install tools/sstrip/install tools/ipkg-utils/install tools/genext2fs/install tools/e2fsprogs/install tools/mtd-utils/install tools/mkimage/install tools/firmware-utils/install tools/patch-cmdline/install tools/quilt/install tools/yaffs2/install tools/flock/install tools/padjffs2/install tools/mm-macros/install tools/xorg-macros/install tools/xfce-macros/install tools/missing-macros/install tools/xz/install tools/cmake/install tools/scons/install tools/lzma-old/install tools/squashfs/install tools/lzma/install tools/squashfs4/install
   tools/update: .config prereq tools/gmp/update tools/mpfr/update tools/mpc/update tools/libelf/update tools/m4/update tools/libtool/update tools/autoconf/update tools/automake/update tools/flex/update tools/bison/update tools/pkg-config/update tools/sed/update tools/mklibs/update tools/sstrip/update tools/ipkg-utils/update tools/genext2fs/update tools/e2fsprogs/update tools/mtd-utils/update tools/mkimage/update tools/firmware-utils/update tools/patch-cmdline/update tools/quilt/update tools/yaffs2/update tools/flock/update tools/padjffs2/update tools/mm-macros/update tools/xorg-macros/update tools/xfce-macros/update tools/missing-macros/update tools/xz/update tools/cmake/update tools/scons/update tools/lzma-old/update tools/squashfs/update tools/lzma/update tools/squashfs4/update
   tools/refresh: .config prereq tools/gmp/refresh tools/mpfr/refresh tools/mpc/refresh tools/libelf/refresh tools/m4/refresh tools/libtool/refresh tools/autoconf/refresh tools/automake/refresh tools/flex/refresh tools/bison/refresh tools/pkg-config/refresh tools/sed/refresh tools/mklibs/refresh tools/sstrip/refresh tools/ipkg-utils/refresh tools/genext2fs/refresh tools/e2fsprogs/refresh tools/mtd-utils/refresh tools/mkimage/refresh tools/firmware-utils/refresh tools/patch-cmdline/refresh tools/quilt/refresh tools/yaffs2/refresh tools/flock/refresh tools/padjffs2/refresh tools/mm-macros/refresh tools/xorg-macros/refresh tools/xfce-macros/refresh tools/missing-macros/refresh tools/xz/refresh tools/cmake/refresh tools/scons/refresh tools/lzma-old/refresh tools/squashfs/refresh tools/lzma/refresh tools/squashfs4/refresh
   tools/prereq: .config prereq tools/gmp/prereq tools/mpfr/prereq tools/mpc/prereq tools/libelf/prereq tools/m4/prereq tools/libtool/prereq tools/autoconf/prereq tools/automake/prereq tools/flex/prereq tools/bison/prereq tools/pkg-config/prereq tools/sed/prereq tools/mklibs/prereq tools/sstrip/prereq tools/ipkg-utils/prereq tools/genext2fs/prereq tools/e2fsprogs/prereq tools/mtd-utils/prereq tools/mkimage/prereq tools/firmware-utils/prereq tools/patch-cmdline/prereq tools/quilt/prereq tools/yaffs2/prereq tools/flock/prereq tools/padjffs2/prereq tools/mm-macros/prereq tools/xorg-macros/prereq tools/xfce-macros/prereq tools/missing-macros/prereq tools/xz/prereq tools/cmake/prereq tools/scons/prereq tools/lzma-old/prereq tools/squashfs/prereq tools/lzma/prereq tools/squashfs4/prereq
   tools/dist: .config prereq tools/gmp/dist tools/mpfr/dist tools/mpc/dist tools/libelf/dist tools/m4/dist tools/libtool/dist tools/autoconf/dist tools/automake/dist tools/flex/dist tools/bison/dist tools/pkg-config/dist tools/sed/dist tools/mklibs/dist tools/sstrip/dist tools/ipkg-utils/dist tools/genext2fs/dist tools/e2fsprogs/dist tools/mtd-utils/dist tools/mkimage/dist tools/firmware-utils/dist tools/patch-cmdline/dist tools/quilt/dist tools/yaffs2/dist tools/flock/dist tools/padjffs2/dist tools/mm-macros/dist tools/xorg-macros/dist tools/xfce-macros/dist tools/missing-macros/dist tools/xz/dist tools/cmake/dist tools/scons/dist tools/lzma-old/dist tools/squashfs/dist tools/lzma/dist tools/squashfs4/dist
   tools/distcheck: .config prereq tools/gmp/distcheck tools/mpfr/distcheck tools/mpc/distcheck tools/libelf/distcheck tools/m4/distcheck tools/libtool/distcheck tools/autoconf/distcheck tools/automake/distcheck tools/flex/distcheck tools/bison/distcheck tools/pkg-config/distcheck tools/sed/distcheck tools/mklibs/distcheck tools/sstrip/distcheck tools/ipkg-utils/distcheck tools/genext2fs/distcheck tools/e2fsprogs/distcheck tools/mtd-utils/distcheck tools/mkimage/distcheck tools/firmware-utils/distcheck tools/patch-cmdline/distcheck tools/quilt/distcheck tools/yaffs2/distcheck tools/flock/distcheck tools/padjffs2/distcheck tools/mm-macros/distcheck tools/xorg-macros/distcheck tools/xfce-macros/distcheck tools/missing-macros/distcheck tools/xz/distcheck tools/cmake/distcheck tools/scons/distcheck tools/lzma-old/distcheck tools/squashfs/distcheck tools/lzma/distcheck tools/squashfs4/distcheck
   tools/configure: .config prereq tools/gmp/configure tools/mpfr/configure tools/mpc/configure tools/libelf/configure tools/m4/configure tools/libtool/configure tools/autoconf/configure tools/automake/configure tools/flex/configure tools/bison/configure tools/pkg-config/configure tools/sed/configure tools/mklibs/configure tools/sstrip/configure tools/ipkg-utils/configure tools/genext2fs/configure tools/e2fsprogs/configure tools/mtd-utils/configure tools/mkimage/configure tools/firmware-utils/configure tools/patch-cmdline/configure tools/quilt/configure tools/yaffs2/configure tools/flock/configure tools/padjffs2/configure tools/mm-macros/configure tools/xorg-macros/configure tools/xfce-macros/configure tools/missing-macros/configure tools/xz/configure tools/cmake/configure tools/scons/configure tools/lzma-old/configure tools/squashfs/configure tools/lzma/configure tools/squashfs4/configure


可以看到宏会为tools及其下的子目录展开SUBTARGETS变量的各个目标

$(foreach target,$(SUBTARGETS),$(call subtarget,$(1),$(target)))

分别依赖各个子目录下的对应子目标

tools/clean:

tools/download:

。。。

tools/configure:


include/subdir.mk中变量的定义

SUBTARGETS:=clean download prepare compile install update refresh prereq dist distcheck configure



这样可以使用如下格式单独处理某个软件包


使用make package/6in4/clean单独clean

使用make package/6in4/compile单独编译


target、package、toolchain目录与此类似



0 0
原创粉丝点击