45a92cf6e9d9522193e899ff3dd8d495a335cf4b
[openwrt.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 PKG_MAINTAINER ?= OpenWrt Developers Team <openwrt-devel@openwrt.org>
17
18 define Package/Default
19   CONFIGFILE:=
20   SECTION:=opt
21   CATEGORY:=Extra packages
22   DEPENDS:=
23   MDEPENDS:=
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   ifneq ($(PKG_FLAGS),)
38     PKGFLAGS:=$(PKG_FLAGS)
39   else
40     PKGFLAGS:=
41   endif
42   ifneq ($(ARCH_PACKAGES),)
43     PKGARCH:=$(ARCH_PACKAGES)
44   else
45     PKGARCH:=$(BOARD)
46   endif
47   PRIORITY:=optional
48   DEFAULT:=
49   MENU:=
50   SUBMENU:=
51   SUBMENUDEP:=
52   TITLE:=
53   KCONFIG:=
54   BUILDONLY:=
55   HIDDEN:=
56   URL:=
57   VARIANT:=
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
70 CONFIGURE_PREFIX:=/usr
71 CONFIGURE_ARGS = \
72                 --target=$(GNU_TARGET_NAME) \
73                 --host=$(GNU_TARGET_NAME) \
74                 --build=$(GNU_HOST_NAME) \
75                 --program-prefix="" \
76                 --program-suffix="" \
77                 --prefix=$(CONFIGURE_PREFIX) \
78                 --exec-prefix=$(CONFIGURE_PREFIX) \
79                 --bindir=$(CONFIGURE_PREFIX)/bin \
80                 --sbindir=$(CONFIGURE_PREFIX)/sbin \
81                 --libexecdir=$(CONFIGURE_PREFIX)/lib \
82                 --sysconfdir=/etc \
83                 --datadir=$(CONFIGURE_PREFIX)/share \
84                 --localstatedir=/var \
85                 --mandir=$(CONFIGURE_PREFIX)/man \
86                 --infodir=$(CONFIGURE_PREFIX)/info \
87                 $(DISABLE_NLS) \
88                 $(DISABLE_LARGEFILE) \
89                 $(DISABLE_IPV6)
90
91 CONFIGURE_VARS = \
92                 $(TARGET_CONFIGURE_OPTS) \
93                 CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
94                 CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CFLAGS)" \
95                 CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
96                 LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
97
98 CONFIGURE_PATH = .
99 CONFIGURE_CMD = ./configure
100
101 replace_script=$(FIND) $(1) -name $(2) | $(XARGS) chmod u+w; $(FIND) $(1) -name $(2) | $(XARGS) -n1 cp $(SCRIPT_DIR)/$(2);
102
103 define Build/Configure/Default
104         (cd $(PKG_BUILD_DIR)/$(CONFIGURE_PATH)/$(strip $(3)); \
105         if [ -x $(CONFIGURE_CMD) ]; then \
106                 $(call replace_script,$(PKG_BUILD_DIR)/$(3),config.guess) \
107                 $(call replace_script,$(PKG_BUILD_DIR)/$(3),config.sub) \
108                 $(CONFIGURE_VARS) \
109                 $(2) \
110                 $(CONFIGURE_CMD) \
111                 $(CONFIGURE_ARGS) \
112                 $(1); \
113         fi; \
114         )
115 endef
116
117 MAKE_VARS = \
118         CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
119         CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
120         LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"
121
122 MAKE_FLAGS = \
123         $(TARGET_CONFIGURE_OPTS) \
124         CROSS="$(TARGET_CROSS)" \
125         ARCH="$(ARCH)"
126
127 MAKE_INSTALL_FLAGS = \
128         $(MAKE_FLAGS) \
129         DESTDIR="$(PKG_INSTALL_DIR)"
130
131 MAKE_PATH = .
132
133 define Build/Compile/Default
134         +$(MAKE_VARS) \
135         $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
136                 $(MAKE_FLAGS) \
137                 $(1);
138 endef
139
140 define Build/Install/Default
141         $(MAKE_VARS) \
142         $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
143                 $(MAKE_INSTALL_FLAGS) \
144                 $(if $(1), $(1), install);
145 endef
146
147 define Build/Dist/Default
148         $(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" dist)
149 endef
150
151 define Build/DistCheck/Default
152         $(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" distcheck)
153 endef