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 \ |