aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2005-07-27 06:55:36 +0000
committerRob Landley <rob@landley.net>2005-07-27 06:55:36 +0000
commit193c8c73834b701f93c421fc88a2ecb715fd6fe5 (patch)
tree8467a696b1990e665391d4fcde21c8f176f27cd1 /Makefile
parent77804ce53d2a83d89e272a20763f2e6f5fc25d8c (diff)
downloadbusybox-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--Makefile9
1 files changed, 7 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index d205bb1b6..807ab5058 100644
--- a/Makefile
+++ b/Makefile
@@ -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