diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-03-15 23:57:18 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-03-15 23:57:18 +0000 |
commit | 0241b19768532635b521bf35f7746d4fc37ae91e (patch) | |
tree | 8169c245768b0c8b6002b09a06ddeac7789d30bc | |
parent | e62084b7f566f2e48d809198a3ad78ae0493479a (diff) | |
download | master-187ad058-0241b19768532635b521bf35f7746d4fc37ae91e.tar.gz master-187ad058-0241b19768532635b521bf35f7746d4fc37ae91e.tar.bz2 master-187ad058-0241b19768532635b521bf35f7746d4fc37ae91e.zip |
split package.mk and clean up build system code (based on patch by mbm), makes the code more readable and speeds up metadata scan
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6571 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | include/package-defaults.mk | 106 | ||||
-rw-r--r-- | include/package-dumpinfo.mk | 32 | ||||
-rw-r--r-- | include/package-ipkg.mk | 105 | ||||
-rw-r--r-- | include/package.mk | 360 |
4 files changed, 291 insertions, 312 deletions
diff --git a/include/package-defaults.mk b/include/package-defaults.mk new file mode 100644 index 0000000000..3f3b33ee8b --- /dev/null +++ b/include/package-defaults.mk @@ -0,0 +1,106 @@ +# +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Package/Default + CONFIGFILE:= + SECTION:=opt + CATEGORY:=Extra packages + DEPENDS:= + PROVIDES:= + EXTRA_DEPENDS:= + MAINTAINER:=OpenWrt Developers Team <openwrt-devel@openwrt.org> + SOURCE:=$(patsubst $(TOPDIR)/%,%,${shell pwd}) + ifneq ($(PKG_VERSION),) + ifneq ($(PKG_RELEASE),) + VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) + else + VERSION:=$(PKG_VERSION) + endif + else + VERSION:=$(PKG_RELEASE) + endif + PKGARCH:=$(ARCH) + PRIORITY:=optional + DEFAULT:= + MENU:= + SUBMENU:= + SUBMENUDEP:= + TITLE:= + DESCRIPTION:= +endef + +ifneq ($(strip $(PKG_UNPACK)),) + define Build/Prepare/Default + $(PKG_UNPACK) + @if [ -d ./patches -a "$$$$(ls ./patches | wc -l)" -gt 0 ]; then \ + $(PATCH) $(PKG_BUILD_DIR) ./patches; \ + fi + endef +endif + +TARGET_CPPFLAGS=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include +TARGET_LDFLAGS=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib + +CONFIGURE_ARGS := \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --program-prefix="" \ + --program-suffix="" \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $(DISABLE_NLS) + +CONFIGURE_VARS:= \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \ + PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" + +CONFIGURE_PATH:=. + +define Build/Configure/Default + (cd $(PKG_BUILD_DIR)/$(strip $(3)); \ + if [ -x configure ]; then \ + $(CONFIGURE_VARS) \ + $(2) \ + $(CONFIGURE_PATH)/configure \ + $(CONFIGURE_ARGS) \ + $(1); \ + fi; \ + ) +endef + +MAKE_VARS := \ + CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + LDFLAGS="$(EXTRA_LDFLAGS) " + +MAKE_FLAGS := \ + $(TARGET_CONFIGURE_OPTS) \ + CROSS="$(TARGET_CROSS)" \ + ARCH="$(ARCH)" + +define Build/Compile/Default + $(MAKE_VARS) \ + $(MAKE) -C $(PKG_BUILD_DIR) \ + $(MAKE_FLAGS) \ + $(1); +endef + + diff --git a/include/package-dumpinfo.mk b/include/package-dumpinfo.mk new file mode 100644 index 0000000000..2d52f23475 --- /dev/null +++ b/include/package-dumpinfo.mk @@ -0,0 +1,32 @@ +# +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +ifneq ($(DUMP),) +define Dumpinfo + dumpinfo: dumpinfo-$(1) + dumpinfo-$(1): FORCE + @echo "Package: $(1)" ; \ + $(if $(MENU),echo "Menu: $(MENU)";) \ + $(if $(SUBMENU),echo "Submenu: $(SUBMENU)";) \ + $(if $(SUBMENUDEP),echo "Submenu-Depends: $(SUBMENUDEP)";) \ + $(if $(DEFAULT),echo "Default: $(DEFAULT)";) \ + if [ "$$$$PREREQ_CHECK" = 1 ]; then echo "Prereq-Check: 1"; fi; \ + echo "Version: $(VERSION)"; \ + echo "Depends: $(DEPENDS)"; \ + echo "Provides: $(PROVIDES)"; \ + echo "Build-Depends: $(PKG_BUILD_DEPENDS)"; \ + echo "Section: $(SECTION)"; \ + echo "Category: $(CATEGORY)"; \ + echo "Title: $(TITLE)"; \ + echo "Maintainer: $(MAINTAINER)"; \ + echo -n "Description: "; \ + getvar $(call shvar,Package/$(1)/description); \ + $(if $(URL),echo;echo "$(URL)";) \ + echo "@@" ; \ + $$(if $$(Package/$(1)/config),echo "Config: "; getvar $(call shvar,Package/$(1)/config); echo "@@") +endef +endif diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk new file mode 100644 index 0000000000..0d6ab8af91 --- /dev/null +++ b/include/package-ipkg.mk @@ -0,0 +1,105 @@ +# +# Copyright (C) 2006,2007 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define BuildIPKGVariable + $(call shexport,Package/$(1)/$(2)) + $(1)_COMMANDS += var2file "$(call shvar,Package/$(1)/$(2))" $(2); +endef + +ifeq ($(DUMP),) +define BuildIPKG + IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk + IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(1) + INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list + + ifdef Package/$(1)/install + ifeq ($(CONFIG_PACKAGE_$(1)),y) + install: $$(INFO_$(1)) + endif + + ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER)$(SDK),) + compile: $$(IPKG_$(1)) + else + compile: $(1)-disabled + $(1)-disabled: + @echo "WARNING: skipping $(1) -- package not selected" + endif + endif + + ifeq ($(FORCEREBUILD),y) + $$(IPKG_$(1)): FORCE + endif + + IDEPEND_$(1):=$$(strip $$(DEPENDS)) + + + $(eval $(call BuildIPKGVariable,$(1),conffiles)) + $(eval $(call BuildIPKGVariable,$(1),preinst)) + $(eval $(call BuildIPKGVariable,$(1),postinst)) + $(eval $(call BuildIPKGVariable,$(1),prerm)) + $(eval $(call BuildIPKGVariable,$(1),postrm)) + $$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.version-$(1)_$(VERSION)_$(PKGARCH) + @rm -f $(PACKAGE_DIR)/$(1)_* + mkdir -p $$(IDIR_$(1))/CONTROL + echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control + echo "Version: $(VERSION)" >> $$(IDIR_$(1))/CONTROL/control + ( \ + DEPENDS='$(EXTRA_DEPENDS)'; \ + for depend in $$(filter-out @%,$$(IDEPEND_$(1))); do \ + DEPENDS=$$$${DEPENDS:+$$$$DEPENDS, }$$$${depend##+}; \ + done; \ + echo "Depends: $$$$DEPENDS" >> $$(IDIR_$(1))/CONTROL/control; \ + ) + echo "Source: $(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control + echo "Section: $(SECTION)" >> $$(IDIR_$(1))/CONTROL/control + echo "Priority: $(PRIORITY)" >> $$(IDIR_$(1))/CONTROL/control + echo "Maintainer: $(MAINTAINER)" >> $$(IDIR_$(1))/CONTROL/control + echo "Architecture: $(PKGARCH)" >> $$(IDIR_$(1))/CONTROL/control + echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g' | sed -e 's,^[[:space:]]*$$$$, .,g' >> $$(IDIR_$(1))/CONTROL/control + chmod 644 $$(IDIR_$(1))/CONTROL/control + (cd $$(IDIR_$(1))/CONTROL; \ + $($(1)_COMMANDS) \ + ) + + $$(IPKG_$(1)): $(PKG_BUILD_DIR)/.built $$(IDIR_$(1))/CONTROL/control + $(call Package/$(1)/install,$$(IDIR_$(1))) + mkdir -p $(PACKAGE_DIR) + -find $$(IDIR_$(1)) -name CVS | xargs rm -rf + -find $$(IDIR_$(1)) -name .svn | xargs rm -rf + -find $$(IDIR_$(1)) -name '.#*' | xargs rm -f + $(RSTRIP) $$(IDIR_$(1)) + $(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR) + @[ -f $$(IPKG_$(1)) ] || false + + $$(INFO_$(1)): $$(IPKG_$(1)) + $(IPKG) install $$(IPKG_$(1)) + + $(1)-clean: + rm -f $(PACKAGE_DIR)/$(1)_* + + clean: $(1)-clean + + $(PKG_BUILD_DIR)/.version-$(1)_$(VERSION)_$(PKGARCH): $(PKG_BUILD_DIR)/.prepared + -@rm -f $(PKG_BUILD_DIR)/.version-$(1)_* 2>/dev/null + @touch $$@ + + $$(eval $$(call Build/DefaultTargets,$(1))) + + ifdef Package/$(1)/install + ifneq ($$(CONFIG_PACKAGE_$(1))$(DEVELOPER)$(SDK),) + ifneq ($(MAKECMDGOALS),prereq) + ifneq ($(DUMP),1) + ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg -x ipkg-install '$$(IPKG_$(1))' '$(PKG_BUILD_DIR)'),$$(IPKG_$(1))) + $(PKG_BUILD_DIR)/.built: package-rebuild + $$(info Rebuilding $(subst $(TOPDIR)/,,$$(IPKG_$(1)))) + endif + endif + endif + endif + endif +endef +endif diff --git a/include/package.mk b/include/package.mk index bee893d97d..34ba9a2ed5 100644 --- a/include/package.mk +++ b/include/package.mk @@ -1,27 +1,37 @@ # -# Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2006,2007 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -ifneq ($(DUMP),) - all: dumpinfo -else - all: compile -endif + +all: $(if $(DUMP),dumpinfo,compile) include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/host.mk include $(INCLUDE_DIR)/unpack.mk +include $(INCLUDE_DIR)/package-defaults.mk +include $(INCLUDE_DIR)/package-dumpinfo.mk +include $(INCLUDE_DIR)/package-ipkg.mk export CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME) define Build/DefaultTargets + ifneq ($(strip $(PKG_SOURCE_URL)),) + download: $(DL_DIR)/$(PKG_SOURCE) + + $(DL_DIR)/$(PKG_SOURCE): + mkdir -p $(DL_DIR) + $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL) + + $(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE) + endif + ifeq ($(DUMP),) ifeq ($(CONFIG_AUTOREBUILD),y) ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) . $(PKG_FILE_DEPEND)),$(PKG_BUILD_DIR)) $$(info Forcing package rebuild) - $(PKG_BUILD_DIR)/.prepared: package-clean + $(PKG_BUILD_DIR)/.prepared: clean endif endif endif @@ -29,15 +39,15 @@ define Build/DefaultTargets $(PKG_BUILD_DIR)/.prepared: @-rm -rf $(PKG_BUILD_DIR) @mkdir -p $(PKG_BUILD_DIR) - $(call Build/Prepare) + $(Build/Prepare) touch $$@ $(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared - $(call Build/Configure) + $(Build/Configure) touch $$@ $(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/.configured - $(call Build/Compile) + $(Build/Compile) touch $$@ ifdef Build/InstallDev @@ -47,17 +57,12 @@ define Build/DefaultTargets $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed: $(PKG_BUILD_DIR)/.built mkdir -p $(STAGING_DIR)/stampfiles - $(call Build/InstallDev) + $(Build/InstallDev) touch $$@ - compile-targets: $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed + compile: $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed endif - package-clean: FORCE - $(call Build/Clean) - $(call Build/UninstallDev) - -rm -f $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed - package-rebuild: FORCE @-rm -f $(PKG_BUILD_DIR)/.built @@ -65,51 +70,18 @@ define Build/DefaultTargets endef endef -define Package/Default - CONFIGFILE:= - SECTION:=opt - CATEGORY:=Extra packages - DEPENDS:= - PROVIDES:= - EXTRA_DEPENDS:= - MAINTAINER:=OpenWrt Developers Team <openwrt-devel@openwrt.org> - SOURCE:=$(patsubst $(TOPDIR)/%,%,${shell pwd}) - ifneq ($(PKG_VERSION),) - ifneq ($(PKG_RELEASE),) - VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) - else - VERSION:=$(PKG_VERSION) - endif - else - VERSION:=$(PKG_RELEASE) - endif - PKGARCH:=$(ARCH) - PRIORITY:=optional - DEFAULT:= - MENU:= - SUBMENU:= - SUBMENUDEP:= - TITLE:= - DESCRIPTION:= -endef - -define BuildDescription - ifneq ($(DESCRIPTION),) - DESCRIPTION:=$(TITLE)\\ $(DESCRIPTION) - else - DESCRIPTION:=$(TITLE) - endif -endef - -define BuildIPKGVariable - $(call shexport,Package/$(1)/$(2)) - $(1)_COMMANDS += var2file "$(call shvar,Package/$(1)/$(2))" $(2); -endef - define BuildPackage - $(eval $(call Package/Default)) - $(eval $(call Package/$(1))) - $(eval $(call BuildDescription)) + $(eval $(Package/Default)) + $(eval $(Package/$(1))) + +# <HACK> Support obsolete DESCRIPTION field> +ifndef Package/$(1)/description +define Package/$(1)/description +$(TITLE)$(subst \, +,\ $(DESCRIPTION)) +endef +endif +# </HACK> $(foreach FIELD, TITLE CATEGORY PRIORITY SECTION VERSION, ifeq ($($(FIELD)),) @@ -117,271 +89,35 @@ define BuildPackage endif ) - IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk - IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(1) - INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list - - ifdef Package/$(1)/install - ifeq ($(CONFIG_PACKAGE_$(1)),y) - install-targets: $$(INFO_$(1)) - endif - - ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER)$(SDK),) - compile-targets: $$(IPKG_$(1)) - else - compile-targets: $(1)-disabled - $(1)-disabled: - @echo "WARNING: skipping $(1) -- package not selected" - endif - endif - - ifeq ($(FORCEREBUILD),y) - $$(IPKG_$(1)): FORCE - endif - - IDEPEND_$(1):=$$(strip $$(DEPENDS)) - - ifneq ($(DUMP),) - dumpinfo: dumpinfo-$(1) - dumpinfo-$(1): FORCE - @$$(DUMPINFO_$(call shvar,$(1))) - - DUMPINFO_$(call shvar,$(1)) += \ - echo "Package: $(1)"; - - ifneq ($(MENU),) - DUMPINFO_$(call shvar,$(1)) += \ - echo "Menu: $(MENU)"; - endif - - ifneq ($(SUBMENU),) - DUMPINFO_$(call shvar,$(1)) += \ - echo "Submenu: $(SUBMENU)"; - ifneq ($(SUBMENUDEP),) - DUMPINFO_$(call shvar,$(1)) += \ - echo "Submenu-Depends: $(SUBMENUDEP)"; - endif - endif - - ifneq ($(DEFAULT),) - DUMPINFO_$(call shvar,$(1)) += \ - echo "Default: $(DEFAULT)"; - endif - - $(call shexport,Package/$(1)/description) + $(call shexport,Package/$(1)/description) + $(call shexport,Package/$(1)/config) - DUMPINFO_$(call shvar,$(1)) += \ - if [ "$$$$PREREQ_CHECK" = 1 ]; then echo "Prereq-Check: 1"; fi; \ - echo "Version: $(VERSION)"; \ - echo "Depends: $$(IDEPEND_$(1))"; \ - echo "Provides: $(PROVIDES)"; \ - echo "Build-Depends: $(PKG_BUILD_DEPENDS)"; \ - echo "Section: $(SECTION)"; \ - echo "Category: $(CATEGORY)"; \ - echo "Title: $(TITLE)"; \ - echo "Maintainer: $(MAINTAINER)"; \ - if isset $(call shvar,Package/$(1)/description); then \ - echo -n "Description: "; \ - getvar $(call shvar,Package/$(1)/description); \ - else \ - echo "Description: $(patsubst \\,\\\\,$(DESCRIPTION))" | perl -ne 's/\\/\n/g, print'; \ - fi; - - ifneq ($(URL),) - DUMPINFO_$(call shvar,$(1)) += \ - echo; \ - echo "$(URL)"; - endif - - DUMPINFO_$(call shvar,$(1)) += \ - echo "@@"; - - $(call shexport,Package/$(1)/config) - DUMPINFO_$(call shvar,$(1)) += \ - if isset $(call shvar,Package/$(1)/config); then \ - echo "Config: "; \ - getvar $(call shvar,Package/$(1)/config); \ - echo "@@"; \ - fi; - - endif - - $(eval $(call BuildIPKGVariable,$(1),conffiles)) - $(eval $(call BuildIPKGVariable,$(1),preinst)) - $(eval $(call BuildIPKGVariable,$(1),postinst)) - $(eval $(call BuildIPKGVariable,$(1),prerm)) - $(eval $(call BuildIPKGVariable,$(1),postrm)) - $$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.version-$(1)_$(VERSION)_$(PKGARCH) - @rm -f $(PACKAGE_DIR)/$(1)_* - mkdir -p $$(IDIR_$(1))/CONTROL - echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control - echo "Version: $(VERSION)" >> $$(IDIR_$(1))/CONTROL/control - ( \ - DEPENDS='$(EXTRA_DEPENDS)'; \ - for depend in $$(filter-out @%,$$(IDEPEND_$(1))); do \ - DEPENDS=$$$${DEPENDS:+$$$$DEPENDS, }$$$${depend##+}; \ - done; \ - echo "Depends: $$$$DEPENDS" >> $$(IDIR_$(1))/CONTROL/control; \ - ) - echo "Source: $(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control - echo "Section: $(SECTION)" >> $$(IDIR_$(1))/CONTROL/control - echo "Priority: $(PRIORITY)" >> $$(IDIR_$(1))/CONTROL/control - echo "Maintainer: $(MAINTAINER)" >> $$(IDIR_$(1))/CONTROL/control - echo "Architecture: $(PKGARCH)" >> $$(IDIR_$(1))/CONTROL/control - echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g' | sed -e 's,^[[:space:]]*$$$$, .,g' >> $$(IDIR_$(1))/CONTROL/control - chmod 644 $$(IDIR_$(1))/CONTROL/control - (cd $$(IDIR_$(1))/CONTROL; \ - $($(1)_COMMANDS) \ - ) - - $$(IPKG_$(1)): $(PKG_BUILD_DIR)/.built $$(IDIR_$(1))/CONTROL/control - $(call Package/$(1)/install,$$(IDIR_$(1))) - mkdir -p $(PACKAGE_DIR) - -find $$(IDIR_$(1)) -name CVS | xargs rm -rf - -find $$(IDIR_$(1)) -name .svn | xargs rm -rf - -find $$(IDIR_$(1)) -name '.#*' | xargs rm -f - $(RSTRIP) $$(IDIR_$(1)) - $(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR) - @[ -f $$(IPKG_$(1)) ] || false - - $$(INFO_$(1)): $$(IPKG_$(1)) - $(IPKG) install $$(IPKG_$(1)) - - $(1)-clean: - rm -f $(PACKAGE_DIR)/$(1)_* - - clean: $(1)-clean - - $(PKG_BUILD_DIR)/.version-$(1)_$(VERSION)_$(PKGARCH): $(PKG_BUILD_DIR)/.prepared - -@rm -f $(PKG_BUILD_DIR)/.version-$(1)_* 2>/dev/null - @touch $$@ - - $$(eval $$(call Build/DefaultTargets,$(1))) - - ifdef Package/$(1)/install - ifneq ($$(CONFIG_PACKAGE_$(1))$(DEVELOPER)$(SDK),) - ifneq ($(MAKECMDGOALS),prereq) - ifneq ($(DUMP),1) - ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg -x ipkg-install '$$(IPKG_$(1))' '$(PKG_BUILD_DIR)'),$$(IPKG_$(1))) - $(PKG_BUILD_DIR)/.built: package-rebuild - $$(info Rebuilding $(subst $(TOPDIR)/,,$$(IPKG_$(1)))) - endif - endif - endif - endif - endif + $(Dumpinfo) + $(BuildIPKG) endef -ifneq ($(strip $(PKG_UNPACK)),) - define Build/Prepare/Default - $(PKG_UNPACK) - @if [ -d ./patches -a "$$$$(ls ./patches | wc -l)" -gt 0 ]; then \ - $(PATCH) $(PKG_BUILD_DIR) ./patches; \ - fi - endef -endif - define Build/Prepare $(call Build/Prepare/Default,) endef -CONFIGURE_ARGS := \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --program-prefix="" \ - --program-suffix="" \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --libexecdir=/usr/lib \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --localstatedir=/var \ - --mandir=/usr/man \ - --infodir=/usr/info \ - $(DISABLE_NLS) - -TARGET_CPPFLAGS=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include -TARGET_LDFLAGS=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -CONFIGURE_VARS:= \ - $(TARGET_CONFIGURE_OPTS) \ - CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ - CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ - CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \ - LDFLAGS="$(TARGET_LDFLAGS)" \ - PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig" \ - PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" - -CONFIGURE_PATH:=. - -define Build/Configure/Default - (cd $(PKG_BUILD_DIR)/$(strip $(3)); \ - if [ -x configure ]; then \ - $(CONFIGURE_VARS) \ - $(2) \ - $(CONFIGURE_PATH)/configure \ - $(CONFIGURE_ARGS) \ - $(1); \ - fi; \ - ) -endef - define Build/Configure $(call Build/Configure/Default,) endef -MAKE_VARS := \ - CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ - CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ - LDFLAGS="$(EXTRA_LDFLAGS) " - -MAKE_FLAGS := \ - $(TARGET_CONFIGURE_OPTS) \ - CROSS="$(TARGET_CROSS)" \ - ARCH="$(ARCH)" - -define Build/Compile/Default - $(MAKE_VARS) \ - $(MAKE) -C $(PKG_BUILD_DIR) \ - $(MAKE_FLAGS) \ - $(1); -endef - define Build/Compile $(call Build/Compile/Default,) endef -ifneq ($(DUMP),) - dumpinfo: -else - $(PACKAGE_DIR): +$(PACKAGE_DIR): mkdir -p $@ - ifneq ($(strip $(PKG_SOURCE_URL)),) - download: $(DL_DIR)/$(PKG_SOURCE) - - $(DL_DIR)/$(PKG_SOURCE): - mkdir -p $(DL_DIR) - $(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL) - - $(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE) - endif - - download: - prepare: $(PKG_BUILD_DIR)/.prepared - configure: $(PKG_BUILD_DIR)/.configured - - compile-targets: - compile: compile-targets - - install-targets: - install: install-targets - - clean-targets: - clean: FORCE - @$(MAKE) clean-targets - $(call Build/Clean) - rm -rf $(PKG_BUILD_DIR) -endif +dumpinfo: +download: +prepare: $(PKG_BUILD_DIR)/.prepared +configure: $(PKG_BUILD_DIR)/.configured +compile: +install: +clean: FORCE + $(Build/UninstallDev) + @rm -f $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed + @rm -rf $(PKG_BUILD_DIR) |