builder: msys2 fixes + misc improvements
- Fix leading spaces in build env vars. - Pass -Dcc="$CC" to the c2man metaconfig, it tries to use cc on msys2 which fails. - Pass LDFLAGS to openssl make to fix link errors. - Change the host_env, target_env and related functions to output a list of commands for eval. - Add a --host-env flag to output the host env for cross build environments. - Ignore symlink failures when installing dists, symlinks fail on msys2 sometimes for some reason. - Put libicu in the list of both host and target dists only in mingw-cross, the host libicu does not build on msys2, and everything works fine without it. - Add -j1 to openssl make args to disable parallel builds for the msys2 and cygwin host builds, because they fail otherwise. - Add "-ldl -lcatgets -lws2_32" to libicu LDFLAGS for the target build, ws2_32 may be necessary for 32 bit builds.
This commit is contained in:
parent
975a1866f5
commit
37869441d2
|
@ -43,11 +43,11 @@ esac
|
||||||
export CC_ORIG="\${CC_ORIG:-\$CC}"
|
export CC_ORIG="\${CC_ORIG:-\$CC}"
|
||||||
export CXX_ORIG="\${CXX_ORIG:-\$CXX}"
|
export CXX_ORIG="\${CXX_ORIG:-\$CXX}"
|
||||||
|
|
||||||
export CPPFLAGS="$CPPFLAGS -I$BUILD_ROOT/root/include"
|
export CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-I$BUILD_ROOT/root/include"
|
||||||
export CFLAGS="$CFLAGS -fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -pthread -lm"
|
export CFLAGS="$CFLAGS${CFLAGS:+ }-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -pthread -lm"
|
||||||
export CXXFLAGS="$CXXFLAGS -fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -pthread -lm"
|
export CXXFLAGS="$CXXFLAGS${CXXFLAGS:+ }-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -pthread -lm"
|
||||||
export OBJCXXFLAGS="$OBJCXXFLAGS -fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -pthread -lm"
|
export OBJCXXFLAGS="$OBJCXXFLAGS${OBJCXXFLAGS:+ }-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -pthread -lm"
|
||||||
export LDFLAGS="$LDFLAGS -fPIC -L$BUILD_ROOT/root/lib -pthread -lm"
|
export LDFLAGS="$LDFLAGS${LDFLAGS:+ }-fPIC -L$BUILD_ROOT/root/lib -pthread -lm"
|
||||||
export STRIP="${STRIP:-strip}"
|
export STRIP="${STRIP:-strip}"
|
||||||
|
|
||||||
if [ -z "\$OPENMP" ] && echo "\$CC" | grep -Eq gcc; then
|
if [ -z "\$OPENMP" ] && echo "\$CC" | grep -Eq gcc; then
|
||||||
|
@ -336,7 +336,7 @@ DIST_CONFIGURE_OVERRIDES="$DIST_CONFIGURE_OVERRIDES
|
||||||
"
|
"
|
||||||
|
|
||||||
DIST_BUILD_OVERRIDES="$DIST_BUILD_OVERRIDES
|
DIST_BUILD_OVERRIDES="$DIST_BUILD_OVERRIDES
|
||||||
c2man ./Configure -de -Dprefix=/usr -Dmansrc=/usr/share/man/man1; \
|
c2man ./Configure -de -Dprefix=/usr -Dmansrc=/usr/share/man/man1 -Dcc=\"\$CC\"; \
|
||||||
sed -i.bak 's|/[^ ][^ ]*/libfl\\.[^ ]*|-L$BUILD_ROOT/root/lib -lfl|' Makefile; \
|
sed -i.bak 's|/[^ ][^ ]*/libfl\\.[^ ]*|-L$BUILD_ROOT/root/lib -lfl|' Makefile; \
|
||||||
make -j\$NUM_CPUS; \
|
make -j\$NUM_CPUS; \
|
||||||
make install bin='$BUILD_ROOT/root/bin' mansrc='$BUILD_ROOT/root/share/man/man1' privlib='$BUILD_ROOT/root/lib/c2man'
|
make install bin='$BUILD_ROOT/root/bin' mansrc='$BUILD_ROOT/root/share/man/man1' privlib='$BUILD_ROOT/root/lib/c2man'
|
||||||
|
@ -405,7 +405,7 @@ ALL_MAKE_ARGS='V=1 VERBOSE=1'
|
||||||
|
|
||||||
# have to disable ccache for openssl
|
# have to disable ccache for openssl
|
||||||
DIST_MAKE_ARGS="$DIST_MAKE_ARGS
|
DIST_MAKE_ARGS="$DIST_MAKE_ARGS
|
||||||
openssl CC=\"\$CC_ORIG -fPIC\" CXX=\"\$CXX_ORIG -fPIC\"
|
openssl CC=\"\$CC\" CXX=\"\$CXX\" LDFLAGS=\"\$LDFLAGS\"
|
||||||
getopt LDFLAGS=\"\$LDFLAGS -lintl -liconv\" CFLAGS=\"\$CFLAGS\"
|
getopt LDFLAGS=\"\$LDFLAGS -lintl -liconv\" CFLAGS=\"\$CFLAGS\"
|
||||||
bzip2 libbz2.a bzip2 bzip2recover CFLAGS=\"\$CFLAGS\" LDFLAGS=\"\$LDFLAGS\"
|
bzip2 libbz2.a bzip2 bzip2recover CFLAGS=\"\$CFLAGS\" LDFLAGS=\"\$LDFLAGS\"
|
||||||
unzip generic2
|
unzip generic2
|
||||||
|
@ -461,10 +461,15 @@ builder() {
|
||||||
|
|
||||||
read_command_line() {
|
read_command_line() {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--env)
|
--env|--target-env)
|
||||||
puts "$BUILD_ENV"
|
puts "$BUILD_ENV"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
--host-env)
|
||||||
|
puts "$BUILD_ENV"
|
||||||
|
host_env 2>/dev/null || :
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
--clean)
|
--clean)
|
||||||
rm -rf "$BUILD_ROOT/dists/*"
|
rm -rf "$BUILD_ROOT/dists/*"
|
||||||
unpack_dists
|
unpack_dists
|
||||||
|
@ -1871,12 +1876,12 @@ EOF
|
||||||
link_dest=$(fully_resolve_link "$link_dest")
|
link_dest=$(fully_resolve_link "$link_dest")
|
||||||
|
|
||||||
if [ -e "$link_dest" ]; then
|
if [ -e "$link_dest" ]; then
|
||||||
echo_run ln -sf "$link_dest" "$dest_f"
|
echo_run ln -sf "$link_dest" "$dest_f" || :
|
||||||
else
|
else
|
||||||
# this is for windows as well, where symlinks can't point to a
|
# this is for windows as well, where symlinks can't point to a
|
||||||
# file that doesn't (yet) exist
|
# file that doesn't (yet) exist
|
||||||
defer_cmds="$defer_cmds
|
defer_cmds="$defer_cmds
|
||||||
ln -sf \"$link_dest\" \"$dest_f\"
|
ln -sf \"$link_dest\" \"$dest_f\" || :
|
||||||
"
|
"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1954,12 +1959,16 @@ ln -sf \"$link_dest\" \"$dest_f\"
|
||||||
wait_all_jobs running_jobs
|
wait_all_jobs running_jobs
|
||||||
cleanup_jobs
|
cleanup_jobs
|
||||||
|
|
||||||
IFS=$NL
|
if [ -n "$defer_cmds" ]; then
|
||||||
for cmd in $defer_cmds; do
|
message "making deferred links..."
|
||||||
|
|
||||||
|
IFS=$NL
|
||||||
|
for cmd in $defer_cmds; do
|
||||||
|
IFS=$OIFS
|
||||||
|
eval echo_run "$cmd"
|
||||||
|
done
|
||||||
IFS=$OIFS
|
IFS=$OIFS
|
||||||
eval echo_run "$cmd"
|
fi
|
||||||
done
|
|
||||||
IFS=$OIFS
|
|
||||||
|
|
||||||
cd "$OLDPWD"
|
cd "$OLDPWD"
|
||||||
|
|
||||||
|
@ -2548,6 +2557,10 @@ warn() {
|
||||||
puts >&2 "${NL}[35mWARNING[0m: $@${NL}${NL}"
|
puts >&2 "${NL}[35mWARNING[0m: $@${NL}${NL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message() {
|
||||||
|
puts >&2 "${NL}[35mINFO[0m: $@${NL}${NL}"
|
||||||
|
}
|
||||||
|
|
||||||
die() {
|
die() {
|
||||||
error "$@"
|
error "$@"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -35,7 +35,7 @@ host_dists='
|
||||||
|
|
||||||
both_dists='
|
both_dists='
|
||||||
openssl zlib bzip2 libiconv gettext xz libxml2 expat libpng freetype
|
openssl zlib bzip2 libiconv gettext xz libxml2 expat libpng freetype
|
||||||
fontconfig
|
fontconfig libicu
|
||||||
'
|
'
|
||||||
|
|
||||||
[ -n "$BUILD_ENV" ] && eval "$BUILD_ENV"
|
[ -n "$BUILD_ENV" ] && eval "$BUILD_ENV"
|
||||||
|
@ -46,10 +46,10 @@ export CC='${target_arch}-gcc'
|
||||||
export CXX='${target_arch}-g++'
|
export CXX='${target_arch}-g++'
|
||||||
export STRIP='${target_arch}-strip'
|
export STRIP='${target_arch}-strip'
|
||||||
|
|
||||||
export CFLAGS="\$CFLAGS -L/usr/${target_arch}/usr/lib${lib_suffix}"
|
|
||||||
export CPPFLAGS="\$CPPFLAGS"
|
export CPPFLAGS="\$CPPFLAGS"
|
||||||
export CXXFLAGS="\$CXXFLAGS -L/usr/${target_arch}/usr/lib${lib_suffix}"
|
export CFLAGS="\$CFLAGS\${CFLAGS:+ }-L/usr/${target_arch}/usr/lib${lib_suffix}"
|
||||||
export OBJCXXFLAGS="\$OBJCXXFLAGS -L/usr/${target_arch}/usr/lib${lib_suffix}"
|
export CXXFLAGS="\$CXXFLAGS\${CXXFLAGS:+ }-L/usr/${target_arch}/usr/lib${lib_suffix}"
|
||||||
|
export OBJCXXFLAGS="\$OBJCXXFLAGS\${OBJCXXFLAGS:+ }-L/usr/${target_arch}/usr/lib${lib_suffix}"
|
||||||
export LDFLAGS="-L/usr/${target_arch}/usr/lib${lib_suffix} \$LDFLAGS"
|
export LDFLAGS="-L/usr/${target_arch}/usr/lib${lib_suffix} \$LDFLAGS"
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
@ -68,6 +68,8 @@ table_line_replace DIST_CONFIGURE_OVERRIDES openssl-target "./Configure $openssl
|
||||||
|
|
||||||
table_line_append DIST_PRE_BUILD bzip2-target ':; sed -i.bak '\''s,include <sys\\stat.h>,include <sys/stat.h>,g'\'' *.c;'
|
table_line_append DIST_PRE_BUILD bzip2-target ':; sed -i.bak '\''s,include <sys\\stat.h>,include <sys/stat.h>,g'\'' *.c;'
|
||||||
|
|
||||||
|
table_line_append DIST_ARGS libicu-target "--with-cross-build=$BUILD_ROOT/dists/libicu/source"
|
||||||
|
|
||||||
table_line_replace DIST_POST_BUILD harfbuzz "$(table_line DIST_POST_BUILD harfbuzz | sed 's/rebuild_dist freetype /rebuild_dist freetype-target /')"
|
table_line_replace DIST_POST_BUILD harfbuzz "$(table_line DIST_POST_BUILD harfbuzz | sed 's/rebuild_dist freetype /rebuild_dist freetype-target /')"
|
||||||
|
|
||||||
table_line_replace DIST_POST_BUILD glib "$(table_line DIST_POST_BUILD glib | sed 's/rebuild_dist gettext /rebuild_dist gettext-target /')"
|
table_line_replace DIST_POST_BUILD glib "$(table_line DIST_POST_BUILD glib | sed 's/rebuild_dist gettext /rebuild_dist gettext-target /')"
|
||||||
|
|
|
@ -8,11 +8,11 @@ CROSS_OS=windows
|
||||||
|
|
||||||
BUILD_ENV=$BUILD_ENV$(cat <<EOF
|
BUILD_ENV=$BUILD_ENV$(cat <<EOF
|
||||||
|
|
||||||
export CPPFLAGS="$CPPFLAGS -DMINGW_HAS_SECURE_API"
|
export CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-DMINGW_HAS_SECURE_API"
|
||||||
export CFLAGS="$CFLAGS -static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
export CFLAGS="$CFLAGS${CFLAGS:+ }-static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
||||||
export CXXFLAGS="$CXXFLAGS -static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
export CXXFLAGS="$CXXFLAGS${CXXFLAGS:+ }-static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
||||||
export OBJCXXFLAGS="$OBJCXXFLAGS -static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
export OBJCXXFLAGS="$OBJCXXFLAGS${OBJCXXFLAGS:+ }-static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
||||||
export LDFLAGS="$LDFLAGS -static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
export LDFLAGS="$LDFLAGS${LDFLAGS:+ }-static-libgcc -static-libstdc++ -static -lpthread -DMINGW_HAS_SECURE_API -lm"
|
||||||
export LIBS="-lpthread -lm"
|
export LIBS="-lpthread -lm"
|
||||||
|
|
||||||
export UUID_LIBS="-luuid_mingw -luuid"
|
export UUID_LIBS="-luuid_mingw -luuid"
|
||||||
|
@ -63,7 +63,7 @@ host_dists="$host_dists autoconf autoconf-archive automake m4 gsed bison \
|
||||||
flex-2.6.3 flex c2man docbook2x ccache"
|
flex-2.6.3 flex c2man docbook2x ccache"
|
||||||
host_dists=$(list_remove_duplicates $host_dists)
|
host_dists=$(list_remove_duplicates $host_dists)
|
||||||
|
|
||||||
both_dists="$both_dists openssl zlib bzip2 libiconv libicu"
|
both_dists="$both_dists openssl zlib bzip2 libiconv"
|
||||||
|
|
||||||
if [ "$os" != windows ]; then
|
if [ "$os" != windows ]; then
|
||||||
both_dists="$both_dists libuuid"
|
both_dists="$both_dists libuuid"
|
||||||
|
@ -71,71 +71,75 @@ fi
|
||||||
|
|
||||||
both_dists=$(list_remove_duplicates $both_dists)
|
both_dists=$(list_remove_duplicates $both_dists)
|
||||||
|
|
||||||
set_host_env() {
|
host_env() {
|
||||||
rm -f "$BUILD_ROOT/root"
|
rm -f "$BUILD_ROOT/root"
|
||||||
ln -sf "$BUILD_ROOT/host" "$BUILD_ROOT/root"
|
ln -sf "$BUILD_ROOT/host" "$BUILD_ROOT/root"
|
||||||
if [ -z "$OCC" ]; then
|
if [ -z "$OCC" ]; then
|
||||||
OCC=$CC
|
cat <<EOF
|
||||||
OCXX=$CXX
|
OCC=$CC
|
||||||
OCC_ORIG=$CC_ORIG
|
OCXX=$CXX
|
||||||
OCXX_ORIG=$CXX_ORIG
|
OCC_ORIG=$CC_ORIG
|
||||||
OCPPFLAGS=$CPPFLAGS
|
OCXX_ORIG=$CXX_ORIG
|
||||||
OCFLAGS=$CFLAGS
|
OCPPFLAGS=$CPPFLAGS
|
||||||
OCXXFLAGS=$CXXFLAGS
|
OCFLAGS=$CFLAGS
|
||||||
OOBJCXXFLAGS=$OBJCXXFLAGS
|
OCXXFLAGS=$CXXFLAGS
|
||||||
OLDFLAGS=$LDFLAGS
|
OOBJCXXFLAGS=$OBJCXXFLAGS
|
||||||
OLIBS=$LIBS
|
OLDFLAGS=$LDFLAGS
|
||||||
OUUID_LIBS=$UUID_LIBS
|
OLIBS=$LIBS
|
||||||
OSTRIP=$STRIP
|
OUUID_LIBS=$UUID_LIBS
|
||||||
OPATH=$PATH
|
OSTRIP=$STRIP
|
||||||
|
OPATH=$PATH
|
||||||
|
|
||||||
export CC="$HOST_CC"
|
export CC="$HOST_CC"
|
||||||
export CXX="$HOST_CXX"
|
export CXX="$HOST_CXX"
|
||||||
export CC_ORIG="$HOST_CC_ORIG"
|
export CC_ORIG="$HOST_CC_ORIG"
|
||||||
export CXX_ORIG="$HOST_CXX_ORIG"
|
export CXX_ORIG="$HOST_CXX_ORIG"
|
||||||
export CPPFLAGS="$HOST_CPPFLAGS"
|
export CPPFLAGS="$HOST_CPPFLAGS"
|
||||||
export CFLAGS="$HOST_CFLAGS"
|
export CFLAGS="$HOST_CFLAGS"
|
||||||
export CXXFLAGS="$HOST_CXXFLAGS"
|
export CXXFLAGS="$HOST_CXXFLAGS"
|
||||||
export OBJCXXFLAGS="$HOST_OBJCXXFLAGS"
|
export OBJCXXFLAGS="$HOST_OBJCXXFLAGS"
|
||||||
export LDFLAGS="$HOST_LDFLAGS"
|
export LDFLAGS="$HOST_LDFLAGS"
|
||||||
export LIBS="$HOST_LIBS"
|
export LIBS="$HOST_LIBS"
|
||||||
export UUID_LIBS="$HOST_UUID_LIBS"
|
export UUID_LIBS="$HOST_UUID_LIBS"
|
||||||
export STRIP="$HOST_STRIP"
|
export STRIP="$HOST_STRIP"
|
||||||
export PATH="$BUILD_ROOT/host/bin:$PATH"
|
export PATH="$BUILD_ROOT/host/bin:$PATH"
|
||||||
|
|
||||||
OREQUIRED_CONFIGURE_ARGS=$REQUIRED_CONFIGURE_ARGS
|
OREQUIRED_CONFIGURE_ARGS=$REQUIRED_CONFIGURE_ARGS
|
||||||
OREQUIRED_CMAKE_ARGS=$REQUIRED_CMAKE_ARGS
|
OREQUIRED_CMAKE_ARGS=$REQUIRED_CMAKE_ARGS
|
||||||
|
|
||||||
REQUIRED_CONFIGURE_ARGS=$(puts "$REQUIRED_CONFIGURE_ARGS" | sed 's/--host[^ ]*//g')
|
REQUIRED_CONFIGURE_ARGS=$(puts "$REQUIRED_CONFIGURE_ARGS" | sed 's/--host[^ ]*//g')
|
||||||
REQUIRED_CMAKE_ARGS=$(puts "$REQUIRED_CMAKE_ARGS" | sed 's/-DCMAKE_TOOLCHAIN_FILE=[^ ]*//g')
|
REQUIRED_CMAKE_ARGS=$(puts "$REQUIRED_CMAKE_ARGS" | sed 's/-DCMAKE_TOOLCHAIN_FILE=[^ ]*//g')
|
||||||
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set_host_env_hook 2>/dev/null || :
|
host_env_hook 2>/dev/null || :
|
||||||
}
|
}
|
||||||
|
|
||||||
unset_host_env() {
|
target_env() {
|
||||||
rm -f "$BUILD_ROOT/root"
|
rm -f "$BUILD_ROOT/root"
|
||||||
ln -sf "$BUILD_ROOT/target" "$BUILD_ROOT/root"
|
ln -sf "$BUILD_ROOT/target" "$BUILD_ROOT/root"
|
||||||
|
|
||||||
if [ -n "$OCC" ]; then
|
if [ -n "$OCC" ]; then
|
||||||
export CC="$OCC"
|
cat <<EOF
|
||||||
export CXX="$OCXX"
|
export CC="$OCC"
|
||||||
export CC_ORIG="$OCC_ORIG"
|
export CXX="$OCXX"
|
||||||
export CXX_ORIG="$OCXX_ORIG"
|
export CC_ORIG="$OCC_ORIG"
|
||||||
export CPPFLAGS="$OCPPFLAGS"
|
export CXX_ORIG="$OCXX_ORIG"
|
||||||
export CFLAGS="$OCFLAGS"
|
export CPPFLAGS="$OCPPFLAGS"
|
||||||
export CXXFLAGS="$OCXXFLAGS"
|
export CFLAGS="$OCFLAGS"
|
||||||
export OBJCXXFLAGS="$OOBJCXXFLAGS"
|
export CXXFLAGS="$OCXXFLAGS"
|
||||||
export LDFLAGS="$OLDFLAGS"
|
export OBJCXXFLAGS="$OOBJCXXFLAGS"
|
||||||
export LIBS="$OLIBS"
|
export LDFLAGS="$OLDFLAGS"
|
||||||
export UUID_LIBS="$OUUID_LIBS"
|
export LIBS="$OLIBS"
|
||||||
export STRIP="$OSTRIP"
|
export UUID_LIBS="$OUUID_LIBS"
|
||||||
export PATH="$OPATH"
|
export STRIP="$OSTRIP"
|
||||||
OCC= OCXX= OCC_ORIG= OCXX_ORIG= OCPPFLAGS= OCFLAGS= OCXXFLAGS= OOBJCXXFLAGS= OLDFLAGS= OLIBS= OUUID_LIBS= OSTRIP= OPATH=
|
export PATH="$OPATH"
|
||||||
|
OCC= OCXX= OCC_ORIG= OCXX_ORIG= OCPPFLAGS= OCFLAGS= OCXXFLAGS= OOBJCXXFLAGS= OLDFLAGS= OLIBS= OUUID_LIBS= OSTRIP= OPATH=
|
||||||
|
|
||||||
REQUIRED_CONFIGURE_ARGS=$OREQUIRED_CONFIGURE_ARGS
|
REQUIRED_CONFIGURE_ARGS=$OREQUIRED_CONFIGURE_ARGS
|
||||||
REQUIRED_CMAKE_ARGS=$OREQUIRED_CMAKE_ARGS
|
REQUIRED_CMAKE_ARGS=$OREQUIRED_CMAKE_ARGS
|
||||||
OREQUIRED_CONFIGURE_ARGS= OREQUIRED_CMAKE_ARGS=
|
OREQUIRED_CONFIGURE_ARGS= OREQUIRED_CMAKE_ARGS=
|
||||||
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# make links to executables in the target as well
|
# make links to executables in the target as well
|
||||||
|
@ -149,7 +153,7 @@ unset_host_env() {
|
||||||
done
|
done
|
||||||
IFS=$OIFS
|
IFS=$OIFS
|
||||||
|
|
||||||
unset_host_env_hook 2>/dev/null || :
|
target_env_hook 2>/dev/null || :
|
||||||
}
|
}
|
||||||
|
|
||||||
# replace install artifact paths with absolute paths into host and target trees
|
# replace install artifact paths with absolute paths into host and target trees
|
||||||
|
@ -163,7 +167,7 @@ pre_build_all() {
|
||||||
set -- $dist
|
set -- $dist
|
||||||
|
|
||||||
case "$(table_line DIST_PRE_BUILD "$1")" in
|
case "$(table_line DIST_PRE_BUILD "$1")" in
|
||||||
*set_host_env*)
|
*host_env*)
|
||||||
path="$BUILD_ROOT/host/$3"
|
path="$BUILD_ROOT/host/$3"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -179,15 +183,15 @@ pre_build_all() {
|
||||||
}
|
}
|
||||||
|
|
||||||
for dist in $host_dists $perl_dists; do
|
for dist in $host_dists $perl_dists; do
|
||||||
table_line_append DIST_PRE_BUILD $dist ':; set_host_env;'
|
table_line_append DIST_PRE_BUILD $dist ':; eval "$(host_env)";'
|
||||||
table_line_replace DIST_POST_BUILD $dist "unset_host_env; $(table_line DIST_POST_BUILD $dist)"
|
table_line_replace DIST_POST_BUILD $dist "eval \"\$(target_env)\"; $(table_line DIST_POST_BUILD $dist)"
|
||||||
done
|
done
|
||||||
|
|
||||||
for dist in $both_dists; do
|
for dist in $both_dists; do
|
||||||
duplicate_dist $dist "${dist}-target"
|
duplicate_dist $dist "${dist}-target"
|
||||||
|
|
||||||
table_line_append DIST_PRE_BUILD $dist ':; set_host_env;'
|
table_line_append DIST_PRE_BUILD $dist ':; eval "$(host_env)";'
|
||||||
table_line_replace DIST_POST_BUILD $dist "unset_host_env; $(table_line DIST_POST_BUILD $dist)"
|
table_line_replace DIST_POST_BUILD $dist "eval \"\$(target_env)\"; $(table_line DIST_POST_BUILD $dist)"
|
||||||
done
|
done
|
||||||
|
|
||||||
remove_dists='graphviz python2 python3 swig libxml2-python doxygen bakefile setuptools pip meson XML-Parser intltool ninja libsecret shared-mime-info'
|
remove_dists='graphviz python2 python3 swig libxml2-python doxygen bakefile setuptools pip meson XML-Parser intltool ninja libsecret shared-mime-info'
|
||||||
|
@ -236,9 +240,13 @@ table_insert_after DISTS zlib "dlfcn https://github.com/dlfcn-win32/dlfcn-win32/
|
||||||
|
|
||||||
table_line_replace DIST_CONFIGURE_TYPES dlfcn cmake
|
table_line_replace DIST_CONFIGURE_TYPES dlfcn cmake
|
||||||
|
|
||||||
table_line_append DIST_ARGS libicu-target "--with-cross-build=$BUILD_ROOT/dists/libicu/source"
|
libicu=libicu
|
||||||
|
|
||||||
table_line_append DIST_PATCHES libicu-target " \
|
if [ -n "$(table_line DISTS libicu-target || :)" ]; then
|
||||||
|
libicu=libicu-target
|
||||||
|
fi
|
||||||
|
|
||||||
|
table_line_append DIST_PATCHES $libicu " \
|
||||||
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0004-move-to-bin.mingw.patch \
|
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0004-move-to-bin.mingw.patch \
|
||||||
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0007-actually-move-to-bin.mingw.patch \
|
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0007-actually-move-to-bin.mingw.patch \
|
||||||
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0008-data-install-dir.mingw.patch \
|
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0008-data-install-dir.mingw.patch \
|
||||||
|
@ -252,6 +260,8 @@ table_line_append DIST_PATCHES libicu-target " \
|
||||||
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0021-mingw-static-libraries-without-s.patch \
|
https://raw.githubusercontent.com/Alexpux/MINGW-packages/master/mingw-w64-icu/0021-mingw-static-libraries-without-s.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
table_line_append DIST_EXTRA_LDFLAGS $libicu "-ldl -lcatgets -lws2_32"
|
||||||
|
|
||||||
table_insert_after DISTS libiconv-target '
|
table_insert_after DISTS libiconv-target '
|
||||||
catgets https://downloads.sourceforge.net/project/mingw/MinGW/Extension/catgets/mingw-catgets-1.0.1/mingw-catgets-1.0.1-src.tar.gz include/langinfo.h
|
catgets https://downloads.sourceforge.net/project/mingw/MinGW/Extension/catgets/mingw-catgets-1.0.1/mingw-catgets-1.0.1-src.tar.gz include/langinfo.h
|
||||||
'
|
'
|
||||||
|
|
|
@ -30,6 +30,9 @@ REQUIRED_CMAKE_ARGS="-DGETTEXT_MSGFMT_EXECUTABLE:FILEPATH=\"\$BUILD_ROOT/host/bi
|
||||||
|
|
||||||
table_line_append DIST_MAKE_ARGS unzip 'CFLAGS="$CFLAGS -DNO_LCHMOD"'
|
table_line_append DIST_MAKE_ARGS unzip 'CFLAGS="$CFLAGS -DNO_LCHMOD"'
|
||||||
|
|
||||||
|
# parallel build of openssl doesn't work for cygwin layer
|
||||||
|
table_line_append DIST_MAKE_ARGS openssl -j1
|
||||||
|
|
||||||
# FIXME: problems with autopoint that need to be sorted
|
# FIXME: problems with autopoint that need to be sorted
|
||||||
table_line_remove DISTS flex
|
table_line_remove DISTS flex
|
||||||
|
|
||||||
|
|
|
@ -6,21 +6,25 @@ TAR=tar
|
||||||
|
|
||||||
. "${0%/*}/../builder/mingw-cross.sh"
|
. "${0%/*}/../builder/mingw-cross.sh"
|
||||||
|
|
||||||
set_host_env_hook() {
|
host_env_hook() {
|
||||||
export COMMAND_MODE=unix2003
|
cat <<EOF
|
||||||
export CC='ccache clang'
|
export COMMAND_MODE=unix2003
|
||||||
export CXX='ccache clang++'
|
export CC='ccache clang'
|
||||||
export CC_ORIG=clang
|
export CXX='ccache clang++'
|
||||||
export CXX_ORIG=clang++
|
export CC_ORIG=clang
|
||||||
export CPPFLAGS="-I$BUILD_ROOT/root/include -DICONV_CONST="
|
export CXX_ORIG=clang++
|
||||||
export CFLAGS="-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
|
export CPPFLAGS="-I$BUILD_ROOT/root/include -DICONV_CONST="
|
||||||
export CXXFLAGS="-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -stdlib=libc++ -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
|
export CFLAGS="-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
|
||||||
export OBJCXXFLAGS="-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -stdlib=libc++ -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
|
export CXXFLAGS="-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -stdlib=libc++ -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
|
||||||
export LDFLAGS="-fPIC -L$BUILD_ROOT/root/lib -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -Wl,-no_compact_unwind"
|
export OBJCXXFLAGS="-fPIC -I$BUILD_ROOT/root/include -L$BUILD_ROOT/root/lib -std=gnu++11 -fpermissive -stdlib=libc++ -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -DICONV_CONST= -Wl,-no_compact_unwind"
|
||||||
|
export LDFLAGS="-fPIC -L$BUILD_ROOT/root/lib -framework Carbon -framework Foundation -framework CoreServices -Wno-unused-command-line-argument -Wl,-no_compact_unwind"
|
||||||
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
unset_host_env_hook() {
|
target_env_hook() {
|
||||||
unset COMMAND_MODE
|
cat <<EOF
|
||||||
|
unset COMMAND_MODE
|
||||||
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
table_line_remove DISTS flex
|
table_line_remove DISTS flex
|
||||||
|
|
|
@ -104,25 +104,35 @@ DIST_TAR_ARGS="
|
||||||
|
|
||||||
. "${0%/*}/../builder/mingw.sh"
|
. "${0%/*}/../builder/mingw.sh"
|
||||||
|
|
||||||
set_host_env() {
|
host_env() {
|
||||||
ln -sf "$BUILD_ROOT/host" "$BUILD_ROOT/root"
|
ln -sf "$BUILD_ROOT/host" "$BUILD_ROOT/root"
|
||||||
|
|
||||||
unset MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE ACLOCAL_PATH PKG_CONFIG_PATH
|
cat <<EOF
|
||||||
|
unset MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE ACLOCAL_PATH PKG_CONFIG_PATH
|
||||||
|
|
||||||
|
OPWD=$PWD
|
||||||
|
export MSYSTEM=MSYS
|
||||||
|
. /etc/profile || :
|
||||||
|
. ~/.bashrc 2>/dev/null || :
|
||||||
|
$BUILD_ENV
|
||||||
|
EOF
|
||||||
|
|
||||||
OPWD=$PWD
|
|
||||||
MSYSTEM=MSYS . /etc/profile || :
|
|
||||||
eval "$BUILD_ENV"
|
|
||||||
cd "$OPWD"
|
cd "$OPWD"
|
||||||
}
|
}
|
||||||
|
|
||||||
unset_host_env() {
|
target_env() {
|
||||||
ln -sf "$BUILD_ROOT/target" "$BUILD_ROOT/root"
|
ln -sf "$BUILD_ROOT/target" "$BUILD_ROOT/root"
|
||||||
|
|
||||||
unset MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE ACLOCAL_PATH PKG_CONFIG_PATH
|
cat <<EOF
|
||||||
|
unset MSYSTEM_PREFIX MSYSTEM_CARCH MSYSTEM_CHOST MINGW_CHOST MINGW_PREFIX MINGW_PACKAGE_PREFIX CONFIG_SITE ACLOCAL_PATH PKG_CONFIG_PATH
|
||||||
|
|
||||||
|
OPWD=$PWD
|
||||||
|
export MSYSTEM=$OMSYSTEM
|
||||||
|
. /etc/profile || :
|
||||||
|
. ~/.bashrc 2>/dev/null || :
|
||||||
|
$BUILD_ENV
|
||||||
|
EOF
|
||||||
|
|
||||||
OPWD=$PWD
|
|
||||||
MSYSTEM=$OMSYSTEM . /etc/profile || :
|
|
||||||
eval "$BUILD_ENV"
|
|
||||||
cd "$OPWD"
|
cd "$OPWD"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,4 +181,7 @@ table_line_replace DIST_POST_BUILD unzip ":; \
|
||||||
|
|
||||||
table_line_replace DIST_CONFIGURE_OVERRIDES openssl "$(table_line DIST_CONFIGURE_OVERRIDES openssl | sed 's,^./config ,./Configure Cygwin-x86_64 ,')"
|
table_line_replace DIST_CONFIGURE_OVERRIDES openssl "$(table_line DIST_CONFIGURE_OVERRIDES openssl | sed 's,^./config ,./Configure Cygwin-x86_64 ,')"
|
||||||
|
|
||||||
|
# parallel build of openssl doesn't work for msys2 layer
|
||||||
|
table_line_append DIST_MAKE_ARGS openssl -j1
|
||||||
|
|
||||||
builder "$@"
|
builder "$@"
|
||||||
|
|
Loading…
Reference in New Issue