X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Makefile;h=e5ac831678b82fa98743b5af3256eddfdef54b7b;hb=04b7ef967bfb5a4b97600b27d60eb42e0346d8ab;hp=d43360d320e78c56797f85cdd6218d2b2eb7130a;hpb=a167ec5e633b5007883b3e0d5619792914e3540f;p=oweals%2Fbusybox.git diff --git a/Makefile b/Makefile index d43360d32..e5ac83167 100644 --- a/Makefile +++ b/Makefile @@ -5,14 +5,20 @@ # Licensed under GPLv2, see the file LICENSE in this tarball for details. # -#-------------------------------------------------------------- -# You shouldn't need to mess with anything beyond this point... -#-------------------------------------------------------------- -noconfig_targets := menuconfig config oldconfig randconfig \ +# You shouldn't have to edit anything in this file for configuration +# purposes, try "make help" or read http://busybox.net/FAQ.html. + +.PHONY: dummy subdirs release distclean clean config oldconfig menuconfig \ + tags check test depend dep buildtree hosttools _all checkhelp \ + sizes bloatcheck baseline objsizes + +noconfig_targets := menuconfig config oldconfig randconfig hosttools \ defconfig allyesconfig allnoconfig allbareconfig \ - clean distclean \ + clean distclean help \ release tags +nocheck_targets := clean distclean help release tags + # the toplevel sourcedir ifndef top_srcdir top_srcdir=$(CURDIR) @@ -33,28 +39,44 @@ DIRS:=applets archival archival/libunarchive coreutils console-tools \ SRC_DIRS:=$(patsubst %,$(top_srcdir)/%,$(DIRS)) # That's our default target when none is given on the command line -.PHONY: _all _all: CONFIG_CONFIG_IN = $(top_srcdir)/Config.in -CONFIG_DEFCONFIG = $(top_srcdir)/defconfig - -ifeq ($(KBUILD_SRC),) +ifeq ($(BUILD_SRC),) ifdef O ifeq ("$(origin O)", "command line") - KBUILD_OUTPUT := $(O) + BUILD_OUTPUT := $(O) top_builddir := $(O) endif else # If no alternate output-dir was specified, we build in cwd -# We are using KBUILD_OUTPUT nevertheless to make sure that we create +# We are using BUILD_OUTPUT nevertheless to make sure that we create # Rules.mak and the toplevel Makefile, in case they don't exist. - KBUILD_OUTPUT := $(top_builddir) + BUILD_OUTPUT := $(top_builddir) +endif + +# see if we are in verbose mode +BUILD_VERBOSE := +ifdef V + ifeq ("$(origin V)", "command line") + BUILD_VERBOSE := $(V) + endif +endif +ifdef VERBOSE + ifeq ("$(origin VERBOSE)", "command line") + BUILD_VERBOSE := $(VERBOSE) + endif +endif + +ifneq ($(strip $(BUILD_VERBOSE)),) + export BUILD_VERBOSE + CHECK_VERBOSE := -v +# ARFLAGS+=v endif ifneq ($(strip $(HAVE_DOT_CONFIG)),y) -# pull in OS specific commands like cp, mkdir, etc. early +# pull in settings early -include $(top_srcdir)/Rules.mak endif @@ -65,40 +87,40 @@ all_tree: $(all_tree) $(all_tree): @mkdir -p "$@" -ifneq ($(KBUILD_OUTPUT),) +ifneq ($(BUILD_OUTPUT),) # Invoke a second make in the output directory, passing relevant variables # Check that the output directory actually exists -saved-output := $(KBUILD_OUTPUT) -KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd) -$(if $(wildcard $(KBUILD_OUTPUT)),, \ +saved-output := $(BUILD_OUTPUT) +BUILD_OUTPUT := $(shell cd $(BUILD_OUTPUT) && /bin/pwd) +$(if $(wildcard $(BUILD_OUTPUT)),, \ $(error output directory "$(saved-output)" does not exist)) .PHONY: $(MAKECMDGOALS) -$(filter-out _all,$(MAKECMDGOALS)) _all: $(KBUILD_OUTPUT)/Rules.mak $(KBUILD_OUTPUT)/Makefile all_tree - $(MAKE) -C $(KBUILD_OUTPUT) \ +$(filter-out _all,$(MAKECMDGOALS)) _all: $(BUILD_OUTPUT)/Rules.mak $(BUILD_OUTPUT)/Makefile all_tree + $(Q)$(MAKE) -C $(BUILD_OUTPUT) \ top_srcdir=$(top_srcdir) \ top_builddir=$(top_builddir) \ - KBUILD_SRC=$(top_srcdir) \ + BUILD_SRC=$(top_srcdir) \ -f $(CURDIR)/Makefile $@ -$(KBUILD_OUTPUT)/Rules.mak: +$(BUILD_OUTPUT)/Rules.mak: @echo > $@ @echo top_srcdir=$(top_srcdir) >> $@ - @echo top_builddir=$(KBUILD_OUTPUT) >> $@ + @echo top_builddir=$(BUILD_OUTPUT) >> $@ @echo include $(top_srcdir)/Rules.mak >> $@ -$(KBUILD_OUTPUT)/Makefile: +$(BUILD_OUTPUT)/Makefile: @echo > $@ @echo top_srcdir=$(top_srcdir) >> $@ - @echo top_builddir=$(KBUILD_OUTPUT) >> $@ - @echo KBUILD_SRC='$$(top_srcdir)' >> $@ - @echo include '$$(KBUILD_SRC)'/Makefile >> $@ + @echo top_builddir=$(BUILD_OUTPUT) >> $@ + @echo BUILD_SRC='$$(top_srcdir)' >> $@ + @echo include '$$(BUILD_SRC)'/Makefile >> $@ # Leave processing to above invocation of make skip-makefile := 1 -endif # ifneq ($(KBUILD_OUTPUT),) -endif # ifeq ($(KBUILD_SRC),) +endif # ifneq ($(BUILD_OUTPUT),) +endif # ifeq ($(BUILD_SRC),) ifeq ($(skip-makefile),) @@ -121,22 +143,30 @@ help: @echo @echo 'Configuration:' @echo ' allnoconfig - disable all symbols in .config' - @echo ' allyesconfig - enable (almost) all symbols in .config' - @echo ' allbareconfig - enable all basics without any features' + @echo ' allyesconfig - enable all symbols in .config (see defconfig)' + @echo ' allbareconfig - enable all applets without any sub-features' @echo ' config - text based configurator (of last resort)' - @echo ' defconfig - set .config to defaults' + @echo ' defconfig - set .config to largest generic configuration' @echo ' menuconfig - interactive curses-based configurator' @echo ' oldconfig - resolve any unresolved symbols in .config' + @echo ' hosttools - build sed for the host.' + @echo ' You can use these commands if the commands on the host' + @echo ' is unusable. Afterwards use it like:' + @echo ' make SED="$(top_builddir)/sed"' @echo @echo 'Installation:' - @echo ' install - install busybox into $prefix' + @echo ' install - install busybox into $(PREFIX)' @echo ' uninstall' @echo @echo 'Development:' + @echo ' baseline - create busybox_old for bloatcheck.' + @echo ' bloatcheck - show size difference between old and new versions' @echo ' check - run the test suite for all applets' + @echo ' checkhelp - check for missing help-entries in Config.in' @echo ' randconfig - generate a random configuration' @echo ' release - create a distribution tarball' @echo ' sizes - show size of all enabled busybox symbols' + @echo ' objsizes - show size of each .o object built' @echo @@ -159,18 +189,19 @@ all: menuconfig # --------------------------------------------------------------------------- scripts/config/conf: scripts/config/Makefile - $(MAKE) -C scripts/config conf + $(Q)$(MAKE) -C scripts/config conf -@if [ ! -f .config ] ; then \ - cp $(CONFIG_DEFCONFIG) .config; \ + touch .config; \ fi scripts/config/mconf: scripts/config/Makefile - $(MAKE) -C scripts/config ncurses conf mconf + $(Q)$(MAKE) -C scripts/config ncurses conf mconf -@if [ ! -f .config ] ; then \ - cp $(CONFIG_DEFCONFIG) .config; \ + touch .config; \ fi menuconfig: scripts/config/mconf + @[ -f .config ] || $(MAKE) $(MAKEFLAGS) defconfig @./scripts/config/mconf $(CONFIG_CONFIG_IN) config: scripts/config/conf @@ -183,29 +214,41 @@ randconfig: scripts/config/conf @./scripts/config/conf -r $(CONFIG_CONFIG_IN) allyesconfig: scripts/config/conf - @./scripts/config/conf -y $(CONFIG_CONFIG_IN) - sed -i -r -e "s/^(USING_CROSS_COMPILER)=.*/# \1 is not set/" .config - echo "CONFIG_FEATURE_SHARED_BUSYBOX=y" >> .config - @./scripts/config/conf -o $(CONFIG_CONFIG_IN) + @./scripts/config/conf -y $(CONFIG_CONFIG_IN) > /dev/null + @$(SED) -i -r -e "s/^(USING_CROSS_COMPILER)=.*/# \1 is not set/" .config + @./scripts/config/conf -o $(CONFIG_CONFIG_IN) > /dev/null allnoconfig: scripts/config/conf - @./scripts/config/conf -n $(CONFIG_CONFIG_IN) + @./scripts/config/conf -n $(CONFIG_CONFIG_IN) > /dev/null -#defconfig: scripts/config/conf -# @./scripts/config/conf -d $(CONFIG_CONFIG_IN) +# defconfig is allyesconfig minus any features that are specialized enough +# or cause enough behavior change that the user really should switch them on +# manually if that's what they want. Sort of "maximum sane config". defconfig: scripts/config/conf - @./scripts/config/conf -y $(CONFIG_CONFIG_IN) - sed -i -r -e "s/^(USING_CROSS_COMPILER|CONFIG_(DEBUG.*|STATIC|SELINUX|FEATURE_DEVFS|BUILD_AT_ONCE|BUILD_LIBBUSYBOX|FEATURE_FULL_LIBBUSYBOX|FEATURE_SHARED_BUSYBOX))=.*/# \1 is not set/" .config - @./scripts/config/conf -o $(CONFIG_CONFIG_IN) + @./scripts/config/conf -y $(CONFIG_CONFIG_IN) > /dev/null + @$(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)|INSTALL_NO_USR))=.*/# \1 is not set/" .config + @./scripts/config/conf -o $(CONFIG_CONFIG_IN) > /dev/null allbareconfig: scripts/config/conf - @./scripts/config/conf -y $(CONFIG_CONFIG_IN) - @sed -i -r -e "s/^(USING_CROSS_COMPILER|CONFIG_(DEBUG|STATIC|SELINUX|DEVFSD|NC_GAPING_SECURITY_HOLE|BUILD_AT_ONCE)).*/# \1 is not set/" .config - @sed -i -e "/FEATURE/s/=.*//;/^[^#]/s/.*FEATURE.*/# \0 is not set/;" .config + @./scripts/config/conf -y $(CONFIG_CONFIG_IN) > /dev/null + @$(SED) -i -r -e "s/^(USING_CROSS_COMPILER|CONFIG_(DEBUG|STATIC|SELINUX|DEVFSD|NC_GAPING_SECURITY_HOLE|BUILD_AT_ONCE)).*/# \1 is not set/" .config + @$(SED) -i -e "/FEATURE/s/=.*//;/^[^#]/s/.*FEATURE.*/# \0 is not set/;" .config @echo "CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y" >> .config - @./scripts/config/conf -o $(CONFIG_CONFIG_IN) + @yes n | ./scripts/config/conf -o $(CONFIG_CONFIG_IN) > /dev/null + +hosttools: + $(Q)cp .config .config.bak || noold=yea + $(Q)$(MAKE) CC="$(HOSTCC)" CFLAGS="$(HOSTCFLAGS) $(INCS)" allnoconfig + $(Q)mv .config .config.in + $(Q)(grep -v CONFIG_SED .config.in ; \ + echo "CONFIG_SED=y" ; ) > .config + $(Q)$(MAKE) CC="$(HOSTCC)" CFLAGS="$(HOSTCFLAGS) $(INCS)" oldconfig include/bb_config.h + $(Q)$(MAKE) CC="$(HOSTCC)" CFLAGS="$(HOSTCFLAGS) $(INCS)" busybox + $(Q)[ -f .config.bak ] && mv .config.bak .config || rm .config + mv busybox sed + @echo "Now do: $(MAKE) SED=$(top_builddir)/sed " else # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) @@ -258,6 +301,7 @@ LIBBUSYBOX_SONAME:=$(LD_LIBBUSYBOX).$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL DO_INSTALL_LIBS:=$(LD_LIBBUSYBOX) \ $(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ $(LD_LIBBUSYBOX).$(MAJOR_VERSION).$(MINOR_VERSION) +endif # CONFIG_BUILD_LIBBUSYBOX ifeq ($(strip $(CONFIG_BUILD_AT_ONCE)),y) ifneq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) @@ -269,7 +313,6 @@ $(LIBBUSYBOX_SONAME): $(LIBRARY_SRC) else # CONFIG_BUILD_AT_ONCE $(LIBBUSYBOX_SONAME): $(libbusybox-obj) endif # CONFIG_BUILD_AT_ONCE -endif # CONFIG_BUILD_LIBBUSYBOX ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) LDBUSYBOX:=-L$(top_builddir) -lbusybox @@ -280,34 +323,30 @@ $(LIBBUSYBOX_SONAME): ifndef MAJOR_VERSION $(error MAJOR_VERSION needed for $@ is not defined) endif - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) -shared \ - $(CFLAGS_PIC) \ + $(do_link.so) \ -Wl,-soname=$(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ - -Wl,-z,combreloc $(LIB_LDFLAGS) \ - -o $(@) \ - -Wl,--start-group -Wl,--whole-archive \ - $(LIBRARY_DEFINE) $(^) \ - -Wl,--no-whole-archive -Wl,--end-group - $(RM_F) $(DO_INSTALL_LIBS) - for i in $(DO_INSTALL_LIBS); do $(LN_S) -v $(@) $$i ; done - $(STRIPCMD) $@ + -Wl,-z,combreloc + @rm -f $(DO_INSTALL_LIBS) + @for i in $(DO_INSTALL_LIBS); do ln -s $(@) $$i ; done + $(do_strip) endif # ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) -busybox: .depend $(LIBBUSYBOX_SONAME) $(BUSYBOX_SRC) $(libraries-y) - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(PROG_CFLAGS) $(LDFLAGS) \ - -o $@ -Wl,--start-group \ - $(APPLETS_DEFINE) $(APPLET_SRC) \ - $(BUSYBOX_DEFINE) $(BUSYBOX_SRC) $(libraries-y) \ - $(LDBUSYBOX) $(LIBRARIES) \ - -Wl,--end-group - $(STRIPCMD) $@ +busybox_unstripped: .depend $(LIBBUSYBOX_SONAME) $(BUSYBOX_SRC) $(APPLET_SRC) $(libraries-y) + $(do_link) + +busybox: busybox_unstripped + $(Q)cp busybox_unstripped busybox + $(do_strip) + +%.bflt: %_unstripped + $(do_elf2flt) busybox.links: $(top_srcdir)/applets/busybox.mkll include/bb_config.h $(top_srcdir)/include/applets.h - - $(SHELL) $^ >$@ + $(Q)-$(SHELL) $^ >$@ install: $(top_srcdir)/applets/install.sh busybox busybox.links - DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ + $(Q)DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ $(SHELL) $< $(PREFIX) $(INSTALL_OPTS) ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) @echo @@ -321,145 +360,143 @@ ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) endif uninstall: busybox.links - $(RM_F) $(PREFIX)/bin/busybox - for i in `cat busybox.links` ; do $(RM_F) $(PREFIX)$$i; done + rm -f $(PREFIX)/bin/busybox + for i in `cat busybox.links` ; do rm -f $(PREFIX)$$i; done ifneq ($(strip $(DO_INSTALL_LIBS)),n) for i in $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS); do \ - $(RM_F) $(PREFIX)$$i; \ + rm -f $(PREFIX)$$i; \ done endif -# see if we are in verbose mode -KBUILD_VERBOSE := -ifdef V - ifeq ("$(origin V)", "command line") - KBUILD_VERBOSE := $(V) - endif -endif -ifneq ($(strip $(KBUILD_VERBOSE)),) - CHECK_VERBOSE := -v -# ARFLAGS+=v -endif check test: busybox - bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite \ - $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) + bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite SED="$(SED)" \ + $(SHELL) $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) + +checkhelp: + $(Q)$(top_srcdir)/scripts/checkhelp.awk \ + $(wildcard $(patsubst %,%/Config.in,$(SRC_DIRS) ./)) + +sizes: busybox_unstripped + $(NM) --size-sort $(<) + +bloatcheck: busybox_old busybox_unstripped + @$(top_srcdir)/scripts/bloat-o-meter busybox_old busybox_unstripped + +baseline: busybox_unstripped + @mv busybox_unstripped busybox_old -sizes: - -$(RM_F) busybox - $(MAKE) top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) \ - -f $(top_srcdir)/Makefile STRIPCMD=/bin/true - $(NM) --size-sort busybox +objsizes: busybox_unstripped + $(SHELL) $(top_srcdir)/scripts/objsizes # Documentation Targets doc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html -docs/busybox.pod : $(top_srcdir)/docs/busybox_header.pod $(top_srcdir)/include/usage.h $(top_srcdir)/docs/busybox_footer.pod - -mkdir -p docs - - ( cat $(top_srcdir)/docs/busybox_header.pod; \ - $(top_srcdir)/docs/autodocifier.pl $(top_srcdir)/include/usage.h; \ - cat $(top_srcdir)/docs/busybox_footer.pod ) > docs/busybox.pod +docs/busybox.pod : $(top_srcdir)/docs/busybox_header.pod $(top_srcdir)/include/usage.h $(top_srcdir)/docs/busybox_footer.pod $(top_srcdir)/docs/autodocifier.pl + $(disp_doc) + $(Q)-mkdir -p docs + $(Q)-( cat $(top_srcdir)/docs/busybox_header.pod ; \ + $(top_srcdir)/docs/autodocifier.pl $(top_srcdir)/include/usage.h ; \ + cat $(top_srcdir)/docs/busybox_footer.pod ; ) > docs/busybox.pod docs/BusyBox.txt: docs/busybox.pod - $(SECHO) - $(SECHO) BusyBox Documentation - $(SECHO) - -mkdir -p docs - -pod2text $< > $@ + $(disp_doc) + $(Q)-mkdir -p docs + $(Q)-pod2text $< > $@ docs/BusyBox.1: docs/busybox.pod - - mkdir -p docs - - pod2man --center=BusyBox --release="version $(VERSION)" \ + $(disp_doc) + $(Q)-mkdir -p docs + $(Q)-pod2man --center=BusyBox --release="version $(VERSION)" \ $< > $@ docs/BusyBox.html: docs/busybox.net/BusyBox.html - - mkdir -p docs - -@ $(RM_F) docs/BusyBox.html - -@ cp docs/busybox.net/BusyBox.html docs/BusyBox.html + $(disp_doc) + $(Q)-mkdir -p docs + $(Q)-rm -f docs/BusyBox.html + $(Q)-cp docs/busybox.net/BusyBox.html docs/BusyBox.html docs/busybox.net/BusyBox.html: docs/busybox.pod - -@ mkdir -p docs/busybox.net - - pod2html --noindex $< > \ + $(Q)-mkdir -p docs/busybox.net + $(Q)-pod2html --noindex $< > \ docs/busybox.net/BusyBox.html - -@ $(RM_F) pod2htm* + $(Q)-rm -f pod2htm* -# The nifty new buildsystem stuff +# The nifty new dependency stuff scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c - $(HOSTCC) $(HOSTCFLAGS) -o $@ $< + $(do_link.h) -DEP_INCLUDES := include/config.h include/bb_config.h include/_usage.h +DEP_INCLUDES := include/bb_config.h ifeq ($(strip $(CONFIG_BBCONFIG)),y) DEP_INCLUDES += include/bbconfigopts.h include/bbconfigopts.h: .config - $(top_srcdir)/scripts/config/mkconfigs > $@ + $(disp_gen) + $(Q)$(top_srcdir)/scripts/config/mkconfigs > $@ endif +ifeq ($(strip $(CONFIG_FEATURE_COMPRESS_USAGE)),y) +USAGE_BIN:=scripts/usage +$(USAGE_BIN): $(top_srcdir)/scripts/usage.c .config + $(do_link.h) + +DEP_INCLUDES += include/usage_compressed.h + +include/usage_compressed.h: .config $(USAGE_BIN) + $(Q)SED="$(SED)" $(SHELL) $(top_srcdir)/scripts/usage_compressed "$(top_builddir)/scripts" > $@ +endif # CONFIG_FEATURE_COMPRESS_USAGE + +# workaround alleged bug in make-3.80, make-3.81 +.NOTPARALLEL: .depend + depend dep: .depend -.depend: scripts/bb_mkdep $(DEP_INCLUDES) - @$(RM_F) .depend - @mkdir -p include/config - scripts/bb_mkdep -c include/config.h -c include/bb_config.h \ - -I $(top_srcdir)/include $(top_srcdir) > $@.tmp - mv $@.tmp $@ - -include/config.h: .config +.depend: scripts/bb_mkdep $(USAGE_BIN) $(DEP_INCLUDES) + $(disp_gen) + $(Q)rm -f .depend + $(Q)mkdir -p include/config + $(Q)scripts/bb_mkdep -I $(top_srcdir)/include $(top_srcdir) > $@.tmp + $(Q)mv $@.tmp $@ + +include/bb_config.h: .config @if [ ! -x $(top_builddir)/scripts/config/conf ] ; then \ $(MAKE) -C scripts/config conf; \ fi; @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN) -include/bb_config.h: include/config.h - @echo -e "#ifndef BB_CONFIG_H\n#define BB_CONFIG_H" > $@ - @sed -e 's/#undef CONFIG_\(.*\)/#define ENABLE_\1 0/' \ - -e 's/#define CONFIG_\(.*\)/#define CONFIG_\1\n#define ENABLE_\1/' \ - < $< >> $@ - @echo "#endif" >> $@ - -# Create macros for usage.h, e.g.: -#if ENABLE_HAVE_DOT_CONFIG -#define USAGE_HAVE_DOT_CONFIG(a) a -#else -#define USAGE_HAVE_DOT_CONFIG(a) -#endif -include/_usage.h: .config - 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");}}' $(<) > $(@) - clean: - $(MAKE) -C scripts/config $@ - - $(RM_F) docs/busybox.dvi docs/busybox.ps \ + - rm -f docs/busybox.dvi docs/busybox.ps \ docs/busybox.pod docs/busybox.net/busybox.html \ docs/busybox pod2htm* *.gdb *.elf *~ core .*config.log \ docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \ docs/busybox.net/BusyBox.html busybox.links \ - $(DO_INSTALL_LIBS) $(LIBBUSYBOX_SONAME) \ - .config.old busybox - - rm -rf _install testsuite/links - - find . -name .\*.flags -exec $(RM_F) {} \; - - find . -name \*.o -exec $(RM_F) {} \; - - find . -name \*.a -exec $(RM_F) {} \; - - find . -name \*.so -exec $(RM_F) {} \; + libbusybox.so* \ + .config.old busybox busybox_unstripped + - rm -r -f _install testsuite/links + - find . -name .\*.flags -o -name \*.o -o -name \*.om \ + -o -name \*.os -o -name \*.osm -o -name \*.a | xargs rm -f distclean: clean - - $(RM_F) scripts/bb_mkdep - - rm -rf include/config $(DEP_INCLUDES) - - find . -name .depend -exec $(RM_F) {} \; - $(RM_F) .config .config.old .config.cmd + rm -f scripts/bb_mkdep scripts/usage + rm -r -f include/config include/config.h $(DEP_INCLUDES) + find . -name .depend'*' -print0 | xargs -0 rm -f + rm -f .hdepend + rm -f .config .config.old .config.cmd release: distclean #doc cd ..; \ - rm -rf $(PROG)-$(VERSION); \ + rm -r -f $(PROG)-$(VERSION); \ cp -a busybox $(PROG)-$(VERSION); \ \ find $(PROG)-$(VERSION)/ -type d \ -name .svn \ -print \ - -exec rm -rf {} \; ; \ + -exec rm -r -f {} \; ; \ \ find $(PROG)-$(VERSION)/ -type f \ -name .\#* \ -print \ - -exec $(RM_F) {} \; ; \ + -exec rm -f {} \; ; \ \ tar -cvzf $(PROG)-$(VERSION).tar.gz $(PROG)-$(VERSION)/; @@ -469,5 +506,3 @@ tags: endif # ifeq ($(skip-makefile),) -.PHONY: dummy subdirs release distclean clean config oldconfig \ - menuconfig tags check test depend dep buildtree