hdparm: whitespace style fixes
[oweals/busybox.git] / Makefile
index 4b49208d1a323900059faab42b7e3b739957ba61..6a50a28597b43553ad6b65dbcf4ddcd1da15940f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
 VERSION = 1
-PATCHLEVEL = 2
-SUBLEVEL = 1
+PATCHLEVEL = 6
+SUBLEVEL = 0
 EXTRAVERSION = .svn
-NAME=Unnamed
+NAME = Unnamed
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
@@ -71,7 +71,7 @@ endif
 # In both cases the working directory must be the root of the kernel src.
 # 1) O=
 # Use "make O=dir/to/store/output/files/"
-# 
+#
 # 2) Set KBUILD_OUTPUT
 # Set the environment variable KBUILD_OUTPUT to point to the directory
 # where the output files shall be placed.
@@ -145,7 +145,7 @@ export srctree objtree VPATH TOPDIR
 # SUBARCH tells the usermode build what the underlying arch is.  That is set
 # first, and if a usermode build is happening, the "ARCH=um" on the command
 # line overrides the setting of ARCH below.  If a native build is happening,
-# then ARCH is assigned, getting whatever value it gets normally, and 
+# then ARCH is assigned, getting whatever value it gets normally, and
 # SUBARCH is subsequently ignored.
 
 SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
@@ -229,7 +229,7 @@ export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
 #         cmd_cc_o_c       = $(CC) $(c_flags) -c -o $@ $<
 #
 # If $(quiet) is empty, the whole command will be printed.
-# If it is set to "quiet_", only the short version will be printed. 
+# If it is set to "quiet_", only the short version will be printed.
 # If it is set to "silent_", nothing wil be printed at all, since
 # the variable $(silent_cmd_cc_o_c) doesn't exist.
 #
@@ -263,7 +263,7 @@ export quiet Q KBUILD_VERBOSE
 MAKEFLAGS += --include-dir=$(srctree)
 
 # We need some generic definitions
-include  $(srctree)/scripts/Kbuild.include
+include $(srctree)/scripts/Kbuild.include
 
 # For maximum performance (+ possibly random breakage, uncomment
 # the following)
@@ -273,8 +273,8 @@ MAKEFLAGS += -rR
 # Make variables (CC, etc...)
 
 AS             = $(CROSS_COMPILE)as
-LD             = $(CROSS_COMPILE)ld
 CC             = $(CROSS_COMPILE)gcc
+LD             = $(CC) -nostdlib
 CPP            = $(CC) -E
 AR             = $(CROSS_COMPILE)ar
 NM             = $(CROSS_COMPILE)nm
@@ -299,10 +299,9 @@ AFLAGS_KERNEL      =
 
 # Use LINUXINCLUDE when you must reference the include/ directory.
 # Needed to be compatible with the O= option
-CFLAGS         :=
-CPPFLAGS       :=
-AFLAGS         :=
-include $(srctree)/Makefile.flags
+CFLAGS         := $(CFLAGS)
+CPPFLAGS       := $(CPPFLAGS)
+AFLAGS         := $(AFLAGS)
 
 # Read KERNELRELEASE from .kernelrelease (if it exists)
 KERNELRELEASE = $(shell cat .kernelrelease 2> /dev/null)
@@ -314,7 +313,7 @@ export      VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \
        HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
 
 export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
-export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE 
+export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
 export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
 
 # When compiling out-of-tree modules, put MODVERDIR in the module
@@ -352,7 +351,7 @@ endif
 # catch them early, and hand them over to scripts/kconfig/Makefile
 # It is allowed to specify more targets when calling make, including
 # mixing *config targets and build targets.
-# For example 'make oldconfig all'. 
+# For example 'make oldconfig all'.
 # Detect when mixed targets is specified, and make a second invocation
 # of make so .config is not included in this case either (for *config).
 
@@ -399,7 +398,7 @@ ifeq ($(config-targets),1)
 export KBUILD_DEFCONFIG
 
 config %config: scripts_basic outputmakefile FORCE
