summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile168
1 files changed, 84 insertions, 84 deletions
diff --git a/Makefile b/Makefile
index d37d81f64..9c2e6af1a 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
+# This top-level Makefile can *not* be executed in parallel
+.NOTPARALLEL:
+
#--------------------------------------------------------------
# Just run 'make menuconfig', configure stuff, then run 'make'.
# You shouldn't need to mess with anything beyond this point...
@@ -25,12 +28,11 @@
# absolute path
TOPDIR:=$(shell pwd)
CONFIG_CONFIG_IN=Config.in
-CONFIG_DEFCONFIG=.defconfig
CONFIG=package/config
DATE:=$(shell date +%Y%m%d)
-noconfig_targets:=menuconfig gconfig xconfig config oldconfig randconfig \
- defconfig allyesconfig allnoconfig release \
+noconfig_targets:=menuconfig nconfig gconfig xconfig config oldconfig randconfig \
+ defconfig %_defconfig savedefconfig allyesconfig allnoconfig silentoldconfig release \
randpackageconfig allyespackageconfig allnopackageconfig \
source-check help
@@ -46,6 +48,7 @@ space:=$(empty) $(empty)
ifneq ("$(origin O)", "command line")
O:=output
CONFIG_DIR:=$(TOPDIR)
+NEED_WRAPPER=
else
# other packages might also support Linux-style out of tree builds
# with the O=<dir> syntax (E.G. Busybox does). As make automatically
@@ -61,6 +64,7 @@ override O:=$(O)
CONFIG_DIR:=$(O)
# we need to pass O= everywhere we call back into the toplevel makefile
EXTRAMAKEARGS = O=$(O)
+NEED_WRAPPER=y
endif
# $(shell find . -name *_defconfig |sed 's/.*\///')
@@ -245,21 +249,10 @@ ifeq ($(ARCH),xtensa)
ARCH:=$(ARCH)_$(call qstrip,$(BR2_xtensa_core_name))
endif
-WGET:=$(call qstrip,$(BR2_WGET)) $(SPIDER) $(QUIET)
-SVN_CO:=$(call qstrip,$(BR2_SVN_CO)) $(QUIET)
-SVN_UP:=$(call qstrip,$(BR2_SVN_UP)) $(QUIET)
-BZR_CO:=$(call qstrip,$(BR2_BZR_CO)) $(QUIET)
-BZR_UP:=$(call qstrip,$(BR2_BZR_UP)) $(QUIET)
-GIT:=$(call qstrip,$(BR2_GIT)) $(QUIET)
ZCAT:=$(call qstrip,$(BR2_ZCAT))
BZCAT:=$(call qstrip,$(BR2_BZCAT))
TAR_OPTIONS=$(call qstrip,$(BR2_TAR_OPTIONS)) -xf
-DL_DIR=$(call qstrip,$(BR2_DL_DIR))
-ifeq ($(DL_DIR),)
-DL_DIR:=$(TOPDIR)/dl
-endif
-
GNU_TARGET_SUFFIX:=-$(call qstrip,$(BR2_GNU_TARGET_SUFFIX))
STAGING_DIR:=$(call qstrip,$(BR2_STAGING_DIR))
@@ -323,20 +316,20 @@ TARGETS_ALL:=$(patsubst %,__real_tgt_%,$(TARGETS))
# all targets depend on the crosscompiler and it's prerequisites
$(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
-$(BR2_DEPENDS_DIR): $(CONFIG_DIR)/.config
-# rm -rf $@
-# mkdir -p $(@D)
-# cp -dpRf $(CONFIG)/buildroot-config $@
-
dirs: $(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(STAMP_DIR)
$(BASE_TARGETS): dirs
-world: dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL)
+$(BUILD_DIR)/buildroot-config/auto.conf: $(CONFIG_DIR)/.config
+ $(MAKE) $(EXTRAMAKEARGS) silentoldconfig
+
+prepare: $(BUILD_DIR)/buildroot-config/auto.conf
+
+world: prepare dependencies dirs $(BASE_TARGETS) $(TARGETS_ALL)
-.PHONY: all world dirs clean distclean source \
+.PHONY: all world dirs clean distclean source outputmakefile \
$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
$(DL_DIR) $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
@@ -400,13 +393,17 @@ ifneq ($(BR2_HAVE_DOCUMENTATION),y)
rm -rf $(TARGET_DIR)/usr/share/gtk-doc
endif
find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true
+ mkdir -p $(TARGET_DIR)/etc
+ # Mandatory configuration file and auxilliary cache directory
+ # for recent versions of ldconfig
+ touch $(TARGET_DIR)/etc/ld.so.conf
+ mkdir -p $(TARGET_DIR)/var/cache/ldconfig
if [ -x "$(TARGET_CROSS)ldconfig" ]; \
then \
- $(TARGET_CROSS)ldconfig -r $(TARGET_DIR) 2>/dev/null; \
+ $(TARGET_CROSS)ldconfig -r $(TARGET_DIR); \
else \
- /sbin/ldconfig -r $(TARGET_DIR) 2>/dev/null; \
+ /sbin/ldconfig -r $(TARGET_DIR); \
fi
- mkdir -p $(TARGET_DIR)/etc
echo $(BR2_VERSION)$(shell $(TOPDIR)/scripts/setlocalversion) > \
$(TARGET_DIR)/etc/br-version
@@ -434,11 +431,10 @@ endif
source: $(TARGETS_SOURCE) $(HOST_SOURCE)
_source-check:
- $(MAKE) $(EXTRAMAKEARGS) SPIDER=--spider source
+ $(MAKE) DL_MODE=SOURCE_CHECK $(EXTRAMAKEARGS) source
external-deps:
- @$(MAKE) -Bs BR2_WGET=$(TOPDIR)/toolchain/wget-show-external-deps.sh \
- $(EXTRAMAKEARGS) SPIDER=--spider source
+ @$(MAKE) -Bs DL_MODE=SHOW_EXTERNAL_DEPS $(EXTRAMAKEARGS) source
show-targets:
@echo $(TARGETS)
@@ -464,99 +460,98 @@ export HOSTCFLAGS
$(BUILD_DIR)/buildroot-config/%onf:
mkdir -p $(@D)/lxdialog
- $(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) $(@F)
- -@if [ ! -f $(CONFIG_DIR)/.config ]; then \
- cp $(CONFIG_DEFCONFIG) $(CONFIG_DIR)/.config; \
+ $(MAKE) CC="$(HOSTCC)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
+
+COMMON_CONFIG_ENV = \
+ KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
+ KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
+ KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
+ BUILDROOT_CONFIG=$(CONFIG_DIR)/.config
+
+xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
+ @mkdir -p $(BUILD_DIR)/buildroot-config
+ @if ! $(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN); then \
+ test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \
fi
-xconfig: $(BUILD_DIR)/buildroot-config/qconf
+gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @if ! KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN); then \
+ @if ! $(COMMON_CONFIG_ENV) srctree=$(TOPDIR) \
+ $< $(CONFIG_CONFIG_IN); then \
test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \
fi
-gconfig: $(BUILD_DIR)/buildroot-config/gconf
+menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @if ! KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- srctree=$(TOPDIR) \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN); then \
+ @if ! $(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN); then \
test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \
fi
-menuconfig: $(BUILD_DIR)/buildroot-config/mconf
+nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @if ! KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN); then \
+ @if ! $(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN); then \
test -f $(CONFIG_DIR)/.config.cmd || rm -f $(CONFIG_DIR)/.config; \
fi
-config: $(BUILD_DIR)/buildroot-config/conf
+config: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
-oldconfig: $(BUILD_DIR)/buildroot-config/conf
+oldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
mkdir -p $(BUILD_DIR)/buildroot-config
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -o $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< --oldconfig $(CONFIG_CONFIG_IN)
-randconfig: $(BUILD_DIR)/buildroot-config/conf
+randconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -r $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< --randconfig $(CONFIG_CONFIG_IN)
-allyesconfig: $(BUILD_DIR)/buildroot-config/conf
- cat $(CONFIG_DEFCONFIG) > $(CONFIG_DIR)/.config
+allyesconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -y $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< --allyesconfig $(CONFIG_CONFIG_IN)
-allnoconfig: $(BUILD_DIR)/buildroot-config/conf
+allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -n $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< --allnoconfig $(CONFIG_CONFIG_IN)
-randpackageconfig: $(BUILD_DIR)/buildroot-config/conf
+randpackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
+ @$(COMMON_CONFIG_ENV) \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -r $(CONFIG_CONFIG_IN)
+ $< --randconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
-allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf
+allyespackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
+ @$(COMMON_CONFIG_ENV) \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -y $(CONFIG_CONFIG_IN)
+ $< --allyesconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
-allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf
+allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
@grep -v BR2_PACKAGE_ $(CONFIG_DIR)/.config > $(CONFIG_DIR)/.config.nopkg
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
+ @$(COMMON_CONFIG_ENV) \
KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -n $(CONFIG_CONFIG_IN)
+ $< --allnoconfig $(CONFIG_CONFIG_IN)
@rm -f $(CONFIG_DIR)/.config.nopkg
-defconfig: $(BUILD_DIR)/buildroot-config/conf
+silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
+ @mkdir -p $(BUILD_DIR)/buildroot-config
+ $(COMMON_CONFIG_ENV) $< --silentoldconfig $(CONFIG_CONFIG_IN)
+
+defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
@mkdir -p $(BUILD_DIR)/buildroot-config
- @KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
- KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
- BUILDROOT_CONFIG=$(CONFIG_DIR)/.config $< -d $(CONFIG_CONFIG_IN)
+ @$(COMMON_CONFIG_ENV) $< --defconfig $(CONFIG_CONFIG_IN)
+
+%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile
+ @mkdir -p $(BUILD_DIR)/buildroot-config
+ @$(COMMON_CONFIG_ENV) $< --defconfig=$(TOPDIR)/configs/$@ $(CONFIG_CONFIG_IN)
+
+savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
+ @mkdir -p $(BUILD_DIR)/buildroot-config
+ @$(COMMON_CONFIG_ENV) $< --savedefconfig=$(TOPDIR)/defconfig $(CONFIG_CONFIG_IN)
# check if download URLs are outdated
source-check: allyesconfig
@@ -569,6 +564,15 @@ endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
# Cleanup and misc junk
#
#############################################################
+
+# outputmakefile generates a Makefile in the output directory, if using a
+# separate output directory. This allows convenient use of make in the
+# output directory.
+outputmakefile:
+ifeq ($(NEED_WRAPPER),y)
+ $(Q)$(TOPDIR)/scripts/mkmakefile $(TOPDIR) $(O)
+endif
+
clean:
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
$(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR)
@@ -585,10 +589,6 @@ endif
flush:
rm -f $(BUILD_DIR)/tgt-config.cache $(BUILD_DIR)/host-config.cache
-%_defconfig: $(TOPDIR)/configs/%_defconfig
- cp $^ $(CONFIG_DIR)/.config
- @$(MAKE) $(EXTRAMAKEARGS) oldconfig
-
configured: dirs host-sed kernel-headers uclibc-config busybox-config linux26-config
prepatch: gcc-patched binutils-patched gdb-patched uclibc-patched