[M3devel] build_platform in archive names

Jay K jay.krell at cornell.edu
Sat Aug 7 16:53:12 CEST 2010


Thanks!
I want something slightly different for NT platforms.
NT doesn't have the binary incompatibility and cross-build problem of Unix, at the OS level.
  (and commercial Unix isn't so bad either I think these days)
However it does sort of have it at the C runtime level.
i.e. There is no need to say e.g. XP/Vista/Win7/NT5.1/6.0/6.1, but there is a need to say e.g. msvc70/71/80/90/100.
And there probably is a need for Cygwin-1.5 vs. Cygwin-1.7 (ie. exactly what you have).

You can see in pylib.py:

def FormInstallRoot(PackageSetName):
    AltConfig = {"NT386":"x86"}.get(Config, Config)
    a = os.path.join(GetStage(), "cm3-" + PackageSetName + "-" + AltConfig + "-" + CM3VERSION)
    if Config == "NT386" or Config == "I386_NT":
        a = a + "-VC" + GetVisualCPlusPlusVersion()
    else:
        b = os.popen("uname -sr").read()
        b = re.sub("Linux 2.4\..+$", "Linux2.4", b)
        b = re.sub("Linux 2.6\..+$", "", b)
        b = re.sub("-.+$", "", b)
        b = re.sub("SunOS", "Solaris", b)
        b = re.sub("[ \r\n]", "", b)
        a = a + "-" + b
    a = a + "-" + time.strftime("%Y%m%d")
    return a


uname -p redundant with $(TARGET), er..the other way around..
config.guess/uname maybe is the preferable way.
I guess that's a bigger leap right now, and it isn't entirely true, e.g. on "biarch" systems, e.g. AMD64_{DARWIN,SOLARIS}, SPARC64_SOLARIS, PPC64_DARWIN, etc..


def GetVisualCPlusPlusVersion():
    a = os.popen("cl 2>&1 >nul").read().lower()
    if a.find("9.00") != -1:
        return "20"
    if a.find("10.00") != -1:
        return "40"
    if a.find("10.10") != -1:
        return "41"
    if a.find("10.20") != -1:
        return "42"
    if a.find("11.00") != -1:
        return "50"
    if a.find("12.00") != -1:
        return "60"
    if a.find("13.00") != -1:
        return "70"
    if a.find("13.10") != -1:
        return "71"
    if a.find("14.00") != -1:
        return "80"
    if a.find("15.00") != -1:
        return "90"
    if a.find("16.00") != -1:
        return "100"
    FatalError("unable to detect Visual C++ version, maybe cl is not in %PATH%?")


but I'm just talking..need to try to work it in to your *.sh.


 - Jay

----------------------------------------
> Date: Sat, 7 Aug 2010 12:58:48 +0000
> To: m3commit at elegosoft.com
> From: wagner at elego.de
> Subject: [M3commit] CVS Update: cm3
>
> CVSROOT: /usr/cvs
> Changes by: wagner at birch. 10/08/07 12:58:48
>
> Modified files:
> cm3/scripts/: make-bin-dist-min.sh make-dist.sh sysinfo.sh
> cm3/scripts/regression/: update_snapshot_status.sh
>
> Log message:
> fix snapshot support and add build_platform
>
 		 	   		  


More information about the M3devel mailing list