Difference between revisions of "Scons"

From relax wiki
Jump to navigation Jump to search
Line 12: Line 12:
 
== clean/remove compilation ==
 
== clean/remove compilation ==
 
  scons clean_all
 
  scons clean_all
 +
 +
== Bugfix scons for 32bit building ==
 +
Due to a bug, versions of scons '''<=2.3''' should alter a line in:<br>
 +
'''C:\WinPython27\WinPython-32bit-xxx\python-xxx\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>
  
 
== Construction Variables ==
 
== Construction Variables ==

Revision as of 10:00, 20 June 2013

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

Bugfix scons for 32bit building

Due to a bug, versions of scons <=2.3 should alter a line in:
C:\WinPython27\WinPython-32bit-xxx\python-xxx\Lib\site-packages\scons-2.3.0\SCons\Tool\MSCommon\vc.py

Line 364:

    if not req_target_platform and target_platform in ('amd64','x86_64'):
        try_target_archs.append('x86')

Should be:

    #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

If not fixing the bug, you will get:

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.

Construction Variables

link to Construction Variables