Scons

From relax wiki
Jump to navigation Jump to search

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