GCC: fix building and packaging.

This commit is contained in:
Alexpux
2013-11-20 13:09:50 +04:00
parent 26344720d8
commit 46bf8efe66

View File

@@ -2,7 +2,7 @@
_realname=gcc
_mingw_suff=mingw-w64-${CARCH}
pkgname=("${_mingw_suff}-${_realname}" "${_mingw_suff}-${_realname}-ada" "${_mingw_suff}-${_realname}-fortran" "${_mingw_suff}-${_realname}-objc" "${_mingw_suff}-${_realname}-libs")
pkgname=("${_mingw_suff}-${_realname}" "${_mingw_suff}-${_realname}-ada" "${_mingw_suff}-${_realname}-fortran" "${_mingw_suff}-${_realname}-objc" ) #"${_mingw_suff}-${_realname}-libs"
pkgver=4.8.2
pkgrel=1
pkgdesc="GCC for the MinGW-w64"
@@ -10,7 +10,7 @@ arch=('any')
url="http://gcc.gnu.org"
license=('GPL' 'LGPL' 'FDL' 'custom')
groups=("${_mingw_suff}-toolchain" "${_mingw_suff}")
depends=("${_mingw_suff}-zlib" "${_mingw_suff}-mpc" "${_mingw_suff}-cloog" "${_mingw_suff}-crt" "${_mingw_suff}-binutils" "${_mingw_suff}-winpthreads" "${_mingw_suff}-headers")
#depends=("${_mingw_suff}-zlib" "${_mingw_suff}-mpc" "${_mingw_suff}-cloog" "${_mingw_suff}-crt" "${_mingw_suff}-binutils" "${_mingw_suff}-winpthreads" "${_mingw_suff}-headers")
makedepends=("${_mingw_suff}-${_realname}-ada=${pkgver}" "${_mingw_suff}-${_realname}" 'lndir')
#checkdepends=('dejagnu')
optdepends=()
@@ -18,7 +18,7 @@ provides=("${_mingw_suff}-${_realname}-base")
conflicts=("${_mingw_suff}-${_realname}-base")
replaces=()
backup=()
options=('!strip' 'staticlibs' '!emptydirs') # '!buildflags'
options=('strip' 'staticlibs' '!emptydirs') # '!buildflags'
source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.bz2"
'gcc-make-xmmintrin-header-cplusplus-compatible.patch'
'gcc-4.8-filename-output.patch'
@@ -65,20 +65,25 @@ prepare() {
}
hack_apply() {
hack_cleanup
mkdir -p ${destdir}${MINGW_PREFIX}/mingw
lndir ${MINGW_PREFIX}/${MINGW_CHOST} ${destdir}${MINGW_PREFIX}/mingw
#Also put into <SYSROOT>/mingw binutils, libiconv and zlib stuff
cp ${MINGW_PREFIX}/include/{ansidecl,bfd,bfdlink,dis-asm,symcat,iconv,zconf,zlib}.h ${destdir}${MINGW_PREFIX}/mingw/include/
cp ${MINGW_PREFIX}/lib/{libbfd,libopcodes,libz,libiconv}.a ${destdir}${MINGW_PREFIX}/mingw/lib/
}
hack_cleanup() {
if [ -d ${MINGW_PREFIX}/mingw ];
if [ -d ${destdir}${MINGW_PREFIX}/mingw ];
then
rm -rf ${MINGW_PREFIX}/mingw
rm -rf ${destdir}${MINGW_PREFIX}/mingw
fi
}
build() {
mkdir -p ${srcdir}/gcc-build-${MINGW_CHOST} && cd ${srcdir}/gcc-build-${MINGW_CHOST}
LDFLAGS+=" -L${MINGW_PREFIX}/lib"
CFLAGS+=" -I${MINGW_PREFIX}/include"
CXXFLAGS+=" -I${MINGW_PREFIX}/include"
CPPFLAGS+="-I${MINGW_PREFIX}/include"
case "${CARCH}" in
i686)
local _conf="--disable-sjlj-exceptions --with-dwarf2"
@@ -97,7 +102,7 @@ build() {
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--with-sysroot=${MINGW_PREFIX} \
--with-sysroot=${destdir}${MINGW_PREFIX} \
--libexecdir=${MINGW_PREFIX}/lib \
--enable-bootstrap \
--with-arch=${_arch} \
@@ -111,6 +116,7 @@ build() {
--disable-libstdcxx-pch \
--disable-libstdcxx-debug \
--enable-cloog-backend=isl \
--enable-version-specific-runtime-libs \
--disable-cloog-version-check --disable-isl-version-check \
--enable-lto \
--enable-libgomp \
@@ -129,19 +135,25 @@ build() {
--with-gnu-as --with-gnu-ld \
${_conf}
mkdir -p ${MINGW_PREFIX}/mingw
lndir ${MINGW_PREFIX}/${MINGW_CHOST} ${MINGW_PREFIX}/mingw
make all || hack_cleanup
hack_apply
make all
hack_cleanup
}
setup() {
hack_apply
cd ${srcdir}/gcc-build-${MINGW_CHOST}
make DESTDIR=${destdir} install
make -j1 DESTDIR=${destdir} install
hack_cleanup
mv ${destdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/adalib/*.dll ${destdir}${MINGW_PREFIX}/bin/
mv ${destdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/libgcc_s.a ${destdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
}
package_mingw-w64-gcc() {
pkgdesc="GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64"
depends=("${_mingw_suff}-crt" "${_mingw_suff}-binutils" "${_mingw_suff}-winpthreads" "${_mingw_suff}-headers") #"${_mingw_suff}-${_realname}-libs=${pkgver}"
mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share}
cd ${destdir}${MINGW_PREFIX}
@@ -161,6 +173,7 @@ package_mingw-w64-gcc() {
cp bin/${MINGW_CHOST}-gcc-nm.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/${MINGW_CHOST}-gcc-ranlib.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/{libgcc*,libgomp*,libquadmath*,libssp*,libstdc*}.dll ${pkgdir}${MINGW_PREFIX}/bin/
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include
cp lib/gcc/${MINGW_CHOST}/${pkgver}/include/*.h ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/
cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/ssp ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/
@@ -169,8 +182,7 @@ package_mingw-w64-gcc() {
cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/collect2.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/crt*.o ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto_plugin.dll ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto_plugin.dll.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/liblto* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcc* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgcov.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgomp.* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
@@ -178,8 +190,8 @@ package_mingw-w64-gcc() {
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libssp* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/lto*.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib
cp lib/gcc/${MINGW_CHOST}/lib/libgcc*.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/
#mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib
#cp lib/gcc/${MINGW_CHOST}/lib/libgcc*.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/lib/
cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/c++ ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1plus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
@@ -187,7 +199,7 @@ package_mingw-w64-gcc() {
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libsupc++* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/{doc,info,locale,man}
cp -r share/doc/gcc-${pkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/
#cp -r share/doc/gcc-${pkgver} ${pkgdir}${MINGW_PREFIX}/share/doc/
cp share/info/cpp.info* ${pkgdir}${MINGW_PREFIX}/share/info/
cp share/info/cppinternals.info* ${pkgdir}${MINGW_PREFIX}/share/info/
cp share/info/gcc.info* ${pkgdir}${MINGW_PREFIX}/share/info/
@@ -196,7 +208,7 @@ package_mingw-w64-gcc() {
cp share/info/libgomp.info* ${pkgdir}${MINGW_PREFIX}/share/info/
cp share/info/libquadmath.info* ${pkgdir}${MINGW_PREFIX}/share/info/
cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/
#cp share/locale/* ${pkgdir}${MINGW_PREFIX}/share/locale/
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python
cp -r share/gcc-${pkgver}/python/libstdcxx ${pkgdir}${MINGW_PREFIX}/share/gcc-${pkgver}/python/
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1
@@ -210,6 +222,9 @@ package_mingw-w64-gcc() {
}
package_mingw-w64-gcc-ada() {
pkgdesc="GNU Compiler Collection (Ada) for MinGW-w64"
depends=("${_mingw_suff}-${_realname}=${pkgver}")
mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share}
cd ${destdir}${MINGW_PREFIX}
@@ -226,6 +241,8 @@ package_mingw-w64-gcc-ada() {
cp bin/gnatprep.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/gnatxref.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/{libgnarl*,libgnat*}.dll ${pkgdir}${MINGW_PREFIX}/bin/
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}
cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adainclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/adalib ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
@@ -238,27 +255,37 @@ package_mingw-w64-gcc-ada() {
}
package_mingw-w64-gcc-fortran() {
pkgdesc="GNU Compiler Collection (Fortran) for MinGW-w64"
depends=("${_mingw_suff}-${_realname}=${pkgver}")
mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib,share}
cd ${destdir}${MINGW_PREFIX}
cp bin/cpp.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/${MINGW_CHOST}-gfortran.exe ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/libgfortran*.dll ${pkgdir}${MINGW_PREFIX}/bin/
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}
cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/finclude ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/f951.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libcaf_single.a ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/libgfortran* ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/man/man1
cp share/info/gfortran.info*
cp share/man/man1/gfortran.1*
cp share/man/man1/gfortran.1* ${pkgdir}${MINGW_PREFIX}/share/man/man1/
mkdir -p ${pkgdir}${MINGW_PREFIX}/share/info
cp share/info/gfortran.info* ${pkgdir}${MINGW_PREFIX}/share/info/
}
package_mingw-w64-gcc-objc() {
pkgdesc="GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64"
depends=("${_mingw_suff}-${_realname}=${pkgver}")
mkdir -p ${pkgdir}${MINGW_PREFIX}/{bin,lib}
cd ${destdir}${MINGW_PREFIX}
#cp bin/*objc*.dll ${pkgdir}${MINGW_PREFIX}/bin/
cp bin/libobjc*.dll ${pkgdir}${MINGW_PREFIX}/bin/
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include
cp -r lib/gcc/${MINGW_CHOST}/${pkgver}/include/objc ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/include/
cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1obj.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
@@ -266,12 +293,13 @@ package_mingw-w64-gcc-objc() {
cp lib/gcc/${MINGW_CHOST}/${pkgver}/cc1objplus.exe ${pkgdir}${MINGW_PREFIX}/lib/gcc/${MINGW_CHOST}/${pkgver}/
}
package_mingw-w64-gcc-libs() {
mkdir -p ${pkgdir}${MINGW_PREFIX}/bin
cd ${destdir}${MINGW_PREFIX}
cp bin/*.dll ${pkgdir}${MINGW_PREFIX}/bin/
}
#package_mingw-w64-gcc-libs() {
# pkgdesc="GNU Compiler Collection (libraries) for MinGW-w64"
# mkdir -p ${pkgdir}${MINGW_PREFIX}/bin
#
# cd ${destdir}${MINGW_PREFIX}
# cp bin/*.dll ${pkgdir}${MINGW_PREFIX}/bin/
#}
package_mingw-w64-i686-gcc() {
package_mingw-w64-gcc
@@ -309,6 +337,6 @@ package_mingw-w64-x86_64-gcc-objc() {
package_mingw-w64-gcc-objc
}
package_mingw-w64-x86_64-gcc-libs() {
package_mingw-w64-gcc-libs
}
#package_mingw-w64-x86_64-gcc-libs() {
# package_mingw-w64-gcc-libs
#}