summaryrefslogtreecommitdiff
path: root/install/cross/buildcrosssnaphot
blob: 40351fa1014a1f7a39dd89fa9de5b296e9beb4e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/sh

# the root of all, but using it is optional.
CROSSTOOLSROOT=~/building

CROSSTOOLSROOT=${CROSSTOOLSROOT%/}/

# Some paths.

# place where the 1.1.x CVS checkout is
FPCCVS=${CROSSTOOLSROOT}cvs/devel/fpc

# place where the script should store the cross-snapshot
DESTDIR=${CROSSTOOLSROOT}/destination

# place where cross archives (.a files) are stored
BASELIBDIR=${CROSSTOOLSROOT}crosslibs

# Place where logs are generated.
LOGDIR=${CROSSTOOLSROOT}logs

# Type of my mainprocessor.
MYINTEL=i686

EXTRAOPT=-gl

# OSes and CPUs
TARGETS_OS="linux freebsd linux  win32 go32v2 netbsd openbsd solaris darwin"
TARGETS_CPU="i386 powerpc sparc"

###########################################################################
# don't edit below
#
#
#
#

MYHOSTARCH=`uname -p | tr "[:upper:]" "[:lower:]"`
MYHOSTOS=`uname -s | tr "[:upper:]" "[:lower:]"`
echo HOST platform is ${MYHOSTARCH}-${MYHOSTOS}

#
#
# force slash
#

FPCCVS=${FPCCVS%/}/
DESTDIR=${DESTDIR%/}/
LOGDIR=${LOGDIR%/}/
BASELIBDIR=${BASELIBDIR%/}/

#
# BSD? -> ${MAKE}
#

MAKE=make

case "$MYHOSTOS" in
 *BSD*) MAKE=gmake
  ;;
 *bsd*) MAKE=gmake  
  ;;
esac

#
# Setup dirs
#

mkdir -p ${DESTDIR}
mkdir -p ${LOGDIR}

#
# Real build starts here
#

cd ${FPCCVS}

FAILURES=""

for CPU in $TARGETS_CPU; do

# CPU xlat. translate from FPC cpu designation to binutil's;

MCPU=${CPU}
if [ "${CPU}" = "i386" ]; then
MCPU=${MYINTEL}
fi

for OS in $TARGETS_OS; do

# xlat for OS

MOS=${OS}
if [ "${OS}" = "sunos" ]; then
MOS=solaris
fi

if [ "${OS}" = "win32" ]; then
MOS=cygwin
fi

if [ "${OS}" = "go32v2" ]; then
MOS=msdosdjgpp
fi

dothisbuild=1
if [ "${CPU}" = "${MYHOSTARCH}" ]; then
if [ "${OS}" = "${MYHOSTOS}" ]; then
dothisbuild=0
fi
fi

if [ $dothisbuild -eq 1 ]; then
echo Building ${CPU}-${OS}
if [  -f ${CROSSTOOLSROOT}bin/${MCPU}-${MOS}-as ]; then
${MAKE} clean all LIBDIR=${BASELIBDIR}/${MCPU}-${MOS} CROSSBINDIR=${CROSSTOOLSROOT}bin OS_TARGET=${OS} CPU_TARGET=${CPU} BINUTILSPREFIX=${MCPU}-${MOS}- OPT="-Xd -Xt ${EXTRAOPT}" > ${LOGDIR}snapbuild-${CPU}-${OS} 2>&1
else
echo can''t find binutils-${MCPU}-${OS} for FPC-${CPU}-${OS}
fi
if [ ! $? = 0 ]; then
echo ${CPU}-${OS} FAILES
FAILURES="${FAILURES} ${CPU}-${OS}"
else
mkdir -p ${DESTDIR}
${MAKE} install INSTALL_PREFIX=${DESTDIR} LIBDIR=${BASELIBDIR}/${MCPU}-${MOS}  CROSSBINDIR=${CROSSTOOLSROOT}bin OS_TARGET=${OS} CPU_TARGET=${CPU} BINUTILSPREFIX=${MCPU}-${MOS}- OPT="-Xd -Xt ${EXTRAOPT}" > ${LOGDIR}snapinstalllog-${CPU}-${OS} 2>&1
fi
fi
done;
done;

if [ -n ${FAILURES} ]; then
echo platforms failed: ${FAILURES}
fi