odk/settings/settings.mk | 8 oowintool | 44 +++-- set_soenv.in | 59 +++++-- solenv/gbuild/platform/windows.mk | 26 +++ solenv/inc/wnt.mk | 4 solenv/win64/readme.txt | 2 solenv/win64/win64.patch | 305 -------------------------------------- 7 files changed, 110 insertions(+), 338 deletions(-)
New commits: commit e908c6878c5c612996efa953d71bff0a7eeb1bbd Author: Damjan Jovanovic <dam...@apache.org> Date: Mon Mar 12 17:34:16 2018 +0000 The Win64 patch has been merged now, no need to keep a copy in main/solenv/win64. Patch by: me diff --git a/solenv/win64/readme.txt b/solenv/win64/readme.txt deleted file mode 100644 index 2dac1a5bf364..000000000000 --- a/solenv/win64/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -Please refer to https://wiki.openoffice.org/wiki/Win64_port -for instructions. diff --git a/solenv/win64/win64.patch b/solenv/win64/win64.patch deleted file mode 100644 index dad8f61b5de5..000000000000 --- a/solenv/win64/win64.patch +++ /dev/null @@ -1,305 +0,0 @@ -Index: configure.ac -=================================================================== ---- configure.ac (revision 1826001) -+++ configure.ac (working copy) -@@ -2116,18 +2116,27 @@ - PATH="$MSPDB_PATH:$PATH" - - AC_MSG_CHECKING([the Microsoft C/C++ Compiler]) -- if test -x "$with_cl_home/bin/cl.exe"; then -- CC="$with_cl_home/bin/cl.exe" -- else -- AC_PATH_PROG(CC, cl.exe) -- fi -- if test -e "$CC"; then -+ case "$build_cpu" in -+ i?86) -+ cl_subdirectory="bin" -+ ;; -+ x86_64) -+ cl_subdirectory="bin/amd64" -+ ;; -+ *) -+ AC_MSG_ERROR([Unknown/unsupported CPU.]) -+ ;; -+ esac -+ if test -x "$with_cl_home/$cl_subdirectory/cl.exe"; then -+ CC="$with_cl_home/$cl_subdirectory/cl.exe" -+ COMPATH="$with_cl_home" - # This gives us a posix path with 8.3 filename restrictions - CC=`cygpath -d "$CC"` - CC=`cygpath -u "$CC"` -+ COMPATH=`cygpath -d "$COMPATH"` -+ COMPATH=`cygpath -u "$COMPATH"` - # Remove /cl.exe from CC case insensitive - AC_MSG_RESULT([found ($CC)]) -- COMPATH=`echo $CC | $SED 's@\/[[Bb]][[Ii]][[Nn]]\/[[cC]][[lL]]\.[[eE]][[xX]][[eE]]@@'` - export INCLUDE=`cygpath -d "$COMPATH/Include"` - dnl Check which Microsoft C/C++ compiler is found - AC_MSG_CHECKING([the Version of Microsoft C/C++ Compiler]) -@@ -2150,7 +2159,7 @@ - AC_MSG_ERROR([Compiler too old. Use Microsoft C/C++ .NET 2008.]) - fi - else -- AC_MSG_ERROR([Microsoft C/C++ Compiler not found. Use --with-cl-home or set path to cl.exe.]) -+ AC_MSG_ERROR([Microsoft C/C++ Compiler not found. Use --with-cl-home.]) - fi - else - AC_MSG_CHECKING([the Mingwin32 C++ Compiler]) -Index: set_soenv.in -=================================================================== ---- set_soenv.in (revision 1826001) -+++ set_soenv.in (working copy) -@@ -687,8 +687,6 @@ - $USE_DIRECTX5 = ""; - $FRAME_HOME = PathFormat('@FRAME_HOME@'); - $USE_NEW_SDK = "TRUE"; -- $CPUNAME = "INTEL"; -- $CPU = "I"; - $GUI = "WNT"; - $GUIBASE = "WIN"; - $GVER = "NT351"; -@@ -706,20 +704,19 @@ - $COMPATH = PathFormat('@COMPATH@/bin'); - $COMPATH =~ s/\/bin$//i; - $COM = "GCC"; -+ $CPU = "I"; -+ $CPUNAME = "INTEL"; - $CVER = "C341"; - $OUTPATH = "wntgcci"; -- $INPATH = $OUTPATH.$PROEXT; - $ATL_INCLUDE = '$SOLARVER'.$ds.'$INPATH'.$ds."inc".$ds."external".$ds."mingw".$ds."include".$ds."atl". " ".'$PSDK_HOME'.$ds."include".$ds."atl"; - } - else # The MSVC section starts here -- { $outfile = "winenv.set"; -+ { - $COMPATH = PathFormat('@COMPATH@'); - $CXX_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/cl.exe'); - $LINK_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/link.exe'); - $LIBMGR_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/lib.exe'); - $COM = "MSC"; -- $OUTPATH = "wntmsci@COMEX@"; -- $INPATH = $OUTPATH.$PROEXT; - $COMEX = '@COMEX@'; - if ( "@COMEX@" eq "10" ) { # .NET 2003 needs M1310 - $CVER = "M1310"; -@@ -732,11 +729,27 @@ - die "Unsupported value for COMEX variable.\n"; - } - } -- print "Setting W32 build with bash shell specific values... "; - # No special treatment for CC and CXX anymore. - $FLIPCMD = "slfl.pl"; - $PATH_SEPERATOR = ';'; -+ if ($platform =~ m/^i[3456]86/) { -+ print "Setting Windows x86 build with bash shell specific values... "; -+ $outfile = "winenv.set"; -+ $CPU = "I"; -+ $CPUNAME = "INTEL"; -+ $OUTPATH = "wntmsci@COMEX@"; -+ } elsif ($platform =~ m/^x86_64/) { -+ print "Setting Windows x86_64 build with bash shell specific values... "; -+ $outfile = "winAMD64Env.set"; -+ $CPU = "X"; -+ $CPUNAME = "X86_64"; -+ $OUTPATH = "wntmscx@COMEX@"; -+ } else { -+ print "Unsupported Windows architecture: $platform \n"; -+ exit 1; -+ } - } -+ $INPATH = $OUTPATH.$PROEXT; - } - elsif ( $platform =~ m/os2/ ) - { -@@ -1075,10 +1088,19 @@ - # Mingw is different - if ( $COM eq "MSC" ) - { $ILIB .= $wps.$SOLARVER.$ds.$INPATH.$LIB. -- $wps.$JAVA_HOME.$LIB. -- $wps.$PSDK_HOME.$LIB. -+ $wps.$JAVA_HOME.$LIB; -+ if ( $CPU eq "I" ) { -+ $ILIB .= $wps.$PSDK_HOME.$LIB. - $wps.$FRAME_HOME.$LIB. - $wps.$COMPATH.$LIB; -+ } elsif ( $CPU eq "X" ) { -+ $ILIB .= $wps.$PSDK_HOME.$LIB.$ds."x64". -+ $wps.$FRAME_HOME.$LIB. -+ $wps.$COMPATH.$LIB.$ds."amd64"; -+ } else { -+ print "Unsupported Windows CPU: $CPU\n"; -+ exit 1; -+ } - if ( '@ENABLE_DIRECTX@' ne "" ) { - # We may have DirectX but not DirectDraw - if ( '@ENABLE_DIRECT_DRAW@' ne "") { -@@ -1167,12 +1189,19 @@ - } - } - -- # Add path to compiler -- $tmppath = CygFormat($COMPATH).$BIN; -- $tmppath =~ s/^\/\//\//; -- $PATH .= $ps.$tmppath; -+ if ( $COM eq "MSC" ) { -+ # Add path to compiler -+ if ( $CPU eq "I" ) { -+ $tmppath = CygFormat($COMPATH).$BIN; -+ } elsif ( $CPU eq "X" ) { -+ $tmppath = CygFormat($COMPATH).$BIN.$ds."amd64"; -+ } else { -+ print "Unsupported Windows CPU: $CPU\n"; -+ exit 1; -+ } -+ $tmppath =~ s/^\/\//\//; -+ $PATH .= $ps.$tmppath; - -- if ( $COM eq "MSC" ) { - $tmppath = CygFormat($MSPDB_PATH); - # for .NET to find mspdb71.dll (needed by CL.EXE C/C++ Compiler) - if ( $PATH !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) { -@@ -1196,6 +1225,11 @@ - } - } - } else { # Mingw is different -+ # Add path to compiler -+ $tmppath = CygFormat($COMPATH).$BIN; -+ $tmppath =~ s/^\/\//\//; -+ $PATH .= $ps.$tmppath; -+ - # Native installer needs some files if the Windows Installer SDK - $tmppath = CygFormat($PSDK_HOME); - if ( $PATH !~ /(?:[:]|\A)(?:$tmppath\/bin)(?:[:]|\Z)/i ) { -Index: solenv/gbuild/platform/windows.mk -=================================================================== ---- solenv/gbuild/platform/windows.mk (revision 1826001) -+++ solenv/gbuild/platform/windows.mk (working copy) -@@ -59,11 +59,15 @@ - -D_MT \ - -D_DLL \ - -DBOOST_MEM_FN_ENABLE_CDECL \ -- -DCPPU_ENV=msci \ - -DFULL_DESK \ - -DM1500 \ - --gb_CPUDEFS := -DINTEL -D_X86_=1 -+ifeq ($(CPUNAME),INTEL) -+gb_CPUDEFS := -DINTEL -D_X86_=1 -DCPPU_ENV=msci -+endif -+ifeq ($(CPUNAME),X86_64) -+gb_CPUDEFS := -DX86_64 -D_AMD64_=1 -DCPPU_ENV=mscx -+endif - - gb_RCDEFS := \ - -DWINVER=0x0400 \ -@@ -187,12 +191,21 @@ - - gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) - -+ifeq ($(CPUNAME),INTEL) - gb_LinkTarget_LDFLAGS := \ - -MACHINE:IX86 \ - -NODEFAULTLIB \ - $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ -- - -+endif -+ifeq ($(CPUNAME),X86_64) -+gb_LinkTarget_LDFLAGS := \ -+ -MACHINE:X64 \ -+ -NODEFAULTLIB \ -+ $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ -+ -+endif -+ - gb_DEBUG_CFLAGS := -Zi - - ifeq ($(gb_DEBUGGING),TRUE) -@@ -437,7 +450,12 @@ - # Library class - - gb_Library_DEFS := -D_DLL_ -+ifeq ($(CPUNAME),INTEL) - gb_Library_TARGETTYPEFLAGS := -DLL -OPT:NOREF -SAFESEH -NXCOMPAT -DYNAMICBASE -+endif -+ifeq ($(CPUNAME),X86_64) -+gb_Library_TARGETTYPEFLAGS := -DLL -OPT:NOREF -NXCOMPAT -DYNAMICBASE -+endif - gb_Library_get_rpath := - - gb_Library_SYSPRE := i -@@ -608,7 +626,12 @@ - # Executable class - - gb_Executable_EXT := .exe -+ifeq ($(CPUNAME),INTEL) - gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG -SAFESEH -NXCOMPAT -DYNAMICBASE -+endif -+ifeq ($(CPUNAME),X86_64) -+gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG -NXCOMPAT -DYNAMICBASE -+endif - gb_Executable_get_rpath := - gb_Executable_TARGETGUI := - -Index: solenv/inc/wnt.mk -=================================================================== ---- solenv/inc/wnt.mk (revision 1826001) -+++ solenv/inc/wnt.mk (working copy) -@@ -39,6 +39,10 @@ - .INCLUDE : wntgcci.mk - .ENDIF - -+.IF "$(OS)$(COM)$(CPU)" == "WNTMSCX" -+.INCLUDE : wntmscx.mk -+.ENDIF -+ - # --- changes for W32-tcsh - should move into settings.mk --- - JAVAC=javac - JAVA=java -Index: solenv/inc/tg_compv.mk -=================================================================== ---- solenv/inc/tg_compv.mk (revision 1826001) -+++ solenv/inc/tg_compv.mk (working copy) -@@ -72,9 +72,13 @@ - .IF "$(COM)"=="MSC" - .IF "$(CCNUMVER)">="001200000000" - COMID=MSC -+.IF "$(CPUNAME)"=="INTEL" - COMNAME=msci -+.ELIF "$(CPUNAME)"=="X86_64" -+COMNAME=mscx - .ENDIF - .ENDIF -+.ENDIF - - .IF "$(COM)"=="GCC" - -Index: odk/settings/settings.mk -=================================================================== ---- odk/settings/settings.mk (revision 1826001) -+++ odk/settings/settings.mk (working copy) -@@ -57,6 +57,8 @@ - ifeq "$(PLATFORM)" "windows" - # Settings for Windows using Microsoft compiler/linker - -+PROCTYPE := $(shell $(PRJ)/config.guess | cut -d"-" -f1 | sed -e 's/^i.86$$/i386/') -+ - OS=WIN - PS=\\ - ICL=$$ -@@ -119,8 +121,14 @@ - # define for used compiler necessary for UNO - # -DCPPU_ENV=msci -- windows msvc 4.x - 7.x - -+ifeq "$(PROCTYPE)" "i386" - CC_DEFINES_JNI=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=msci - CC_DEFINES=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=msci -+endif -+ifeq "$(PROCTYPE)" "x86_64" -+CC_DEFINES_JNI=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=mscx -+CC_DEFINES=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=mscx -+endif - CC_OUTPUT_SWITCH=-Fo - - LIBRARY_LINK_FLAGS=/NODEFAULTLIB /DLL /DEBUGTYPE:cv commit 573f290bc7ac675d5479c07103d6693ef69dd877 Author: Damjan Jovanovic <dam...@apache.org> Date: Mon Mar 12 17:32:09 2018 +0000 Implement initial unfinished support for building 64 bit AOO on 64 bit Windows. For now, require --enable-win64 to be passed to ./configure and without it build 32 bit binaries like before. Detect the MSVC compiler only through oowintool (ie. registry keys) and the command line option, not by searching the path, as we need to know the exact path to determine whether the compiler outputs 32 or 64 bit binaries. Pass --aoo32-on-win64 to oowintool when doing the AOO32 on Win64 build, so oowintool known to look at the 32 bit registry for Java, as we need a JDK of matching bitness. We may need this option for other oowintool tasks. Introduce the "mscx" COMNAME for 64 bit AOO. Add the remaining gbuild and dmake changes necessary to use the 64 bit MSVC compiler. Patch by: me diff --git a/odk/settings/settings.mk b/odk/settings/settings.mk index 0976ec27b988..f22d2d1eedb2 100644 --- a/odk/settings/settings.mk +++ b/odk/settings/settings.mk @@ -57,6 +57,8 @@ JAVABIN=bin ifeq "$(PLATFORM)" "windows" # Settings for Windows using Microsoft compiler/linker +PROCTYPE := $(shell $(PRJ)/config.guess | cut -d"-" -f1 | sed -e 's/^i.86$$/i386/') + OS=WIN PS=\\ ICL=$$ @@ -119,8 +121,14 @@ SDK_JAVA_INCLUDES = -I"$(OO_SDK_JAVA_HOME)/include" -I"$(OO_SDK_JAVA_HOME)/inclu # define for used compiler necessary for UNO # -DCPPU_ENV=msci -- windows msvc 4.x - 7.x +ifeq "$(PROCTYPE)" "i386" CC_DEFINES_JNI=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=msci CC_DEFINES=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=msci +endif +ifeq "$(PROCTYPE)" "x86_64" +CC_DEFINES_JNI=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=mscx +CC_DEFINES=-DWIN32 -DWNT -D_DLL -DCPPU_ENV=mscx +endif CC_OUTPUT_SWITCH=-Fo LIBRARY_LINK_FLAGS=/NODEFAULTLIB /DLL /DEBUGTYPE:cv diff --git a/oowintool b/oowintool index 9d98e24720d7..72c5eada1459 100755 --- a/oowintool +++ b/oowintool @@ -23,6 +23,8 @@ use File::Copy; my $output_format = 'u'; +my $aoo32OnWin64 = 0; + sub reg_get_value($) { @@ -282,23 +284,30 @@ sub print_dotnetsdk_dir() sub print_jdk_dir() { - my $dir = - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java\ Development\ Kit/1.8/JavaHome") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java\ Development\ Kit/1.7/JavaHome") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java\ Development\ Kit/1.6/JavaHome") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java\ Development\ Kit/1.5/JavaHome") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java\ Development\ Kit/1.4/JavaHome") || - reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java\ Development\ Kit/1.3/JavaHome"); - if (defined $dir) { - print cygpath($dir, 'w', $output_format); - } else { - # Java 1.9 had to be different: - my $currentVersion = reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/JDK/CurrentVersion"); - defined $currentVersion || exit 1; - my $newDir = reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/JDK/" . $currentVersion . "/JavaHome"); - defined $newDir || exit 1; - print cygpath($newDir, 'w', $output_format); + my $softwareKey; + if ($aoo32OnWin64) { + $softwareKey = "HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/"; + } else { + $softwareKey = "HKEY_LOCAL_MACHINE/SOFTWARE/"; } + # Java 1.9 had to be different: + my $currentVersion = reg_get_value ($softwareKey . "JavaSoft/JDK/CurrentVersion"); + if (defined $currentVersion) { + my $newDir = reg_get_value ($softwareKey . "JavaSoft/JDK/" . $currentVersion . "/JavaHome"); + if (defined $newDir) { + print cygpath($newDir, 'w', $output_format); + return; + } + } + my $dir = + reg_get_value ($softwareKey . "JavaSoft/Java\ Development\ Kit/1.8/JavaHome") || + reg_get_value ($softwareKey . "JavaSoft/Java\ Development\ Kit/1.7/JavaHome") || + reg_get_value ($softwareKey . "JavaSoft/Java\ Development\ Kit/1.6/JavaHome") || + reg_get_value ($softwareKey . "JavaSoft/Java\ Development\ Kit/1.5/JavaHome") || + reg_get_value ($softwareKey . "JavaSoft/Java\ Development\ Kit/1.4/JavaHome") || + reg_get_value ($softwareKey . "JavaSoft/Java\ Development\ Kit/1.3/JavaHome"); + defined $dir || exit 1; + print cygpath($dir, 'w', $output_format); } sub print_nsis_dir() @@ -372,7 +381,8 @@ while (@ARGV) { while (@commands) { $opt = shift @commands; - if (0) { + if ($opt eq '--aoo32-on-win64') { + $aoo32OnWin64 = 1; } elsif ($opt eq '--msvc-ver') { print_msvc_ver(); } elsif ($opt eq '--msvc-copy-dlls') { diff --git a/set_soenv.in b/set_soenv.in index 1ee2026213ed..7343f2061455 100644 --- a/set_soenv.in +++ b/set_soenv.in @@ -680,8 +680,6 @@ elsif ( $platform =~ m/cygwin/ ) $USE_DIRECTX5 = ""; $FRAME_HOME = PathFormat('@FRAME_HOME@'); $USE_NEW_SDK = "TRUE"; - $CPUNAME = "INTEL"; - $CPU = "I"; $GUI = "WNT"; $GUIBASE = "WIN"; $GVER = "NT351"; @@ -698,19 +696,18 @@ elsif ( $platform =~ m/cygwin/ ) $outfile = "winmingw.set"; $COMPATH = PathFormat('@COMPATH@/bin'); $COMPATH =~ s/\/bin$//i; + $CPUNAME = "INTEL"; + $CPU = "I"; $CVER = "C341"; $OUTPATH = "wntgcci"; - $INPATH = $OUTPATH.$PROEXT; $ATL_INCLUDE = '$SOLARVER'.$ds.'$INPATH'.$ds."inc".$ds."external".$ds."mingw".$ds."include".$ds."atl". " ".'$PSDK_HOME'.$ds."include".$ds."atl"; } else # The MSVC section starts here - { $outfile = "winenv.set"; + { $COMPATH = PathFormat('@COMPATH@'); $CXX_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/cl.exe'); $LINK_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/link.exe'); $LIBMGR_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/lib.exe'); - $OUTPATH = "wntmsci@COMEX@"; - $INPATH = $OUTPATH.$PROEXT; $COMEX = '@COMEX@'; if ( "@COMEX@" eq "10" ) { # .NET 2003 needs M1310 $CVER = "M1310"; @@ -723,11 +720,27 @@ elsif ( $platform =~ m/cygwin/ ) die "Unsupported value for COMEX variable.\n"; } } - print "Setting W32 build with bash shell specific values... "; # No special treatment for CC and CXX anymore. $FLIPCMD = "slfl.pl"; $PATH_SEPERATOR = ';'; + if ( $platform =~ m/^i[3456]86/ || ( ( $platform =~ m/^x86_64/ ) && ( "@BUILD_WIN64@" ne "TRUE" ) ) ) { + print "Setting Windows x86 build with bash shell specific values... "; + $outfile = "winenv.set"; + $CPU = "I"; + $CPUNAME = "INTEL"; + $OUTPATH = "wntmsci@COMEX@"; + } elsif ( $platform =~ m/^x86_64/ ) { + print "Setting Windows x86_64 build with bash shell specific values... "; + $outfile = "winAMD64Env.set"; + $CPU = "X"; + $CPUNAME = "X86_64"; + $OUTPATH = "wntmscx@COMEX@"; + } else { + print "Unsupported Windows architecture: $platform \n"; + exit 1; + } } + $INPATH = $OUTPATH.$PROEXT; } elsif ( $platform =~ m/os2/ ) { @@ -1061,10 +1074,19 @@ if ($platform =~ m/cygwin|os2/) # Mingw is different if ( "@COM@" eq "MSC" ) { $ILIB .= $wps.$SOLARVER.$ds.$INPATH.$LIB. - $wps.$JAVA_HOME.$LIB. - $wps.$PSDK_HOME.$LIB. + $wps.$JAVA_HOME.$LIB; + if ( ( $CPUNAME eq "INTEL" ) || ( ( $CPUNAME eq "X86_64" ) && ( "@BUILD_WIN64@" ne "TRUE" ) ) ) { + $ILIB .= $wps.$PSDK_HOME.$LIB. $wps.$FRAME_HOME.$LIB. $wps.$COMPATH.$LIB; + } elsif ( $CPUNAME eq "X86_64" ) { + $ILIB .= $wps.$PSDK_HOME.$LIB.$ds."x64". + $wps.$FRAME_HOME.$LIB. + $wps.$COMPATH.$LIB.$ds."amd64"; + } else { + print "Unsupported Windows CPU: $CPUNAME\n"; + exit 1; + } if ( '@ENABLE_DIRECTX@' ne "" ) { # We may have DirectX but not DirectDraw if ( '@ENABLE_DIRECT_DRAW@' ne "") { @@ -1154,11 +1176,18 @@ elsif ($platform =~ m/cygwin/) } # Add path to compiler - $tmppath = CygFormat($COMPATH).$BIN; - $tmppath =~ s/^\/\//\//; - $PATH .= $ps.$tmppath; - if ( "@COM@" eq "MSC" ) { + if ( ( $CPUNAME eq "INTEL" ) || ( ( $CPUNAME eq "X86_64") && ( "@BUILD_WIN64@" ne "TRUE" ) ) ) { + $tmppath = CygFormat($COMPATH).$BIN; + } elsif ( $CPUNAME eq "X86_64" ) { + $tmppath = CygFormat($COMPATH).$BIN.$ds."amd64"; + } else { + print "Unsupported Windows CPU: $CPU\n"; + exit 1; + } + $tmppath =~ s/^\/\//\//; + $PATH .= $ps.$tmppath; + $tmppath = CygFormat($MSPDB_PATH); # for .NET to find mspdb71.dll (needed by CL.EXE C/C++ Compiler) if ( $PATH !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) { @@ -1182,6 +1211,10 @@ elsif ($platform =~ m/cygwin/) } } } else { # Mingw is different + $tmppath = CygFormat($COMPATH).$BIN; + $tmppath =~ s/^\/\//\//; + $PATH .= $ps.$tmppath; + # Native installer needs some files if the Windows Installer SDK $tmppath = CygFormat($PSDK_HOME); if ( $PATH !~ /(?:[:]|\A)(?:$tmppath\/bin)(?:[:]|\Z)/i ) { diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk index 771a7a73ce20..7e793775c38b 100644 --- a/solenv/gbuild/platform/windows.mk +++ b/solenv/gbuild/platform/windows.mk @@ -63,7 +63,12 @@ gb_COMPILERDEFS := \ -DFULL_DESK \ -DM1500 \ +ifeq ($(CPUNAME),INTEL) gb_CPUDEFS := -DINTEL -D_X86_=1 +endif +ifeq ($(CPUNAME),X86_64) +gb_CPUDEFS := -DX86_64 -D_AMD64_=1 +endif gb_RCDEFS := \ -DWINVER=0x0400 \ @@ -187,11 +192,20 @@ gb_LinkTarget_NOEXCEPTIONFLAGS := \ gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) +ifeq ($(CPUNAME),INTEL) gb_LinkTarget_LDFLAGS := \ -MACHINE:IX86 \ -NODEFAULTLIB \ $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ - + +endif +ifeq ($(CPUNAME),X86_64) +gb_LinkTarget_LDFLAGS := \ + -MACHINE:X64 \ + -NODEFAULTLIB \ + $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ + +endif gb_DEBUG_CFLAGS := -Zi @@ -437,7 +451,12 @@ endef # Library class gb_Library_DEFS := -D_DLL_ +ifeq ($(CPUNAME),INTEL) gb_Library_TARGETTYPEFLAGS := -DLL -OPT:NOREF -SAFESEH -NXCOMPAT -DYNAMICBASE +endif +ifeq ($(CPUNAME),X86_64) +gb_Library_TARGETTYPEFLAGS := -DLL -OPT:NOREF -NXCOMPAT -DYNAMICBASE +endif gb_Library_get_rpath := gb_Library_SYSPRE := i @@ -608,7 +627,12 @@ endef # Executable class gb_Executable_EXT := .exe +ifeq ($(CPUNAME),INTEL) gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG -SAFESEH -NXCOMPAT -DYNAMICBASE +endif +ifeq ($(CPUNAME),X86_64) +gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG -NXCOMPAT -DYNAMICBASE +endif gb_Executable_get_rpath := gb_Executable_TARGETGUI := diff --git a/solenv/inc/wnt.mk b/solenv/inc/wnt.mk index 0b6bacaca67f..f5e0d6ba7144 100644 --- a/solenv/inc/wnt.mk +++ b/solenv/inc/wnt.mk @@ -39,6 +39,10 @@ .INCLUDE : wntgcci.mk .ENDIF +.IF "$(OS)$(COM)$(CPU)" == "WNTMSCX" +.INCLUDE : wntmscx.mk +.ENDIF + # --- changes for W32-tcsh - should move into settings.mk --- JAVAC=javac JAVA=java _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits