[Numpy-svn] r5558 - trunk/tools/win32build

numpy-svn at scipy.org numpy-svn at scipy.org
Mon Jul 28 01:25:09 EDT 2008


Author: cdavid
Date: 2008-07-28 00:25:04 -0500 (Mon, 28 Jul 2008)
New Revision: 5558

Modified:
   trunk/tools/win32build/README.txt
   trunk/tools/win32build/build.py
   trunk/tools/win32build/doall.py
Log:
Set build scripts to unix ff.

Modified: trunk/tools/win32build/README.txt
===================================================================
--- trunk/tools/win32build/README.txt	2008-07-28 05:22:41 UTC (rev 5557)
+++ trunk/tools/win32build/README.txt	2008-07-28 05:25:04 UTC (rev 5558)
@@ -1,64 +1,64 @@
-This directory contains various scripts and code to build binaries installers for
-windows.
-
-It can:
-        - prepare a bootstrap environment to build binary in a self-contained
-          directory
-        - build binaries for different architectures using different site.cfg
-        - prepare a nsis-based installer which automatically detects the arch
-          on the computer where numpy is installed.
-
-Example:
-========
-
-python doall.py
-
-Should build the numpy 'super' installer for sse2, sse3 and nosse from scratch.
-You have to run it in the win32build directory.
-
-Dependencies:
-=============
-
-You need the following to use those scripts:
-        - python and mingw tools (gcc, make, g77 at least).
-        - the binaries for atlas/blas/lapack for the various archs supported
-          (see vendor in numpy repository root for tools to build those).
-        - python, nsis and subversion command line tools should be in your
-          PATH, e.g. running python, makensis and svn should work in a DOS
-          cmd.exe.
-        - the CpuCaps nsis plugin (see below on how to build it).
-
-Components:
-===========
-
-cpuid
------
-
-cpuid: contains a mini C lib to detect SSE variants (SSE 1, 2 and 3 for now).
-It relies on gcc ASM, but porting it to VS should be trivial (only a few lines
-os ASM).
-
-cpucaps:
---------
-
-cpucaps: nsis plugin to add the ability to detect SSE for installers, uses
-cpuid. To build it, you have two options:
-        - build it manually: build the CpuCaps.dll with sources cpucaps.c and
-          cpuid.c in cpuid directory.
-        - with scons: if you have scons, just do scons install. It will build
-          and put the CpuCaps.dll  in the plugins directory of nsis (if you
-          install nsis in the default path).
-
-build.py:
----------
-
-Can build the binaries for each variant of arch in a bootstrap environment
-
-prepare_bootstrap.py
---------------------
-
-Script to prepare a bootstrap environment. A bootstrap environment depends on
-the python version (2.5, 2.4, etc...).
-
-It works by building a source distribution, unzipping it in a bootrap
-directory, and putting everything (build.py, nsis script, etc...) in it.
+This directory contains various scripts and code to build binaries installers for
+windows.
+
+It can:
+        - prepare a bootstrap environment to build binary in a self-contained
+          directory
+        - build binaries for different architectures using different site.cfg
+        - prepare a nsis-based installer which automatically detects the arch
+          on the computer where numpy is installed.
+
+Example:
+========
+
+python doall.py
+
+Should build the numpy 'super' installer for sse2, sse3 and nosse from scratch.
+You have to run it in the win32build directory.
+
+Dependencies:
+=============
+
+You need the following to use those scripts:
+        - python and mingw tools (gcc, make, g77 at least).
+        - the binaries for atlas/blas/lapack for the various archs supported
+          (see vendor in numpy repository root for tools to build those).
+        - python, nsis and subversion command line tools should be in your
+          PATH, e.g. running python, makensis and svn should work in a DOS
+          cmd.exe.
+        - the CpuCaps nsis plugin (see below on how to build it).
+
+Components:
+===========
+
+cpuid
+-----
+
+cpuid: contains a mini C lib to detect SSE variants (SSE 1, 2 and 3 for now).
+It relies on gcc ASM, but porting it to VS should be trivial (only a few lines
+os ASM).
+
+cpucaps:
+--------
+
+cpucaps: nsis plugin to add the ability to detect SSE for installers, uses
+cpuid. To build it, you have two options:
+        - build it manually: build the CpuCaps.dll with sources cpucaps.c and
+          cpuid.c in cpuid directory.
+        - with scons: if you have scons, just do scons install. It will build
+          and put the CpuCaps.dll  in the plugins directory of nsis (if you
+          install nsis in the default path).
+
+build.py:
+---------
+
+Can build the binaries for each variant of arch in a bootstrap environment
+
+prepare_bootstrap.py
+--------------------
+
+Script to prepare a bootstrap environment. A bootstrap environment depends on
+the python version (2.5, 2.4, etc...).
+
+It works by building a source distribution, unzipping it in a bootrap
+directory, and putting everything (build.py, nsis script, etc...) in it.

