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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
--- gcc.SlackBuild 2009-10-30 23:03:30.000000000 +0100
+++ gcc-multilib.SlackBuild 2009-12-31 11:56:44.000000000 +0100
@@ -45,11 +45,16 @@
VERSION=4.4.2
ARCH=${ARCH:-x86_64}
TARGET=$ARCH-slackware-linux
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-1alien}
# How many jobs to run in parallel:
NUMJOB=" -j 4 "
+# What do we want to build
+LANGS=${LANGS:-'c,c++,ada,fortran,java,objc'}
+
+echo "Building these compilers: $LANGS"; sleep 5
+
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
LIBDIRSUFFIX=""
@@ -169,11 +174,11 @@
$PKG3/usr/doc/gcc-${VERSION}/libgfortran/ChangeLog
)
- mkdir -p $PKG3/usr/doc/gcc-${VERSION}/libada
+ mkdir -p $PKG4/usr/doc/gcc-${VERSION}/libada
( cd libada
cp -a \
ChangeLog \
- $PKG3/usr/doc/gcc-${VERSION}/libada
+ $PKG4/usr/doc/gcc-${VERSION}/libada
)
mkdir -p $PKG5/usr/doc/gcc-${VERSION}/libffi
@@ -240,16 +245,24 @@
if [ "$ARCH" != "x86_64" ]; then
GCC_ARCHOPTS="--with-arch=$ARCH"
else
- GCC_ARCHOPTS="--disable-multilib"
+ GCC_ARCHOPTS="--enable-multilib"
fi
+ # The first run of the script, we can not build ada compiler because that
+ # requires gnat;
+ # First run: use
+ # LANGS="all" to just build c,c++,fortran,java,objc
+ # Second run: use
+ # LANGS="c,c++,ada,fortran,java,objc"
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
- ../gcc-$VERSION/configure --prefix=/usr \
+ ../gcc-$VERSION/configure \
+ --prefix=/usr \
--libdir=/usr/lib$LIBDIRSUFFIX \
--enable-shared \
--enable-bootstrap \
- --enable-languages=ada,c,c++,fortran,java,objc \
+ --enable-languages=${LANGS} \
--enable-threads=posix \
--enable-checking=release \
--with-system-zlib \
@@ -266,8 +279,13 @@
# Start the build:
- # Include all debugging info (for now):
- make $NUMJOB bootstrap;
+ if [ "$LANGS" = "all" ]; then
+ # Not building ada, so bootstrap not required:
+ make $NUMJOB
+ else
+ # Include all debugging info (for now):
+ make $NUMJOB bootstrap
+ fi
( cd gcc
make $NUMJOB gnatlib GNATLIBCFLAGS="$SLKCFLAGS"
@@ -292,11 +310,12 @@
cat stage1-gcc/specs > $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs
fi
-# Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory:
-if [ "$ARCH" = "x86_64" ]; then
- sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \
- $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs
-fi
+## Make our 64bit gcc look for 32bit gcc binaries in ./32 subdirectory:
+# (this edit only needed if gcc was compiled with disable-multilib)
+#if [ "$ARCH" = "x86_64" ]; then
+# sed -i 's#;.\(:../lib !m64 m32;\)$#;32\1#' \
+# $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/${ARCH}-slackware-linux/${VERSION}/specs
+#fi
# make ada.install-common DESTDIR=$PKG1
# make install-gnatlib DESTDIR=$PKG1
@@ -350,7 +369,7 @@
## build the txz package
#(
# cd $PKG1;
- # makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz
+ # makepkg -l y -c n $TMP/gcc-${VERSION}_multilib-$ARCH-$BUILD.txz
#)
# keep a log
) 2>&1 | tee $TMP/gcc.build.log
@@ -365,6 +384,10 @@
mv $PKG1/usr/include/c++ usr/include
mkdir -p usr/lib${LIBDIRSUFFIX}
mv $PKG1/usr/lib${LIBDIRSUFFIX}/*++* usr/lib${LIBDIRSUFFIX}
+ if [ "$ARCH" = "x86_64" ]; then
+ mkdir -p usr/lib
+ mv $PKG1/usr/lib/*++* usr/lib
+ fi
mkdir -p usr/libexec/gcc/$TARGET/$VERSION
mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1plus usr/libexec/gcc/$TARGET/$VERSION/cc1plus
mkdir -p usr/man/man1
@@ -386,6 +409,12 @@
mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION
mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/finclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION
mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/libgfortran* usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION
+ if [ "$ARCH" = "x86_64" ]; then
+ mkdir -p usr/lib
+ mv $PKG1/usr/lib/libgfortran* usr/lib
+ mkdir -p usr/lib/gcc/$TARGET/$VERSION
+ mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/finclude usr/lib/gcc/$TARGET/$VERSION
+ fi
mkdir -p usr/libexec/gcc/$TARGET/$VERSION
mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/f951 usr/libexec/gcc/$TARGET/$VERSION/f951
mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/libgfortran* usr/libexec/gcc/$TARGET/$VERSION
@@ -405,6 +434,11 @@
mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION
mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adainclude usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION
mv $PKG1/usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/adalib usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION
+ if [ "$ARCH" = "x86_64" ]; then
+ mkdir -p usr/lib/gcc/$TARGET/$VERSION
+ mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/adainclude usr/lib/gcc/$TARGET/$VERSION
+ mv $PKG1/usr/lib/gcc/$TARGET/$VERSION/adalib usr/lib/gcc/$TARGET/$VERSION
+ fi
)
# gcc-java:
@@ -462,6 +496,16 @@
mv $PKG1/usr/lib${LIBDIRSUFFIX}/libgij* usr/lib${LIBDIRSUFFIX}
mv $PKG1/usr/lib${LIBDIRSUFFIX}/lib-org* usr/lib${LIBDIRSUFFIX}
mv $PKG1/usr/lib${LIBDIRSUFFIX}/security usr/lib${LIBDIRSUFFIX}
+ if [ "$ARCH" = "x86_64" ]; then
+ mkdir -p usr/lib
+ mv $PKG1/usr/lib/libffi* usr/lib
+ mv $PKG1/usr/lib/logging.properties usr/lib
+ mv $PKG1/usr/lib/gcj* usr/lib
+ mv $PKG1/usr/lib/libgcj* usr/lib
+ mv $PKG1/usr/lib/libgij* usr/lib
+ mv $PKG1/usr/lib/lib-org* usr/lib
+ mv $PKG1/usr/lib/security usr/lib
+ fi
mkdir -p usr/lib${LIBDIRSUFFIX}/pkgconfig
mv $PKG1/usr/lib${LIBDIRSUFFIX}/pkgconfig/libgcj*.pc usr/lib${LIBDIRSUFFIX}/pkgconfig
rmdir $PKG1/usr/lib${LIBDIRSUFFIX}/pkgconfig 2> /dev/null
@@ -504,6 +548,10 @@
( cd $PKG6
mkdir -p usr/lib${LIBDIRSUFFIX}
mv $PKG1/usr/lib${LIBDIRSUFFIX}/libobjc* usr/lib${LIBDIRSUFFIX}
+ if [ "$ARCH" = "x86_64" ]; then
+ mkdir -p usr/lib
+ mv $PKG1/usr/lib/libobjc* usr/lib
+ fi
mkdir -p usr/libexec/gcc/$TARGET/$VERSION
mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/cc1obj usr/libexec/gcc/$TARGET/$VERSION
mkdir -p usr/lib${LIBDIRSUFFIX}/gcc/$TARGET/$VERSION/include
@@ -539,21 +587,31 @@
done
( cd $PKG1
- makepkg -l y -c n $TMP/gcc-$VERSION-$ARCH-$BUILD.txz )
+ makepkg -l y -c n $TMP/gcc-${VERSION}_multilib-$ARCH-$BUILD.txz )
+
( cd $PKG2
- makepkg -l y -c n $TMP/gcc-g++-$VERSION-$ARCH-$BUILD.txz )
+ makepkg -l y -c n $TMP/gcc-g++-${VERSION}_multilib-$ARCH-$BUILD.txz )
+
+echo $LANGS | grep -qwE '(all|fortran)' && \
( cd $PKG3
- makepkg -l y -c n $TMP/gcc-gfortran-$VERSION-$ARCH-$BUILD.txz )
+ makepkg -l y -c n $TMP/gcc-gfortran-${VERSION}_multilib-$ARCH-$BUILD.txz )
+
+echo $LANGS | grep -qw ada && \
( cd $PKG4
- makepkg -l y -c n $TMP/gcc-gnat-$VERSION-$ARCH-$BUILD.txz )
+ makepkg -l y -c n $TMP/gcc-gnat-${VERSION}_multilib-$ARCH-$BUILD.txz )
+
+echo $LANGS | grep -qwE '(all|java)' && \
( cd $PKG5
- makepkg -l y -c n $TMP/gcc-java-$VERSION-$ARCH-$BUILD.txz )
+ makepkg -l y -c n $TMP/gcc-java-${VERSION}_multilib-$ARCH-$BUILD.txz )
+
+echo $LANGS | grep -qwE '(all|objc)' && \
( cd $PKG6
- makepkg -l y -c n $TMP/gcc-objc-$VERSION-$ARCH-$BUILD.txz )
+ makepkg -l y -c n $TMP/gcc-objc-${VERSION}_multilib-$ARCH-$BUILD.txz )
+
#( cd $PKG7
-# makepkg -l y -c n $TMP/gcc-g++-gch-$VERSION-$ARCH-$BUILD.txz )
+# makepkg -l y -c n $TMP/gcc-g++-gch-${VERSION}_multilib-$ARCH-$BUILD.txz )
echo
-echo "Slackware GCC package build complete!"
+echo "Slackware GCC (multilib) package build complete!"
echo
|