aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-02-13 19:16:41 +0000
committerlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-02-13 19:16:41 +0000
commitf9a421a6e804a9b2367765737ddb5838c94de9a8 (patch)
tree5995ddbb62eeda3512fa408b78bbd1eb8832ae4a /Makefile
parentc1422979ad28708e803c39674eb3e162e42875ca (diff)
downloadbusybox-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--Makefile23
1 files changed, 7 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index b69e5040f..1e48bc500 100644
--- a/Makefile
+++ b/Makefile
@@ -185,7 +185,6 @@ randconfig: scripts/config/conf
185allyesconfig: scripts/config/conf 185allyesconfig: 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
191allnoconfig: scripts/config/conf 190allnoconfig: scripts/config/conf
@@ -197,7 +196,7 @@ allnoconfig: scripts/config/conf
197 196
198defconfig: scripts/config/conf 197defconfig: 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
387scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c 386scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c
388 $(HOSTCC) $(HOSTCFLAGS) -o $@ $< 387 $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
389 388
390DEP_INCLUDES := include/config.h include/bb_config.h include/_usage.h 389DEP_INCLUDES := include/config.h include/bb_config.h
391 390
392ifeq ($(strip $(CONFIG_BBCONFIG)),y) 391ifeq ($(strip $(CONFIG_BBCONFIG)),y)
393DEP_INCLUDES += include/bbconfigopts.h 392DEP_INCLUDES += include/bbconfigopts.h
@@ -414,21 +413,13 @@ include/config.h: .config
414 413
415include/bb_config.h: include/config.h 414include/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
428include/_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
432clean: 423clean:
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 \