summaryrefslogtreecommitdiffstats
path: root/13.0/gcc/gcc-multilib.SlackBuild.diff
blob: 5cb126b714892347f9becab23d4f8b7f70582f00 (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
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-05-24 19:41:51.000000000 +0200
+++ gcc-multilib.SlackBuild	2009-06-25 21:23:16.000000000 +0200
@@ -45,11 +45,16 @@
 VERSION=4.3.3
 ARCH=${ARCH:-x86_64}
 TARGET=$ARCH-slackware-linux
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-4alien}
 
 # 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 \
@@ -265,8 +278,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"
@@ -291,11 +309,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
@@ -349,7 +368,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
@@ -364,6 +383,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
@@ -385,6 +408,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
@@ -404,6 +433,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:
@@ -452,6 +486,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
@@ -491,6 +535,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
@@ -526,21 +574,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