# Emacs edit mode for this file is -*- python -*-

from SCons.Defaults import SharedCheck, ProgScan
from SCons.Script.SConscript import SConsEnvironment

MODNAME = 'syzextra'
SRCS = ["mod_main.cc", "DebugPrint.cc", "myNF.cc"]

env = Environment()

import os
SINGULAR_HOME="./../.."

SING_INCLUDES=[SINGULAR_HOME, SINGULAR_HOME+"/omalloc"]
# , SINGULAR_HOME+"/factory"


#env.SharedObject(target = 'mod_main.o', source = 'mod_main.cc')

CXXTEMPLFLAGS = "-fno-implicit-templates --no-exceptions"

if env ['PLATFORM'] == "darwin":
    MACOSXMODULEFLAGS = '-twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup'
else:
    MACOSXMODULEFLAGS = ''
## '-flat_namespace -undefined suppress'

BUNDLETEMPFLAGS = '$LDMODULEFLAGS ' + MACOSXMODULEFLAGS

### for the use with "scons debug=1"
if ARGUMENTS.get('debug', 0):
    ### Works with Singularg only!
    syzextra_debug_if = env.LoadableModule( MODNAME + '_g',
        SRCS,
        SHLIBPREFIX="",
        LDMODULESUFFIX=".sog",
        SHLIBSUFFIX = ".sog",
        CPPPATH = SING_INCLUDES,
        CXXFLAGS = "-g -Wextra -Wall -pedantic -Wno-long-long " + CXXTEMPLFLAGS,
        LDMODULEFLAGS = BUNDLETEMPFLAGS,
        LIBS=[])
    Default(syzextra_debug_if)
else:
    ### Works with any Singular
    syzextra_if = env.LoadableModule(MODNAME,
        SRCS,
        SHLIBPREFIX="",
        LDMODULESUFFIX=".so",
        SHLIBSUFFIX = ".so",
        CPPPATH = SING_INCLUDES,
        CPPDEFINES = ["NDEBUG", "OM_NDEBUG"],
        CXXFLAGS = "-O3 -fomit-frame-pointer --no-rtti " + CXXTEMPLFLAGS,
        CCFLAGS="-O3 -fomit-frame-pointer ",
        LDMODULEFLAGS = BUNDLETEMPFLAGS,
        LIBS=[])
    Default(syzextra_if)



### clean with "scons -c ."
