e7b38c71ce
Move stamp (dependency) files outside the (version specific) source directories, so other packages can hardcode dependencies on them instead of having to use <PACKAGE>_VERSION variables. This is important as the variables in the make rules are evaluated when the rules is seen, which might be before the dependent makefile is parsed (and hence <PACKAGE>_VERSION variable is known, screwing up stuff. The downside of this is that the package isn't automatically rebuilt when the version changes (E.G. by a svn update) and you now also have to remove the stamp files next to $(BUILD_DIR)/<PACKAGE>-* to force a rebuild.
98 lines
2.8 KiB
Makefile
98 lines
2.8 KiB
Makefile
PROJECT:=$(strip $(subst ",,$(BR2_PROJECT)))
|
|
#"))
|
|
TARGET_HOSTNAME:=$(strip $(subst ",,$(BR2_HOSTNAME)))
|
|
#"))
|
|
BANNER:=$(strip $(subst ",,$(BR2_BANNER)))
|
|
#"))
|
|
|
|
# silent mode requested?
|
|
QUIET:=$(if $(findstring s,$(MAKEFLAGS)),-q,)
|
|
|
|
# Strip off the annoying quoting
|
|
ARCH:=$(strip $(subst ",, $(BR2_ARCH)))
|
|
#"))
|
|
WGET:=$(strip $(subst ",, $(BR2_WGET))) $(SPIDER) $(QUIET)
|
|
#"))
|
|
SVN_CO:=$(strip $(subst ",, $(BR2_SVN_CO))) $(QUIET)
|
|
#"))
|
|
SVN_UP:=$(strip $(subst ",, $(BR2_SVN_UP))) $(QUIET)
|
|
#"))
|
|
GIT:=$(strip $(subst ",, $(BR2_GIT))) $(QUIET)
|
|
#"))
|
|
ZCAT:=$(strip $(subst ",, $(BR2_ZCAT)))
|
|
#"))
|
|
BZCAT:=$(strip $(subst ",, $(BR2_BZCAT)))
|
|
#"))
|
|
TAR_OPTIONS=$(subst ",, $(BR2_TAR_OPTIONS)) -xf
|
|
#")
|
|
|
|
# Buildroot supports building out of tree similarly to the Linux kernel.
|
|
# To use, add O= to the make command line (make O=/tmp/build)
|
|
BASE_DIR:=$(shell pwd)
|
|
ifdef O
|
|
ifeq ("$(origin O)", "command line")
|
|
BASE_DIR := $(shell mkdir -p $(O) && cd $(O) && pwd)
|
|
$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
|
|
|
|
# other packages might also support Linux-style out of tree builds
|
|
# with the O=<dir> syntax (E.G. Busybox does). As make automatically
|
|
# forwards command line variable definitions those packages get very
|
|
# confused. Fix this by telling make to not do so
|
|
MAKEOVERRIDES =
|
|
endif
|
|
endif
|
|
|
|
TOPDIR_PREFIX:=$(strip $(subst ",, $(BR2_TOPDIR_PREFIX)))_
|
|
#"))
|
|
TOPDIR_SUFFIX:=_$(strip $(subst ",, $(BR2_TOPDIR_SUFFIX)))
|
|
#"))
|
|
ifeq ($(TOPDIR_PREFIX),_)
|
|
TOPDIR_PREFIX:=
|
|
endif
|
|
ifeq ($(TOPDIR_SUFFIX),_)
|
|
TOPDIR_SUFFIX:=
|
|
endif
|
|
|
|
DL_DIR=$(strip $(subst ",, $(BR2_DL_DIR)))
|
|
#"))
|
|
ifeq ($(DL_DIR),)
|
|
DL_DIR:=$(BASE_DIR)/dl
|
|
endif
|
|
|
|
# All non-configurable packages should be built in BUILD_DIR
|
|
BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
|
|
|
|
GNU_TARGET_SUFFIX:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX)))
|
|
#"))
|
|
|
|
STAGING_DIR:=$(strip $(subst ",, $(BR2_STAGING_DIR)))
|
|
#"))
|
|
|
|
# packages compiled for the host goes here
|
|
HOST_DIR:=$(BUILD_DIR)/host_dir
|
|
|
|
# stamp (dependency) files go here
|
|
STAMP_DIR:=$(BUILD_DIR)/stamps
|
|
|
|
# All configurable packages (like Busybox,Linux etc) should be built
|
|
# in PROJECT_BUILD_DIR
|
|
PROJECT_BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)project_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)/$(PROJECT)
|
|
BINARIES_DIR:=$(BASE_DIR)/binaries/$(PROJECT)
|
|
TARGET_DIR:=$(PROJECT_BUILD_DIR)/root
|
|
|
|
# define values for prepatched source trees for toolchains
|
|
VENDOR_SITE:=$(strip $(subst ",,$(BR2_VENDOR_SITE)))
|
|
#"))
|
|
VENDOR_SUFFIX:=$(strip $(subst ",,$(BR2_VENDOR_SUFFIX)))
|
|
#"))
|
|
VENDOR_BINUTILS_RELEASE:=$(strip $(subst ",,$(BR2_VENDOR_BINUTILS_RELEASE)))
|
|
#"))
|
|
VENDOR_GCC_RELEASE:=$(strip $(subst ",,$(BR2_VENDOR_GCC_RELEASE)))
|
|
#"))
|
|
VENDOR_UCLIBC_RELEASE:=$(strip $(subst ",,$(BR2_VENDOR_UCLIBC_RELEASE)))
|
|
#"))
|
|
VENDOR_GDB_RELEASE:=$(strip $(subst ",,$(BR2_VENDOR_GDB_RELEASE)))
|
|
#"))
|
|
VENDOR_PATCH_DIR:=$(strip $(subst ",,$(BR2_VENDOR_PATCH_DIR)))
|
|
#"))
|