diff --git a/SConstruct b/SConstruct index 092d8d10..2c7d3095 100644 --- a/SConstruct +++ b/SConstruct @@ -1,3 +1,5 @@ +import os + # XXX path separator fixed right now opts = Options() opts.Add('PSS_STYLE', 'Path separator style', 1) @@ -7,34 +9,38 @@ env = Environment(options = opts, CPPDEFINES={'PSS_STYLE' : '${PSS_STYLE}', 'LSB_FIRST' : '${LSB_FIRST}'}) -#bring in environment CCFLAGS and LINKFLAGS -import os -if os.environ.has_key('CCFLAGS'): - env['CCFLAGS'] = os.environ['CCFLAGS']; -if os.environ.has_key('LINKFLAGS'): - env['LINKFLAGS'] = os.environ['LINKFLAGS']; +if os.environ.has_key('CC'): + env.Replace(CC = os.environ['CC']) +if os.environ.has_key('CFLAGS'): + env.Append(CCFLAGS = os.environ['CFLAGS']) +if os.environ.has_key('LDFLAGS'): + env.Append(LINKFLAGS = os.environ['LDFLAGS']) print "platform: ", env['PLATFORM'] -#special flags for cygwin -#we have to do this here so that the function and lib checks will go through mingw +# special flags for cygwin +# we have to do this here so that the function and lib checks will go through +# mingw if env['PLATFORM'] == 'cygwin': - env['CCFLAGS'] += "-mno-cygwin"; - env['LINKFLAGS'] += "-mno-cygwin"; + env.Append(CCFLAGS = " -mno-cygwin") + env.Append(LINKFLAGS = " -mno-cygwin") env['LIBS'] = ['ddraw','dinput','dsound','gdi32','dxguid','winmm','shell32','wsock32','comdlg32','ole32']; conf = Configure(env) if not conf.CheckLib('SDL'): - print 'Did not find libSDL.a or SDL.lib, exiting!' + print 'Did not find libSDL or SDL.lib, exiting!' Exit(1) if not conf.CheckLib('z'): - print 'Did not find libz.a or z.lib, exiting!' + print 'Did not find libz or z.lib, exiting!' Exit(1) if conf.CheckFunc('asprintf'): - conf.env['CCFLAGS'] += " -DHAVE_ASPRINTF"; - + conf.env.Append(CCFLAGS = " -DHAVE_ASPRINTF") env = conf.Finish() + +# parse SDL cflags/libs +env.ParseConfig('sdl-config --cflags --libs') + Export('env') SConscript(['src/SConscript']) diff --git a/src/SConscript b/src/SConscript index 1f8193db..d586a824 100644 --- a/src/SConscript +++ b/src/SConscript @@ -28,51 +28,21 @@ x6502.cpp movie.cpp unzip.c""") -Export('file_list') +subdirs = Split(""" +boards +drivers/common +drivers/sdl +fir +input +mappers""") +#palettes -SConscript(Split(""" -boards/SConscript -input/SConscript -fir/SConscript -mappers/SConscript -drivers/common/SConscript -drivers/sdl/SConscript -""")) -#palettes/SConscript -Import('file_list') +for dir in subdirs: + subdir_files = SConscript('%s/SConscript' % dir) + file_list.append(subdir_files) Import('env') - -# use sdl-config to get the cflags and libpath -import os; -sdl_cflags_pipe = os.popen("sdl-config --cflags"); -sdl_cflags = sdl_cflags_pipe.read(); -sdl_cflags = sdl_cflags.rstrip(os.linesep); -sdl_cflags_pipe.close(); - -sdl_libpath = []; -sdl_libs = []; - -sdl_libflags_pipe = os.popen("sdl-config --libs"); -sdl_libflags = sdl_libflags_pipe.read(); -for flag in sdl_libflags.split(' '): - if flag.find("-L") == 0: - sdl_libpath.append(flag.strip("-L")); - elif flag.find("-l") == 0: - sdl_libs.append(flag.strip("-l")); - else: - print "extra link flag: ", flag; - env['LINKFLAGS'] += " " + flag; - -sdl_libflags_pipe.close(); - -# add zlib and sdl libs -env['LIBS'].append('z'); -env['LIBS'].extend(sdl_libs); - -# include sdl cflags -env['CCFLAGS'] += " " + sdl_cflags; print env['LINKFLAGS'] -env.Program('fceu', file_list, LIBPATH=sdl_libpath) +env.Program('fceu', file_list) diff --git a/src/boards/SConscript b/src/boards/SConscript index 2ed3a913..a9a53411 100644 --- a/src/boards/SConscript +++ b/src/boards/SConscript @@ -1,4 +1,3 @@ -Import('file_list') my_list = Split(""" 01-222.cpp 112.cpp @@ -54,8 +53,7 @@ supervision.cpp t-262.cpp tengen.cpp """) + for x in range(len(my_list)): my_list[x] = 'boards/' + my_list[x] -file_list = my_list + file_list - -Export('file_list') +Return('my_list') diff --git a/src/drivers/common/SConscript b/src/drivers/common/SConscript index 1fe1a4e7..94f47a8e 100644 --- a/src/drivers/common/SConscript +++ b/src/drivers/common/SConscript @@ -1,4 +1,3 @@ -Import('file_list') my_list = Split(""" args.cpp cheat.cpp @@ -10,7 +9,7 @@ scale3x.cpp scalebit.cpp vidblit.cpp """) + for x in range(len(my_list)): my_list[x] = 'drivers/common/' + my_list[x] -file_list = my_list + file_list -Export('file_list') +Return('my_list') diff --git a/src/drivers/sdl/SConscript b/src/drivers/sdl/SConscript index e144e98c..ce10fb78 100644 --- a/src/drivers/sdl/SConscript +++ b/src/drivers/sdl/SConscript @@ -1,4 +1,3 @@ -Import('file_list') my_list = Split(""" input.cpp main.cpp @@ -14,8 +13,6 @@ unix-netplay.cpp #sdl-opengl.cpp #sdl-opengl.h - for x in range(len(my_list)): my_list[x] = 'drivers/sdl/' + my_list[x] -file_list = my_list + file_list -Export('file_list') +Return('my_list') diff --git a/src/fir/SConscript b/src/fir/SConscript index ecdc9f9e..ef06e5d7 100644 --- a/src/fir/SConscript +++ b/src/fir/SConscript @@ -1,7 +1,6 @@ -Import('file_list') my_list = Split(""" """) + for x in range(len(my_list)): my_list[x] = 'fir/' + my_list[x] -file_list = my_list + file_list -Export('file_list') +Return('my_list') diff --git a/src/input/SConscript b/src/input/SConscript index b929f155..d4f47fbb 100644 --- a/src/input/SConscript +++ b/src/input/SConscript @@ -1,4 +1,3 @@ -Import('file_list') my_list = Split(""" arkanoid.cpp bworld.cpp @@ -16,7 +15,7 @@ suborkb.cpp toprider.cpp zapper.cpp """) + for x in range(len(my_list)): my_list[x] = 'input/' + my_list[x] -file_list = my_list + file_list -Export('file_list') +Return('my_list') diff --git a/src/mappers/SConscript b/src/mappers/SConscript index afa1507c..371ecc08 100644 --- a/src/mappers/SConscript +++ b/src/mappers/SConscript @@ -1,4 +1,3 @@ -Import('file_list') my_list = Split(""" 151.cpp 15.cpp @@ -77,7 +76,7 @@ emu2413.c mmc2and4.cpp simple.cpp """) + for x in range(len(my_list)): my_list[x] = 'mappers/' + my_list[x] -file_list = my_list + file_list -Export('file_list') +Return('my_list')