1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 # * pre/do/post-foo are always defined here, but empty. This is so
5 # that we can call it (BSD make has .if target(foo) but GNU not)
6 # and it won't error out.
7 # * ${_foo_COOKIE} are the actual targets
9 # * define "manual" if you need your own method
10 # -> define a do-foo: target in the Makefile
11 # * if you have a style -> define a pre-foo: and post-foo: if they
12 # are required, but the do-foo: magic is done here
14 REORDER_DEPENDENCIES
= ${TOPDIR}/scripts
/automake.dep
19 ${_CONFIGURE_COOKIE}: ${_PATCH_COOKIE}
20 @sed
-e
'/^#/d' ${REORDER_DEPENDENCIES} | \
21 tsort | while read f
; do \
25 find .
-name
"$${f#/}" -print | while read i
; do \
29 if
test -e
"$$f" ; then \
35 @
${MAKE} pre-configure
$(MAKE_TRACE
)
37 ifneq ($(filter manual
,${CONFIG_STYLE}),)
38 env
${CONFIGURE_ENV} ${MAKE} do-configure
$(MAKE_TRACE
)
39 else ifneq ($(filter minimal
,${CONFIG_STYLE}),)
40 @
$(CMD_TRACE
) "configuring... "
42 for i in
$$(find .
-name config.sub
);do \
45 ${CP} ${SCRIPT_DIR}/config.sub
$$i; \
48 for i in
$$(find .
-name config.guess
);do \
51 ${CP} ${SCRIPT_DIR}/config.guess
$$i; \
54 cd
${WRKBUILD}; rm -f config.
{cache
,status
}; \
55 env
${CONFIGURE_ENV} \
56 ${BASH} ${WRKSRC}/${CONFIGURE_PROG} \
57 ${CONFIGURE_ARGS} $(MAKE_TRACE
)
58 else ifeq ($(strip ${CONFIG_STYLE}),)
59 @
$(CMD_TRACE
) "configuring... "
61 for i in
$$(find .
-name config.sub
);do \
64 ${CP} ${SCRIPT_DIR}/config.sub
$$i; \
67 for i in
$$(find .
-name config.guess
);do \
70 ${CP} ${SCRIPT_DIR}/config.guess
$$i; \
73 cd
${WRKBUILD}; rm -f config.
{cache
,status
}; \
74 env
${CONFIGURE_ENV} \
75 ${BASH} ${WRKSRC}/${CONFIGURE_PROG} ${CONFIGURE_TRIPLE} \
80 --datadir=/usr
/share \
81 --mandir=/usr
/share
/man \
82 --libexecdir
=/usr
/libexec \
83 --localstatedir
=/var \
87 --disable-dependency-tracking \
88 --disable-libtool-lock \
90 ${CONFIGURE_ARGS} $(MAKE_TRACE
)
92 @echo
"Invalid CONFIG_STYLE '${CONFIG_STYLE}'" >&2
95 @
${MAKE} post-configure
$(MAKE_TRACE
)
98 # do a parallel build if requested && package doesn't force disable it
99 ifeq (${ADK_MAKE_PARALLEL},y
)
100 ifeq ($(strip ${PKG_NOPARALLEL}),)
101 MAKE_FLAGS
+= -j
${ADK_MAKE_JOBS}
108 ${_BUILD_COOKIE}: ${_CONFIGURE_COOKIE}
109 @env
${MAKE_ENV} ${MAKE} pre-build
$(MAKE_TRACE
)
110 @
$(CMD_TRACE
) "compiling... "
112 ifneq ($(filter manual
,${BUILD_STYLE}),)
113 env
${MAKE_ENV} ${MAKE} do-build
$(MAKE_TRACE
)
114 else ifeq ($(strip ${BUILD_STYLE}),)
115 cd
${WRKBUILD} && env
${MAKE_ENV} ${MAKE} -f
${MAKE_FILE} \
116 ${MAKE_FLAGS} ${ALL_TARGET} $(MAKE_TRACE
)
118 @echo
"Invalid BUILD_STYLE '${BUILD_STYLE}'" >&2
121 @env
${MAKE_ENV} ${MAKE} post-build
$(MAKE_TRACE
)
127 spkg-install
: ${ALL_POSTINST}
128 ${_FAKE_COOKIE}: ${_BUILD_COOKIE}
129 -rm -f
${_ALL_CONTROLS}
130 @mkdir
-p
'${STAGING_PKG_DIR}' ${WRKINST} '${STAGING_DIR}/scripts'
131 @
${MAKE} ${_ALL_CONTROLS} $(MAKE_TRACE
)
132 @env
${MAKE_ENV} ${MAKE} pre-install
$(MAKE_TRACE
)
133 ifneq ($(filter manual
,${INSTALL_STYLE}),)
134 env
${MAKE_ENV} ${MAKE} do-install
$(MAKE_TRACE
)
135 else ifeq ($(strip ${INSTALL_STYLE}),)
136 cd
${WRKBUILD} && env
${MAKE_ENV} ${MAKE} -f
${MAKE_FILE} \
137 DESTDIR
='${WRKINST}' ${FAKE_FLAGS} ${INSTALL_TARGET} $(MAKE_TRACE
)
138 ifeq (,$(filter libonly
,${PKG_OPTS}))
139 env
${MAKE_ENV} ${MAKE} post-install
$(MAKE_TRACE
)
142 @echo
"Invalid INSTALL_STYLE '${INSTALL_STYLE}'" >&2
145 @for a in
${WRKINST}/usr
/bin
/*-config
; do \
146 [[ -e
$$a ]] || continue
; \
147 sed
-e
"s,^prefix=.*,prefix=${STAGING_TARGET_DIR}/usr," $$a > \
148 ${STAGING_DIR}/usr
/bin
/$$(basename $$a); \
149 chmod u
+x
${STAGING_DIR}/usr
/bin
/$$(basename $$a); \
150 [[ "$$(basename $$a)" != "pkg-config" ]] && cp
${STAGING_DIR}/usr
/bin
/$$(basename $$a) ${STAGING_DIR}/scripts
; \
151 echo
"scripts/$$(basename $$a)" \
152 >>'${STAGING_PKG_DIR}/${PKG_NAME}.scripts'; \
154 @for a in
${WRKINST}/usr
/lib
/pkgconfig
/*.
pc; do \
155 [[ -e
$$a ]] || continue
; \
156 sed
-e
"s,^prefix=.*,prefix=${STAGING_TARGET_DIR}/usr," $$a > \
157 ${STAGING_DIR}/usr
/lib
/pkgconfig
/$$(basename $$a); \
159 env
${MAKE_ENV} ${MAKE} spkg-install
$(MAKE_TRACE
)
160 ifeq (,$(filter noremove
,${PKG_OPTS}))
161 @if
test -s
'${STAGING_PKG_DIR}/${PKG_NAME}'; then \
162 cd
'${STAGING_DIR}'; \
165 done
<'${STAGING_PKG_DIR}/${PKG_NAME}'; \
168 @
rm -f
'${STAGING_PKG_DIR}/${PKG_NAME}'
170 if
[ "${PKG_NAME}" != "uClibc" -a
"${PKG_NAME}" != "eglibc" -a
"${PKG_NAME}" != "glibc" -a
"${PKG_NAME}" != "libpthread" -a
"${PKG_NAME}" != "libstdcxx" -a
"${PKG_NAME}" != "libgcc" -a
"${PKG_NAME}" != "libthread-db" ];then \
171 find lib \
( -name lib\
*.so\
* -o
-name lib\
*.a \
) \
172 -exec echo
'WARNING: ${PKG_NAME} installs files in /lib -' \
173 ' fix this!' >&2 \
; -quit
2>/dev
/null
; fi
;\
174 find usr
! -type d
2>/dev
/null | \
175 grep
-E
-v
-e
'^usr/lib/pkgconfig' -e
'^usr/share' -e
'^usr/src' -e
'^usr/doc' -e
'^usr/local' -e
'^usr/man' -e
'^usr/info' -e
'^usr/lib/libc.so' -e
'^usr/bin/[a-z0-9-]+-config' -e
'^/usr/lib/libpthread_nonshared.a' | \
176 tee
'${STAGING_PKG_DIR}/${PKG_NAME}' | \
177 $(TOOLS_DIR
)/cpio
-padlmu
'${STAGING_DIR}'
178 @cd
'${STAGING_DIR}'; grep
'usr/lib/.*\.la$$' \
179 '${STAGING_PKG_DIR}/${PKG_NAME}' | while read fn
; do \
181 $(SED
) "s,\(^libdir='\| \|-L\|^dependency_libs='\)/usr/lib,\1$(STAGING_TARGET_DIR)/usr/lib,g" $$fn; \
183 ifeq (,$(filter noscripts
,${PKG_OPTS}))
184 @cd
'${STAGING_DIR}'; grep
'usr/s*bin/' \
185 '${STAGING_PKG_DIR}/${PKG_NAME}' | \
187 b
="$$(dd if="$$fn" bs=2 count=1 2>/dev/null)"; \
188 [[ $$b = '#!' ]] || continue
; \
189 cp
"$$fn" scripts
/; \
190 echo
"scripts/$$(basename "$$fn")" \
191 >>'${STAGING_PKG_DIR}/${PKG_NAME}'; \
194 -@
test -e
'${STAGING_PKG_DIR}/${PKG_NAME}.scripts' && \
195 cat
'${STAGING_PKG_DIR}/${PKG_NAME}.scripts' >> '${STAGING_PKG_DIR}/${PKG_NAME}' || echo
200 for f in
${ALL_IPKGS}; do \
201 [[ -e
$$f ]] && clean=1; \
203 [[ $$clean = 0 ]] ||
${MAKE} clean
206 package
: ${ALL_IPKGS}
207 @cd
${WRKDIR}/fake-
${CPU_ARCH} || exit
1; \
208 y
=; sp
=; for x in
${ALL_IDIRS}; do \
209 y
="$$y$$sp$${x#$(WRKDIR)/fake-${CPU_ARCH}/}"; \
211 done
; ls
=; ln
=; x
=1; [[ -z
$$y ]] || \
212 md5sum
$$(find
$$y -type f
) | sed
-e
"s/*//" | \
213 while read sum name
; do \
214 inode
=$$(ls
-i
"$$name"); \
215 echo
"$$sum $${inode%% *} $$name"; \
216 done |
sort | while read sum inode name
; do \
217 if
[[ $$sum = $$ls ]]; then \
218 [[ $$li = $$inode ]] && continue
; \
220 1) echo
'WARNING: duplicate files found in' \
221 'package "${PKG_NAME}"! Fix them.' >&2; \
224 2) echo
-n
"> $$ln "; \
242 touch
${_IPKGS_COOKIE}
244 clean-targets
: clean-dev-generic
247 ifeq (,$(filter noremove
,${PKG_OPTS}))
248 @if
test -s
'${STAGING_PKG_DIR}/${PKG_NAME}'; then \
249 cd
'${STAGING_DIR}'; \
252 done
<'${STAGING_PKG_DIR}/${PKG_NAME}'; \
255 @
rm -f
'${STAGING_PKG_DIR}/${PKG_NAME}'