kumquat-buildroot/project/Makefile.in
Peter Korsgaard e7b38c71ce package: add STAMP_DIR and use for host builds
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.
2009-03-19 11:06:47 +00:00

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)))
#"))