build/win: Add support for building 64-bit libs in jhbuild.

This commit is contained in:
Michael Henning 2014-07-30 13:47:13 -04:00
parent a4bf1ff1cb
commit 978f8f2b0c
4 changed files with 45 additions and 17 deletions

View File

@ -26,21 +26,26 @@ else:
flavour_opt = "--enable-debug=yes"
flavour_cflags = " -g -O0 "
buildarch = os.environ.get('BUILD_ARCH', 'i686')
if buildarch != "i686" and buildarch != "x86_64":
print ("Warning: BUILD_ARCH not recognized")
# checkoutroot: path to download packages elsewhere
# prefix: target path to install the compiled binaries
checkoutroot = os.environ['PWD']+'/checkout/'
prefix = os.environ['PWD'] + '/targets/' + module + flavour_ext + '/'
prefix = os.environ['PWD'] + '/targets/' + module + flavour_ext + '-' + buildarch + '/'
tarballdir = None
os.environ['prefix'] = prefix
searchprefix = os.environ['PWD']+'/targets/gimp-common' + flavour_ext + '/'
searchprefix = os.environ['PWD']+'/targets/gimp-common' + flavour_ext + '-' + buildarch + '/'
#The host value is obtained with the result of executing
#the config.guess script on any of the packages.
#This value must be valid for most linux/x86 out there
os.environ['HOST'] = 'x86_64-unknown-linux-gnu'
os.environ['TARGET'] = os.environ.get('MINGW_TARGET', 'i686-w64-mingw32')
os.environ['TARGET'] = os.environ.get('MINGW_TARGET', buildarch + '-w64-mingw32')
os.environ['PKG_CONFIG_LIBDIR'] = ""
addpath('PKG_CONFIG_LIBDIR', os.path.join(searchprefix, 'lib', 'pkgconfig'))

View File

@ -45,9 +45,18 @@ def run (targets_loc, packages_loc):
if not os.path.isfile (packagedb_loc):
continue
# Build arch
build_arch = ""
if target_name[-7:] == "-x86_64":
build_arch = "x86_64"
elif target_name[-5:] == "-i686":
build_arch = "i686"
else:
print ("Warning: BUILD_ARCH suffix not recognized")
# Create archives for each package
for package in parse_packagedb (packagedb_loc):
tar_name = package["package"] + '-' + package["version"] + '.tar.bz2'
tar_name = package["package"] + '-' + build_arch + '-' + package["version"] + '.tar.bz2'
tar_loc = os.path.join (packages_loc, tar_name)
manifest_loc = os.path.join (manifests_loc, package["package"])

View File

@ -1,17 +1,18 @@
#!/bin/bash
dll_loc=${DLL_LOC:-/usr/lib/gcc/i686-w64-mingw32/4.6}
dll_loc_32=${DLL_LOC_i686:-/usr/i686-w64-mingw32/bin}
dll_loc_64=${DLL_LOC_x86_64:-/usr/x86_64-w64-mingw32/bin}
add_dll (){
cp --reflink=auto $dll_loc/$1 ./bin/
cp --reflink=auto $1/$2 ./bin/
}
dostuff (){
f=$1-i686-`date +%Y-%m-%d`
f=$1-$4-`date +%Y-%m-%d`
mkdir -p combined/$f
cp -R -d -L --reflink=auto ./gimp-common$3/* combined/$f
cp -R -d -L --reflink=auto ./$1/* combined/$f
cp -R -d -L --reflink=auto ./gimp-common$3-$4/* combined/$f
cp -R -d -L --reflink=auto ./$1-$4/* combined/$f
pushd combined
pushd $f
@ -33,8 +34,15 @@ dostuff (){
rm -f `find -name *.exe | sed -e /gimp/d -e /gspawn/d -e /gdb.exe/d`
add_dll libstdc++-6.dll
add_dll libgcc_s_sjlj-1.dll
if [ "$4" == "i686" ]; then
add_dll $dll_loc_32 libstdc++-6.dll
add_dll $dll_loc_32 libgcc_s_sjlj-1.dll
add_dll $dll_loc_32 libwinpthread-1.dll
elif [ "$4" == "x86_64" ]; then
add_dll $dll_loc_64 libstdc++-6.dll
add_dll $dll_loc_64 libgcc_s_seh-1.dll
add_dll $dll_loc_64 libwinpthread-1.dll
fi
pushd bin
rm -f `ls | sed -e /.exe/d -e /.dll/d`
@ -78,7 +86,11 @@ start $2" | unix2dos > run_gimp.bat
}
cd targets
dostuff gimp-stable gimp-2.8.exe ""
dostuff gimp-dev gimp-2.9.exe ""
dostuff gimp-stable-dbg gimp-2.8.exe "-dbg"
dostuff gimp-dev-dbg gimp-2.9.exe "-dbg"
dostuff gimp-stable gimp-2.8.exe "" i686
dostuff gimp-dev gimp-2.9.exe "" i686
dostuff gimp-stable-dbg gimp-2.8.exe "-dbg" i686
dostuff gimp-dev-dbg gimp-2.9.exe "-dbg" i686
dostuff gimp-stable gimp-2.8.exe "" x86_64
dostuff gimp-dev gimp-2.9.exe "" x86_64
dostuff gimp-stable-dbg gimp-2.8.exe "-dbg" x86_64
dostuff gimp-dev-dbg gimp-2.9.exe "-dbg" x86_64

View File

@ -1,10 +1,12 @@
#!/bin/sh
set -e
BUILD_ARCH=${BUILD_ARCH:-i686}
if [ "x$BUILD_FLAVOUR" = "xdbg" ]; then
EXT="-dbg"
EXT="-dbg-$BUILD_ARCH"
else
EXT=""
EXT="-$BUILD_ARCH"
fi
init_target (){