X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=package%2Frules.mk;h=77a6595e82f4ba7fcca70375808d589f8e4c94e8;hb=f99d2754b1feea539570dce7bfdaec641fc5696c;hp=3f22cf642a633c04496211222529785142670ee6;hpb=a8fa4331314a313deb0a36ce172412c086bc4123;p=openwrt.git diff --git a/package/rules.mk b/package/rules.mk index 3f22cf642a..77a6595e82 100644 --- a/package/rules.mk +++ b/package/rules.mk @@ -5,24 +5,49 @@ else endif define Build/DefaultTargets - prepared: FORCE $(DL_DIR)/$(PKG_SOURCE) - ifeq ($(shell $(SCRIPT_DIR)/timestamp.pl -p $(PKG_BUILD_DIR) .),.) + ifeq ($(DUMP),) + 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)),$(IPKG_$(1))) + ifeq ($(CONFIG_AUTOREBUILD),y) + $(PKG_BUILD_DIR)/.built: package-rebuild + endif + endif + endif + + $(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE) @-rm -rf $(PKG_BUILD_DIR) @mkdir -p $(PKG_BUILD_DIR) $(call Build/Prepare) - endif + touch $$@ - $(PKG_BUILD_DIR)/.configured: prepared + $(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.prepared $(call Build/Configure) touch $$@ - built: FORCE $(PKG_BUILD_DIR)/.configured - ifneq ($$(shell $(SCRIPT_DIR)/timestamp.pl -p -x ipkg $(IPKG_$(1)) $(PKG_BUILD_DIR)),$(IPKG_$(1))) + $(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/.configured $(call Build/Compile) - endif + touch $$@ + + $(STAGING_DIR)/stampfiles/.$(PKG_NAME)-installed: $(PKG_BUILD_DIR)/.built + $(call Build/InstallDev) + touch $$@ + + ifdef Build/InstallDev + 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 define Build/DefaultTargets endef @@ -35,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:= @@ -66,16 +99,12 @@ define BuildPackage IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(1) INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list - ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),) - COMPILE_$(1):=1 - endif - ifeq ($(CONFIG_PACKAGE_$(1)),y) install-targets: $$(INFO_$(1)) endif - ifneq ($(COMPILE_$(1)),) - compile-targets: $(IPKG_$(1)) + ifneq ($(CONFIG_PACKAGE_$(1))$(DEVELOPER),) + compile-targets: $$(IPKG_$(1)) endif IDEPEND_$(1):=$$(strip $$(DEPENDS)) @@ -96,6 +125,7 @@ define BuildPackage DUMPINFO += \ echo "Version: $(VERSION)"; \ echo "Depends: $$(IDEPEND_$(1))"; \ + echo "Build-Depends: $(PKG_BUILDDEP)"; \ echo "Category: $(CATEGORY)"; \ echo "Title: $(TITLE)"; \ echo "Description: $(DESCRIPTION)" | sed -e 's,\\,\n,g'; @@ -109,11 +139,23 @@ define BuildPackage DUMPINFO += \ echo "@@"; - $$(IDIR_$(1))/CONTROL/control: prepared + ifneq ($(CONFIG),) + DUMPINFO += \ + echo "Config: $(CONFIG)" | sed -e 's,\\,\n,g'; \ + echo "@@"; + endif + + $$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.prepared mkdir -p $$(IDIR_$(1))/CONTROL echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control echo "Version: $(VERSION)" >> $$(IDIR_$(1))/CONTROL/control - echo "Depends: $$(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control + ( \ + 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 @@ -125,9 +167,12 @@ define BuildPackage [ -f ./ipkg/$(1).$$$$file ] && cp ./ipkg/$(1).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file || true; \ done - $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control built + $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $(PKG_BUILD_DIR)/.built $(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) @@ -139,9 +184,7 @@ define BuildPackage clean: $(1)-clean - ifneq ($(__DEFAULT_TARGETS),1) - $$(eval $$(call Build/DefaultTargets,$(1))) - endif + $$(eval $$(call Build/DefaultTargets,$(1))) endef @@ -172,10 +215,14 @@ define Build/Configure/Default [ -x configure ] && \ $(TARGET_CONFIGURE_OPTS) \ CFLAGS="$(TARGET_CFLAGS)" \ + CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \ + LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib" \ ./configure \ --target=$(GNU_TARGET_NAME) \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ + --program-prefix="" \ + --program-suffix="" \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ @@ -188,6 +235,7 @@ define Build/Configure/Default --infodir=/usr/info \ $(DISABLE_NLS) \ $(1); \ + true; \ ) endef @@ -197,45 +245,39 @@ endef define Build/Compile/Default $(MAKE) -C $(PKG_BUILD_DIR) \ + $(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 define Build/Compile - $(call Build/Compile/Default) -endef - -define Build/Clean - $(MAKE) clean + $(call Build/Compile/Default,) endef ifneq ($(DUMP),) - dumpinfo: - $(DUMPINFO) + dumpinfo: FORCE + @$(DUMPINFO) else $(PACKAGE_DIR): mkdir -p $@ - source: FORCE $(DL_DIR)/$(PKG_SOURCE) - prepare: FORCE prepared - configure: FORCE $(PKG_BUILD_DIR)/.configured + source: $(DL_DIR)/$(PKG_SOURCE) + prepare: $(PKG_BUILD_DIR)/.prepared + configure: $(PKG_BUILD_DIR)/.configured - compile-targets: FORCE - compile: FORCE compile-targets + compile-targets: + compile: compile-targets - install-targets: FORCE - install: FORCE install-targets + install-targets: + install: install-targets - clean-targets: FORCE + clean-targets: clean: FORCE @$(MAKE) clean-targets + $(call Build/Clean) rm -rf $(PKG_BUILD_DIR) endif - -.PHONY: FORCE -FORCE: