source: scripts/scripts/build-cross.sh @ 11fbfa9

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since 11fbfa9 was 11fbfa9, checked in by Jim Gifford <clfs@…>, 18 years ago

r1045@server (orig r1043): ryan | 2006-01-12 00:56:45 -0800

r1079@rei: lfs | 2006-01-12 19:13:09 +1100
Update for glibc-2.3.6
Also add option to skip libgcc_s.so.1 creation (to match cross-lfs book)


  • Property mode set to 100755
File size: 4.1 KB
Line 
1#!/bin/bash
2
3# build-cross-2.4.4.sh
4#
5# Master script for cross building LFS chapter 5.
6#
7# Authors: Ryan Oliver <ryan.oliver@pha.com.au
8#          Finn Thain
9#
10# $LastChangedBy$
11# $LastChangedDate$
12# $LastChangedRevision$
13
14# Set SELF to be name of script called, minus any path...
15
16# turn off bash command hash
17set +h
18
19SELF=$(basename ${0})
20echo "Running ${SELF}"
21VERSION="2.4.4"
22DATE=$(date +'%Y%m%d')
23export DATE
24
25# Read in build configuration information
26# plfs-config should reside in the same directory as this script.
27# We need to use dirname to determine where to find it as SCRIPTS
28# env var is not set yet (set in plfs-config itself)
29. `dirname ${0}`/plfs-config
30
31# Sanity check, are ${LFS}, ${HST_TOOLS} and ${TGT_TOOLS} set?
32if [ "X${LFS}" = "X" -o "X${HST_TOOLS}" = "X" -o "X${TGT_TOOLS}" = "X" ]; then
33   echo "Error: Not all required environment vars have been set." 1>&2
34   echo "       Check plfs-config" 1>&2
35   exit 1
36fi
37
38# Get package version information
39. ${SCRIPTS}/plfs-packages
40
41# Source Functions and definitions
42. ${SCRIPTS}/build-init.sh
43
44
45set +x
46unset LD_LIBRARY_PATH
47unset LD_PRELOAD
48                                                                               
49export LDFLAGS="-s"
50
51# Setup PATH
52#export PATH=/bin:/sbin:/usr/bin:/usr/sbin
53export PATH=${HST_TOOLS}/bin:${HST_TOOLS}/sbin:${PATH}
54
55# If using distcc, expect that user has set up their own symlinks
56#export DISTCC_HOSTS="localhost sirius"
57#DISTCCDIR=/usr/distcc/bin
58#export PATH=${DISTCCDIR}:${PATH}
59
60# If ${SRC} does not exist, create it
61test -d ${SRC} || mkdir -p ${SRC}
62
63# If ${LFS} directory doesn't exist, create it
64test -d ${LFS} || mkdir -p ${LFS}
65
66if [ ! "${USE_SYSROOT}" = "Y" ]; then                                                                               
67   # If ${LFS}${TGT_TOOLS} directory doesn't exist, create it
68   test -d ${LFS}${TGT_TOOLS} || mkdir -p ${LFS}${TGT_TOOLS}
69                                                                               
70   # create it ${TGT_TOOLS} symlink
71   if [ ! -d `dirname ${TGT_TOOLS}` ]; then mkdir -p `dirname ${TGT_TOOLS}` ; fi
72   ln -sf ${LFS}${TGT_TOOLS} `dirname ${TGT_TOOLS}`
73fi
74
75mkdir -p ${CONFLOGS}
76mkdir -p ${BUILDLOGS}
77mkdir -p ${INSTLOGS}
78mkdir -p ${TESTLOGS}
79cd ${SRC}
80
81#scripts_dir="cross-scripts-${VERSION}"
82scripts_dir="cross-scripts"
83
84test "Y" = "${USE_SANITISED_HEADERS}" &&
85{
86   script_list="cross-kern-hdrs.sh
87cross-san-kern-hdrs.sh"
88} || {
89   script_list="cross-kern-hdrs.sh"
90}
91
92script_list="${script_list}
93cross-binutils.sh
94cross-glibc-hdrs.sh
95cross-gcc-static.sh"
96
97if [ ! "Y" = "${NO_GCC_EH}" ]; then
98   if [ "Y" = "${MULTIARCH}" ]; then
99      script_list="${script_list}
100cross-glibc-crtobjs-32.sh
101cross-glibc-crtobjs-64.sh
102cross-gcc-shared.sh"
103   else
104      script_list="${script_list}
105cross-glibc-crtobjs.sh
106cross-gcc-shared.sh"
107   fi
108fi
109
110
111if [ "Y" = "${MULTIARCH}" ]; then
112   if [ "N" = "${DEFAULT_64}" ]; then 
113      script_list="${script_list}
114cross-glibc-full-64.sh
115cross-glibc-full-32.sh
116cross-gcc-final.sh"
117   else
118      script_list="${script_list}
119cross-glibc-full-32.sh
120cross-glibc-full-64.sh
121cross-gcc-final.sh"
122   fi
123else
124   script_list="${script_list}
125cross-glibc-full.sh
126cross-gcc-final.sh"
127fi
128
129SCRIPTLIST=`echo "${script_list}" | \
130  sed "s@\(.*\)@${scripts_dir}/\1@"`
131
132# Check if we are resuming from a particular script
133test ! -z "${1}" &&
134{
135   SCRIPTLIST=`echo ${SCRIPTLIST} | sed "s@.*\(${1}.*\)@\1@g"`
136}
137                                                                               
138echo ' o Checking for needed sources and tarballs'
139check_tarballs ${SCRIPTLIST}
140                                                                               
141for script in ${SCRIPTLIST}; do
142   echo "Running ${SCRIPTS}/${script}"
143   # HACK: export SELF to be the script we are running
144   #       (keeps logfile output correct)
145   export SELF=${script}
146   ${SCRIPTS}/${script}
147
148   test 0 = ${?} ||
149   {
150      echo
151      echo "Failed script was ${script}"
152      echo "Please fix the error above from"
153      echo "   ${SCRIPTS}/${script}"
154      echo "and rerun the build with the command"
155      echo
156      echo "   ${0} $script"
157      echo
158      echo "to resume the build."
159      exit 1
160   }
161done
Note: See TracBrowser for help on using the repository browser.