source: common/libs/func_wrt_Makefile@ e40a68e

2.4 ablfs-more legacy new_features trunk
Last change on this file since e40a68e was 083e2fd, checked in by Matthew Burgess <matthew@…>, 12 years ago

Handle systemd-provided Udev.

  • Property mode set to 100644
File size: 9.1 KB
RevLine 
[fe30c61]1#!/bin/bash
2
3# $Id$
4
5#=== MAKEFILE HEADER ===
6
[195ed9f]7#----------------------------------#
8wrt_Makefile_header() { #
9#----------------------------------#
10(
11 cat << EOF
12# This file is automatically generated by jhalfs
[fe30c61]13# DO NOT EDIT THIS FILE MANUALLY
14#
[195ed9f]15# Generated on `date "+%F %X %Z"`
16
[aec4483]17
18SHELL = /bin/bash
[195ed9f]19
20SRC = /sources
21MOUNT_PT = $BUILDDIR
22PKG_LST = $PKG_LST
23LUSER = $LUSER
24LGROUP = $LGROUP
[962793a]25LHOME = $LHOME
[195ed9f]26SCRIPT_ROOT = $SCRIPT_ROOT
27
28BASEDIR = \$(MOUNT_PT)
29SRCSDIR = \$(BASEDIR)/sources
30CMDSDIR = \$(BASEDIR)/\$(SCRIPT_ROOT)/$PROGNAME-commands
[93346ee]31LOGDIR = \$(BASEDIR)/\$(SCRIPT_ROOT)/$LOGDIRBASE
32TESTLOGDIR = \$(BASEDIR)/\$(SCRIPT_ROOT)/$TESTLOGDIRBASE
[195ed9f]33
34crCMDSDIR = /\$(SCRIPT_ROOT)/$PROGNAME-commands
[93346ee]35crLOGDIR = /\$(SCRIPT_ROOT)/$LOGDIRBASE
36crTESTLOGDIR = /\$(SCRIPT_ROOT)/$TESTLOGDIRBASE
37crFILELOGDIR = /\$(SCRIPT_ROOT)/$FILELOGDIRBASE
[195ed9f]38
39SU_LUSER = su - \$(LUSER) -c
[962793a]40LUSER_HOME = \$(LHOME)/\$(LUSER)
[195ed9f]41PRT_DU = echo -e "\nKB: \`du -skx --exclude=\$(SCRIPT_ROOT) --exclude=lost+found \$(MOUNT_PT) \`\n"
42PRT_DU_CR = echo -e "\nKB: \`du -skx --exclude=\$(SCRIPT_ROOT) --exclude=lost+found / \`\n"
43
[3e7ceed]44ADD_REPORT = $REPORT
45ADD_CUSTOM_TOOLS = $CUSTOM_TOOLS
46ADD_BLFS_TOOLS = $BLFS_TOOL
[7072e1f]47PKGMNGT = $PKGMNGT
[1838bc7]48
49
[195ed9f]50export PATH := \${PATH}:/usr/sbin
51
52include makefile-functions
53
54EOF
55) > $MKFILE
56}
[fe30c61]57
58#=======================
59
60
61#==== PACKAGES NAMES ===
62
63#----------------------------------#
64get_package_tarball_name() { #
65#----------------------------------#
66 local script_name=`echo ${1} | sed -e 's@[0-9]\{1\}-@@'`
67
68 # The use of 'head' is necessary to limit the return value to the FIRST match..
69 # hopefully this will not cause problems.
70 #
71 case $script_name in
72 tcl) echo $(grep "^tcl" $JHALFSDIR/pkg_tarball_list | head -n1 )
73 ;;
[608fbe1]74 iputils) echo $(grep "^iputils" $JHALFSDIR/pkg_tarball_list | head -n1 )
75 ;;
[7214dad]76 powerpc-utils) echo $(grep "^powerpc-utils" $JHALFSDIR/pkg_tarball_list | head -n1 )
77 ;;
[3c38ab0]78 uClibc)
79 if [[ "${PROGNAME}" = "clfs3" ]]; then
80 echo $(grep "^uClibc-" $JHALFSDIR/pkg_tarball_list | head -n1 )
[7214dad]81 else
[3c38ab0]82 echo $(grep "^$script_name-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
[7214dad]83 fi
84 ;;
[fe30c61]85 linux-headers)
[31a37db]86 if [[ "${PROGNAME}" = "lfs" ]] || [[ "${PROGNAME}" = "hlfs" ]] || [[ "${PROGNAME}" = "clfs" ]]; then
[fe30c61]87 # Uses kernel headers directly
88 echo $(grep "^linux-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
89 else
[608fbe1]90 # CLFS{2,3} used to use massaged headers package
91 # echo $(grep "^linux-headers-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
92 echo $(grep "^linux-[[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
[fe30c61]93 fi
94 ;;
[d8006a00]95 expect) echo $(grep "^expect" $JHALFSDIR/pkg_tarball_list | head -n1 )
96 ;;
[608fbe1]97 e2fsprogs-libs) echo $(grep "^e2fsprogs" $JHALFSDIR/pkg_tarball_list | head -n1 )
98 ;;
99 util-linux-libs) echo $(grep "^util-linux" $JHALFSDIR/pkg_tarball_list | head -n1 )
100 ;;
[4b54394]101 xz-utils) echo $(grep "^xz" $JHALFSDIR/pkg_tarball_list | head -n1 )
[083e2fd]102 ;;
[7072e1f]103 sqlite) echo $(grep "^sqlite" $JHALFSDIR/pkg_tarball_list | head -n1 )
[083e2fd]104 ;;
105 udev) echo $(grep "^systemd" $JHALFSDIR/pkg_tarball_list | head -n1 )
106 ;;
[7072e1f]107 *) echo $(grep "^$script_name[_-][[:digit:]]" $JHALFSDIR/pkg_tarball_list | head -n1 )
[fe30c61]108 ;;
109 esac
110
111}
112
113#=======================
114
115
116#==== TARGET HEADER ====
117
118#----------------------------------#
119LUSER_wrt_target() { # Create target and initialize log file
120#----------------------------------#
121 local i=$1
122 local PREV=$2
123(
124cat << EOF
125
126$i: $PREV
127 @\$(call echo_message, Building)
[75d6d1c]128${NO_PROGRESS} @export BASHBIN=\$(SHELL) && \$(SHELL) progress_bar.sh \$@ \$\$PPID &
[fe30c61]129 @echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@
130 @\$(PRT_DU) >>logs/\$@
131EOF
132) >> $MKFILE.tmp
133}
134
135#----------------------------------#
136CHROOT_wrt_target() { # Create target and initialize log file
137#----------------------------------#
138 local i=$1
139 local PREV=$2
140(
141cat << EOF
142
143$i: $PREV
144 @\$(call echo_message, Building)
[75d6d1c]145${NO_PROGRESS} @export BASHBIN=\$(SHELL) && \$(SHELL) progress_bar.sh \$@ \$\$PPID &
[6bb080e]146 @echo "\$(nl_)\`date\`\$(nl_)" >logs/\$@
147 @\$(PRT_DU_CR) >>logs/\$@
[fe30c61]148EOF
149) >> $MKFILE.tmp
150}
151
152#=======================
153
154
155#======== UNPACK =======
156
157#----------------------------------#
158LUSER_wrt_unpack() { # Unpack and set 'ROOT' var
159#----------------------------------#
160 local FILE=$1
161 local optSAVE_PREVIOUS=$2
162
163 if [[ "${optSAVE_PREVIOUS}" != "1" ]]; then
164(
165cat << EOF
166 @\$(call remove_existing_dirs,$FILE)
167EOF
168) >> $MKFILE.tmp
169 fi
170
171(
172cat << EOF
173 @\$(call unpack,$FILE)
174 @\$(call get_pkg_root_LUSER)
175EOF
176) >> $MKFILE.tmp
177}
178
179#----------------------------------#
180CHROOT_Unpack() { #
181#----------------------------------#
182 local FILE=$1
183 local optSAVE_PREVIOUS=$2
184
185 if [ "${optSAVE_PREVIOUS}" != "1" ]; then
186(
187cat << EOF
188 @\$(call remove_existing_dirs2,$FILE)
189EOF
190) >> $MKFILE.tmp
191 fi
192(
193cat << EOF
[1f81129]194 @\$(call unpack2,$FILE)
[fe30c61]195 @\$(call get_pkg_root2)
196EOF
197) >> $MKFILE.tmp
198}
199
200#=======================
201
202
203#===== TESTS LOGS ======
204
205#----------------------------------#
206LUSER_wrt_test_log() { # Initialize testsuite log file
207#----------------------------------#
208 local TESTLOGFILE=$1
209(
210cat << EOF
[6bb080e]211 @echo "export TEST_LOG=\$(TESTLOGDIR)/$TESTLOGFILE" >> envars && \\
[10c8b78]212 echo "\$(nl_)\`date\`\$(nl_)" >\$(TESTLOGDIR)/\$@
[fe30c61]213EOF
214) >> $MKFILE.tmp
215}
216
217#----------------------------------#
218CHROOT_wrt_test_log() { #
219#----------------------------------#
220 local TESTLOGFILE=$1
221(
222cat << EOF
[8f2c086]223 @echo "export TEST_LOG=\$(crTESTLOGDIR)/$TESTLOGFILE" >> envars && \\
[6bb080e]224 echo "\$(nl_)\`date\`\$(nl_)" >test-logs/\$@
[fe30c61]225EOF
226) >> $MKFILE.tmp
227}
228
229#=======================
230
231
232#======== RUN AS =======
233
234#----------------------------------#
235wrt_RunAsRoot() { # Some scripts must be run as root..
236#----------------------------------#
237 local MOUNT_ENV
[8f2c086]238 local file=$1
[fe30c61]239
240 case ${PROGNAME} in
241 lfs ) MOUNT_ENV="LFS" ;;
242 clfs ) MOUNT_ENV="CLFS" ;;
243 clfs2 ) MOUNT_ENV="CLFS" ;;
244 clfs3 ) MOUNT_ENV="CLFS" ;;
245 hlfs ) MOUNT_ENV="HLFS" ;;
246 *) echo "undefined progname $PROGNAME"; exit 1 ;;
247 esac
248
249(
250cat << EOF
[68713c9]251 @export ${MOUNT_ENV}=\$(MOUNT_PT) && \\
[0210014]252 ${PROGNAME}-commands/`dirname $file`/\$@ >>logs/\$@ 2>&1 && \\
[fe30c61]253 \$(PRT_DU) >>logs/\$@
254EOF
255) >> $MKFILE.tmp
256}
257
258#----------------------------------#
[0210014]259LUSER_wrt_RunAsUser() { # Calculate time with perl, footer to log file
[fe30c61]260#----------------------------------#
261 local file=$1
262
263(
264cat << EOF
[68713c9]265 @source ~/.bashrc && \\
[0210014]266 \$(CMDSDIR)/`dirname $file`/\$@ >> logs/\$@ 2>&1 && \\
267 \$(PRT_DU) >>logs/\$@
[fe30c61]268EOF
269) >> $MKFILE.tmp
270}
271
272#----------------------------------#
273CHROOT_wrt_RunAsRoot() { #
274#----------------------------------#
275 local file=$1
276(
277cat << EOF
[68713c9]278 @source envars && \\
[0210014]279 \$(crCMDSDIR)/`dirname $file`/\$@ >>logs/\$@ 2>&1 && \\
[fe30c61]280 \$(PRT_DU_CR) >>logs/\$@
281EOF
282) >> $MKFILE.tmp
283
284}
285
286#=======================
287
288
289#====== COPY FSTAB =====
290
291#----------------------------------#
292LUSER_wrt_CopyFstab() { #
293#----------------------------------#
294(
295cat << EOF
[68713c9]296 @cp -v \$(MOUNT_PT)/sources/fstab \$(MOUNT_PT)/etc/fstab >>logs/\$@ 2>&1 && \\
[0210014]297 \$(PRT_DU) >>logs/\$@
[fe30c61]298EOF
299) >> $MKFILE.tmp
300}
301
302#----------------------------------#
303CHROOT_wrt_CopyFstab() { #
304#----------------------------------#
305(
306cat << EOF
[68713c9]307 @cp -v /sources/fstab /etc/fstab >>logs/\$@ 2>&1 && \\
[0210014]308 \$(PRT_DU_CR) >>logs/\$@
[fe30c61]309EOF
310) >> $MKFILE.tmp
311}
312
313#=======================
314
315
[93346ee]316#==== INSTALLED FILES LOGS ====
317
[f546320]318#----------------------------------#
319LUSER_wrt_TouchTimestamp() { #
320#----------------------------------#
321(
322cat << EOF
323 @\$(call touch_timestamp_LUSER)
324EOF
325) >> $MKFILE.tmp
326}
327
[93346ee]328#----------------------------------#
329CHROOT_wrt_TouchTimestamp() { #
330#----------------------------------#
331(
332cat << EOF
333 @\$(call touch_timestamp)
334EOF
335) >> $MKFILE.tmp
336}
337
[f546320]338#----------------------------------#
339LUSER_wrt_LogNewFiles() { #
340#----------------------------------#
[e639536]341 local name=`echo ${1} | sed 's/[0-9]-//'`
[f546320]342(
343cat << EOF
344 @\$(call log_new_files_LUSER,$name)
345EOF
346) >> $MKFILE.tmp
347}
348
[93346ee]349#----------------------------------#
350CHROOT_wrt_LogNewFiles() { #
351#----------------------------------#
[e639536]352 local name=`echo ${1} | sed 's/[0-9]-//'`
[93346ee]353(
354cat << EOF
355 @\$(call log_new_files,$name)
356EOF
357) >> $MKFILE.tmp
358}
359
360#=======================
361
362
[fe30c61]363#==== RM BUILD DIRS ====
364
365#----------------------------------#
366LUSER_RemoveBuildDirs() { #
367#----------------------------------#
[e639536]368 local name=`echo ${1} | sed 's/[0-9]-//'`
[fe30c61]369(
370cat << EOF
371 @\$(call remove_build_dirs,$name)
372EOF
373) >> $MKFILE.tmp
374}
375
376#----------------------------------#
377CHROOT_wrt_RemoveBuildDirs() { #
378#----------------------------------#
[e639536]379 local name=`echo ${1} | sed 's/[0-9]-//'`
[fe30c61]380(
381cat << EOF
382 @\$(call remove_build_dirs2,$name)
383EOF
384) >> $MKFILE.tmp
385}
386
387#=======================
388
389
390#======== TOUCH ========
391
392#----------------------------------#
393wrt_touch() { #
394#----------------------------------#
395(
396cat << EOF
397 @\$(call housekeeping)
398EOF
399) >> $MKFILE.tmp
400}
401
402#=======================
Note: See TracBrowser for help on using the repository browser.