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 +SSP_SUPPORT:libssp +USE_GLIBC:librt +USE_GLIBC: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  PACKAGE_SUBDIR:=$(FEED)
21  DEPENDS:=
22  MDEPENDS:=
23  CONFLICTS:=
24  PROVIDES:=
25  EXTRA_DEPENDS:=
26  MAINTAINER:=$(PKG_MAINTAINER)
27  SOURCE:=$(patsubst $(TOPDIR)/%,%,$(CURDIR))
28  ifneq ($(PKG_VERSION),)
29    ifneq ($(PKG_RELEASE),)
30      VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
31    else
32      VERSION:=$(PKG_VERSION)
33    endif
34  else
35    VERSION:=$(PKG_RELEASE)
36  endif
37  ABI_VERSION:=
38  ifneq ($(PKG_FLAGS),)
39    PKGFLAGS:=$(PKG_FLAGS)
40  else
41    PKGFLAGS:=
42  endif
43  ifneq ($(ARCH_PACKAGES),)
44    PKGARCH:=$(ARCH_PACKAGES)
45  else
46    PKGARCH:=$(BOARD)
47  endif
48  DEFAULT:=
49  MENU:=
50  SUBMENU:=
51  SUBMENUDEP:=
52  TITLE:=
53  KCONFIG:=
54  BUILDONLY:=
55  HIDDEN:=
56  URL:=
57  VARIANT:=
58  DEFAULT_VARIANT:=
59  USERID:=
60endef
61
62Build/Patch:=$(Build/Patch/Default)
63ifneq ($(strip $(PKG_UNPACK)),)
64  define Build/Prepare/Default
65	$(PKG_UNPACK)
66	$(Build/Patch)
67  endef
68endif
69
70EXTRA_CXXFLAGS = $(EXTRA_CFLAGS)
71ifeq ($(CONFIG_BUILD_NLS),y)
72    DISABLE_NLS:=
73else
74    DISABLE_NLS:=--disable-nls
75endif
76
77CONFIGURE_PREFIX:=/usr
78CONFIGURE_ARGS = \
79		--target=$(GNU_TARGET_NAME) \
80		--host=$(GNU_TARGET_NAME) \
81		--build=$(GNU_HOST_NAME) \
82		--program-prefix="" \
83		--program-suffix="" \
84		--prefix=$(CONFIGURE_PREFIX) \
85		--exec-prefix=$(CONFIGURE_PREFIX) \
86		--bindir=$(CONFIGURE_PREFIX)/bin \
87		--sbindir=$(CONFIGURE_PREFIX)/sbin \
88		--libexecdir=$(CONFIGURE_PREFIX)/lib \
89		--sysconfdir=/etc \
90		--datadir=$(CONFIGURE_PREFIX)/share \
91		--localstatedir=/var \
92		--mandir=$(CONFIGURE_PREFIX)/man \
93		--infodir=$(CONFIGURE_PREFIX)/info \
94		$(DISABLE_NLS) \
95		$(DISABLE_LARGEFILE) \
96		$(DISABLE_IPV6)
97
98CONFIGURE_VARS = \
99		$(TARGET_CONFIGURE_OPTS) \
100		CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
101		CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CFLAGS)" \
102		CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
103		LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
104
105CONFIGURE_PATH = .
106CONFIGURE_CMD = ./configure
107
108replace_script=$(FIND) $(1) -name $(2) | $(XARGS) chmod u+w; \
109	       $(FIND) $(1) -name $(2) | $(XARGS) -n1 cp --remove-destination \
110	       $(SCRIPT_DIR)/$(2);
111
112define Build/Configure/Default
113	(cd $(PKG_BUILD_DIR)/$(CONFIGURE_PATH)/$(strip $(3)); \
114	if [ -x $(CONFIGURE_CMD) ]; then \
115		$(call replace_script,$(PKG_BUILD_DIR)/$(3),config.guess) \
116		$(call replace_script,$(PKG_BUILD_DIR)/$(3),config.sub) \
117		$(CONFIGURE_VARS) \
118		$(2) \
119		$(CONFIGURE_CMD) \
120		$(CONFIGURE_ARGS) \
121		$(1); \
122	fi; \
123	)
124endef
125
126MAKE_VARS = \
127	CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
128	CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
129	LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"
130
131MAKE_FLAGS = \
132	$(TARGET_CONFIGURE_OPTS) \
133	CROSS="$(TARGET_CROSS)" \
134	ARCH="$(ARCH)"
135
136MAKE_INSTALL_FLAGS = \
137	$(MAKE_FLAGS) \
138	DESTDIR="$(PKG_INSTALL_DIR)"
139
140MAKE_PATH = .
141
142define Build/Compile/Default
143	+$(MAKE_VARS) \
144	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
145		$(MAKE_FLAGS) \
146		$(1);
147endef
148
149define Build/Install/Default
150	$(MAKE_VARS) \
151	$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
152		$(MAKE_INSTALL_FLAGS) \
153		$(if $(1), $(1), install);
154endef
155
156define Build/Dist/Default
157	$(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" dist)
158endef
159
160define Build/DistCheck/Default
161	$(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" distcheck)
162endef
163