-       $(Q)mkdir -p include/linux
+       $(Q)mkdir -p include
        $(Q)$(MAKE) $(build)=scripts/kconfig $@
        $(Q)$(MAKE) -C $(srctree) KBUILD_SRC= .kernelrelease
 
@@ -430,10 +429,6 @@ libs-y             := \
                coreutils/libcoreutils/ \
                debianutils/ \
                e2fsprogs/ \
-               e2fsprogs/blkid/ \
-               e2fsprogs/e2p/ \
-               e2fsprogs/ext2fs/ \
-               e2fsprogs/uuid/ \
                editors/ \
                findutils/ \
                init/ \
@@ -447,6 +442,7 @@ libs-y              := \
                networking/udhcp/ \
                procps/ \
                runit/ \
+               selinux/ \
                shell/ \
                sysklogd/ \
                util-linux/ \
@@ -460,19 +456,21 @@ ifeq ($(dot-config),1)
 # oldconfig if changes are detected.
 -include .kconfig.d
 
-include .config
+-include .config
 
 # If .config needs to be updated, it will be done via the dependency
 # that autoconf has on .config.
 # To avoid any implicit rule to kick in, define an empty command
 .config .kconfig.d: ;
 
+# Now we can define CFLAGS etc according to .config
+include $(srctree)/Makefile.flags
+
 # If .config is newer than include/autoconf.h, someone tinkered
 # 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
