#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.)
This commit is contained in:
parent
77804ce53d
commit
193c8c7383
9
Makefile
9
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
|
||||
|
@ -24,7 +24,7 @@
|
||||
#ifndef _BB_INTERNAL_H_
|
||||
#define _BB_INTERNAL_H_ 1
|
||||
|
||||
#include "config.h"
|
||||
#include "bb_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
#include <features.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "bb_config.h"
|
||||
#ifdef CONFIG_SELINUX
|
||||
#include <selinux/selinux.h>
|
||||
#endif
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include <string.h> /* strcmp and friends */
|
||||
#include <ctype.h> /* isdigit and friends */
|
||||
#include <stddef.h> /* offsetof */
|
||||
#include <unistd.h>
|
||||
#include <netdb.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <net/if.h>
|
||||
@ -558,6 +559,7 @@ int ifconfig_main(int argc, char **argv)
|
||||
continue;
|
||||
} /* end of while-loop */
|
||||
|
||||
if (CONFIG_FEATURE_CLEAN_UP) close(sockfd);
|
||||
return goterr;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user