Modified: trunk/tools/win32build/build.py
===================================================================
--- trunk/tools/win32build/build.py	2008-07-28 05:22:41 UTC (rev 5557)
+++ trunk/tools/win32build/build.py	2008-07-28 05:25:04 UTC (rev 5558)
@@ -1,117 +1,117 @@
-"""Python script to build windows binaries to be fed to the "superpack".
-
-The script is pretty dumb: it assumes python executables are installed the
-standard way, and the location for blas/lapack/atlas is harcoded."""
-
-# TODO:
-#  - integrate the x86analysis script to check built binaries
-#  - make the config configurable with a file
-import sys
-import subprocess
-import os
-import shutil
-from os.path import join as pjoin, split as psplit, dirname
-
-PYEXECS = {"2.5" : "C:\python25\python.exe",
-        "2.4" : "C:\python24\python2.4.exe"}
-
-_SSE3_CFG = r"""[atlas]
-library_dirs = C:\local\lib\yop\sse3"""
-_SSE2_CFG = r"""[atlas]
-library_dirs = C:\local\lib\yop\sse2"""
-_NOSSE_CFG = r"""[DEFAULT]
-library_dirs = C:\local\lib\yop\nosse"""
-
-SITECFG = {"sse2" : _SSE2_CFG, "sse3" : _SSE3_CFG, "nosse" : _NOSSE_CFG}
-
-def get_python_exec(ver):
-    """Return the executable of python for the given version."""
-    # XXX Check that the file actually exists
-    try:
-        return PYEXECS[ver]
-    except KeyError:
-        raise ValueError("Version %s not supported/recognized" % ver)
-
-def get_clean():
-    if os.path.exists("build"):
-        shutil.rmtree("build")
-    if os.path.exists("dist"):
-        shutil.rmtree("dist")
-
-def write_site_cfg(arch):
-    if os.path.exists("site.cfg"):
-        os.remove("site.cfg")
-    f = open("site.cfg", 'w')
-    f.writelines(SITECFG[arch])
-    f.close()
-
-def build(arch, pyver):
-    print "Building numpy binary for python %s, arch is %s" % (get_python_exec(pyver), arch)
-    get_clean()
-    write_site_cfg(arch)
-
-    cmd = "%s setup.py build -c mingw32 bdist_wininst" % get_python_exec(pyver)
-    build_log = "build-%s-%s.log" % (arch, pyver)
-    f = open(build_log, 'w')
-
-    try:
-        try:
-            subprocess.check_call(cmd, shell = True, stderr = subprocess.STDOUT, stdout = f)
-        finally:
-            f.close()
-    except subprocess.CalledProcessError, e:
-        msg = """
-There was an error while executing the following command:
-
-    %s
-
-Error was : %s
-
-Look at the build log (%s).""" % (cmd, str(e), build_log)
-        raise Exception(msg)
-
-    move_binary(arch, pyver)
-
-def move_binary(arch, pyver):
-    if not os.path.exists("binaries"):
-        os.makedirs("binaries")
-
-    shutil.move(os.path.join('dist', get_windist_exec(pyver)), 
-            os.path.join("binaries", get_binary_name(arch)))
-
-def get_numpy_version():
-    import __builtin__
-    __builtin__.__NUMPY_SETUP__ = True
-    from numpy.version import version
-    return version
-
-def get_binary_name(arch):
-    return "numpy-%s-%s.exe" % (get_numpy_version(), arch)
-
-def get_windist_exec(pyver):
-    """Return the name of the installer built by wininst command."""
-    # Yeah, the name logic is harcoded in distutils. We have to reproduce it
-    # here
-    name = "numpy-%s.win32-py%s.exe" % (get_numpy_version(), pyver)
-    return name
-
-if __name__ == '__main__':
-    from optparse import OptionParser
-    parser = OptionParser()
-    parser.add_option("-a", "--arch", dest="arch", 
-                      help = "Architecture to build (sse2, sse3, nosse, etc...)")
-    parser.add_option("-p", "--pyver", dest="pyver",
-                      help = "Python version (2.4, 2.5, etc...)")
-
-    opts, args = parser.parse_args()
-    arch = opts.arch
-    pyver = opts.pyver
-
-    if not pyver:
-        pyver = "2.5"
-
-    if not arch:
-        for arch in SITECFG.keys():
-            build(arch, pyver)
-    else:
-        build(arch, pyver)
+"""Python script to build windows binaries to be fed to the "superpack".
+
+The script is pretty dumb: it assumes python executables are installed the
+standard way, and the location for blas/lapack/atlas is harcoded."""
+
+# TODO:
+#  - integrate the x86analysis script to check built binaries
+#  - make the config configurable with a file
+import sys
+import subprocess
+import os
+import shutil
+from os.path import join as pjoin, split as psplit, dirname
+
+PYEXECS = {"2.5" : "C:\python25\python.exe",
+        "2.4" : "C:\python24\python2.4.exe"}
+
+_SSE3_CFG = r"""[atlas]
+library_dirs = C:\local\lib\yop\sse3"""
+_SSE2_CFG = r"""[atlas]
+library_dirs = C:\local\lib\yop\sse2"""
+_NOSSE_CFG = r"""[DEFAULT]
+library_dirs = C:\local\lib\yop\nosse"""
+
+SITECFG = {"sse2" : _SSE2_CFG, "sse3" : _SSE3_CFG, "nosse" : _NOSSE_CFG}
+
+def get_python_exec(ver):
+    """Return the executable of python for the given version."""
+    # XXX Check that the file actually exists
+    try:
+        return PYEXECS[ver]
+    except KeyError:
+        raise ValueError("Version %s not supported/recognized" % ver)
+
+def get_clean():
+    if os.path.exists("build"):
+        shutil.rmtree("build")
+    if os.path.exists("dist"):
+        shutil.rmtree("dist")
+
+def write_site_cfg(arch):
+    if os.path.exists("site.cfg"):
+        os.remove("site.cfg")
+    f = open("site.cfg", 'w')
+    f.writelines(SITECFG[arch])
+    f.close()
+
+def build(arch, pyver):
+    print "Building numpy binary for python %s, arch is %s" % (get_python_exec(pyver), arch)
+    get_clean()
+    write_site_cfg(arch)
+
+    cmd = "%s setup.py build -c mingw32 bdist_wininst" % get_python_exec(pyver)
+    build_log = "build-%s-%s.log" % (arch, pyver)
+    f = open(build_log, 'w')
+
+    try:
+        try:
+            subprocess.check_call(cmd, shell = True, stderr = subprocess.STDOUT, stdout = f)
+        finally:
+            f.close()
+    except subprocess.CalledProcessError, e:
+        msg = """
+There was an error while executing the following command:
+
+    %s
+
+Error was : %s
+
+Look at the build log (%s).""" % (cmd, str(e), build_log)
+        raise Exception(msg)
+
+    move_binary(arch, pyver)
+
+def move_binary(arch, pyver):
+    if not os.path.exists("binaries"):
+        os.makedirs("binaries")
+
+    shutil.move(os.path.join('dist', get_windist_exec(pyver)), 
+            os.path.join("binaries", get_binary_name(arch)))
+
+def get_numpy_version():
+    import __builtin__
+    __builtin__.__NUMPY_SETUP__ = True
+    from numpy.version import version
+    return version
+
+def get_binary_name(arch):
+    return "numpy-%s-%s.exe" % (get_numpy_version(), arch)
+
+def get_windist_exec(pyver):
+    """Return the name of the installer built by wininst command."""
+    # Yeah, the name logic is harcoded in distutils. We have to reproduce it
+    # here
+    name = "numpy-%s.win32-py%s.exe" % (get_numpy_version(), pyver)
+    return name
+
+if __name__ == '__main__':
+    from optparse import OptionParser
+    parser = OptionParser()
+    parser.add_option("-a", "--arch", dest="arch", 
+                      help = "Architecture to build (sse2, sse3, nosse, etc...)")
+    parser.add_option("-p", "--pyver", dest="pyver",
+                      help = "Python version (2.4, 2.5, etc...)")
+
+    opts, args = parser.parse_args()
+    arch = opts.arch
+    pyver = opts.pyver
+
+    if not pyver:
+        pyver = "2.5"
+
+    if not arch:
+        for arch in SITECFG.keys():
+            build(arch, pyver)
+    else:
+        build(arch, pyver)

