split package.mk and clean up build system code (based on patch by mbm), makes the code more readable and speeds up metadata scan
SVN-Revision: 6571master
parent
568c026623
commit
7b1a36cab4
@ -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 |
||||||
|
|
||||||
|
|
@ -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 |
@ -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 |
Loading…
Reference in new issue