X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/7f96a033b8e1f7eecfd282a6c37db2ea2737e481..7c82cc0f83047d49d248d216490f29d379bf32c5:/package/rules.mk diff --git a/package/rules.mk b/package/rules.mk index 61c2ae3eb..40e07f839 100644 --- a/package/rules.mk +++ b/package/rules.mk @@ -6,12 +6,16 @@ endif define Build/DefaultTargets ifeq ($(DUMP),) - ifeq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) . | tee /tmp/xy1),.) - $(PKG_BUILD_DIR)/.prepared: package-clean + ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) . $(TOPDIR)/package/rules.mk),$(PKG_BUILD_DIR)) + ifeq ($(CONFIG_AUTOREBUILD),y) + $(PKG_BUILD_DIR)/.prepared: package-clean + endif endif - ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg $(IPKG_$(1)) $(PKG_BUILD_DIR) | tee /tmp/xy2),$(IPKG_$(1))) - $(PKG_BUILD_DIR)/.built: package-rebuild + ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg $(IPKG_$(1)) $(PKG_BUILD_DIR)),$(IPKG_$(1))) + ifeq ($(CONFIG_AUTOREBUILD),y) + $(PKG_BUILD_DIR)/.built: package-rebuild + endif endif endif @@ -29,20 +33,21 @@ define Build/DefaultTargets $(call Build/Compile) touch $$@ - $(PKG_BUILD_DIR)/.dev-installed: $(PKG_BUILD_DIR)/.built + $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed: $(PKG_BUILD_DIR)/.built $(call Build/InstallDev) touch $$@ ifdef Build/InstallDev - compile-targets: $(PKG_BUILD_DIR)/.dev-installed + compile-targets: $(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 $(PKG_BUILD_DIR)/.built + @-rm -f $(PKG_BUILD_DIR)/.built define Build/DefaultTargets endef @@ -55,7 +60,15 @@ define Package/Default DEPENDS:= MAINTAINER:=OpenWrt Developers Team SOURCE:=$(patsubst $(TOPDIR)/%,%,${shell pwd}) - VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) + 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:= @@ -64,6 +77,12 @@ define Package/Default DESCRIPTION:= endef +define BuildIPKGVariable +pkg_$(subst .,_,$(subst -,_,$(1)))_$(2) = $$(Package/$(1)/$(2)) +export pkg_$(subst .,_,$(subst -,_,$(1))_$(2)) +$(1)_COMMANDS += if [ -n "$$$$$$$$pkg_$(subst .,_,$(subst -,_,$(1)))_$(2)" ]; then echo "$$$$$$$$pkg_$(subst .,_,$(subst -,_,$(1)))_$(2)" > $(2); fi; +endef + define BuildPackage $(eval $(call Package/Default)) $(eval $(call Package/$(1))) @@ -132,6 +151,11 @@ define BuildPackage echo "@@"; 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)/.prepared mkdir -p $$(IDIR_$(1))/CONTROL echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control @@ -150,9 +174,9 @@ define BuildPackage echo "Architecture: $(PKGARCH)" >> $$(IDIR_$(1))/CONTROL/control echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n ,g' >> $$(IDIR_$(1))/CONTROL/control chmod 644 $$(IDIR_$(1))/CONTROL/control - for file in conffiles preinst postinst prerm postrm; do \ - [ -f ./ipkg/$(1).$$$$file ] && cp ./ipkg/$(1).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file || true; \ - done + (cd $$(IDIR_$(1))/CONTROL; \ + $($(1)_COMMANDS) \ + ) $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $(PKG_BUILD_DIR)/.built $(call Package/$(1)/install,$$(IDIR_$(1))) @@ -198,8 +222,9 @@ define Build/Prepare endef define Build/Configure/Default - @(cd $(PKG_BUILD_DIR); \ + @(cd $(PKG_BUILD_DIR)/$(3); \ [ -x configure ] && \ + $(2) \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS)" \ CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ @@ -235,10 +260,8 @@ define Build/Compile/Default $(TARGET_CONFIGURE_OPTS) \ CC=$(TARGET_CC) \ CROSS="$(TARGET_CROSS)" \ - PREFIX="$$(IDIR_$(1))" \ - EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ + EXTRA_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include" \ ARCH="$(ARCH)" \ - DESTDIR="$$(IDIR_$(1))" \ $(1); endef @@ -246,10 +269,6 @@ define Build/Compile $(call Build/Compile/Default,) endef -define Build/Clean - $(MAKE) clean -endef - ifneq ($(DUMP),) dumpinfo: FORCE @$(DUMPINFO) @@ -271,5 +290,6 @@ else clean-targets: clean: FORCE @$(MAKE) clean-targets + $(call Build/Clean) rm -rf $(PKG_BUILD_DIR) endif