mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
new package makefile syntax
SVN-Revision: 3645
This commit is contained in:
parent
4f78882c2f
commit
5795d42588
@ -21,20 +21,25 @@ CATEGORY:=Base system
|
|||||||
TITLE:=Core utilities
|
TITLE:=Core utilities
|
||||||
DESCRIPTION:=Core utilities for embedded Linux systems
|
DESCRIPTION:=Core utilities for embedded Linux systems
|
||||||
endef
|
endef
|
||||||
$(eval $(call BuildPackage,BUSYBOX,busybox))
|
|
||||||
|
|
||||||
$(PKG_BUILD_DIR)/.configured:
|
define Build/Configure
|
||||||
$(SCRIPT_DIR)/gen_busybox_config.pl $(TOPDIR)/.config > $(PKG_BUILD_DIR)/.config
|
$(SCRIPT_DIR)/gen_busybox_config.pl $(TOPDIR)/.config > $(PKG_BUILD_DIR)/.config
|
||||||
yes '' | $(MAKE) CC=$(TARGET_CC) CROSS="$(TARGET_CROSS)" -C $(PKG_BUILD_DIR) oldconfig
|
yes '' | $(MAKE) CC=$(TARGET_CC) CROSS="$(TARGET_CROSS)" -C $(PKG_BUILD_DIR) oldconfig
|
||||||
touch $@
|
endef
|
||||||
|
|
||||||
$(PKG_BUILD_DIR)/.built:
|
define Build/Compile
|
||||||
$(MAKE) CC=$(TARGET_CC) CROSS="$(TARGET_CROSS)" PREFIX="$(IDIR_BUSYBOX)" \
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||||
EXTRA_CFLAGS="$(TARGET_CFLAGS)" ARCH="$(ARCH)" -C $(PKG_BUILD_DIR)
|
CC=$(TARGET_CC) \
|
||||||
touch $@
|
CROSS="$(TARGET_CROSS)" \
|
||||||
|
PREFIX="$(IDIR_BUSYBOX)" \
|
||||||
|
EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
|
ARCH="$(ARCH)"
|
||||||
|
endef
|
||||||
|
|
||||||
$(IPKG_BUSYBOX):
|
define Package/busybox/install
|
||||||
$(MAKE) CC=$(TARGET_CC) CROSS="$(TARGET_CROSS)" PREFIX="$(IDIR_BUSYBOX)" \
|
$(MAKE) CC=$(TARGET_CC) CROSS="$(TARGET_CROSS)" PREFIX="$(1)" \
|
||||||
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(PKG_BUILD_DIR) install
|
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(PKG_BUILD_DIR) install
|
||||||
$(STRIP) $(IDIR_BUSYBOX)/bin/busybox
|
$(STRIP) $(1)/bin/busybox
|
||||||
$(IPKG_BUILD) $(IDIR_BUSYBOX) $(PACKAGE_DIR)
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,busybox))
|
||||||
|
@ -1,8 +1,27 @@
|
|||||||
# invoke ipkg with configuration in $(STAGING_DIR)/etc/ipkg.conf
|
# default target
|
||||||
|
all: compile
|
||||||
|
|
||||||
|
define Build/DefaultTargets
|
||||||
|
$(PKG_BUILD_DIR)/.prepared:
|
||||||
|
rm -rf $(PKG_BUILD_DIR)
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)
|
||||||
|
$(call Build/Prepare)
|
||||||
|
touch $$@
|
||||||
|
|
||||||
|
$(PKG_BUILD_DIR)/.configured:
|
||||||
|
$(call Build/Configure)
|
||||||
|
touch $$@
|
||||||
|
|
||||||
|
$(PKG_BUILD_DIR)/.built:
|
||||||
|
$(call Build/Compile)
|
||||||
|
touch $$@
|
||||||
|
|
||||||
|
DEFAULT_TARGETS:=1
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
define BuildPackage
|
define BuildPackage
|
||||||
CONFIGFILE:=
|
CONFIGFILE:=
|
||||||
NAME:=$(PKG_NAME)
|
|
||||||
SECTION:=opt
|
SECTION:=opt
|
||||||
CATEGORY:=Extra packages
|
CATEGORY:=Extra packages
|
||||||
DEPENDS:=
|
DEPENDS:=
|
||||||
@ -14,30 +33,27 @@ PRIORITY:=optional
|
|||||||
TITLE:=
|
TITLE:=
|
||||||
DESCRIPTION:=
|
DESCRIPTION:=
|
||||||
|
|
||||||
$$(eval $$(call Package/$(2)))
|
$$(eval $$(call Package/$(1)))
|
||||||
|
|
||||||
ifeq ($$(NAME),)
|
|
||||||
$$(error Package $(2) has no NAME)
|
|
||||||
endif
|
|
||||||
ifeq ($$(TITLE),)
|
ifeq ($$(TITLE),)
|
||||||
$$(error Package $(2) has no TITLE)
|
$$(error Package $(1) has no TITLE)
|
||||||
endif
|
endif
|
||||||
ifeq ($$(CATEGORY),)
|
ifeq ($$(CATEGORY),)
|
||||||
$$(error Package $(2) has no CATEGORY)
|
$$(error Package $(1) has no CATEGORY)
|
||||||
endif
|
endif
|
||||||
ifeq ($$(PRIORITY),)
|
ifeq ($$(PRIORITY),)
|
||||||
$$(error Package $(2) has no PRIORITY)
|
$$(error Package $(1) has no PRIORITY)
|
||||||
endif
|
endif
|
||||||
ifeq ($$(VERSION),)
|
ifeq ($$(VERSION),)
|
||||||
$$(error Package $(2) has no VERSION)
|
$$(error Package $(1) has no VERSION)
|
||||||
endif
|
endif
|
||||||
ifeq ($$(PKGARCH),)
|
ifeq ($$(PKGARCH),)
|
||||||
PKGARCH:=$(ARCH)
|
PKGARCH:=$(ARCH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
IPKG_$(1):=$(PACKAGE_DIR)/$(2)_$(VERSION)_$(PKGARCH).ipk
|
IPKG_$(1):=$(PACKAGE_DIR)/$(1)_$(VERSION)_$(PKGARCH).ipk
|
||||||
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(2)
|
IDIR_$(1):=$(PKG_BUILD_DIR)/ipkg/$(1)
|
||||||
INFO_$(1):=$(IPKG_STATE_DIR)/info/$(2).list
|
INFO_$(1):=$(IPKG_STATE_DIR)/info/$(1).list
|
||||||
|
|
||||||
ifneq ($(BR2_PACKAGE_$(1)),)
|
ifneq ($(BR2_PACKAGE_$(1)),)
|
||||||
compile-targets: $$(IPKG_$(1))
|
compile-targets: $$(IPKG_$(1))
|
||||||
@ -53,7 +69,7 @@ IDEPEND_$(1):=$$(strip $$(DEPENDS))
|
|||||||
|
|
||||||
$$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.prepared
|
$$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.prepared
|
||||||
mkdir -p $$(IDIR_$(1))/CONTROL
|
mkdir -p $$(IDIR_$(1))/CONTROL
|
||||||
echo "Package: $(2)" > $$(IDIR_$(1))/CONTROL/control
|
echo "Package: $(1)" > $$(IDIR_$(1))/CONTROL/control
|
||||||
echo "Version: $$(VERSION)" >> $$(IDIR_$(1))/CONTROL/control
|
echo "Version: $$(VERSION)" >> $$(IDIR_$(1))/CONTROL/control
|
||||||
echo "Depends: $$(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control
|
echo "Depends: $$(IDEPEND_$(1))" >> $$(IDIR_$(1))/CONTROL/control
|
||||||
echo "Source: $$(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control
|
echo "Source: $$(SOURCE)" >> $$(IDIR_$(1))/CONTROL/control
|
||||||
@ -64,30 +80,36 @@ $$(IDIR_$(1))/CONTROL/control: $(PKG_BUILD_DIR)/.prepared
|
|||||||
echo "Description: $$(DESCRIPTION)" >> $$(IDIR_$(1))/CONTROL/control
|
echo "Description: $$(DESCRIPTION)" >> $$(IDIR_$(1))/CONTROL/control
|
||||||
chmod 644 $$(IDIR_$(1))/CONTROL/control
|
chmod 644 $$(IDIR_$(1))/CONTROL/control
|
||||||
for file in conffiles preinst postinst prerm postrm; do \
|
for file in conffiles preinst postinst prerm postrm; do \
|
||||||
[ -f ./ipkg/$(2).$$$$file ] && cp ./ipkg/$(2).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file || true; \
|
[ -f ./ipkg/$(1).$$$$file ] && cp ./ipkg/$(1).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file || true; \
|
||||||
done
|
done
|
||||||
|
|
||||||
$$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $(PKG_BUILD_DIR)/.built $(PACKAGE_DIR)
|
$$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $(PKG_BUILD_DIR)/.built $(PACKAGE_DIR)
|
||||||
|
$(call Package/$(1)/install,$$(IDIR_$(1)))
|
||||||
|
$(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR)
|
||||||
|
|
||||||
$$(INFO_$(1)): $$(IPKG_$(1))
|
$$(INFO_$(1)): $$(IPKG_$(1))
|
||||||
$(IPKG) install $$(IPKG_$(1))
|
$(IPKG) install $$(IPKG_$(1))
|
||||||
|
|
||||||
$(2)-clean:
|
$(1)-clean:
|
||||||
rm -f $$(IPKG_$(1))
|
rm -f $$(IPKG_$(1))
|
||||||
clean: $(2)-clean
|
clean: $(1)-clean
|
||||||
endef
|
|
||||||
|
|
||||||
|
ifneq ($(__DEFAULT_TARGETS),1)
|
||||||
|
$(eval $(call Build/DefaultTargets))
|
||||||
|
endif
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
ifneq ($(strip $(PKG_SOURCE)),)
|
ifneq ($(strip $(PKG_SOURCE)),)
|
||||||
$(DL_DIR)/$(PKG_SOURCE):
|
$(DL_DIR)/$(PKG_SOURCE):
|
||||||
@$(CMD_TRACE) "downloading... "
|
@$(CMD_TRACE) "downloading... "
|
||||||
$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL) $(MAKE_TRACE)
|
$(SCRIPT_DIR)/download.pl "$(DL_DIR)" "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL) $(MAKE_TRACE)
|
||||||
|
|
||||||
|
$(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(strip $(PKG_CAT)),)
|
ifneq ($(strip $(PKG_CAT)),)
|
||||||
$(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE)
|
define Build/Prepare/Default
|
||||||
rm -rf $(PKG_BUILD_DIR)
|
|
||||||
mkdir -p $(PKG_BUILD_DIR)
|
|
||||||
if [ "$(PKG_CAT)" = "unzip" ]; then \
|
if [ "$(PKG_CAT)" = "unzip" ]; then \
|
||||||
unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) ; \
|
unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) ; \
|
||||||
else \
|
else \
|
||||||
@ -96,10 +118,28 @@ $(PKG_BUILD_DIR)/.prepared: $(DL_DIR)/$(PKG_SOURCE)
|
|||||||
if [ -d ./patches ]; then \
|
if [ -d ./patches ]; then \
|
||||||
$(PATCH) $(PKG_BUILD_DIR) ./patches ; \
|
$(PATCH) $(PKG_BUILD_DIR) ./patches ; \
|
||||||
fi
|
fi
|
||||||
touch $(PKG_BUILD_DIR)/.prepared
|
endef
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: compile
|
define Build/Prepare
|
||||||
|
$(call Build/Prepare/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Configure/Default
|
||||||
|
# TODO: add configurable default command
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Configure
|
||||||
|
$(call Build/Configure/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile/Default
|
||||||
|
# TODO: add configurable default command
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(call Build/Compile/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
source: $(DL_DIR)/$(PKG_SOURCE)
|
source: $(DL_DIR)/$(PKG_SOURCE)
|
||||||
prepare: source
|
prepare: source
|
||||||
@ -133,9 +173,6 @@ rebuild:
|
|||||||
fi
|
fi
|
||||||
$(MAKE) compile $(MAKE_TRACE)
|
$(MAKE) compile $(MAKE_TRACE)
|
||||||
|
|
||||||
$(PKG_BUILD_DIR)/.configured:
|
|
||||||
$(PKG_BUILD_DIR)/.built:
|
|
||||||
|
|
||||||
$(PACKAGE_DIR):
|
$(PACKAGE_DIR):
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user