Difference between revisions of "Scons"

From relax wiki
Jump to navigation Jump to search
(Added an intro sentence.)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
This describes how to use the [http://www.scons.org/ scons build system] to build various components of relax, from C modules to the full documentation.
 +
 +
 
== When to issue "scons" ? After each update in repository? ==
 
== When to issue "scons" ? After each update in repository? ==
  
Line 11: Line 14:
  
 
== clean/remove compilation ==
 
== clean/remove compilation ==
 +
scons clean_all
 +
del C:\WinPython27\relax_disp_32\target_functions\relax_fit.pyd
 
  scons clean_all
 
  scons clean_all
  
== Bugfix scons for 32bit building ==
+
== vcvars ==  
Due to a bug, versions of scons '''<=2.3''' should alter a line in:<br>
+
Variable setup [http://msdn.microsoft.com/en-us/library/f2ccy3wt(v=vs.110).aspx vcvars32.bat] or [http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx vcvarsall.bat x86] for Microsoft Visual Studio 11.0, before we can compile.
'''PYTHON INSTALL FOLDER\Lib\site-packages\scons-2.3.0\SCons\Tool\MSCommon\vc.py'''
 
 
 
Line '''364''':
 
<source lang="python">
 
    if not req_target_platform and target_platform in ('amd64','x86_64'):
 
        try_target_archs.append('x86')
 
</source>
 
Should be:
 
<source lang="python">
 
    #if not req_target_platform and target_platform in ('amd64','x86_64'):
 
    #    try_target_archs.append('x86')
 
    if target_platform in ('amd64','x86_64'):
 
        try_target_archs.append('x86')
 
    print "requested", req_target_platform
 
    print "target", target_platform
 
    print "try", try_target_archs
 
</source>
 
 
 
If not fixing the bug, you will get:
 
<source lang="powershell">
 
C:\WinPython27\relax_disp>scons
 
scons: Reading SConscript files ...
 
scons: done reading SConscript files.
 
scons: Building targets ...
 
 
 
###########################
 
# Compiling the C modules #
 
###########################
 
Building the relaxation curve fitting module 'target_functions\\relax_fit.pyd'
 
 
 
cl /Fotarget_functions\c_chi2.obj /c target_functions\c_chi2.c /nologo /I"C:\Win
 
Python27\WinPython-32bit-xxx\scripts\..\python-xxx\include"
 
'cl' is not recognized as an internal or external command,
 
operable program or batch file.
 
scons: *** [target_functions\c_chi2.obj] Error 1
 
scons: building terminated because of errors.
 
</source>
 
 
 
= Build relax =
 
Open the '''WinPython Command Prompt''' <br>
 
Navigate to the SVN checked out relax folder.<br>
 
First we need to run the variable setup [http://msdn.microsoft.com/en-us/library/f2ccy3wt(v=vs.110).aspx vcvars32.bat] or [http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx vcvarsall.bat x86] for Microsoft Visual Studio 11.0, before we can compile.
 
 
 
cd C:\WinPython27\relax_disp
 
 
  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
 
  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
 
  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
 
  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
Line 67: Line 28:
 
  echo %PROCESSOR_ARCHITECTURE%
 
  echo %PROCESSOR_ARCHITECTURE%
 
  scons
 
  scons
(Scons will automatically find CL.exe, and setup compilation for 64 bit.)
 
  
 
== Construction Variables ==
 
== Construction Variables ==
 
[http://www.scons.org/doc/1.2.0/HTML/scons-user/a4774.html link to Construction Variables]
 
[http://www.scons.org/doc/1.2.0/HTML/scons-user/a4774.html link to Construction Variables]
  
 +
[[Category:Python]]
 
[[Category:Scons]]
 
[[Category:Scons]]
 +
[[Category:Software]]

Latest revision as of 15:31, 15 October 2015

This describes how to use the scons build system to build various components of relax, from C modules to the full documentation.


When to issue "scons" ? After each update in repository?

This is only necessary if the C files change, or if your Python version changes (for example you switch from Python 2 to Python 3).

This has not happened for a long time and will probably not occur in the lifetime of the relax_disp branch.

User manual

scons user_manual_pdf

clean/remove compilation

scons clean_all
del C:\WinPython27\relax_disp_32\target_functions\relax_fit.pyd
scons clean_all

vcvars

Variable setup vcvars32.bat or vcvarsall.bat x86 for Microsoft Visual Studio 11.0, before we can compile.

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64
echo %PROCESSOR_ARCHITECTURE%
set PROCESSOR_ARCHITECTURE=x86
echo %PROCESSOR_ARCHITECTURE%
scons

Construction Variables

link to Construction Variables