diff options
author | Rob Landley | 2005-07-27 06:55:36 +0000 |
---|---|---|
committer | Rob Landley | 2005-07-27 06:55:36 +0000 |
commit | 193c8c73834b701f93c421fc88a2ecb715fd6fe5 (patch) | |
tree | 8467a696b1990e665391d4fcde21c8f176f27cd1 /Makefile | |
parent | 77804ce53d2a83d89e272a20763f2e6f5fc25d8c (diff) | |
download | busybox-193c8c73834b701f93c421fc88a2ecb715fd6fe5.zip busybox-193c8c73834b701f93c421fc88a2ecb715fd6fe5.tar.gz |
#ifdef reduction infrastructure, based on an argument between Shaun Jackman,
Rob Landley, and others.
Currently CONFIG options are defined or undefined, so we chop out code with
#ifdefs, ala:
#ifdef CONFIG_THING
stuff();
#endif
This creates a new header file, bb_config.h, which sets the CONFIG entry to 1
or 0, and lets us do:
if(CONFIG_THING) stuff();
And let the compiler do dead code elimination to get rid of it. (Note: #ifdef
will still work because for the 1 case it's a static const int, not a #define.)
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -122,7 +122,7 @@ $(ALL_MAKEFILES): %/Makefile: $(top_srcdir)/%/Makefile include $(patsubst %,%/Makefile.in, $(SRC_DIRS)) -include $(top_builddir)/.depend -busybox: $(ALL_MAKEFILES) .depend include/config.h $(libraries-y) +busybox: $(ALL_MAKEFILES) .depend include/bb_config.h $(libraries-y) $(CC) $(LDFLAGS) -o $@ -Wl,--start-group $(libraries-y) $(LIBRARIES) -Wl,--end-group $(STRIPCMD) $@ @@ -212,6 +212,11 @@ include/config.h: .config fi; @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN) +include/bb_config.h: include/config.h + echo "#ifndef AUTOCONF_INCLUDED" > $@ + sed -e 's/#undef \(.*\)/static const int \1 = 0;/' < $< >> $@ + echo "#endif" >> $@ + finished2: @echo @echo Finished installing... @@ -279,7 +284,7 @@ clean: distclean: clean - rm -f scripts/split-include scripts/mkdep - - rm -rf include/config include/config.h + - rm -rf include/config include/config.h include/bb_config.h - find . -name .depend -exec rm -f {} \; rm -f .config .config.old .config.cmd - $(MAKE) -C scripts/config clean |