X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=Makefile;h=e5ac831678b82fa98743b5af3256eddfdef54b7b;hb=04b7ef967bfb5a4b97600b27d60eb42e0346d8ab;hp=7fcdd45e56b85227b23d36a127bd8c5486588aca;hpb=07a79e75f502ebd41e5341aacc5de303d3ffaea0;p=oweals%2Fbusybox.git diff --git a/Makefile b/Makefile index 7fcdd45e5..e5ac83167 100644 --- a/Makefile +++ b/Makefile @@ -5,28 +5,27 @@ # 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 -# make-3.79.1 didn't support MAKEFILE_LIST -# for building out-of-tree, users of make-3.79.1 still have to pass top_srcdir= -# to make: make -f /srcs/busybox/Makefile top_srcdir=/srcs/busybox -ifdef MAKEFILE_LIST -top_srcdir:=$(shell cd $(dir $(firstword $(MAKEFILE_LIST))) && pwd) -else -top_srcdir:=$(CURDIR) -endif +top_srcdir=$(CURDIR) endif # toplevel directory of the object-tree ifndef top_builddir -top_builddir:=$(CURDIR) +top_builddir=$(CURDIR) endif export srctree=$(top_srcdir) @@ -40,87 +39,97 @@ 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: -_all: all - -# see if we are in verbose mode -ifdef VERBOSE - CHECK_VERBOSE := -v - PACKAGE_BE_VERBOSE := $(VERBOSE) -endif -ifdef V - CHECK_VERBOSE := -v - PACKAGE_BE_VERBOSE := $(V) -endif +CONFIG_CONFIG_IN = $(top_srcdir)/Config.in +ifeq ($(BUILD_SRC),) ifdef O ifeq ("$(origin O)", "command line") - PACKAGE_OUTPUTDIR := $(shell cd $(O) && pwd) - top_builddir := $(PACKAGE_OUTPUTDIR) + BUILD_OUTPUT := $(O) + top_builddir := $(O) endif else # If no alternate output-dir was specified, we build in cwd - PACKAGE_OUTPUTDIR := $(top_builddir) +# We are using BUILD_OUTPUT nevertheless to make sure that we create +# Rules.mak and the toplevel Makefile, in case they don't exist. + BUILD_OUTPUT := $(top_builddir) endif -define check_gcc -$(if $(2),$(if $(shell $(CC) $(2) -S -o /dev/null -xc /dev/null > /dev/null 2>&1 && echo y),$(2),$(if $(3),$(3))),$(if $(3),$(3))) -endef - -define check_ld -$(if $(2),$(if $(shell $(LD) $(2) -o /dev/null -b binary /dev/null > /dev/null 2>&1 && echo y),$(shell echo \-Wl,$(2)),$(if $(3),$(3))),$(if $(3),$(3))) -endef - -####################################################################### -# make-3.79.1 doesn't support order-only prerequisites.. -ifeq ($(MAKE_VERSION),3.79.1) -|: $(^) ; +# 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 settings early +-include $(top_srcdir)/Rules.mak +endif -# Handle building out of tree -ifneq ($(top_builddir),$(top_srcdir)) -all_tree := $(patsubst %,$(top_builddir)/%,$(DIRS) scripts scripts/config include include/config) +# All object directories. +OBJ_DIRS := $(DIRS) +all_tree := $(patsubst %,$(top_builddir)/%,$(OBJ_DIRS) scripts scripts/config include) +all_tree: $(all_tree) $(all_tree): @mkdir -p "$@" -saved-output := $(PACKAGE_OUTPUTDIR) - -$(if $(wildcard $(PACKAGE_OUTPUTDIR)),, \ +ifneq ($(BUILD_OUTPUT),) +# Invoke a second make in the output directory, passing relevant variables +# Check that the output directory actually exists +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: $(filter $(noconfig_targets),$(MAKECMDGOALS)) +.PHONY: $(MAKECMDGOALS) + +$(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) \ + BUILD_SRC=$(top_srcdir) \ + -f $(CURDIR)/Makefile $@ -$(PACKAGE_OUTPUTDIR)/Rules.mak: +$(BUILD_OUTPUT)/Rules.mak: @echo > $@ @echo top_srcdir=$(top_srcdir) >> $@ - @echo top_builddir=$(PACKAGE_OUTPUTDIR) >> $@ - @echo include $$\(top_srcdir\)/Rules.mak >> $@ + @echo top_builddir=$(BUILD_OUTPUT) >> $@ + @echo include $(top_srcdir)/Rules.mak >> $@ -$(PACKAGE_OUTPUTDIR)/Makefile: +$(BUILD_OUTPUT)/Makefile: @echo > $@ @echo top_srcdir=$(top_srcdir) >> $@ - @echo top_builddir=$(PACKAGE_OUTPUTDIR) >> $@ - @echo PACKAGE_SOURCEDIR='$$(top_srcdir)' >> $@ - @echo include '$$(PACKAGE_SOURCEDIR)'/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 ($(BUILD_OUTPUT),) +endif # ifeq ($(BUILD_SRC),) -buildtree := $(all_tree) $(PACKAGE_OUTPUTDIR)/Rules.mak $(PACKAGE_OUTPUTDIR)/Makefile +ifeq ($(skip-makefile),) # We only need a copy of the Makefile for the config targets and reuse # the rest from the source directory, i.e. we do not cp ALL_MAKEFILES. -scripts/config/Makefile: $(top_srcdir)/scripts/config/Makefile | $(buildtree) - @cp $(top_srcdir)/scripts/config/Makefile $@ +scripts/config/Makefile: $(top_srcdir)/scripts/config/Makefile + cp $< $@ -else -all_tree := include/config -$(all_tree): - @mkdir -p "$@" -buildtree := $(all_tree) -endif # ifneq ($(PACKAGE_OUTPUTDIR),$(top_srcdir)) +_all: all help: @echo 'Cleaning:' @@ -140,57 +149,59 @@ help: @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 - @echo 'Make flags:' - @echo ' V= - print verbose make output (default: unset)' - @echo ' 0 print CC invocations' - @echo ' 1' - @echo ' 2 also print when make enters a directory' - @echo ' 3 also verbosely print shell invocations' --include $(top_srcdir)/Rules.mak + +include $(top_srcdir)/Rules.mak ifneq ($(strip $(HAVE_DOT_CONFIG)),y) + # Default target if none was requested explicitly -all: defconfig menuconfig ; +all: menuconfig -ifneq ($(filter-out $(noconfig_targets),$(MAKECMDGOALS)),) # warn if no configuration exists and we are asked to build a non-config target .config: @echo "" @echo "No $(top_builddir)/$@ found!" - @echo "Please refer to 'make help', section Configuration." + @echo "Please refer to 'make help', section Configuration." @echo "" @exit 1 -else -# Avoid implicit rule to kick in by using an empty command -.config: $(buildtree) ; -endif -endif # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) - # configuration # --------------------------------------------------------------------------- -CONFIG_CONFIG_IN = $(top_srcdir)/Config.in - scripts/config/conf: scripts/config/Makefile $(Q)$(MAKE) -C scripts/config conf + -@if [ ! -f .config ] ; then \ + touch .config; \ + fi scripts/config/mconf: scripts/config/Makefile $(Q)$(MAKE) -C scripts/config ncurses conf mconf + -@if [ ! -f .config ] ; then \ + touch .config; \ + fi menuconfig: scripts/config/mconf + @[ -f .config ] || $(MAKE) $(MAKEFLAGS) defconfig @./scripts/config/mconf $(CONFIG_CONFIG_IN) config: scripts/config/conf @@ -203,51 +214,55 @@ randconfig: scripts/config/conf @./scripts/config/conf -r $(CONFIG_CONFIG_IN) allyesconfig: scripts/config/conf - @./scripts/config/conf -y $(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) + @./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 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) + @./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) + @./scripts/config/conf -o $(CONFIG_CONFIG_IN) > /dev/null + allbareconfig: scripts/config/conf - @./scripts/config/conf -y $(CONFIG_CONFIG_IN) + @./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) - -ifeq ($(strip $(HAVE_DOT_CONFIG)),y) + @yes n | ./scripts/config/conf -o $(CONFIG_CONFIG_IN) > /dev/null -# Load all Config.in --include $(top_builddir)/.config.cmd +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 " -endif # ifeq ($(strip $(HAVE_DOT_CONFIG)),y) +else # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) -include $(patsubst %,%/Makefile.in,$(SRC_DIRS)) +all: busybox busybox.links doc -ifeq ($(strip $(HAVE_DOT_CONFIG)),y) -# Finally pull in the dependencies (headers and other includes) of the -# individual object files --include $(top_builddir)/.depend +# In this section, we need .config +-include $(top_builddir)/.config.cmd +include $(patsubst %,%/Makefile.in, $(SRC_DIRS)) -$(top_builddir)/applets/applets.o: $(top_builddir)/.config -# Everything is set. +endif # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) -all: busybox busybox.links doc ; +-include $(top_builddir)/.config +-include $(top_builddir)/.depend -# Two modes of operation: legacy and IMA -# Legacy mode builds each object through an individual invocation of CC -# IMA compiles all sources at once (aka IPO aka IPA etc.) ifeq ($(strip $(CONFIG_BUILD_AT_ONCE)),y) libraries-y:= @@ -268,39 +283,37 @@ else # CONFIG_BUILD_AT_ONCE # This was the old way the binary was built. libbusybox-obj:=archival/libunarchive/libunarchive.a \ networking/libiproute/libiproute.a \ - libpwdgrp/libpwdgrp.a coreutils/libcoreutils/libcoreutils.a \ + libpwdgrp/libpwdgrp.a \ + coreutils/libcoreutils/libcoreutils.a \ libbb/libbb.a libbusybox-obj:=$(patsubst %,$(top_builddir)/%,$(libbusybox-obj)) + ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) # linking against libbusybox, so don't build the .a already contained in the .so libraries-y:=$(filter-out $(libbusybox-obj),$(libraries-y)) endif # CONFIG_FEATURE_SHARED_BUSYBOX - endif # CONFIG_BUILD_AT_ONCE + ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) LD_LIBBUSYBOX:=libbusybox.so LIBBUSYBOX_SONAME:=$(LD_LIBBUSYBOX).$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL_VERSION) 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) -# --combine but not linking against libbusybox, so compile lib*.c +# --combine but not linking against libbusybox, so compile all BUSYBOX_SRC := $(LIBRARY_SRC) BUSYBOX_DEFINE:= $(LIBRARY_DEFINE) endif # !CONFIG_FEATURE_SHARED_BUSYBOX $(LIBBUSYBOX_SONAME): $(LIBRARY_SRC) else # CONFIG_BUILD_AT_ONCE $(LIBBUSYBOX_SONAME): $(libbusybox-obj) -AR_INTRO:=-Wl,--whole-archive -AR_EXTRO:=-Wl,--no-whole-archive endif # CONFIG_BUILD_AT_ONCE - ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) LDBUSYBOX:=-L$(top_builddir) -lbusybox endif @@ -310,34 +323,25 @@ $(LIBBUSYBOX_SONAME): ifndef MAJOR_VERSION $(error MAJOR_VERSION needed for $@ is not defined) endif - $(do_link) $(LIB_CFLAGS) $(CFLAGS_COMBINE) \ + $(do_link.so) \ -Wl,-soname=$(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ - -Wl,-z,combreloc $(LIB_LDFLAGS) \ - -o $(@) \ - -Wl,--start-group \ - $(LIBRARY_DEFINE) $(AR_INTRO) $(^) $(AR_EXTRO) \ - -Wl,--end-group + -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_unstripped: $(top_builddir)/.depend $(LIBBUSYBOX_SONAME) $(BUSYBOX_SRC) $(APPLET_SRC) $(libraries-y) - $(do_link) $(PROG_CFLAGS) $(PROG_LDFLAGS) $(CFLAGS_COMBINE) \ - $(foreach f,$(^:.o=.c),$(CFLAGS-$(notdir $(patsubst %/$,%,$(dir $(f))))-$(notdir $(f)))) \ - $(CFLAGS-$(@)) \ - -o $@ -Wl,--start-group \ - $(APPLETS_DEFINE) $(APPLET_SRC) \ - $(BUSYBOX_DEFINE) $(BUSYBOX_SRC) \ - $(libraries-y) \ - $(LDBUSYBOX) $(LIBRARIES) \ - -Wl,--end-group +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 $(Q)-$(SHELL) $^ >$@ @@ -365,14 +369,27 @@ ifneq ($(strip $(DO_INSTALL_LIBS)),n) 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 + +objsizes: busybox_unstripped + $(SHELL) $(top_srcdir)/scripts/objsizes + # Documentation Targets -doc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html ; +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 $(top_srcdir)/docs/autodocifier.pl $(disp_doc) @@ -418,21 +435,36 @@ include/bbconfigopts.h: .config $(Q)$(top_srcdir)/scripts/config/mkconfigs > $@ endif -depend dep: $(top_builddir)/.depend ; -$(top_builddir)/.depend: $(buildtree) scripts/bb_mkdep $(DEP_INCLUDES) +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 $(USAGE_BIN) $(DEP_INCLUDES) $(disp_gen) $(Q)rm -f .depend - $(Q)scripts/bb_mkdep $(MKDEP_ARGS) \ - -I $(top_srcdir)/include $(top_srcdir) > $@.tmp + $(Q)mkdir -p include/config + $(Q)scripts/bb_mkdep -I $(top_srcdir)/include $(top_srcdir) > $@.tmp $(Q)mv $@.tmp $@ include/bb_config.h: .config - $(disp_gen) + @if [ ! -x $(top_builddir)/scripts/config/conf ] ; then \ + $(MAKE) -C scripts/config conf; \ + fi; @$(top_builddir)/scripts/config/conf -o $(CONFIG_CONFIG_IN) -endif # ifeq ($(strip $(HAVE_DOT_CONFIG)),y) - clean: + - $(MAKE) -C scripts/config $@ - rm -f docs/busybox.dvi docs/busybox.ps \ docs/busybox.pod docs/busybox.net/busybox.html \ docs/busybox pod2htm* *.gdb *.elf *~ core .*config.log \ @@ -441,18 +473,14 @@ clean: libbusybox.so* \ .config.old busybox busybox_unstripped - rm -r -f _install testsuite/links - - find . -name .\*.flags -exec rm -f {} \; - - find . -name \*.o -exec rm -f {} \; - - find . -name \*.om -exec rm -f {} \; - - find . -name \*.os -exec rm -f {} \; - - find . -name \*.osm -exec rm -f {} \; - - find . -name \*.a -exec rm -f {} \; + - find . -name .\*.flags -o -name \*.o -o -name \*.om \ + -o -name \*.os -o -name \*.osm -o -name \*.a | xargs rm -f distclean: clean - - $(MAKE) -C scripts/config clean - - rm -f scripts/bb_mkdep - - rm -r -f include/config $(DEP_INCLUDES) - - find . -name .depend'*' -exec rm -f {} \; + 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 @@ -475,10 +503,6 @@ release: distclean #doc tags: ctags -R . -# keep these in sync with noconfig_targets above! -.PHONY: dummy subdirs check test depend dep buildtree \ - menuconfig config oldconfig randconfig \ - defconfig allyesconfig allnoconfig allbareconfig \ - clean distclean \ - release tags + +endif # ifeq ($(skip-makefile),)