From 46bf8efe667485a05a09f5de2df35aa761b5457d Mon Sep 17 00:00:00 2001 From: Alexpux Date: Wed, 20 Nov 2013 13:09:50 +0400 Subject: [PATCH] GCC: fix building and packaging. --- mingw-w64-gcc/PKGBUILD | 96 +++++++++++++++++++++++++++--------------- 1 file changed, 62 insertions(+), 34 deletions(-) diff --git a/mingw-w64-gcc/PKGBUILD b/mingw-w64-gcc/PKGBUILD index c0efacd99e..281ab4ee23 100644 --- a/mingw-w64-gcc/PKGBUILD +++ b/mingw-w64-gcc/PKGBUILD @@ -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 /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 +#}