blob: c7a3e93e1dfd69cbc9c4cda5548d8cda60602883 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001# SPDX-License-Identifier: GPL-2.0-only
2#
3# Copyright (C) 2006-2020 OpenWrt.org
4
5PKG_DEFAULT_DEPENDS = +libc
6
7ifneq ($(PKG_NAME),toolchain)
8 PKG_FIXUP_DEPENDS = $(if $(filter kmod-%,$(1)),$(2),$(PKG_DEFAULT_DEPENDS) $(filter-out $(PKG_DEFAULT_DEPENDS),$(2)))
9else
10 PKG_FIXUP_DEPENDS = $(2)
11endif
12
13define Package/Default
14 CONFIGFILE:=
15 SECTION:=opt
16 CATEGORY:=Extra packages
17 DEPENDS:=
18 MDEPENDS:=
19 CONFLICTS:=
20 PROVIDES:=
21 EXTRA_DEPENDS:=
22 MAINTAINER:=$(PKG_MAINTAINER)
23 SOURCE:=$(patsubst $(TOPDIR)/%,%,$(patsubst $(TOPDIR)/package/%,feeds/base/%,$(CURDIR)))
24 ifneq ($(PKG_VERSION),)
25 ifneq ($(PKG_RELEASE),)
26 VERSION:=$(PKG_VERSION)-r$(PKG_RELEASE)
27 else
28 VERSION:=$(PKG_VERSION)
29 endif
30 else
31 VERSION:=$(PKG_RELEASE)
32 endif
33 ABI_VERSION:=
34 ifneq ($(PKG_FLAGS),)
35 PKGFLAGS:=$(PKG_FLAGS)
36 else
37 PKGFLAGS:=
38 endif
39 ifneq ($(ARCH_PACKAGES),)
40 PKGARCH:=$(ARCH_PACKAGES)
41 else
42 PKGARCH:=$(BOARD)
43 endif
44 DEFAULT:=
45 MENU:=
46 SUBMENU:=
47 SUBMENUDEP:=
48 TITLE:=
49 KCONFIG:=
50 BUILDONLY:=
51 HIDDEN:=
52 URL:=$(PKG_URL)
53 VARIANT:=
54 DEFAULT_VARIANT:=
55 USERID:=
56 ALTERNATIVES:=
57 LICENSE:=$(PKG_LICENSE)
58 LICENSE_FILES:=$(PKG_LICENSE_FILES)
59 FILE_MODES:=$(PKG_FILE_MODES)
60endef
61
62Build/Patch:=$(Build/Patch/Default)
63ifneq ($(strip $(PKG_UNPACK)),)
64 define Build/Prepare/Default
65 $(PKG_UNPACK)
66 [ ! -d ./src/ ] || $(CP) ./src/. $(PKG_BUILD_DIR)
67 $(Build/Patch)
68 endef
69endif
70
71EXTRA_CXXFLAGS = $(EXTRA_CFLAGS)
72ifeq ($(CONFIG_BUILD_NLS),y)
73 DISABLE_NLS:=
74else
75 DISABLE_NLS:=--disable-nls
76endif
77
78CONFIGURE_PREFIX:=/usr
79CONFIGURE_ARGS = \
80 --target=$(GNU_TARGET_NAME) \
81 --host=$(GNU_TARGET_NAME) \
82 --build=$(GNU_HOST_NAME) \
83 --disable-dependency-tracking \
84 --program-prefix="" \
85 --program-suffix="" \
86 --prefix=$(CONFIGURE_PREFIX) \
87 --exec-prefix=$(CONFIGURE_PREFIX) \
88 --bindir=$(CONFIGURE_PREFIX)/bin \
89 --sbindir=$(CONFIGURE_PREFIX)/sbin \
90 --libexecdir=$(CONFIGURE_PREFIX)/lib \
91 --sysconfdir=/etc \
92 --datadir=$(CONFIGURE_PREFIX)/share \
93 --localstatedir=/var \
94 --mandir=$(CONFIGURE_PREFIX)/man \
95 --infodir=$(CONFIGURE_PREFIX)/info \
96 --enable-year2038 \
97 $(DISABLE_NLS) \
98 $(DISABLE_IPV6)
99
100CONFIGURE_VARS = \
101 $(TARGET_CONFIGURE_OPTS) \
102 CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
103 CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)" \
104 CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
105 LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
106
107CONFIGURE_PATH = .
108CONFIGURE_CMD = ./configure
109
110replace_script=$(FIND) $(1) -name $(2) | $(XARGS) chmod u+w; \
111 $(FIND) $(1) -name $(2) | $(XARGS) -n1 cp --remove-destination \
112 $(SCRIPT_DIR)/$(2);
113
114define Build/Configure/Default
115 (cd $(PKG_BUILD_DIR)/$(CONFIGURE_PATH)/$(strip $(3)); \
116 if [ -x $(CONFIGURE_CMD) ]; then \
117 $(call replace_script,$(PKG_BUILD_DIR)/$(3),config.guess) \
118 $(call replace_script,$(PKG_BUILD_DIR)/$(3),config.sub) \
119 $(CONFIGURE_VARS) \
120 $(2) \
121 $(CONFIGURE_CMD) \
122 $(CONFIGURE_ARGS) \
123 $(1); \
124 fi; \
125 )
126endef
127
128MAKE_VARS = \
129 CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
130 CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
131 LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"
132
133MAKE_FLAGS = \
134 $(TARGET_CONFIGURE_OPTS) \
135 CROSS="$(TARGET_CROSS)" \
136 ARCH="$(ARCH)"
137
138MAKE_INSTALL_FLAGS = \
139 $(MAKE_FLAGS) \
140 DESTDIR="$(PKG_INSTALL_DIR)"
141
142MAKE_PATH ?= .
143
144define Build/Compile/Default
145 +$(MAKE_VARS) \
146 $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
147 $(MAKE_FLAGS) \
148 $(1);
149endef
150
151define Build/Install/Default
152 $(MAKE_VARS) \
153 $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
154 $(MAKE_INSTALL_FLAGS) \
155 $(if $(PKG_SUBDIRS),SUBDIRS='$$$$(wildcard $(PKG_SUBDIRS))') \
156 $(if $(1), $(1), install);
157endef
158
159define Build/Dist/Default
160 $(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" dist)
161endef
162
163define Build/DistCheck/Default
164 $(call Build/Compile/Default, DESTDIR="$(PKG_BUILD_DIR)/tmp" CC="$(TARGET_CC)" distcheck)
165endef