LINUX.ORG.RU

Кто нибудь собирал mingw собственноручно

 ,


0

2

Пытаюсь собрать mingw

#!/bin/sh

######################################################
# всякое для математики

export pref_abs_path="$(realpath .)"

cd gmp-6.1.2
make clean && make distclean
./configure --disable-shared --enable-static --prefix=$pref_abs_path/for_gcc
make && make check && make install
cd ..

cd pkgs
tar -xf mpfr-4.0.1.tar.xz -C $pref_abs_path

cd ../mpfr-4.0.1
make clean && make distclean
./configure --disable-shared --enable-static --prefix=$pref_abs_path/for_gcc --with-gmp=$pref_abs_path/for_gcc
make && make check && make install
cd ..

cd pkgs
tar -xf mpc-1.1.0.tar.gz -C $pref_abs_path

cd ../mpc-1.1.0
make clean && make distclean
./configure --disable-shared --enable-static --prefix=$pref_abs_path/for_gcc --with-gmp=$pref_abs_path/for_gcc --with-mpfr=$pref_abs_path/for_gcc
make && make check && make install
cd ..

######################################################
# бинутилс

mkdir -p toolchain

cd pkgs
tar -xf binutils-2.31.tar.xz -C $pref_abs_path

cd ../binutils-2.31
make clean && make distclean

conf_opts=''
conf_opts=$conf_opts' --disable-shared'
conf_opts=$conf_opts' --enable-static'
conf_opts=$conf_opts' --prefix='$pref_abs_path'/toolchain'
conf_opts=$conf_opts' --with-sysroot='$pref_abs_path'/toolchain'
conf_opts=$conf_opts' --with-gmp='$pref_abs_path'/for_gcc'
conf_opts=$conf_opts' --with-mpfr='$pref_abs_path'/for_gcc'
conf_opts=$conf_opts' --with-mpc='$pref_abs_path'/for_gcc'
conf_opts=$conf_opts' --enable-lto'
#conf_opts=$conf_opts' --with-isl=no'
#conf_opts=$conf_opts' --with-build-sysroot='$pref_abs_path'/toolchain/sysroot'
#conf_opts=$conf_opts' --disable-bootstrap'
conf_opts=$conf_opts' --target=x86_64-w64-mingw32'
conf_opts=$conf_opts' --enable-targets=x86_64-w64-mingw32,i686-w64-mingw32'

#echo $conf_opts

./configure $conf_opts
make && make install
cd ..

pkg_name="mingw-w64-v5.0.4"

######################################################
#установка хедеров mingw (в доке написано --prefix=/mypath, а я сделал --prefix=/mypath/x86_64-w64-mingw32 
#без этого не собирается gcc - косяк???? или мой косяк ?? )

mkdir -p toolchain

cd pkgs
tar -xf $pkg_name.tar.bz2 -C $pref_abs_path
cd ..

mkdir mingw_headers_build && cd mingw_headers_build

conf_opts=''
conf_opts=$conf_opts' --prefix='$pref_abs_path'/toolchain/x86_64-w64-mingw32'
conf_opts=$conf_opts' --host=x86_64-w64-mingw32'
#echo $conf_opts

../$pkg_name/mingw-w64-headers/configure $conf_opts
make && make install
cd ..

######################################################
# сборка gcc

pkg_name="gcc-8.1.0"

cd pkgs
tar -xf $pkg_name.tar.xz -C $pref_abs_path
cd ..

mkdir gcc_build && cd gcc_build
#make clean && make distclean

ln -s $pref_abs_path'/toolchain/x86_64-w64-mingw32' $pref_abs_path'/toolchain/mingw'
ln -s $pref_abs_path'/toolchain/x86_64-w64-mingw32/lib' $pref_abs_path'/toolchain/x86_64-w64-mingw32/lib64'

conf_opts=''
conf_opts=$conf_opts' --disable-shared'
conf_opts=$conf_opts' --enable-static'
conf_opts=$conf_opts' --prefix='$pref_abs_path'/toolchain'
conf_opts=$conf_opts' --with-gmp='$pref_abs_path'/for_gcc'
conf_opts=$conf_opts' --with-mpfr='$pref_abs_path'/for_gcc'
conf_opts=$conf_opts' --with-mpc='$pref_abs_path'/for_gcc'
conf_opts=$conf_opts' --enable-lto'
conf_opts=$conf_opts' --with-isl=no'
#conf_opts=$conf_opts' --with-build-sysroot='$pref_abs_path'/toolchain/sysroot'
#conf_opts=$conf_opts' --disable-bootstrap'
conf_opts=$conf_opts' --enable-targets=all'
conf_opts=$conf_opts' --target=x86_64-w64-mingw32'
conf_opts=$conf_opts' --enable-checking=release'
conf_opts=$conf_opts' --enable-c99'
conf_opts=$conf_opts' --enable-languages=c,c++,fortran,lto'
conf_opts=$conf_opts' --with-isl=no'
conf_opts=$conf_opts' --with-sysroot='$pref_abs_path'/toolchain'

#echo $conf_opts

../$pkg_name/configure $conf_opts
make all-gcc && make install-gcc
cd ..

######################################################
# сборка crt

pkg_name="mingw-w64-v5.0.4"


rm crt_build
mkdir -p crt_build && cd crt_build

conf_opts=''
conf_opts=$conf_opts' --prefix='$pref_abs_path'/toolchain'
conf_opts=$conf_opts' --with-sysroot='$pref_abs_path'/toolchain'
conf_opts=$conf_opts' --host=x86_64-w64-mingw32'
conf_opts=$conf_opts' --enable-lib32'
echo $conf_opts

../$pkg_name/mingw-w64-crt/configure $conf_opts
#make && make install
cd ..

Склеил в один скрипт прям в браузере(каждый этот, пока что отдельный скрипт) - так что могут быть опечатки. Суть не в этом... Всё собралось кроме crt(последнего шага) - грит не могу найти хедеры и пипец - делал всё по how to build mingw. Я уже и префиксы перепробовал все и сисрут аргумент и вместе и по отдельности:

и /blabla/toolchain и /blabla/toolchain/mingw и /blabla/toolchain/x86_64-w64-mingw32

не могёт увидеть хедеры свои - хотя они там есть - хз

Вот конфиг.лог: config.log



Последнее исправление: fsmoke (всего исправлений: 1)

Зачем.jpg

anonymous
()

Зачем тебе самому его собирать? Бери готовый.

das_tier ★★★★★
()

Несколько лет назад. И не просто собирал, а даже в составе http://mxe.cc кросскомпилировал.

gag ★★★★★
()

Когда-то sys-devel/crossdev собирался прекрасно (пока не сломался), тому что сделаешь ты я бы не доверял на твоём месте.

anonymous
()
Ответ на: комментарий от anonymous

я бы не доверял на твоём месте.

Это почему же :) ? Или ты думаешь я не шарю в опциях и тонких настройках конфигура гцц ? — могу заверить спи спокойно :) - я прекрасно понимаю какую seh выбирать и что такое PIE и пр.

fsmoke
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.