-
Notifications
You must be signed in to change notification settings - Fork 14
Building Ironclad 2.7
Ironclad 2.7 only builds as a 32-bit package. Only Windows builds are supported.
In the root of the project on the 2.7 branch, there is a Dockerfile
that contains Docker instructions to create a Docker image suitable to run a Docker container with all tools necessary for the build of the 2.7 branch of Ironclad. Before using it, make sure that Docker Desktop is set to use Windows containers.
To build the container image and then run the container, change the current directory to the project root directory, check out branch 2.7 and, using PowerShell:
docker build -t ironclad-build:v2.7 -m 2GB .
docker run -it -v ${pwd}:C:\ironclad --name ironclad-build-v2.7 ironclad-build:v2.7
Subsequent re-runs of the created container can be done with:
docker start -ai ironclad-build-v2.7
For building outside of a Docker container, install the following prerequisites:
-
Python 2.7 python-2.7.8.msi
-
SCons 2.3.4 scons-2.3.4-setup.exe
-
mingw mingw-get-setup.exe
-
install and start
mingw-get
-
under
Basic Setup
selectmingw32-base
mingw32-gcc-g++
msys-base
-
under
All Packages
selectmingw32-pexports
-
Apply Changes
-
add
C:\MinGW\bin
to PATH -
if you have
cygwin
, make sure PATH has no references to it or at least it is after MinGW
-
-
GCCXML 0.9.0
-
get the source
$ git clone https://github.com/gccxml/gccxml
-
generate makefiles with cmake
-
open cmake gui
-
provide source code directory (e.g.
c:\Users\auser\github\gccxml
) -
provide build directory, next to source directory (e.g.
c:\Users\github\gccxml-build
) -
configure
-
select
MinGW Makefile
andUse default native compilers
,Finish
, wait … -
set
CMAKE_BUILD_TYPE
to Release -
generate
-
-
compile using mingw
in cmd window, change dir to build and invoke
$ mingw32-make.exe
-
install into
c:\Program File (x86)\gccxml
in
cmd.exe
with administrator privileges, change dir to the build and invoke$ mingw32-make.exe install
-
-
IronPython 2.7.5 IronPython-2.7.5.msi
-
install
pyexpat
from fepytake pyexpat.py rename to
expat.py
and copy into"c:/Program Files (x86)/IronPython 2.7/lib/xml/parsers"
$ copy "c:/Python27/lib/xml/dom/expatbuilder.py" "c:/Program Files (x86)/IronPython 2.7/lib/xml/dom" $ copy "c:/Python27/lib/xml/sax/expatreader.py" "c:/Program Files (x86)/IronPython 2.7/lib/xml/sax"
-
pygccxml 1.6.2 pygccxml-v1.6.2.tar.gz
after unpacking install into ironpython site-packages
$ ipy setup.py install --user
-
nasm 2.11 nasm-2.11.06-installer.exe
once setup is complete copy
nasm.exe
toMinGW/bin
$ copy C:\Users\auser\AppData\Local\nasm\nasm.exe c:\MinGW\bin
-
up to date version of .NET (4.0 or better). No effort is made to support .NET 3.5 (CLR 2.0)
At this point the version check script (bin/versions.bat
) can be
used to verify configuration.
c:\Users\auser\github\ironclad\bin>versions.bat
MINGWBASEDIR=C:\MinGW
gcc version 4.8.1 (GCC)
GNU gdb (GDB) 7.6.1
NASM version 2.11.06 compiled on Oct 20 2014
GNU ld (GNU Binutils) 2.24
GNU windres (GNU Binutils) 2.24
GNU dlltool (GNU Binutils) 2.24
PExports 0.46; Originally written 1998, Anders Norlander
GNU Make 3.82.90
#define __MINGW32_VERSION 3.20
#define __W32API_VERSION 3.17
Ironclad’s build process is configured by SConstruct
in the top-
level directory. Go to the section marked PLATFORM-SPECIFIC GLOBALS,
and change anything that looks wrong for your system. The values provided
in current SConstruct
are known to work under Windows 7 x64 with all
dependencies installed in default locations.
MSVCR90_DLL is of particular note: to find it on your system, find a directory in windows/winsxs that starts with:
x86_Microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.
…and use the full path to the msvcr90.dll therein.
Having done the above, running scons
in the top-level directory,
from a cmd.exe
shell, should build everything required by Ironclad.
$ cd C:\ironclad $ scons
-
pysvn pysvn 1.7.9
-
numpy numpy 1.9.1
patch numpy:
$ cd c:\Python27\Lib\site-packages $ patch -p0 < c:\Users\auser\github\ironclad\misc\numpy.patch
Note: numpy is known to be broken.