build: allow packages with build variants to explicitly select a default variant
[openwrt/staging/florian.git] / include / package-defaults.mk
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
8 PKG_DEFAULT_DEPENDS = +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread
9
10 ifneq ($(PKG_NAME),toolchain)
11 PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2)))
12 else
13 PKG_FIXUP_DEPENDS = $(2)
14 endif
15
16 define Package/Default
17 CONFIGFILE:=
18 SECTION:=opt
19 CATEGORY:=Extra packages
20 DEPENDS:=
21 MDEPENDS:=
22 PROVIDES:=
23 EXTRA_DEPENDS:=
24 MAINTAINER:=$(PKG_MAINTAINER)
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 ABI_VERSION:=
36 ifneq ($(PKG_FLAGS),)
37 PKGFLAGS:=$(PKG_FLAGS)
38 else
39 PKGFLAGS:=
40 endif
41 ifneq ($(ARCH_PACKAGES),)
42 PKGARCH:=$(ARCH_PACKAGES)
43 else
44 PKGARCH:=$(BOARD)
45 endif
46 DEFAULT:=
47 MENU:=
48 SUBMENU:=
49 SUBMENUDEP:=
50 TITLE:=
51 KCONFIG:=
52 BUILDONLY:=
53 HIDDEN:=
54 URL:=
55 VARIANT:=
56 DEFAULT_VARIANT:=
57 USERID:=
58 endef
59
60 Build/Patch:=$(Build/Patch/Default)
61 ifneq ($(strip $(PKG_UNPACK)),)
62 define Build/Prepare/Default
63 $(PKG_UNPACK)
64 $(Build/Patch)
65 endef
66 endif
67
68 EXTRA_CXXFLAGS = $(EXTRA_CFLAGS)
69 DISABLE_NLS:=--disable-nls
70
71 CONFIGURE_PREFIX:=/usr
72 CONFIGURE_ARGS = \
73 --target=$(GNU_TARGET_NAME) \
74 --host=$(GNU_TARGET_NAME) \
75 --build=$(GNU_HOST_NAME) \
76 --program-prefix="" \
77 --program-suffix="" \
78 --prefix=$(CONFIGURE_PREFIX) \
79 --exec-prefix=$(CONFIGURE_PREFIX) \
80 --bindir=$(CONFIGURE_PREFIX)/bin \
81 --sbindir=$(CONFIGURE_PREFIX)/sbin \
82 --libexecdir=$(CONFIGURE_PREFIX)/lib \
83 --sysconfdir=/etc \
84 --datadir=$(CONFIGURE_PREFIX)/share \
85 --localstatedir=/var \
86 --mandir=$(CONFIGURE_PREFIX)/man \
87 --infodir=$(CONFIGURE_PREFIX)/info \
88 $(DISABLE_NLS) \
89 $(DISABLE_LARGEFILE) \
90 $(DISABLE_IPV6)
91
92 CONFIGURE_VARS = \
93 $(TARGET_CONFIGURE_OPTS) \
94 CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
95 CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CFLAGS)" \
96 CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
97 LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
98
99 CONFIGURE_PATH = .
100 CONFIGURE_CMD = ./configure
101
102 replace_script=$(FIND) $(1) -name $(2) | $(XARGS) chmod u+w; \
103 $(FIND) $(1) -name $(2) | $(XARGS) -n1 cp --remove-destination \
104 $(SCRIPT_DIR)/$(2);
105
106 define Build/Configure/Default
107 (cd $(PKG_BUILD_DIR)/$(CONFIGURE_PATH)/$(strip $(3)); \
108 if [ -x $(CONFIGURE_CMD) ]; then \
109 $(call replace_script,$(PKG_BUILD_DIR)/$(3),config.guess) \
110 $(call replace_script,$(PKG_BUILD_DIR)/$(3),config.sub) \
111 $(CONFIGURE_VARS) \
112 $(2) \
113 $(CONFIGURE_CMD) \
114 $(CONFIGURE_ARGS) \
115 $(1); \
116 fi; \
117 )
118 endef
119
120 MAKE_VARS = \
121 CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
122 CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
123 LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"
124
125 MAKE_FLAGS = \
126 $(TARGET_CONFIGURE_OPTS) \
127 CROSS="$(TARGET_CROSS)" \
128 ARCH="$(ARCH)"
129
130 MAKE_INSTALL_FLAGS = \
131 $(MAKE_FLAGS) \
132 DESTDIR="$(PKG_INSTALL_DIR)"
133
134 MAKE_PATH = .
135
136 define Build/Compile/Default
137 +$(MAKE_VARS) \
138 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
139 $(MAKE_FLAGS) \
140 $(1);
141 endef
142
143 define Build/Install/Default
144 $(MAKE_VARS) \
145 $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
146 $(MAKE_INSTALL_FLAGS) \
147 $(if $(1), $(1), install);
148 endef
149
150 define Build/Dist/Default
151 $(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" dist)
152 endef
153
154 define Build/DistCheck/Default
155 $(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" distcheck)
156 endef