# emacs, this is -*-Python-*- mode

realipp_libraries = ['ippcore',
                     'ippi',
                     'ipps',
                     'ippcv',
                     'guide']
env = Environment()
env.Append(CCFLAGS = '-g')

helper_obj = env.Object( #target=target_name+'.o',
    source=['test_helpers.c'],
    #CPPPATH=realipp_include_dirs,
    )

for target_name in ['test','test3','test4']:
    test_obj = env.Object( target=target_name+'.o',
                           source=[target_name+'.c'],
                           #CPPPATH=realipp_include_dirs,
                           )

    env.Program( target=target_name,
                 source=test_obj+helper_obj,
                 LIBS=realipp_libraries,
                 #LIBPATH=realipp_library_dirs,
                 #CPPPATH=realipp_include_dirs,
                 )
###-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

##import sys, os, glob

### build fakeipp shared lib

##debug=int(os.environ.get('DEBUG',0))

##fakeipp_include_dirs = ['include']
##fakeipp_shared_libraries = ['m']
##if 1:
##    fakeipp_sources = glob.glob('src/*.c')
##else:
##    # blitz++
##    fakeipp_sources = glob.glob('src/*.cpp')
##    fakeipp_shared_libraries.append('stdc++')

##have_real_ipp = False
##if os.path.exists('/opt/intel/ipp40'):
##    have_real_ipp = True
##    realipp_include_dirs = ['/opt/intel/ipp40/include/']
##    realipp_library_dirs = ['/opt/intel/ipp40/sharedlib/',
##                            '/opt/intel/ipp40/sharedlib/linux32']
##    realipp_libraries = ['ippcore',
##                         'ippi',
##                         'ipps',
##                         'ippcv',
##                         'guide']

### tests with gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)
##optenv = Environment()
##if debug:
##    optenv.Append(CCFLAGS = '-g')
##else:
##    optenv.Append(CCFLAGS = '-O3') # faster
##    #optenv.Append(CCFLAGS = '-march=pentium4') # faster, breaks Athlons
##    #optenv.Append(CCFLAGS = '-funroll-loops') # no effect
##    #optenv.Append(CCFLAGS = '-msse2') # no effect
##    #optenv.Append(CCFLAGS = '-mfpmath=sse') # slower

##fakeipp_static_libraries = optenv.StaticLibrary(
##    target='fakeipp',
##    source=fakeipp_sources,
##    LIBS=fakeipp_shared_libraries,
##    CPPPATH=fakeipp_include_dirs,
##    )

##env = Environment()
##if debug:
##    env.Append(CCFLAGS = '-g')
##else:
##    env.Append(CCFLAGS = '-O3')

###for progname in ['test3','moments1','max']:
###for progname in ['max']:
##for progname in ['test4']:

##    if 0:
##        fake_obj = env.Object( target=progname+'.fake.o',
##                               source=[progname+'.c'],
##                               CPPPATH=fakeipp_include_dirs,
##                               )

##        helper_obj = env.Object( target='test_helpers.fake.o',
##                                 source=['test_helpers.c'],
##                                 CPPPATH=fakeipp_include_dirs,
##                                 )

##        # using fake ipp
##        env.Program( target=progname+'.fake',
##                     source=fake_obj+helper_obj+fakeipp_static_libraries,
##                     LIBS=fakeipp_shared_libraries,
##                     CPPPATH=fakeipp_include_dirs,
##                    )

##    if have_real_ipp:
##        ### using real ipp
##        real_obj = env.Object( target=progname+'.real.o',
##                               source=[progname+'.c'],
##                               CPPPATH=realipp_include_dirs,
##                               )

##env.Program( target='maxblitz',
##             source='maxblitz.cpp',
##             )
