# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
-# $Id$
all: $(if $(DUMP),dumpinfo,compile)
include $(INCLUDE_DIR)/unpack.mk
include $(INCLUDE_DIR)/depends.mk
-STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPEND),)))
-STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured
+STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),)))
+STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured$(if $(QUILT)$(DUMP),,_$(call confvar,$(PKG_CONFIG_DEPENDS)))
STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_NAME)_installed
ifneq ($(if $(QUILT),,$(CONFIG_AUTOREBUILD)),)
define Build/Autoclean
$(PKG_BUILD_DIR)/.dep_files: $(STAMP_PREPARED)
- $(call rdep,${CURDIR} $(PKG_FILE_DEPEND),$(STAMP_PREPARED),$(PKG_BUILD_DIR)/.dep_files,-x "*/.dep_*")
+ $(call rdep,${CURDIR} $(PKG_FILE_DEPENDS),$(STAMP_PREPARED),$(PKG_BUILD_DIR)/.dep_files,-x "*/.dep_*")
$(if $(filter prepare,$(MAKECMDGOALS)),,$(call rdep,$(PKG_BUILD_DIR),$(STAMP_BUILT),,-x "*/.dep_*" -x "*/ipkg*"))
endef
endif
endif
+ifeq ($(CONFIG_$(PKG_NAME)_USE_CUSTOM_SOURCE_DIR),y)
+# disable load stage
+PKG_SOURCE_URL:=
+# add hook to install a link to customer source path of dedicated package
+Hooks/Prepare/Pre += prepare_custom_source_directory
+# define empty default action
+define Build/Prepare/Default
+ @:
+endef
+endif
+
define Download/default
FILE:=$(PKG_SOURCE)
URL:=$(PKG_SOURCE_URL)
endef
+define Build/Exports/Default
+ $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR)/usr/share/aclocal $$(STAGING_DIR)/usr/share/aclocal-* $$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*),-I $$(p))
+ $(1) : export STAGING_PREFIX=$$(STAGING_DIR)/usr
+ $(1) : export PATH=$$(TARGET_PATH_PKG)
+ $(1) : export CONFIG_SITE:=$$(CONFIG_SITE)
+ $(1) : export PKG_CONFIG_PATH=$$(STAGING_DIR)/usr/lib/pkgconfig
+ $(1) : export PKG_CONFIG_LIBDIR=$$(STAGING_DIR)/usr/lib/pkgconfig
+endef
+Build/Exports=$(Build/Exports/Default)
+
define Build/DefaultTargets
$(if $(QUILT),$(Build/Quilt))
$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))
$(foreach hook,$(Hooks/Prepare/Post),$(call $(hook))$(sep))
touch $$@
- $(STAMP_CONFIGURED) : export PATH=$$(TARGET_PATH_PKG)
- $(STAMP_CONFIGURED) : export CONFIG_SITE:=$$(CONFIG_SITE)
+ $(call Build/Exports,$(STAMP_CONFIGURED))
$(STAMP_CONFIGURED): $(STAMP_PREPARED)
$(foreach hook,$(Hooks/Configure/Pre),$(call $(hook))$(sep))
$(Build/Configure)
$(foreach hook,$(Hooks/Configure/Post),$(call $(hook))$(sep))
touch $$@
- $(STAMP_BUILT) : export PATH=$$(TARGET_PATH_PKG)
- $(STAMP_BUILT) : export CONFIG_SITE:=$$(CONFIG_SITE)
+ $(call Build/Exports,$(STAMP_BUILT))
$(STAMP_BUILT): $(STAMP_CONFIGURED)
$(foreach hook,$(Hooks/Compile/Pre),$(call $(hook))$(sep))
$(Build/Compile)
prepare: $(STAMP_PREPARED)
configure: $(STAMP_CONFIGURED)
+ dist: $(STAMP_CONFIGURED)
+ distcheck: $(STAMP_CONFIGURED)
+endef
+
+define Build/IncludeOverlay
+ $(eval -include $(wildcard $(TOPDIR)/overlay/*/$(PKG_NAME).mk))
+ define Build/IncludeOverlay
+ endef
endef
define BuildPackage
+ $(Build/IncludeOverlay)
$(eval $(Package/Default))
$(eval $(Package/$(1)))
$(call shexport,Package/$(1)/config)
$(if $(DUMP), \
- $(Dumpinfo), \
+ $(Dumpinfo/Package), \
$(foreach target, \
$(if $(Package/$(1)/targets),$(Package/$(1)/targets), \
$(if $(PKG_TARGETS),$(PKG_TARGETS), ipkg $(if $(CONFIG_DEBUG_DIR),debug)) \
), $(BuildTarget/$(target)) \
) \
)
- $(if $(DUMP),,$(call Build/DefaultTargets,$(1)))
+ $(if $(PKG_HOST_ONLY)$(DUMP),,$(call Build/DefaultTargets,$(1)))
endef
define pkg_install_files
Build/Configure=$(call Build/Configure/Default,)
Build/Compile=$(call Build/Compile/Default,)
Build/Install=$(if $(PKG_INSTALL),$(call Build/Install/Default,))
+Build/Dist=$(call Build/Dist/Default,)
+Build/DistCheck=$(call Build/DistCheck/Default,)
$(PACKAGE_DIR):
mkdir -p $@
$(Build/Clean)
rm -f $(STAGING_DIR)/packages/$(PKG_NAME).list $(STAGING_DIR_HOST)/packages/$(PKG_NAME).list
rm -rf $(PKG_BUILD_DIR)
+
+dist:
+ $(Build/Dist)
+
+distcheck:
+ $(Build/DistCheck)