-       $(Q)mkdir -p include/linux
        $(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
 
 else
@@ -483,7 +481,7 @@ endif
 # The all: target is the default when no target is given on the
 # command line.
 # This allow a user to issue only 'make' to build a kernel including modules
-# Defaults busybox but it is usually overriden in the arch makefile
+# Defaults busybox but it is usually overridden in the arch makefile
 all: busybox
 
 -include $(srctree)/arch/$(ARCH)/Makefile
@@ -532,7 +530,6 @@ libs-y1             := $(patsubst %/, %/lib.a, $(libs-y))
 libs-y2                := $(patsubst %/, %/built-in.o, $(libs-y))
 libs-y         := $(libs-y1) $(libs-y2)
 
-
 # Build busybox
 # ---------------------------------------------------------------------------
 # busybox is build from the objects selected by $(busybox-init) and
@@ -565,12 +562,13 @@ busybox-all  := $(core-y) $(libs-y)
 # Rule to link busybox - also used during CONFIG_KALLSYMS
 # May be overridden by arch/$(ARCH)/Makefile
 quiet_cmd_busybox__ ?= LINK    $@
-      cmd_busybox__ ?= scripts/trylink $(CC) -o $@ \
+      cmd_busybox__ ?= $(srctree)/scripts/trylink $(CC) $(LDFLAGS) \
+      -o $@ -Wl,-M \
       -Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \
-      -Wl,--start-group $(busybox-all) -Wl,--end-group \
+      -Wl,--start-group $(busybox-all) -Wl,--end-group
 
 # Generate System.map
-quiet_cmd_sysmap = SYSMAP 
+quiet_cmd_sysmap = SYSMAP
       cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
 
 # Link of busybox
@@ -626,7 +624,7 @@ endef
 # First command is ':' to allow us to use + in front of this rule
 cmd_ksym_ld = $(cmd_busybox__)
 define rule_ksym_ld
-       : 
+       :
        +$(call cmd,busybox_version)
        $(call cmd,busybox__)
        $(Q)echo 'cmd_$@ := $(cmd_busybox__)' > $(@D)/.$(@F).cmd
@@ -674,10 +672,10 @@ busybox_unstripped: $(busybox-all) FORCE
        $(Q)rm -f .old_version
 
 busybox: busybox_unstripped
-       $(Q)strip -s --remove-section=.note --remove-section=.comment \
+       $(Q)$(STRIP) -s --remove-section=.note --remove-section=.comment \
                busybox_unstripped -o $@
 
-# The actual objects are generated when descending, 
+# The actual objects are generated when descending,
 # make sure no implicit rule kicks in
 $(sort $(busybox-all)): $(busybox-dirs) ;
 
@@ -710,7 +708,7 @@ _localver = $(foreach f, $(__localver), $(if $(findstring ~, $(f)),,$(f)))
 localver = $(subst $(space),, \
           $(shell cat /dev/null $(_localver)) \
           $(patsubst "%",%,$(CONFIG_LOCALVERSION)))
-              
+
 # If CONFIG_LOCALVERSION_AUTO is set scripts/setlocalversion is called
 # and if the SCM is know a tag from the SCM is appended.
 # The appended tag is determinded by the SCM used.
@@ -793,15 +791,14 @@ export CPPFLAGS_busybox.lds += -P -C -U$(ARCH)
 #bbox#         @ln -fsn asm-$(ARCH) $@
 
 #      Split autoconf.h into include/linux/config/*
+quiet_cmd_gen_bbconfigopts = GEN     include/bbconfigopts.h
+      cmd_gen_bbconfigopts = $(srctree)/scripts/mkconfigs > include/bbconfigopts.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
-       @echo '  SPLIT   include/autoconf.h -> include/config/*'
-       @scripts/basic/split-include include/autoconf.h include/config
-       @echo '  GEN     include/bbconfigopts.h'
-       @scripts/mkconfigs >include/bbconfigopts.h
-       @$(MAKE) $(build)=scripts
-       @echo '  GEN     include/usage_compressed.h'
-       @scripts/usage_compressed include/usage_compressed.h scripts
+       $(call cmd,split_autoconf)
+       $(call cmd,gen_bbconfigopts)
        @touch $@
 
 # Generate some files
@@ -892,7 +889,7 @@ else # CONFIG_MODULES
 
 modules modules_install: FORCE
        @echo
-       @echo "The present kernel configuration has modules disabled."
+       @echo "The present busybox configuration has modules disabled."
        @echo "Type 'make config' and enable loadable module support."
        @echo "Then build a kernel with module support enabled."
        @echo
@@ -909,13 +906,15 @@ endif # CONFIG_MODULES
 
 # Directories & files removed with 'make clean'
 CLEAN_DIRS  += $(MODVERDIR)
-CLEAN_FILES += busybox System.map \
+CLEAN_FILES += busybox* System.map .kernelrelease \
                 .tmp_kallsyms* .tmp_version .tmp_busybox* .tmp_System.map
 
 # Directories & files removed with 'make mrproper'
 MRPROPER_DIRS  += include/config include2
 MRPROPER_FILES += .config .config.old include/asm .version .old_version \
-                  include/autoconf.h \
+                 include/autoconf.h \
+                 include/bbconfigopts.h \
+                 include/usage_compressed.h \
                  .kernelrelease Module.symvers tags TAGS cscope*
 
 # clean - Delete most, but leave enough to build external modules
@@ -940,7 +939,7 @@ clean: archclean $(clean-dirs)
 #
 mrproper: rm-dirs  := $(wildcard $(MRPROPER_DIRS))
 mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
-mrproper-dirs      := $(addprefix _mrproper_,Documentation/DocBook scripts)
+mrproper-dirs      := $(addprefix _mrproper_,scripts)
 
 PHONY += $(mrproper-dirs) mrproper archmrproper
 $(mrproper-dirs):
@@ -980,7 +979,7 @@ rpm: FORCE
 boards := $(wildcard $(srctree)/arch/$(ARCH)/configs/*_defconfig)
 boards := $(notdir $(boards))
 
--include Makefile.help
+-include $(srctree)/Makefile.help
 
 # Documentation targets
 # ---------------------------------------------------------------------------
@@ -1237,7 +1236,7 @@ endif
        $(build)=$(build-dir) $(@:.ko=.o)
        $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost
 
-# FIXME Should go into a make.lib or something 
+# FIXME Should go into a make.lib or something
 # ===========================================================================
 
 quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN   $(wildcard $(rm-dirs)))
@@ -1274,7 +1273,7 @@ endif     # skip-makefile
 PHONY += FORCE
 FORCE:
 
--include Makefile.custom
+-include $(srctree)/Makefile.custom
 
 # Declare the contents of the .PHONY variable as phony.  We keep that
 # information in a variable se we can use it in if_changed and friends.