1# 
2# Copyright (C) 2006 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8PKG_DEFAULT_DEPENDS = +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread
9
10ifneq ($(PKG_NAME),toolchain)
11  PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2)))
12else
13  PKG_FIXUP_DEPENDS = $(2)
14endif
15
16define Package/Default
17  CONFIGFILE:=
18  SECTION:=opt
19  CATEGORY:=Extra packages
20  DEPENDS:=
21  MDEPENDS:=
22  PROVIDES:=
23  EXTRA_DEPENDS:=
24  MAINTAINER:=OpenWrt Developers Team <openwrt-devel@openwrt.org>
25  SOURCE:=$(patsubst $(TOPDIR)/%,%,$(CURDIR))
26  ifneq ($(PKG_VERSION),)
27    ifneq ($(PKG_RELEASE),)
28      VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
29    else
30      VERSION:=$(PKG_VERSION)
31    endif
32  else
33    VERSION:=$(PKG_RELEASE)
34  endif
35  ifneq ($(PKG_FLAGS),)
36    PKGFLAGS:=$(PKG_FLAGS)
37  else
38    PKGFLAGS:=
39  endif
40  ifneq ($(ARCH_PACKAGES),)
41    PKGARCH:=$(ARCH_PACKAGES)
42  else
43    PKGARCH:=$(BOARD)
44  endif
45  PRIORITY:=optional
46  DEFAULT:=
47  MENU:=
48  SUBMENU:=
49  SUBMENUDEP:=
50  TITLE:=
51  KCONFIG:=
52  BUILDONLY:=
53  HIDDEN:=
54  URL:=
55  VARIANT:=
56endef
57
58Build/Patch:=$(Build/Patch/Default)
59ifneq ($(strip $(PKG_UNPACK)),)
60  define Build/Prepare/Default
61	$(PKG_UNPACK)
62	$(Build/Patch)
63  endef
64endif
65
66EXTRA_CXXFLAGS = $(EXTRA_CFLAGS)
67
68CONFIGURE_PREFIX:=/usr
69CONFIGURE_ARGS = \
70		--target=$(GNU_TARGET_NAME) \
71		--host=$(GNU_TARGET_NAME) \
72		--build=$(GNU_HOST_NAME) \
73		--program-prefix="" \
74		--program-suffix="" \
75		--prefix=$(CONFIGURE_PREFIX) \
76		--exec-prefix=$(CONFIGURE_PREFIX) \
77		--bindir=$(CONFIGURE_PREFIX)/bin \
78		--sbindir=$(CONFIGURE_PREFIX)/sbin \
79		--libexecdir=$(CONFIGURE_PREFIX)/lib \
80		--sysconfdir=/etc \
81		--datadir=$(CONFIGURE_PREFIX)/share \
82		--localstatedir=/var \
83		--mandir=$(CONFIGURE_PREFIX)/man \
84		--infodir=$(CONFIGURE_PREFIX)/info \
85		$(DISABLE_NLS) \
86		$(DISABLE_LARGEFILE) \
87		$(DISABLE_IPV6)
88
89CONFIGURE_VARS = \
90		$(TARGET_CONFIGURE_OPTS) \
91		CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
92		CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CFLAGS)" \
93		CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
94		LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
95
96CONFIGURE_PATH = .
97CONFIGURE_CMD = ./configure
98
99replace_script=$(FIND) $(1) -name $(2) | $(XARGS) chmod u+w; $(FIND) $(1) -name $(2) | $(XARGS) -n1 cp $(SCRIPT_DIR)/$(2);
100
101define Build/Configure/Default
102	(cd $(PKG_BUILD_DIR)/$(CONFIGURE_PATH)/$(strip $(3)); \
103	if [ -x $(CONFIGURE_CMD) ]; then \
104		$(call replace_script,$(PKG_BUILD_DIR)/$(3),config.guess) \
105		$(call replace_script,$(PKG_BUILD_DIR)/$(3),config.sub) \
106		$(CONFIGURE_VARS) \
107		$(2) \
108		$(CONFIGURE_CMD) \
109		$(CONFIGURE_ARGS) \
110		$(1); \
111	fi; \
112	)
113endef
114
115MAKE_VARS = \
116	CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
117	CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
118	LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"
119
120MAKE_FLAGS = \
121	$(TARGET_CONFIGURE_OPTS) \
122	CROSS="$(TARGET_CROSS)" \
123	ARCH="$(ARCH)"
124
125MAKE_INSTALL_FLAGS = \
126	$(MAKE_FLAGS) \
127	DESTDIR="$(PKG_INSTALL_DIR)"
128
129MAKE_PATH = .
130
131define Build/Compile/Default
132	+$(MAKE_VARS) \
133	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
134		$(MAKE_FLAGS) \
135		$(1);
136endef
137
138define Build/Install/Default
139	$(MAKE_VARS) \
140	$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
141		$(MAKE_INSTALL_FLAGS) \
142		$(if $(1), $(1), install);
143endef
144
145define Build/Dist/Default
146	$(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" dist)
147endef
148
149define Build/DistCheck/Default
150	$(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" distcheck)
151endef
152