VERSION = 1
-PATCHLEVEL = 17
+PATCHLEVEL = 26
SUBLEVEL = 0
EXTRAVERSION = .git
NAME = Unnamed
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
+PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
AWK = awk
GENKSYMS = scripts/genksyms/genksyms
DEPMOD = /sbin/depmod
# This target generates Kbuild's and Config.in's from *.c files
PHONY += gen_build_files
-gen_build_files:
+gen_build_files: $(wildcard $(srctree)/*/*.c) $(wildcard $(srctree)/*/*/*.c)
$(Q)$(srctree)/scripts/gen_build_files.sh $(srctree) $(objtree)
# bbox: we have helpers in applets/
-include $(srctree)/arch/$(ARCH)/Makefile
export KBUILD_DEFCONFIG
-config %config: scripts_basic outputmakefile gen_build_files FORCE
+config: scripts_basic outputmakefile gen_build_files FORCE
+ $(Q)mkdir -p include
+ $(Q)$(MAKE) $(build)=scripts/kconfig $@
+ $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
+
+%config: scripts_basic outputmakefile gen_build_files FORCE
$(Q)mkdir -p include
$(Q)$(MAKE) $(build)=scripts/kconfig $@
$(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
libs-y := \
archival/ \
- archival/libunarchive/ \
+ archival/libarchive/ \
console-tools/ \
coreutils/ \
coreutils/libcoreutils/ \
# with it and forgot to run make oldconfig.
# If kconfig.d is missing then we are probarly in a cleaned tree so
# we execute the config step to be sure to catch updated Kconfig files
-include/autoconf.h: .kconfig.d .config | gen_build_files
+include/autoconf.h: .kconfig.d .config $(wildcard $(srctree)/*/*.c) $(wildcard $(srctree)/*/*/*.c) | gen_build_files
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
+include/usage.h: gen_build_files
+
else
# Dummy target needed, because used as prerequisite
include/autoconf.h: ;
#
# INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
# relocations required by build roots. This is not defined in the
-# makefile but the arguement can be passed to make if needed.
+# makefile but the argument can be passed to make if needed.
#
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
"$(LDFLAGS) $(EXTRA_LDFLAGS)" \
"$(core-y)" \
"$(libs-y)" \
- "$(LDLIBS)"
+ "$(LDLIBS)" \
+ && $(srctree)/scripts/generate_BUFSIZ.sh --post include/common_bufsiz.h
# Generate System.map
quiet_cmd_sysmap = SYSMAP
# Split autoconf.h into include/linux/config/*
quiet_cmd_gen_bbconfigopts = GEN include/bbconfigopts.h
- cmd_gen_bbconfigopts = $(srctree)/scripts/mkconfigs > include/bbconfigopts.h
+ cmd_gen_bbconfigopts = $(srctree)/scripts/mkconfigs include/bbconfigopts.h include/bbconfigopts_bz2.h
+quiet_cmd_gen_common_bufsiz = GEN include/common_bufsiz.h
+ cmd_gen_common_bufsiz = $(srctree)/scripts/generate_BUFSIZ.sh include/common_bufsiz.h
quiet_cmd_split_autoconf = SPLIT include/autoconf.h -> include/config/*
cmd_split_autoconf = scripts/basic/split-include include/autoconf.h include/config
#bbox# piggybacked generation of few .h files
include/config/MARKER: scripts/basic/split-include include/autoconf.h
$(call cmd,split_autoconf)
$(call cmd,gen_bbconfigopts)
+ $(call cmd,gen_common_bufsiz)
@touch $@
# Generate some files
# Directories & files removed with 'make mrproper'
MRPROPER_DIRS += include/config include2
MRPROPER_FILES += .config .config.old include/asm .version .old_version \
+ include/NUM_APPLETS.h \
+ include/common_bufsiz.h \
include/autoconf.h \
include/bbconfigopts.h \
+ include/bbconfigopts_bz2.h \
include/usage_compressed.h \
include/applet_tables.h \
+ include/applets.h \
+ include/usage.h \
applets/usage \
.kernelrelease Module.symvers tags TAGS cscope* \
busybox_old
PHONY += doc-clean
doc-clean: rm-files := docs/busybox.pod \
- docs/BusyBox.html docs/BusyBox.1 docs/BusyBox.txt
+ docs/BusyBox.html docs/busybox.1 docs/BusyBox.txt
doc-clean:
$(call cmd,rmfiles)
mrproper: clean archmrproper $(mrproper-dirs)
$(call cmd,rmdirs)
$(call cmd,rmfiles)
- @find -name Config.src | sed 's/.src$$/.in/' | xargs -r rm -f
- @find -name Kbuild.src | sed 's/.src$$//' | xargs -r rm -f
+ @find . -name Config.src | sed 's/.src$$/.in/' | xargs -r rm -f
+ @find . -name Kbuild.src | sed 's/.src$$//' | xargs -r rm -f
# distclean
#
# Brief documentation of the typical targets used
# ---------------------------------------------------------------------------
-boards := $(wildcard $(srctree)/arch/$(ARCH)/configs/*_defconfig)
+boards := $(wildcard $(srctree)/configs/*_defconfig)
boards := $(notdir $(boards))
-include $(srctree)/Makefile.help
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \
-type f -print | xargs rm -f
-help:
- @echo ' Building external modules.'
- @echo ' Syntax: make -C path/to/kernel/src M=$$PWD target'
- @echo ''
- @echo ' modules - default target, build the module(s)'
- @echo ' modules_install - install the module'
- @echo ' clean - remove generated files in module directory only'
- @echo ''
-
# Dummies...
PHONY += prepare scripts
prepare: ;
ALLSOURCE_ARCHS := $(ARCH)
define all-sources
- ( find $(__srctree) $(RCS_FIND_IGNORE) \
- \( -name include -o -name arch \) -prune -o \
- -name '*.[chS]' -print; \
- for ARCH in $(ALLSOURCE_ARCHS) ; do \
- find $(__srctree)arch/$${ARCH} $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print; \
- done ; \
- find $(__srctree)security/selinux/include $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print; \
- find $(__srctree)include $(RCS_FIND_IGNORE) \
- \( -name config -o -name 'asm-*' \) -prune \
- -o -name '*.[chS]' -print; \
- for ARCH in $(ALLINCLUDE_ARCHS) ; do \
- find $(__srctree)include/asm-$${ARCH} $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print; \
- done ; \
- find $(__srctree)include/asm-generic $(RCS_FIND_IGNORE) \
- -name '*.[chS]' -print )
+ ( find -regex '.*\.[ch]$$' )
endef
quiet_cmd_cscope-file = FILELST cscope.files
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
# Modules
-/ %/: prepare scripts FORCE
+%/: prepare scripts FORCE
+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
+ $(build)=$(build-dir)
+/: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)
+
%.ko: prepare scripts FORCE
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir) $(@:.ko=.o)