Modified: trunk/tools/win32build/doall.py
===================================================================
--- trunk/tools/win32build/doall.py	2008-07-28 05:22:41 UTC (rev 5557)
+++ trunk/tools/win32build/doall.py	2008-07-28 05:25:04 UTC (rev 5558)
@@ -1,13 +1,13 @@
-import subprocess
-import os
-
-PYVER = "2.5"
-
-# Bootstrap
-subprocess.check_call(['python', 'prepare_bootstrap.py'])
-
-# Build binaries
-subprocess.check_call(['python', 'build.py', '-p', PYVER], cwd = 'bootstrap-%s' % PYVER)
-
-# Build installer using nsis
-subprocess.check_call(['makensis', 'numpy-superinstaller.nsi'], cwd = 'bootstrap-%s' % PYVER)
+import subprocess
+import os
+
+PYVER = "2.5"
+
+# Bootstrap
+subprocess.check_call(['python', 'prepare_bootstrap.py'])
+
+# Build binaries
+subprocess.check_call(['python', 'build.py', '-p', PYVER], cwd = 'bootstrap-%s' % PYVER)
+
+# Build installer using nsis
+subprocess.check_call(['makensis', 'numpy-superinstaller.nsi'], cwd = 'bootstrap-%s' % PYVER)




More information about the Numpy-svn mailing list