source: jhalfs@ 6f74ca1

ablfs-more legacy trunk
Last change on this file since 6f74ca1 was 8b85dae, checked in by Pierre Labastie <pierre@…>, 4 years ago

Prevent users to tick "Rebuild Makefile" if Makefile does not exist

For some reason, beginners tend to tick this at the first pass. Since
it is hard to prevent that in Config.in, use a sanity check in jhalfs.

  • Property mode set to 100755
File size: 14.9 KB
RevLine 
[4da2512]1#!/bin/bash
2# $Id$
3set -e
[bbcdeab]4# Pass trap handlers to functions
5set -E
[4da2512]6
7# VT100 colors
8declare -r RED=$'\e[31m'
9declare -r GREEN=$'\e[32m'
10declare -r YELLOW=$'\e[33m'
11
[0e4ddfa]12# shellcheck disable=SC2034
13declare -r BLUE=$'\e[34m'
[4da2512]14declare -r OFF=$'\e[0m'
15declare -r BOLD=$'\e[1m'
16declare -r tab_=$'\t'
17declare -r nl_=$'\n'
18
[0e4ddfa]19# shellcheck disable=SC2034
[4da2512]20declare -r DD_BORDER="${BOLD}==============================================================================${OFF}"
[0e4ddfa]21# shellcheck disable=SC2034
[4da2512]22declare -r SD_BORDER="${BOLD}------------------------------------------------------------------------------${OFF}"
[0e4ddfa]23# shellcheck disable=SC2034
[4da2512]24declare -r STAR_BORDER="${BOLD}******************************************************************************${OFF}"
25
26# bold yellow > < pair
27declare -r R_arrow=$'\e[1;33m>\e[0m'
28declare -r L_arrow=$'\e[1;33m<\e[0m'
29
30
31#>>>>>>>>>>>>>>>ERROR TRAPPING >>>>>>>>>>>>>>>>>>>>
32#-----------------------#
33simple_error() { # Basic error trap.... JUST DIE
34#-----------------------#
[0e4ddfa]35 LASTLINE="$1"
36 LASTERR="$2"
37 LASTSOURCE="$4"
38 error_message "${GREEN} Error $LASTERR at $LASTSOURCE line ${LASTLINE}!"
[4da2512]39}
40
41see_ya() {
[0e4ddfa]42 printf '\n%b%bjhalfs%b exit%b\n' "$L_arrow" "$BOLD" "$R_arrow" "$OFF"
[4da2512]43}
44##### Simple error TRAPS
45# ctrl-c SIGINT
46# ctrl-y
47# ctrl-z SIGTSTP
48# SIGHUP 1 HANGUP
49# SIGINT 2 INTRERRUPT FROM KEYBOARD Ctrl-C
50# SIGQUIT 3
51# SIGKILL 9 KILL
52# SIGTERM 15 TERMINATION
53# SIGSTOP 17,18,23 STOP THE PROCESS
54#####
55set -e
56trap see_ya 0
[bbcdeab]57trap 'simple_error "${LINENO}" "$?" "${FUNCNAME}" "${BASH_SOURCE}"' ERR
[d505128]58trap 'echo -e "\n\n${RED}INTERRUPT${OFF} trapped\n" && exit 2' \
59 HUP INT QUIT TERM # STOP stops tterminal output and does not seem to
60 # execute the handler
[4da2512]61#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
62
[0e4ddfa]63simple_message() {
64 # Prevents having to check $VERBOSITY everywhere
65 if [ "$VERBOSITY" -ne 0 ] ; then
66 # shellcheck disable=SC2059
67 printf "$*"
68 fi
69}
70
71warning_message() {
72 simple_message "${YELLOW}\\nWARNING:${OFF} $*\\n\\n"
73}
74
75error_message() {
76 # Prints an error message and exits with LASTERR or 1
77 if [ -n "$LASTERR" ] ; then
78 LASTERR=$(printf '%d' "$LASTERR")
79 else
80 LASTERR=1
81 fi
82 # If +e then disable text output
83 if [[ "$-" =~ e ]]; then
84 printf '\n\n%bERROR:%b %s\n' "$RED" "$OFF" "$*" >&2
85 fi
86 exit "$LASTERR"
87}
88
89load_file() {
90 # source files in a consistent way with an optional message
91 file="$1"
92 shift
93 msg="Loading file ${file}..."
94 [ -z "$*" ] || msg="$*..."
95 simple_message "$msg"
96
97 # shellcheck disable=SC1090
98 source "$file" 2>/dev/null || error_message "$file did not load"
99 simple_message "OK\\n"
100}
101
[4da2512]102version="
[8d56c87]103${BOLD} \"jhalfs\"${OFF} builder tool (development) \$Rev$
[0a0753d]104 \$Date$
[4da2512]105
[f596dde]106 Copyright (C) 2005-2019, the jhalfs team:
107 Jeremy Huntwork
108 George Boudreau
109 Manuel Canales Esparcia
110 Thomas Pegg
111 Matthew Burgess
112 Pierre Labastie
[4da2512]113
[f596dde]114 Unless specified, all the files in this directory and its sub-directories
115 are subjected to the ${BOLD}MIT license${OFF}. See the ${BOLD}LICENSE${OFF} file.
[4da2512]116
[f596dde]117 The files in the ${BOLD}menu${OFF} directory are subjected to the ${BOLD}ISC License${OFF}.
118 See ${BOLD}LICENSE.txt${OFF} and ${BOLD}README${OFF} in that directory.
[4da2512]119"
120
[f596dde]121usage="${nl_}${tab_}${BOLD}${RED}This script cannot be called directly${OFF}
122${tab_}Type ${BOLD}make${OFF} to run the tool, or
123${tab_}Type ${BOLD}./jhalfs -v${OFF} to display version information."
124
[4da2512]125case $1 in
[909ee37]126 -v ) echo "$version" && exit ;;
[4da2512]127 run ) : ;;
[f596dde]128 * ) echo "$usage" && exit 1 ;;
[4da2512]129esac
130
[65c998b]131# If the user has not saved his configuration file, let's ask
132# if he or she really wants to run this stuff
[a22bfe1]133time_current=$(stat -c '%Y' configuration 2>/dev/null || date +%s)
[cf2f109]134time_old=$(stat -c '%Y' configuration.old 2>/dev/null || printf '%s' "$time_current")
[a22bfe1]135if [ "$(printf '%d' "$time_old")" -ge "$(printf '%d' "$time_current")" ] ; then
136 printf 'Do you want to run jhalfs? yes/no (yes): '
[0e4ddfa]137 read -r ANSWER
[a22bfe1]138 case ${ANSWER:0:1} in
139 n|N) printf "\nExiting gracefully.\n"; exit ;;
140 esac
[65c998b]141fi
142
143# Change this to 0 to suppress almost all messages
[4da2512]144VERBOSITY=1
145
[0e4ddfa]146load_file configuration "Loading config params from <configuration>"
[4da2512]147
148# These are boolean vars generated from Config.in.
[7072e1f]149# ISSUE: If a boolean parameter is not set to y(es) there
150# is no variable defined by the menu app. This can
151# cause a headache if you are not aware.
152# The following variables MUST exist. If they don't, the
153# default value is n(o).
[4da2512]154RUNMAKE=${RUNMAKE:-n}
155GETPKG=${GETPKG:-n}
156COMPARE=${COMPARE:-n}
157RUN_ICA=${RUN_ICA:-n}
[7072e1f]158PKGMNGT=${PKGMNGT:-n}
[945ccaa]159WRAP_INSTALL=${WRAP_INSTALL:-n}
[4da2512]160BOMB_TEST=${BOMB_TEST:-n}
161STRIP=${STRIP:=n}
162REPORT=${REPORT:=n}
[085435e]163NCURSES5=${NCURSES5:-n}
[dc7fd7b]164DEL_LA_FILES=${DEL_LA_FILES:-n}
[b339c94]165FULL_LOCALE=${FULL_LOCALE:-n}
[4da2512]166GRSECURITY_HOST=${GRSECURITY_HOST:-n}
[9a536f7]167CUSTOM_TOOLS=${CUSTOM_TOOLS:-n}
[a16f769]168REBUILD_MAKEFILE=${REBUILD_MAKEFILE:-n}
[93346ee]169INSTALL_LOG=${INSTALL_LOG:-n}
[486e9a7]170CLEAN=${CLEAN:=n}
[d035526]171SET_SSP=${SET_SSP:=n}
172SET_ASLR=${SET_ASLR:=n}
173SET_PAX=${SET_PAX:=n}
174SET_HARDENED_TMP=${SET_HARDENED_TMP:=n}
175SET_WARNINGS=${SET_WARNINGS:=n}
176SET_MISC=${SET_MISC:=n}
177SET_BLOWFISH=${SET_BLOWFISH:=n}
[945ccaa]178UNICODE=${UNICODE:=n}
[3b43e17b]179LOCAL=${LOCAL:=n}
[84a3fda]180REALSBU=${REALSBU:=n}
[f5ecc28]181SAVE_CH5=${SAVE_CH5:=n}
[4da2512]182
[75d6d1c]183if [[ "${NO_PROGRESS_BAR}" = "y" ]] ; then
[0e4ddfa]184# shellcheck disable=SC2034
185 NO_PROGRESS="#"
[75d6d1c]186fi
187
[38ae01f]188# Sanity check on the location of $BUILDDIR / $JHALFSDIR
[0e4ddfa]189CWD="$(cd "$(dirname "$0")" && pwd)"
190if [[ $JHALFSDIR == "$CWD" ]]; then
191 echo " The jhalfs source directory conflicts with the jhalfs build directory."
192 echo " Please move the source directory or change the build directory."
193 exit 2
[38ae01f]194fi
195
[0873ccc]196# Book sources envars
[4965fa8]197BRANCH_ID=${BRANCH_ID:=development}
198
199case $BRANCH_ID in
200 development )
201 case $PROGNAME in
[92b7cb8]202 clfs* ) TREE="" ;;
[c4ad7bf]203 * ) TREE=trunk/BOOK ;;
[4965fa8]204 esac
205 LFSVRS=development
206 ;;
207 *EDIT* ) echo " You forgot to set the branch or stable book version."
208 echo " Please rerun make and fix the configuration."
209 exit 2 ;;
210 branch-* )
[c4ad7bf]211 case $PROGNAME in
212 lfs )
213 LFSVRS=${BRANCH_ID}
[bb2862d]214 TREE=branches/${BRANCH_ID#branch-}
[dd08e14]215 if [ ${BRANCH_ID:7:1} = 6 ]; then
[bb2862d]216 TREE=${TREE}/BOOK
217 fi
[c4ad7bf]218 ;;
219 clfs* )
220 LFSVRS=${BRANCH_ID}
221 TREE=${BRANCH_ID#branch-}
222 ;;
223 esac
[4965fa8]224 ;;
225 * )
226 case $PROGNAME in
[e650dc7]227 lfs )
228 LFSVRS=${BRANCH_ID}
229 TREE=tags/${BRANCH_ID}
230 if (( ${BRANCH_ID:0:1} < 7 )) ; then
231 TREE=${TREE}/BOOK
232 fi
233 ;;
234 hlfs )
[4965fa8]235 LFSVRS=${BRANCH_ID}
236 TREE=tags/${BRANCH_ID}/BOOK
237 ;;
[92b7cb8]238 clfs* )
[4965fa8]239 LFSVRS=${BRANCH_ID}
[34d1b6a]240 TREE=clfs-${BRANCH_ID}
[4965fa8]241 ;;
[92b7cb8]242 * )
[4965fa8]243 esac
244 ;;
245esac
246
[4da2512]247# Set the document location...
[1cf621b]248BOOK=${BOOK:=$JHALFSDIR/$PROGNAME-$LFSVRS}
[4da2512]249
[4965fa8]250
[728955b]251#--- Envars not sourced from configuration
[0e4ddfa]252# shellcheck disable=SC2034
[728955b]253case $PROGNAME in
[0e4ddfa]254 clfs ) declare -r GIT="git://git.clfs.org/cross-lfs" ;;
255 clfs2 ) declare -r GIT="git://git.clfs.org/clfs-sysroot" ;;
256 clfs3 ) declare -r GIT="git://git.clfs.org/clfs-embedded" ;;
257 *) declare -r SVN="svn://svn.linuxfromscratch.org" ;;
[728955b]258esac
[0e4ddfa]259
[728955b]260declare -r LOG=000-masterscript.log
[0e4ddfa]261# Needed for fetching BLFS book sources when building CLFS
262# shellcheck disable=SC2034
[728955b]263declare -r SVN_2="svn://svn.linuxfromscratch.org"
264
[4da2512]265# Set true internal variables
266COMMON_DIR="common"
[0e4ddfa]267PACKAGE_DIR=$(echo "$PROGNAME" | tr '[:lower:]' '[:upper:]')
[4da2512]268MODULE=$PACKAGE_DIR/master.sh
[7072e1f]269PKGMNGTDIR="pkgmngt"
270# The name packageManager.xml is hardcoded in *.xsl, so no variable.
[4da2512]271
[0e4ddfa]272for file in \
273 "$COMMON_DIR/common-functions" \
274 "$COMMON_DIR/libs/func_book_parser" \
275 "$COMMON_DIR/libs/func_download_pkgs" \
276 "$COMMON_DIR/libs/func_wrt_Makefile" \
277 "$MODULE" ; do
278 load_file "$file"
279done
[9a536f7]280
[0e4ddfa]281simple_message "${SD_BORDER}${nl_}"
[9a536f7]282
283
[0e4ddfa]284#*******************************************************************#
285LASTERR=2
286for file in \
287 "$COMMON_DIR/libs/func_check_version.sh" \
288 "$COMMON_DIR/libs/func_validate_configs.sh" \
289 "$COMMON_DIR/libs/func_custom_pkgs" ; do
290 load_file "$file"
291done
292unset LASTERR
293
294simple_message "${SD_BORDER}${nl_}"
[183cc33]295simple_message "Checking tools required for jhalfs${nl_}"
[6ed3dd7]296check_alfs_tools
[0e4ddfa]297simple_message "${SD_BORDER}${nl_}"
[4da2512]298
[e576789]299# blfs-tool envars
300BLFS_TOOL=${BLFS_TOOL:-n}
301if [[ "${BLFS_TOOL}" = "y" ]] ; then
[0e4ddfa]302 simple_message 'Checking supplementary tools for installing BLFS'
[6ed3dd7]303 check_blfs_tools
[0e4ddfa]304 simple_message "${SD_BORDER}${nl_}"
[854854e]305 BLFS_SVN=${BLFS_SVN:-n}
306 BLFS_WORKING_COPY=${BLFS_WORKING_COPY:-n}
307 BLFS_BRANCH=${BLFS_BRANCH:-n}
308 if [[ "${BLFS_SVN}" = "y" ]]; then
309 BLFS_BRANCH_ID=development
310 BLFS_TREE=trunk/BOOK
311 elif [[ "${BLFS_WORKING_COPY}" = "y" ]]; then
[0e4ddfa]312 if [[ ! -d "$BLFS_WC_LOCATION/postlfs" ]] ; then
[854854e]313 echo " BLFS tools: This is not a working copy: $BLFS_WC_LOCATION."
314 echo " Please rerun make and fix the configuration."
315 exit 2
[0e4ddfa]316 fi
317 BLFS_TREE=$(cd "$BLFS_WC_LOCATION"; svn info | grep '^URL' | sed 's@.*BLFS/@@')
318 BLFS_BRANCH_ID=$(echo "$BLFS_TREE" | sed -e 's@trunk/BOOK@development@' \
319 -e 's@branches/@branch-@' \
320 -e 's@tags/@@' \
321 -e 's@/BOOK@@')
[0ba80be]322 elif [[ "${BLFS_BRANCH}" = "y" ]] ; then
[854854e]323 case $BLFS_BRANCH_ID in
324 *EDIT* ) echo " You forgot to set the BLFS branch or stable book version."
325 echo " Please rerun make and fix the configuration."
326 exit 2 ;;
[dd08e14]327 branch-6.* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-}/BOOK ;;
328 branch-* ) BLFS_TREE=branches/${BLFS_BRANCH_ID#branch-} ;;
[91b5249]329 [isv]* | 6.3* ) BLFS_TREE=tags/${BLFS_BRANCH_ID}/BOOK ;;
330 * ) BLFS_TREE=tags/${BLFS_BRANCH_ID} ;;
[854854e]331 esac
332 fi
[0e4ddfa]333 load_file "${COMMON_DIR}/libs/func_install_blfs"
[e576789]334fi
[4da2512]335
336###################################
337### MAIN ###
338###################################
339
340
341validate_config
342echo "${SD_BORDER}${nl_}"
343echo -n "Are you happy with these settings? yes/no (no): "
[0e4ddfa]344read -r ANSWER
345if [ "x$ANSWER" != "xyes" ] ; then
[881c96f]346 echo "${nl_}Rerun make to fix the configuration options.${nl_}"
[d023a35]347 exit
[4da2512]348fi
349echo "${nl_}${SD_BORDER}${nl_}"
350
351# Load additional modules or configuration files based on global settings
352# compare module
353if [[ "$COMPARE" = "y" ]]; then
[0e4ddfa]354 load_file "${COMMON_DIR}/libs/func_compare.sh" 'Loading compare module'
[4da2512]355fi
356#
[f5ecc28]357# save module
358if [[ "$SAVE_CH5" = "y" ]]; then
359 load_file "${COMMON_DIR}/libs/func_save.sh" 'Loading save module'
360fi
361#
[4da2512]362# optimize module
363if [[ "$OPTIMIZE" != "0" ]]; then
[0e4ddfa]364 load_file optimize/optimize_functions 'Loading optimization module'
[4da2512]365 #
366 # optimize configurations
[0e4ddfa]367 load_file optimize/opt_config 'Loading optimization config'
[854854e]368 # The number of parallel jobs is taken from configuration now
[0e4ddfa]369 # shellcheck disable=SC2034
[9ef12f7]370 JH_MAKEFLAGS="-j${N_PARALLEL}"
[4da2512]371 # Validate optimize settings, if required
372 validate_opt_settings
373fi
374#
375
[a16f769]376if [[ "$REBUILD_MAKEFILE" = "n" ]] ; then
[4da2512]377
[200fbde]378# If requested, clean the build directory
[7b6ecc5]379 clean_builddir
[4da2512]380
[7b6ecc5]381 if [[ ! -d $JHALFSDIR ]]; then
[0e4ddfa]382 sudo mkdir -p "$JHALFSDIR"
383 sudo chown "$USER":"$USER" "$JHALFSDIR"
[7b6ecc5]384 fi
[3e7ceed]385
[200fbde]386# Create $BUILDDIR/sources even though it could be created by get_sources()
[7b6ecc5]387 if [[ ! -d $BUILDDIR/sources ]]; then
[0e4ddfa]388 sudo mkdir -p "$BUILDDIR/sources"
389 sudo chmod a+wt "$BUILDDIR/sources"
[7b6ecc5]390 fi
[200fbde]391
392# Create the log directory
[7b6ecc5]393 if [[ ! -d $LOGDIR ]]; then
[0e4ddfa]394 mkdir "$LOGDIR"
[7b6ecc5]395 fi
[0e4ddfa]396 true >"$LOGDIR/$LOG"
[200fbde]397
398# Copy common helper files
[0e4ddfa]399 cp "$COMMON_DIR"/{makefile-functions,progress_bar.sh} "$JHALFSDIR/"
[200fbde]400
401# Copy needed stylesheets
[0e4ddfa]402 cp "$COMMON_DIR"/{packages.xsl,chroot.xsl,kernfs.xsl} "$JHALFSDIR/"
[200fbde]403
404# Fix the XSL book parser
[92b7cb8]405 case $PROGNAME in
[0e4ddfa]406 clfs* ) sed 's,FAKEDIR,'"${BOOK}/BOOK"',' "${PACKAGE_DIR}/${XSL}" > "${JHALFSDIR}/${XSL}" ;;
407 lfs | hlfs ) sed 's,FAKEDIR,'"$BOOK"',' "${PACKAGE_DIR}/${XSL}" > "${JHALFSDIR}/${XSL}" ;;
[92b7cb8]408 * ) ;;
409 esac
[3e7ceed]410 export XSL=$JHALFSDIR/${XSL}
[7b6ecc5]411
[200fbde]412# Copy packageManager.xml, if needed
[3aa1acd]413 [[ "$PKGMNGT" = "y" ]] && [[ "$PROGNAME" = "lfs" ]] && {
[5a965ad]414 sed s@BOOK@"$BOOK"@ "$PKGMNGTDIR/packageManager.xml" > \
415 "$JHALFSDIR/"packageManager.xml
[0e4ddfa]416 cp "$PKGMNGTDIR/packInstall.sh" "$JHALFSDIR/"
[3aa1acd]417 }
[200fbde]418
419# Copy urls.xsl, if needed
[0e4ddfa]420 [[ "$GETPKG" = "y" ]] && cp "$COMMON_DIR/urls.xsl" "$JHALFSDIR/"
[200fbde]421
[c672fa8]422# Always create the test-log directory to allow user to "uncomment" test
423# instructions
[0e4ddfa]424 install -d -m 1777 "$TESTLOGDIR"
[200fbde]425
426# Create the installed-files directory, if needed
[0e4ddfa]427 [[ "$INSTALL_LOG" = "y" ]] && [[ ! -d $FILELOGDIR ]] && install -d -m 1777 "$FILELOGDIR"
[200fbde]428
429# Prepare report creation, if needed
[7b6ecc5]430 if [[ "$REPORT" = "y" ]]; then
[0e4ddfa]431 cp $COMMON_DIR/create-sbu_du-report.sh "$JHALFSDIR/"
[7072e1f]432 # After making sure that all looks sane, dump the settings to a file
[7b6ecc5]433 # This file will be used to create the REPORT header
[0e4ddfa]434 validate_config >"$JHALFSDIR/jhalfs.config"
[7b6ecc5]435 fi
[200fbde]436
437# Copy optimize files, if needed
[0e4ddfa]438 [[ "$OPTIMIZE" != "0" ]] && cp optimize/opt_override "$JHALFSDIR/"
[200fbde]439
440# Copy compare files, if needed
[3e7ceed]441 if [[ "$COMPARE" = "y" ]]; then
[0e4ddfa]442 mkdir -p "$JHALFSDIR/extras"
443 cp extras/* "$JHALFSDIR/extras"
[3e7ceed]444 fi
[200fbde]445
446# Copy custom tools config files, if requested
[3e7ceed]447 if [[ "${CUSTOM_TOOLS}" = "y" ]]; then
448 echo "Copying custom tool scripts to $JHALFSDIR"
[0e4ddfa]449 mkdir -p "$JHALFSDIR/custom-commands"
450 cp -f custom/config/* "$JHALFSDIR/custom-commands"
[3e7ceed]451 fi
[200fbde]452
[f733772]453# Download or updates the book source
454# Note that all customization to $JHALFSDIR have to be done before this.
455# But the LFS book is needed for BLFS tools.
456 get_book
[ebe1ba6]457# At this point, we should have a way to know whether we have a cross
458# or regular book... In case of cross, prohibite TEST=3
459# the position of gcc-pass2 (chapter 6 or 5) tells us (not valid for
460# cross-chap5 branch).
461 if (( TEST == 3 )) && \
[6447575]462 [ -f "$BOOK/chapter06/gcc-pass2.xml" ]; then
[ebe1ba6]463 TEST=2
464 fi
[f733772]465 extract_commands
466 echo "${SD_BORDER}${nl_}"
[0e4ddfa]467 cd "$CWD" # the functions above change directory
[f733772]468
[200fbde]469# Install blfs-tool, if requested.
[7b6ecc5]470 if [[ "${BLFS_TOOL}" = "y" ]] ; then
[6ed3dd7]471 echo Installing BLFS book and tools
[0e4ddfa]472 install_blfs_tools 2>&1 | tee -a "$LOGDIR/$LOG"
[bbcdeab]473 [[ ${PIPESTATUS[0]} != 0 ]] && exit 1
[7b6ecc5]474 fi
475
[4965fa8]476fi
477
[0e4ddfa]478# shellcheck disable=SC2034
[a16f769]479if [[ "$REBUILD_MAKEFILE" = "y" ]] ; then
[8b85dae]480# Sanity check: users tend to tick "rebuild Makefile"
481# without generating one first. Check we have one:
482 if [ ! -f $MKFILE ]; then
483 set -e
484 error_message "You cannot \"rebuild Makefile\" without first building one"
485 fi
486# When regenerating the Makefile, we need to know also the
487# canonical book version
[a16f769]488 case $PROGNAME in
[92b7cb8]489 clfs* )
[0e4ddfa]490 VERSION=$(xmllint --noent "$BOOK/prologue/$ARCH/bookinfo.xml" 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;;
[c9598f2]491 lfs)
492 if [[ "$INITSYS" = "sysv" ]] ; then
[0e4ddfa]493 VERSION=$(grep 'ENTITY version ' "$BOOK/general.ent" | cut -d\" -f2)
[c9598f2]494 else
[0e4ddfa]495 VERSION=$(grep 'ENTITY versiond' "$BOOK/general.ent" | cut -d\" -f2)
[c9598f2]496 fi
497 ;;
[a16f769]498 *)
[0e4ddfa]499 VERSION=$(xmllint --noent "$BOOK/prologue/bookinfo.xml" 2>/dev/null | grep subtitle | sed -e 's/^.*ion //' -e 's/<\/.*//') ;;
[a16f769]500 esac
501fi
502
[4da2512]503build_Makefile
[3e7ceed]504
[4da2512]505echo "${SD_BORDER}${nl_}"
506
[1cf621b]507# Check for build prerequisites.
508 echo
[0e4ddfa]509 cd "$CWD"
[1cf621b]510 check_prerequisites
511 echo "${SD_BORDER}${nl_}"
512# All is well, run the build (if requested)
[4da2512]513run_make
Note: See TracBrowser for help on using the repository browser.