Here is an example file (read the tutorial, it's pretty good):
# the game will be divided into tree separate parts:# 1) a game library (independant of any 3rd-party library or OS)# 2) a simplistic game engine (that does all the 3rd-party libraries and OS-dependant code)# 3) one executable to rule them all :D###################################################################### give a name for each binary module:game_library = "fooblocks"game_engine = "fooblocks-engine"executable = "fooblocks"########################################################################################################################################### set the sources:engine_sources = Split(""" init.c graphics.c input.c text.c time.c""")library_sources = Split(""" draw.c gamelogic.c ingameloop.c player.c""")executable_sources = Split(""" fooblocks.c""")########################################################################################################################################### declare the needed librariescommon_libs = Split(""" SDL SDL_ttf""")# setting the dependancies:engine_libs = common_libslibrary_libs = common_libs + [game_engine] # TODO: see if common_libs is necessary at allexecutable_libs = common_libs + [game_engine, game_library]########################################################################################################################################### general options#prg_lib_path = Split("/usr/lib /usr/local/lib .")prg_hdr_path = Split(".")prg_lib_path = Split(".");# do not recompile if there is no functional changeTargetSignatures("content") # default is build########################################################################################################################################### build the binary modules:# the game engine:SharedLibrary( game_engine, engine_sources, LIBS = engine_libs, LIBPATH = prg_lib_path, CPPPATH = prg_hdr_path)# the game library:SharedLibrary( game_library, library_sources, LIBS = library_libs, LIBPATH = prg_lib_path, CPPPATH = prg_hdr_path)# the executable:Program(executable, executable_sources, LIBS = executable_libs, LIBPATH = prg_lib_path, CPPPATH = prg_hdr_path)#####################################################################
As you can see, it's much easier to both read and maintain. As far as I am concerned, I'll never use autotoos/make in my projects. There are some reasons for this:
1) there is a single configuration file, which is way easier to read and maitain
2) the end user needs to have only one program installed, save for the buildchain
3) I don't need to know all compiler flags
4) I don't need MinGW or Cygwin in Windows to compile my projects (=> greatly simplifies porting)
5) I would choose Python over any shell-like language (brrr, C or ASM :P)