platform=Environment()["PLATFORM"] if platform=="win32": # assumes Visual C++ 7.1 # elswise change BOOSTPYTHON_LIB BOOST_PATH = "C:/boost/" BOOST_VERSION= "1_33" PYTHON_PATH = "C:/Python24" BOOSTPYTHON_LIB = "libboost_python-vc71-mt-%s" % BOOST_VERSION #################################################################### CCFLAGS=["/EHsc", "/GR", "/MD", "-DBOOST_PYTHON_STATIC_LIB"] LIBPATH=["%s/lib" % BOOST_PATH , ".."] CPPPATH=[ "%s/include" % PYTHON_PATH, "..", "%s/include/boost-%s" % (BOOST_PATH, BOOST_VERSION) ] fl = ["../pcsvm.lib", "pythonAdapter.cpp" ] SharedLibrary("pySVM.dll", fl , CCFLAGS=CCFLAGS, LIBS=[BOOSTPYTHON_LIB], CPPPATH=CPPPATH, LIBPATH=LIBPATH ) else: # assumes gcc # and boost python lib and includes in usual places PYTHON_PATH="/usr/include/python2.3" #################################################################### CCFLAGS="-fPIC" LIBPATH=".." CPPPATH=[ PYTHON_PATH, ".." , "/usr/local/include/boost-1_33/" ] fl = ["../" + name for name in "SparseVector.cpp Classifier.cpp Problem.cpp QuadOptimData.cpp Solver.cpp libsvm.cpp".split() ] lib= SharedLibrary("pySVM.so", ["pythonAdapter.cpp", ] + fl, CCFLAGS=CCFLAGS, LIBS=["boost_python-gcc-1_33"], \ CPPPATH=CPPPATH, LIBPATH=LIBPATH) # scons builds libpySVM.so instead of pySVM.so, so rename: Command('pySVM.so', 'libpySVM.so', 'mv $SOURCE $TARGET')