diff --git a/build.sh b/build.sh index ef8d849489ff540e8963bbb229798ede3eb73f28..b9d0b8c7cafdfb943f5f001a29a6e6e5be2dce8e 100755 --- a/build.sh +++ b/build.sh @@ -30,9 +30,8 @@ # --nolua52 : don't build luatex with luatex 52 # --lua53 : build luatex with luatex 53 # --nolua53 : don't build luatex with luatex 53 -# --mingw : crosscompile for mingw32 from x86_64linux -# --mingw32 : crosscompile for mingw32 from x86_64linux -# --mingw64 : crosscompile for mingw64 from x86_64linux +# --mingw[32] : crosscompile for mingw32 +# --mingw64 : crosscompile for mingw64 # --host= : target system for mingw32 cross-compilation # --build= : build system for mingw32 cross-compilation # --arch= : crosscompile for ARCH on OS X @@ -77,7 +76,7 @@ ONLY_MAKE=FALSE STRIP_LUATEX=TRUE WARNINGS=yes MINGW=FALSE -MINGWCROSS=FALSE +MINGWCROSS32=FALSE MINGWCROSS64=FALSE MACCROSS=FALSE CLANG=FALSE @@ -108,8 +107,7 @@ until [ -z "$1" ]; do --lua52 ) BUILDLUA52=TRUE ;; --lua53 ) BUILDLUA53=TRUE ;; --make ) ONLY_MAKE=TRUE ;; - --mingw ) MINGWCROSS=TRUE ;; - --mingw32 ) MINGWCROSS=TRUE ;; + --mingw|--mingw32 ) MINGWCROSS32=TRUE ;; --mingw64 ) MINGWCROSS64=TRUE ;; --musl ) USEMUSL=TRUE ;; --nojit ) BUILDJIT=FALSE ;; @@ -135,10 +133,8 @@ LUATEXEXE53=luatex53 case `uname` in CYGWIN* ) LUATEXEXEJIT=luajittex.exe ; LUATEXEXE=luatex.exe ; LUATEXEXE53=luatex53.exe ;; - Darwin ) STRIP="strip -u -r" ;; MINGW* ) LUATEXEXEJIT=luajittex.exe ; LUATEXEXE=luatex.exe ; LUATEXEXE53=luatex53.exe ;; - MINGW32* ) LUATEXEXEJIT=luajittex.exe ; LUATEXEXE=luatex.exe ; LUATEXEXE53=luatex53.exe ;; - MINGW64* ) LUATEXEXEJIT=luajittex.exe ; LUATEXEXE=luatex.exe ; LUATEXEXE53=luatex53.exe ;; + Darwin ) STRIP="strip -u -r" ;; esac WARNINGFLAGS=--enable-compiler-warnings=$WARNINGS @@ -163,43 +159,40 @@ fi OLDPATH=$PATH +if [ "$MINGWCROSS32" = "TRUE" ] +then + B=build-windows32 + : ${CONFHOST:=--host=i686-w64-mingw32} + CFLAGS="-Wno-unknown-pragmas -mtune=nocona -g -O3 $CFLAGS" + CXXFLAGS="-Wno-unknown-pragmas -mtune=nocona -g -O3 $CXXFLAGS" + LDFLAGS="-Wl,--large-address-aware -Wl,--stack,2621440 $CFLAGS" + export CFLAGS CXXFLAGS LDFLAGS +fi if [ "$MINGWCROSS64" = "TRUE" ] then B=build-windows64 - LUATEXEXEJIT=luajittex.exe - LUATEXEXE=luatex.exe - LUATEXEXE53=luatex53.exe - PATH=/usr/mingw32/bin:$PATH - PATH=`pwd`/extrabin/mingw:$PATH + : ${CONFHOST:=--host=x86_64-w64-mingw32} CFLAGS="-Wno-unknown-pragmas -mtune=nocona -g -O3 -fno-lto -fno-use-linker-plugin $CFLAGS" CXXFLAGS="-Wno-unknown-pragmas -mtune=nocona -g -O3 -fno-lto -fno-use-linker-plugin $CXXFLAGS" - : ${CONFHOST:=--host=x86_64-w64-mingw32} - : ${CONFBUILD:=--build=x86_64-unknown-linux-gnu} - RANLIB="${CONFHOST#--host=}-ranlib" - STRIP="${CONFHOST#--host=}-strip" LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin -static-libgcc -static-libstdc++" export CFLAGS CXXFLAGS LDFLAGS fi - -if [ "$MINGWCROSS" = "TRUE" ] +if [ "$MINGWCROSS32" = "TRUE" ] || [ "$MINGWCROSS64" = "TRUE" ] then - B=build-windows + case `uname -s` in + Linux) platform="x86_64-linux"; build_tripple="x86_64-unknown-linux-gnu" ;; + Darwin) platform="x86_64-darwin"; build_tripple="x86_64-apple-darwin" ;; + esac + + : ${CONFBUILD:=--build=$build_tripple} + PATH=`pwd`/extrabin/mingw/$platform:/usr/mingw32/bin:$PATH LUATEXEXEJIT=luajittex.exe LUATEXEXE=luatex.exe LUATEXEXE53=luatex53.exe - PATH=/usr/mingw32/bin:$PATH - PATH=`pwd`/extrabin/mingw:$PATH - CFLAGS="-Wno-unknown-pragmas -mtune=nocona -g -O3 $CFLAGS" - CXXFLAGS="-Wno-unknown-pragmas -mtune=nocona -g -O3 $CXXFLAGS" - : ${CONFHOST:=--host=i686-w64-mingw32} - : ${CONFBUILD:=--build=x86_64-unknown-linux-gnu} RANLIB="${CONFHOST#--host=}-ranlib" STRIP="${CONFHOST#--host=}-strip" - LDFLAGS="-Wl,--large-address-aware -Wl,--stack,2621440 $CFLAGS" - export CFLAGS CXXFLAGS LDFLAGS BUILDCXX BUILDCC fi - if [ "$MACCROSS" = "TRUE" ] then # make sure that architecture parameter is valid @@ -386,7 +379,7 @@ else echo "lua(jit)tex binary not stripped" fi -if [ "$MINGWCROSS" = "TRUE" ] +if [ "$MINGWCROSS32" = "TRUE" ] || [ "$MINGWCROSS64" = "TRUE" ] then PATH=$OLDPATH fi