source_files = Split("""
AICastor.cpp                     AI.cpp                                AIEcho.cpp
AINicowar.cpp                    AINull.cpp                            AINumbi.cpp
AIToubib.cpp                     AIWarrush.cpp                         BasePlayer.cpp
BaseTeam.cpp                     BitArray.cpp                          Brush.cpp
Building.cpp                     BuildingsTypes.cpp                    BuildingType.cpp
Bullet.cpp                       Campaign.cpp                          CampaignEditor.cpp
CampaignMainMenu.cpp             CampaignMenuScreen.cpp                CampaignScreen.cpp
CampaignSelectorScreen.cpp       ChooseMapScreen.cpp                   CPUStatisticsManager.cpp
CreditScreen.cpp                 CustomGameScreen.cpp                  DynamicClouds.cpp
EditorMainMenu.cpp               EndGameScreen.cpp                     Engine.cpp
EntityType.cpp                   Fatal.cpp                             FertilityCalculatorDialog.cpp
FertilityCalculatorThread.cpp    FertilityCalculatorThreadMessage.cpp  Game.cpp
GameEvent.cpp                    GameGUI.cpp                           GameGUIDefaultAssignManager.cpp
GameGUIDialog.cpp                GameGUIGhostBuildingManager.cpp       GameGUIKeyActions.cpp
GameGUILoadSave.cpp              GameGUIMessageManager.cpp             GameGUIToolManager.cpp
GameHeader.cpp                   GameUtilities.cpp                     Glob2.cpp
Glob2Screen.cpp                  Glob2Style.cpp                        GlobalContainer.cpp
GUIGlob2FileList.cpp             GUIMapPreview.cpp                     HeightMapGenerator.cpp
IntBuildingType.cpp              IRC.cpp                               IRCTextMessageHandler.cpp
IRCThread.cpp                    IRCThreadMessage.cpp                  KeyboardManager.cpp
LANFindScreen.cpp                LANGameInformation.cpp                LANMenuScreen.cpp
LogFileManager.cpp               MainMenuScreen.cpp                    MapAssembler.cpp
Map.cpp                          MapEdit.cpp                           MapEditKeyActions.cpp
MapGenerationDescriptor.cpp      MapGenerator.cpp                      MapHeader.cpp
MarkManager.cpp                  Minimap.cpp                           MultiplayerGame.cpp
MultiplayerGameEvent.cpp         MultiplayerGameEventListener.cpp      MultiplayerGameScreen.cpp
NetBroadcaster.cpp               NetBroadcastListener.cpp              NetConnection.cpp
NetConnectionThread.cpp          NetConnectionThreadMessage.cpp        NetEngine.cpp
NetGamePlayerManager.cpp         NetListener.cpp                       NetMessage.cpp
NetReteamingInformation.cpp      NetTestSuite.cpp                      NewMapScreen.cpp
Order.cpp                        OverlayAreas.cpp                      P2PConnection.cpp
P2PInformation.cpp               P2PManager.cpp                        P2PPlayerInformation.cpp
PerlinNoise.cpp                  Player.cpp                            Race.cpp
Ressource.cpp                    RessourcesTypes.cpp                   ScriptEditorScreen.cpp
Sector.cpp                       Settings.cpp                          SettingsScreen.cpp
SGSL.cpp                         SimplexNoise.cpp                      SoundMixer.cpp
Team.cpp                         TeamStat.cpp                          UnitConsts.cpp
Unit.cpp                         UnitEditorScreen.cpp                  UnitSkin.cpp
UnitsSkins.cpp                   UnitType.cpp                          Utilities.cpp
VoiceRecorder.cpp                YOGClientChatChannel.cpp              YOGClientChatListener.cpp
YOGClient.cpp                    YOGClientEvent.cpp                    YOGClientEventListener.cpp
YOGClientGameListListener.cpp    YOGClientGameListManager.cpp          YOGClientLobbyScreen.cpp
YOGClientPlayerListListener.cpp  YOGClientPlayerListManager.cpp        YOGConsts.cpp
YOGGameInfo.cpp                  YOGLoginScreen.cpp                    YOGMessage.cpp
YOGPlayerSessionInfo.cpp         YOGPlayerStoredInfo.cpp               YOGServerAdministrator.cpp
YOGServerAdministratorList.cpp   YOGServerChatChannel.cpp              YOGServerChatChannelManager.cpp
YOGServer.cpp                    YOGServerGame.cpp                     YOGServerMapDistributor.cpp
YOGServerPasswordRegistry.cpp    YOGServerPlayer.cpp                   YOGServerPlayerStoredInfoManager.cpp

""")

Import('env')
local = env.Clone()
if env["mingw"] or env['PLATFORM'] == 'win32':
    source_files.extend(["C:/msys/1.0/local/lib/libvorbisfile.a", "C:/msys/1.0/local/lib/libvorbis.a", "C:/msys/1.0/local/lib/libogg.a"])
#Add libgag, not as a library, but as an object
source_files.append("#libgag//src/libgag.a")
p = local.Program("glob2", source_files)
local.Default(p)
    
Import('env')
Import("PackTar")
    
if 'dist' or 'install' in COMMAND_LINE_TARGETS:
    env.Install(env["BINDIR"], "glob2")
    env.Alias("install", env["BINDIR"])
    
    import os
    for file in os.listdir("."):
        if file.find(".cpp") != -1 or file.find(".h") != -1 or file.find(".py") != -1:
            PackTar(env["TARFILE"], file)
    
    PackTar(env["TARFILE"], "SConscript")

