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-w32-193c8c73834b701f93c421fc88a2ecb715fd6fe5.tar.gz
busybox-w32-193c8c73834b701f93c421fc88a2ecb715fd6fe5.tar.bz2
busybox-w32-193c8c73834b701f93c421fc88a2ecb715fd6fe5.zip
#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
122include $(patsubst %,%/Makefile.in, $(SRC_DIRS)) 122include $(patsubst %,%/Makefile.in, $(SRC_DIRS))
123-include $(top_builddir)/.depend 123-include $(top_builddir)/.depend
124 124
125busybox: $(ALL_MAKEFILES) .depend include/config.h $(libraries-y) 125busybox: $(ALL_MAKEFILES) .depend include/bb_config.h $(libraries-y)
126 $(CC) $(LDFLAGS) -o $@ -Wl,--start-group $(libraries-y) $(LIBRARIES) -Wl,--end-group 126 $(CC) $(LDFLAGS) -o $@ -Wl,--start-group $(libraries-y) $(LIBRARIES) -Wl,--end-group
127 $(STRIPCMD) $@ 127 $(STRIPCMD) $@
128 128
@@ -212,6 +212,11 @@ include/config.h: .config
212 fi; 212 fi;
213 @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN) 213 @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN)
214 214
215include/bb_config.h: include/config.h
216 echo "#ifndef AUTOCONF_INCLUDED" > $@
217 sed -e 's/#undef \(.*\)/static const int \1 = 0;/' < $< >> $@
218 echo "#endif" >> $@
219
215finished2: 220finished2:
216 @echo 221 @echo
217 @echo Finished installing... 222 @echo Finished installing...
@@ -279,7 +284,7 @@ clean:
279 284
280distclean: clean 285distclean: clean
281 - rm -f scripts/split-include scripts/mkdep 286 - rm -f scripts/split-include scripts/mkdep
282 - rm -rf include/config include/config.h 287 - rm -rf include/config include/config.h include/bb_config.h
283 - find . -name .depend -exec rm -f {} \; 288 - find . -name .depend -exec rm -f {} \;
284 rm -f .config .config.old .config.cmd 289 rm -f .config .config.old .config.cmd
285 - $(MAKE) -C scripts/config clean 290 - $(MAKE) -C scripts/config clean