[phobos] win64 and visual studio path crap
Rainer Schuetze
r.sagitario at gmx.de
Mon Sep 30 13:47:01 PDT 2013
On 28.09.2013 00:13, Brad Roberts wrote:
> I know this topic has come up in various forms, but no good resolution
> has yet been codified. I need to reduce the amount of hand hacking done
> inside the auto-tester that's specific to visual studio paths and
> win64. The local patches conflicted with a pull request that's also
> trying to do some cleanup in this area. I just pulled that request and
> re-did my local changes, but I think the problem needs to be addressed.
> The paths wander from version to version, including the directory
> structure inside the compiler main directory. IMHO, the makefiles need
> to stop trying to set the paths an instead pull them from the environment.
>
> What I've done with the auto-tester is:
>
> 1) set in the environment 4 variables:
>
> export VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC"
> export SDKDIR="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A"
> export VCBIN_DIR="$VCDIR\bin\x86_amd64"
> export INCLUDE="$VCDIR\include"
>
>
> 2) apply a set of patches to druntime/win64.mak, phobos/win64.mak,
> phobos/etc/c/zlib/win64.mak that look basically like:
>
> diff --git a/win64.mak b/win64.mak
> index daee7f6..b381a34 100644
> --- a/win64.mak
> +++ b/win64.mak
> @@ -2,14 +2,11 @@
>
> MODEL=64
>
> -VCDIR=\Program Files (x86)\Microsoft Visual Studio 10.0\VC
> -SDKDIR=\Program Files (x86)\Microsoft SDKs\Windows\v7.0A
> -
> DMD=dmd
>
> -CC="$(VCDIR)\bin\amd64\cl"
> -LD="$(VCDIR)\bin\amd64\link"
> -LIB="$(VCDIR)\bin\amd64\lib"
> +CC="$(VCBIN_DIR)\cl"
> +LD="$(VCBIN_DIR)\link"
> +LIB="$(VCBIN_DIR)\lib"
> CP=cp
>
> DOCDIR=doc
>
>
> A similar one to use the env rather than a hardcoded value in
> dmd/test/d_do_test.d.
>
> I hate breaking changes, so any thoughts on how to make this suck less
> without breaking people building on win64? Alternately, if you're among
> the probably relatively few people building on win64, would you object
> to this change?
>
> Thoughts?
>
> Thanks,
> Brad
What I do is to use the VS console and pass CC and AR on the command
line as well:
set dm_make=c:\l\dmd2\windows\bin\make
set DMD=../windows/bin/dmd.exe
set cl64=c:\l\vs10\vc\bin\amd64\cl.exe
set ar64=c:/l/vs10/vc/bin/amd64/lib.exe
cd druntime
%dm_make% -f win64.mak DMD=%DMD% "CC=\"%cl64%\"" target
cd ..\phobos
%dm_make% -f win64.mak DMD=%DMD% "CC=\"%cl64%\"" MAKE=%dm_make%
"AR=\"%ar64%\"" LIB=..\lib64\phobos64.lib
I'm not sure if the mix of forward and backward slashes is necessary.
Probably not for win64.mak, but for posix.mak which I normally use under
windows, too.
More information about the phobos
mailing list