]> git.ipfire.org Git - ipfire-3.x.git/blame - pkgs/build-essentials/buildsystem/Functions
Merge remote-tracking branch 'stevee/shadow'
[ipfire-3.x.git] / pkgs / build-essentials / buildsystem / Functions
CommitLineData
54fb3a5e
MT
1
2###############################################################################
3#
4# Function definitions of the naoki build system
5#
6###############################################################################
7
8include $(PKGROOT)/gmsl
9
10DO_PACKAGE_FILENAME = $(1)$(call DO_PKG_SUFFIX,$(1))
11
12DO_PKG_SUFFIX = \
13 -$(if $(PKG_VER-$(1)),$(PKG_VER-$(1)),$(PKG_VER))-$(DISTRO_SNAME)$(DISTRO_EPOCH)-$(PKG_ARCH).$(if $(PKG_REL-$(1)),$(PKG_REL-$(1)),$(PKG_REL)).ipk
14
15define DO_INIT
16 # Run ldconfig
17 ldconfig
18endef
19
20define DO_PACKAGE
21 @echo "#####################################################################"
22 @echo "# $(1) - Package build started"
23 @echo "#####################################################################"
24
25 @$(foreach var,$(PKG_VARIABLES),$(if $($(var)-$(1)),$(var)="$(strip $($(var)-$(1)))",$(var)="$(strip $($(var)))")) \
26 $(DIR_TOOLS)/packager $(1) $(DIR_PACKAGES)/$(call DO_PACKAGE_FILENAME,$(1))
27
28 @echo "#####################################################################"
29 @echo "# $(1) - Package build finished"
30 @echo "#####################################################################"
31
32endef
33
34define DO_FILELIST
35 @echo "# Filelist dump"
36 @cd $(BUILDROOT) && find -ls
37endef
38
235217d2
MT
39define DO_PACKAGE_VARIABLE
40 @echo $(if $($(1)-$(2)),$(1)="\"$(strip $($(1)-$(2)))\"",$(1)="\"$(strip $($(1)))\"")
41
42endef
43
44define DO_PACKAGE_INFO
45 @echo "PKG_NAME=\"$(1)\""
46 $(foreach var,$(PKG_VARIABLES),$(call DO_PACKAGE_VARIABLE,$(var),$(1)))
47
48 @echo
49
50endef
51
54fb3a5e
MT
52define __INSTALL_DEFAULT
53 -mkdir -pv $(BUILDROOT)/etc/default
d51f073b 54 cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)/etc/default/$(subst .default,,$(notdir $(1)))
54fb3a5e
MT
55
56endef
57
58define DO_INSTALL_DEFAULT
59 $(foreach file,$(PKG_DEFAULT_FILES),$(call __INSTALL_DEFAULT,$(file)))
60endef
61
62define __INSTALL_INIT
63 -mkdir -pv $(BUILDROOT)/etc/init
d51f073b 64 cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)/etc/init/$(subst .init,.conf,$(notdir $(1)))
54fb3a5e
MT
65
66endef
67
68define DO_INSTALL_INIT
69 $(foreach file,$(PKG_INIT_FILES),$(call __INSTALL_INIT,$(file)))
70endef
71
72define __INSTALL_PAM
73 -mkdir -pv $(BUILDROOT)/etc/pam.d
d51f073b 74 cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)/etc/pam.d/$(subst .pam,,$(notdir $(1)))
54fb3a5e
MT
75
76endef
77
78define DO_INSTALL_PAM
79 $(foreach file,$(PKG_PAM_FILES),$(call __INSTALL_PAM,$(file)))
80endef
81
82define DO_PYTHON_COMPILE
235217d2 83 @find $(BUILDROOT) -name "*.py" | xargs $(BUILD_TOOLS)/py-compile
54fb3a5e
MT
84endef
85
86define DO_FIX_LIBTOOL
87 # remove rpath from libtool
88 @if [ -e "libtool" ]; then \
89 sed -i libtool \
90 -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
91 -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g'; \
92 fi
93endef
94
95define DO_PREPARE
96 # Initialize the environment at the beginning
97 $(DO_INIT)
98
99 @echo "#####################################################################"
100 @echo "# $(PKG_NAME) - Preparation started"
101 @echo "#####################################################################"
102
103 $(STAGE_PREPARE)
104
105 @echo "#####################################################################"
106 @echo "# $(PKG_NAME) - Preparation finished"
107 @echo "#####################################################################"
108endef
109
110define DO_BUILD
111 @echo "#####################################################################"
112 @echo "# $(PKG_NAME) - Build started"
113 @echo "#####################################################################"
114
115 $(STAGE_BUILD)
116
117 @echo "#####################################################################"
118 @echo "# $(PKG_NAME) - Build finished"
119 @echo "#####################################################################"
120endef
121
122define DO_TEST
123 @echo "#####################################################################"
124 @echo "# $(PKG_NAME) - Test started"
125 @echo "#####################################################################"
126
127 $(STAGE_TEST)
128
129 @echo "#####################################################################"
130 @echo "# $(PKG_NAME) - Test finished"
131 @echo "#####################################################################"
132endef
133
134define DO_INSTALL
135 @echo "#####################################################################"
136 @echo "# $(PKG_NAME) - Install started"
137 @echo "#####################################################################"
138
139 -mkdir -pv $(BUILDROOT)
140
141 $(STAGE_INSTALL)
142
143 $(DO_INSTALL_DEFAULT)
144 $(DO_INSTALL_INIT)
145 $(DO_INSTALL_PAM)
146
147 $(DO_PYTHON_COMPILE)
148
149 @echo "#####################################################################"
150 @echo "# $(PKG_NAME) - Install finished"
151 @echo "#####################################################################"
152
153 $(DO_QUALITY_AGENT)
154 $(DO_FILELIST)
155endef
156
157STAGE_PACKAGE_TARGETS = $(call reverse,$(PKG_PACKAGES_FILES))
158STAGE_DONE = $(ROOT)/.done
159
160define STAGE_PREPARE
161 $(if $(PKG_TARBALL),cd $(DIR_SRC) && $(DO_EXTRACT) $(DIR_DL)/$(PKG_TARBALL))
162
163 $(if $(PKG_PATCHES),$(DO_PATCHES))
164
165 $(STAGE_PREPARE_CMDS)
166 $(STAGE_PREPARE_CMDS2)
167endef
168
169STAGE_BUILD_TARGETS =
170
171define STAGE_BUILD
172 cd $(DIR_APP) && \
173 $(CONFIGURE_ENVIRONMENT) \
174 ./configure \
175 $(CONFIGURE_OPTIONS)
176
177 $(DO_FIX_LIBTOOL)
178 $(STAGE_CONFIGURE_CMDS)
179
180 cd $(DIR_APP) && make $(STAGE_BUILD_TARGETS) $(PARALLELISMFLAGS)
181 $(STAGE_BUILD_CMDS)
182endef
183
184STAGE_INSTALL_TARGETS = install
185
186define STAGE_INSTALL
187 cd $(DIR_APP) && make $(STAGE_INSTALL_TARGETS) DESTDIR=$(BUILDROOT)
188
189 $(STAGE_INSTALL_CMDS)
190endef