mirror of
https://gitlab.com/gnuwget/wget2.git
synced 2026-02-01 14:41:08 +00:00
138 lines
3.5 KiB
Bash
Executable File
138 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# just in case...
|
|
unset CC
|
|
unset CXX
|
|
|
|
#PREFIX=i686-w64-mingw32
|
|
PREFIX=x86_64-w64-mingw32
|
|
|
|
export PATH="/usr/$PREFIX/bin:$PATH"
|
|
export INSTALLDIR="$PWD/$PREFIX"
|
|
export PKG_CONFIG_PATH=$INSTALLDIR/lib/pkgconfig:/usr/$PREFIX/lib/pkgconfig
|
|
export PKG_CONFIG_LIBDIR="$INSTALLDIR/lib/pkgconfig"
|
|
export PKG_CONFIG="/usr/bin/${PREFIX}-pkg-config"
|
|
export CPPFLAGS="-I$INSTALLDIR/include"
|
|
export LDFLAGS="-L$INSTALLDIR/lib"
|
|
|
|
# somehow, the GnuTLS build needs a static gcc library. It comes with MinGW, but we have to find it's directory.
|
|
GCCLIB=$(dirname $(find /usr/lib/gcc/$PREFIX -name libgcc_s_seh-1.dll|head -1))
|
|
|
|
# without WINEPATH our local DLLs won't be find when running tests
|
|
export WINEPATH="$INSTALLDIR/bin;$INSTALLDIR/lib;/usr/$PREFIX/bin;/usr/$PREFIX/lib;$PWD/libwget/.libs;$GCCLIB"
|
|
|
|
# let mingw compiler be less verbose
|
|
export CFLAGS="-O2 -Wall -Wno-format"
|
|
|
|
if [ ! -d libunistring ]; then
|
|
git clone https://git.savannah.gnu.org/git/libunistring.git
|
|
cd libunistring
|
|
else
|
|
cd libunistring
|
|
git pull
|
|
fi
|
|
./gitsub.sh pull
|
|
./autogen.sh
|
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --prefix=$INSTALLDIR
|
|
make clean
|
|
make -j$(nproc)
|
|
make install
|
|
cd ..
|
|
|
|
if [ ! -d libidn2 ]; then
|
|
git clone https://gitlab.com/libidn/libidn2.git
|
|
cd libidn2
|
|
else
|
|
cd libidn2
|
|
git pull
|
|
fi
|
|
./bootstrap
|
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-doc --disable-gcc-warnings --prefix=$INSTALLDIR
|
|
make clean
|
|
make -j$(nproc)
|
|
make install
|
|
cd ..
|
|
|
|
if [ ! -d libpsl ]; then
|
|
git clone --recursive https://github.com/rockdaboot/libpsl.git
|
|
cd libpsl
|
|
else
|
|
cd libpsl
|
|
git pull
|
|
fi
|
|
./autogen.sh
|
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --disable-gtk-doc --enable-runtime=libidn2 --enable-builtin=libidn2 --prefix=$INSTALLDIR
|
|
make clean
|
|
make -j$(nproc)
|
|
make install
|
|
cd ..
|
|
|
|
if [ ! -d nettle ]; then
|
|
git clone https://git.lysator.liu.se/nettle/nettle.git
|
|
cd nettle
|
|
else
|
|
cd nettle
|
|
git pull
|
|
fi
|
|
bash .bootstrap
|
|
./configure --host=$PREFIX --enable-mini-gmp --enable-shared --disable-documentation --prefix=$INSTALLDIR
|
|
make clean
|
|
make -j$(nproc)
|
|
make install
|
|
cd ..
|
|
|
|
if [ ! -d gnutls ]; then
|
|
git clone https://gitlab.com/gnutls/gnutls.git
|
|
cd gnutls
|
|
else
|
|
cd gnutls
|
|
git pull
|
|
fi
|
|
./bootstrap
|
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --prefix=$INSTALLDIR \
|
|
--with-nettle-mini --enable-shared --with-included-libtasn1 \
|
|
--with-included-unistring --without-p11-kit --disable-doc --disable-tests --disable-full-test-suite --disable-tools \
|
|
--disable-cxx --disable-maintainer-mode --disable-libdane --disable-hardware-acceleration --disable-guile
|
|
|
|
make -j$(nproc)
|
|
make install
|
|
cd ..
|
|
|
|
# Install dlfcn-win32
|
|
if [ ! -d dlfcn-win32 ]; then
|
|
git clone --recursive https://github.com/dlfcn-win32/dlfcn-win32.git
|
|
cd dlfcn-win32
|
|
else
|
|
cd dlfcn-win32
|
|
git pull
|
|
fi
|
|
./configure --prefix=$PREFIX --cc=$PREFIX-gcc
|
|
make
|
|
cp -p libdl.a ../$PREFIX/lib/
|
|
cp -p src/dlfcn.h ../$PREFIX/include/
|
|
cd ..
|
|
|
|
# Install Libmicrohttpd from source
|
|
if [ ! -d libmicrohttpd ]; then
|
|
git clone --recursive https://git.gnunet.org/libmicrohttpd.git
|
|
cd libmicrohttpd
|
|
else
|
|
cd libmicrohttpd
|
|
git pull
|
|
fi
|
|
./bootstrap
|
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --prefix=$INSTALLDIR --disable-doc --disable-examples --enable-shared
|
|
make clean
|
|
make -j$(nproc)
|
|
make install
|
|
cd ..
|
|
|
|
# Build Wget2 and run checks
|
|
./bootstrap
|
|
./configure --build=x86_64-pc-linux-gnu --host=$PREFIX --enable-shared --without-gpgme
|
|
make clean
|
|
make -j
|
|
make check -j LOG_COMPILER=wine
|