diff options
| author | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-02-13 19:16:41 +0000 |
|---|---|---|
| committer | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-02-13 19:16:41 +0000 |
| commit | f9a421a6e804a9b2367765737ddb5838c94de9a8 (patch) | |
| tree | 5995ddbb62eeda3512fa408b78bbd1eb8832ae4a /Makefile | |
| parent | c1422979ad28708e803c39674eb3e162e42875ca (diff) | |
| download | busybox-w32-f9a421a6e804a9b2367765737ddb5838c94de9a8.tar.gz busybox-w32-f9a421a6e804a9b2367765737ddb5838c94de9a8.tar.bz2 busybox-w32-f9a421a6e804a9b2367765737ddb5838c94de9a8.zip | |
New USE() macros
For each CONFIG_SYMBOL, include/bb_config.h now has both ENABLE_SYMBOL
and USE_SYMBOL(x). ENABLE_SYMBOL is still always defined (1 or 0) so that
if(ENABLE) should optimize out when it's zero. The USE_SYMBOL(X) will only
splice in X if the symbol is defined, otherwise it'll be empty.
Thus we can convert this:
#ifdef CONFIG_ARGS
opt = bb_getopt_ulflags(argc, argv, "ab:c"
#ifdef CONFIG_THINGY
"d:"
#endif
, &bvalue
#ifdef CONFIG_THINGY
, &thingy
#endif
);
#endif
into this:
if (ENABLE_ARGS) {
opt = bb_getopt_ulflags(argc, argv, "ab:c" USE_THINGY("d:"), &bvalue
USE_THINGY(, &thingy));
}
And it should produce the same code.
Unlike the old versions in include/_usage.h, the new USE_SYMBOL(x) can handle
commas in its arguments (as shown above). (The _usage.h file is obsolete and
no longer generated.)
Nobody should need to include config.h directly anymore, bb_config.h should
define all the configuration stuff we need. Someday, the CONFIG_SYMBOL
versions should go away in favor of ENABLE_SYMBOL and USE_SYMBOL().
Thanks to vodz for the new version of bb_mkdep.c that works with function
macros.
git-svn-id: svn://busybox.net/trunk/busybox@13955 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 23 |
1 files changed, 7 insertions, 16 deletions
| @@ -185,7 +185,6 @@ randconfig: scripts/config/conf | |||
| 185 | allyesconfig: scripts/config/conf | 185 | allyesconfig: scripts/config/conf |
| 186 | @./scripts/config/conf -y $(CONFIG_CONFIG_IN) | 186 | @./scripts/config/conf -y $(CONFIG_CONFIG_IN) |
| 187 | sed -i -r -e "s/^(USING_CROSS_COMPILER)=.*/# \1 is not set/" .config | 187 | sed -i -r -e "s/^(USING_CROSS_COMPILER)=.*/# \1 is not set/" .config |
| 188 | echo "CONFIG_FEATURE_SHARED_BUSYBOX=y" >> .config | ||
| 189 | @./scripts/config/conf -o $(CONFIG_CONFIG_IN) | 188 | @./scripts/config/conf -o $(CONFIG_CONFIG_IN) |
| 190 | 189 | ||
| 191 | allnoconfig: scripts/config/conf | 190 | allnoconfig: scripts/config/conf |
| @@ -197,7 +196,7 @@ allnoconfig: scripts/config/conf | |||
| 197 | 196 | ||
| 198 | defconfig: scripts/config/conf | 197 | defconfig: scripts/config/conf |
| 199 | @./scripts/config/conf -y $(CONFIG_CONFIG_IN) | 198 | @./scripts/config/conf -y $(CONFIG_CONFIG_IN) |
| 200 | sed -i -r -e "s/^(USING_CROSS_COMPILER|CONFIG_(DEBUG.*|STATIC|SELINUX|BUILD_(AT_ONCE|LIBBUSYBOX)|FEATURE_(DEVFS|FULL_LIBBUSYBOX|SHARED_BUSYBOX|MTAB_SUPPORT|CLEAN_UP)))=.*/# \1 is not set/" .config | 199 | sed -i -r -e "s/^(USING_CROSS_COMPILER|CONFIG_(DEBUG.*|STATIC|SELINUX|BUILD_(AT_ONCE|LIBBUSYBOX)|FEATURE_(DEVFS|FULL_LIBBUSYBOX|SHARED_BUSYBOX|MTAB_SUPPORT|CLEAN_UP|UDHCP_DEBUG)))=.*/# \1 is not set/" .config |
| 201 | @./scripts/config/conf -o $(CONFIG_CONFIG_IN) | 200 | @./scripts/config/conf -o $(CONFIG_CONFIG_IN) |
| 202 | 201 | ||
| 203 | 202 | ||
| @@ -387,7 +386,7 @@ docs/busybox.net/BusyBox.html: docs/busybox.pod | |||
| 387 | scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c | 386 | scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c |
| 388 | $(HOSTCC) $(HOSTCFLAGS) -o $@ $< | 387 | $(HOSTCC) $(HOSTCFLAGS) -o $@ $< |
| 389 | 388 | ||
| 390 | DEP_INCLUDES := include/config.h include/bb_config.h include/_usage.h | 389 | DEP_INCLUDES := include/config.h include/bb_config.h |
| 391 | 390 | ||
| 392 | ifeq ($(strip $(CONFIG_BBCONFIG)),y) | 391 | ifeq ($(strip $(CONFIG_BBCONFIG)),y) |
| 393 | DEP_INCLUDES += include/bbconfigopts.h | 392 | DEP_INCLUDES += include/bbconfigopts.h |
| @@ -414,21 +413,13 @@ include/config.h: .config | |||
| 414 | 413 | ||
| 415 | include/bb_config.h: include/config.h | 414 | include/bb_config.h: include/config.h |
| 416 | @echo -e "#ifndef BB_CONFIG_H\n#define BB_CONFIG_H" > $@ | 415 | @echo -e "#ifndef BB_CONFIG_H\n#define BB_CONFIG_H" > $@ |
| 417 | @sed -e 's/#undef CONFIG_\(.*\)/#define ENABLE_\1 0/' \ | 416 | @sed -e h -e 's/#undef CONFIG_\(.*\)/#define ENABLE_\1 0/p' -e g \ |
| 418 | -e 's/#define CONFIG_\(.*\)/#define CONFIG_\1\n#define ENABLE_\1/' \ | 417 | -e 's/#undef CONFIG_\(.*\)/#define USE_\1(...)/p' -e g \ |
| 419 | < $< >> $@ | 418 | -e 's/#define CONFIG_\([^ ]*\).*/#define ENABLE_\1 1/p' -e g -e \ |
| 419 | 's/#define CONFIG_\([^ ]*\).*/#define USE_\1(...) __VA_ARGS__/p' \ | ||
| 420 | -e g $< >> $@ | ||
| 420 | @echo "#endif" >> $@ | 421 | @echo "#endif" >> $@ |
| 421 | 422 | ||
| 422 | # Create macros for usage.h, e.g.: | ||
| 423 | #if ENABLE_HAVE_DOT_CONFIG | ||
| 424 | #define USAGE_HAVE_DOT_CONFIG(a) a | ||
| 425 | #else | ||
| 426 | #define USAGE_HAVE_DOT_CONFIG(a) | ||
| 427 | #endif | ||
| 428 | include/_usage.h: .config | ||
| 429 | $(disp_gen) | ||
| 430 | $(Q)awk '/CONFIG|BB_APPLET/{gsub("#[[:space:]]*|=y|.*CONFIG_|.*BB_APPLET_","");if(!/=/){print("#if ENABLE_"$$1"\n#define USAGE_"$$1"(a) a\n#else\n#define USAGE_"$$1"(a)\n#endif");}}' $(<) > $(@) | ||
| 431 | |||
| 432 | clean: | 423 | clean: |
| 433 | - $(MAKE) -C scripts/config $@ | 424 | - $(MAKE) -C scripts/config $@ |
| 434 | - $(RM_F) docs/busybox.dvi docs/busybox.ps \ | 425 | - $(RM_F) docs/busybox.dvi docs/busybox.ps \ |
