build: decouple the mips16 support flag from the toolchain
[openwrt/svn-archive/archive.git] / include / package.mk
index 3ec5ffdadd3d7c711e044118b14616122427ec11..02893b8f66e293931f056fb9ea500707a76c1ff5 100644 (file)
@@ -13,7 +13,7 @@ PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION))
 PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install
 PKG_MD5SUM ?= unknown
 PKG_BUILD_PARALLEL ?=
-PKG_INFO_DIR := $(STAGING_DIR)/pkginfo
+PKG_USE_MIPS16 ?= 1
 
 ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),)
   MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) -j)
@@ -27,6 +27,12 @@ else
 PKG_JOBS?=$(if $(PKG_BUILD_PARALLEL)$(CONFIG_PKG_DEFAULT_PARALLEL),\
        $(if $(CONFIG_PKG_BUILD_PARALLEL),$(MAKE_J),-j1),-j1)
 endif
+ifdef CONFIG_HAS_MIPS16
+  ifeq ($(strip $(PKG_USE_MIPS16)),1)
+    TARGET_ASFLAGS_DEFAULT = $(filter-out -mips16 -minterlink-mips16,$(TARGET_CFLAGS))
+    TARGET_CFLAGS += -mips16 -minterlink-mips16
+  endif
+endif
 
 include $(INCLUDE_DIR)/prereq.mk
 include $(INCLUDE_DIR)/host.mk
@@ -52,6 +58,9 @@ ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),)
   QUILT:=1
 endif
 
+PKG_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR)))
+PKG_INSTALL_STAMP:=$(PKG_INFO_DIR)/$(PKG_DIR_NAME).$(if $(BUILD_VARIANT),$(BUILD_VARIANT),default).install
+
 include $(INCLUDE_DIR)/download.mk
 include $(INCLUDE_DIR)/quilt.mk
 include $(INCLUDE_DIR)/package-defaults.mk
@@ -169,6 +178,11 @@ define Build/DefaultTargets
        $(foreach hook,$(Hooks/InstallDev/Post),\
                $(call $(hook),$(TMP_DIR)/stage-$(PKG_NAME),$(TMP_DIR)/stage-$(PKG_NAME)/host)$(sep)\
        )
+       if [ -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) ]; then \
+               $(SCRIPT_DIR)/clean-package.sh \
+                       "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \
+                       "$(STAGING_DIR)"; \
+       fi
        if [ -d $(TMP_DIR)/stage-$(PKG_NAME) ]; then \
                (cd $(TMP_DIR)/stage-$(PKG_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_NAME).files); \
                $(call locked, \
@@ -213,7 +227,7 @@ define Package/$(1)/description
 endef
 endif
 
-  $(foreach FIELD, TITLE CATEGORY PRIORITY SECTION VERSION,
+  $(foreach FIELD, TITLE CATEGORY SECTION VERSION,
     ifeq ($($(FIELD)),)
       $$(error Package/$(1) is missing the $(FIELD) field)
     endif
@@ -250,6 +264,12 @@ Build/DistCheck=$(call Build/DistCheck/Default,)
 
 .NOTPARALLEL:
 
+.PHONY: prepare-package-install
+prepare-package-install:
+       @mkdir -p $(PKG_INFO_DIR)
+       @touch $(PKG_INSTALL_STAMP).clean
+       @echo "$(filter-out essential,$(PKG_FLAGS))" > $(PKG_INSTALL_STAMP).flags
+
 $(PACKAGE_DIR):
        mkdir -p $@
        
@@ -257,8 +277,8 @@ dumpinfo:
 download:
 prepare:
 configure:
-compile:
-install:
+compile: prepare-package-install
+install: compile
 clean-staging: FORCE
        rm -f $(STAMP_INSTALLED)
        @-(\