# -*- mode: python -*- # coding=utf-8 # DOOM build script # TTimo # http://scons.sourceforge.net #*************************************************************************** #* #* PROJECT: The Dark Mod #* $Source$ #* $Revision$ #* $Date$ #* $Author$ #* #* $Log$ #* Revision 1.3 2005/11/11 22:50:09 sparhawk #* SDK 1.3 Merge #* #* Revision 1.2 2004/11/28 19:23:11 sparhawk #* Added header and Id Copyright. #* #* #*************************************************************************** import sys, os import scons_utils Import( 'GLOBALS' ) Import( GLOBALS ) # Master list of source files to compile game_string = ' \ af.cpp \ afentity.cpp \ actor.cpp \ camera.cpp \ entity.cpp \ brittlefracture.cpp \ fx.cpp \ gameedit.cpp \ game_local.cpp \ game_network.cpp \ item.cpp \ ik.cpp \ light.cpp \ misc.cpp \ mover.cpp \ moveable.cpp \ multiplayergame.cpp \ player.cpp \ playericon.cpp \ playerview.cpp \ projectile.cpp \ pvs.cpp \ securitycamera.cpp \ smokeparticles.cpp \ sound.cpp \ target.cpp \ trigger.cpp \ weapon.cpp \ worldspawn.cpp \ ai/aas.cpp \ ai/aas_debug.cpp \ ai/aas_pathing.cpp \ ai/aas_routing.cpp \ ai/ai.cpp \ ai/ai_events.cpp \ ai/ai_pathing.cpp \ ai/MoveState.cpp \ ai/tdmAASFindEscape.cpp \ gamesys/debuggraph.cpp \ gamesys/class.cpp \ gamesys/event.cpp \ gamesys/savegame.cpp \ gamesys/syscmds.cpp \ gamesys/syscvar.cpp \ gamesys/typeinfo.cpp \ anim/anim.cpp \ anim/anim_blend.cpp \ anim/anim_import.cpp \ anim/anim_testmodel.cpp \ script/script_compiler.cpp \ script/script_interpreter.cpp \ script/script_program.cpp \ script/script_thread.cpp \ physics/clip.cpp \ physics/force.cpp \ physics/force_constant.cpp \ physics/force_drag.cpp \ physics/force_push.cpp \ physics/force_field.cpp \ physics/force_spring.cpp \ physics/physics.cpp \ physics/physics_af.cpp \ physics/physics_actor.cpp \ physics/physics_base.cpp \ physics/physics_monster.cpp \ physics/physics_liquid.cpp \ physics/physics_parametric.cpp \ physics/physics_player.cpp \ physics/physics_rigidbody.cpp \ physics/physics_static.cpp \ physics/physics_staticmulti.cpp \ physics/push.cpp' game_list = scons_utils.BuildList( 'game', game_string ) for i in range( len( game_list ) ): game_list[ i ] = '../../' + game_list[ i ] # DarkMod source files darkModSrc = '\ AIComm_Message.cpp \ AIVehicle.cpp \ BinaryFrobMover.cpp \ BloodMarker.cpp \ ButtonStateTracker.cpp \ CImage.cpp \ DarkmodAASHidingSpotFinder.cpp \ DarkModGlobals.cpp \ darkmodHidingSpotTree.cpp \ darkModLAS.cpp \ decltdm_matinfo.cpp \ declxdata.cpp \ DifficultyMenu.cpp \ DifficultyManager.cpp \ DifficultySettings.cpp \ DownloadMenu.cpp \ EscapePointEvaluator.cpp \ EscapePointManager.cpp \ fdchar.cpp \ force_grab.cpp \ func_shooter.cpp \ FrobDoor.cpp \ FrobButton.cpp \ FrobDoorHandle.cpp \ FrobHandle.cpp \ FrobLever.cpp \ FrobLock.cpp \ FrobLockHandle.cpp \ Grabber.cpp \ HidingSpotSearchCollection.cpp \ AbsenceMarker.cpp \ Intersection.cpp \ liquid.cpp \ MaterialConverter.cpp \ MeleeWeapon.cpp \ MissionData.cpp \ ModMenu.cpp \ MultiStateMover.cpp \ MultiStateMoverButton.cpp \ MultiStateMoverPosition.cpp \ overlaysys.cpp \ PositionWithinRangeFinder.cpp \ Profile.cpp \ ProjectileResult.cpp \ PVSToAASMapping.cpp \ rdline.cpp \ PickableLock.cpp \ Relations.cpp \ renderpipeposix.cpp \ RevisionTracker.cpp \ sndProp.cpp \ sndPropLoader.cpp \ TimerManager.cpp \ Strip.cpp \ ToUpper.cpp \ UserManager.cpp \ Inventory/Category.cpp \ Inventory/Cursor.cpp \ Inventory/Inventory.cpp \ Inventory/Item.cpp \ Inventory/WeaponItem.cpp \ Missions/Download.cpp \ Missions/DownloadManager.cpp \ Missions/MissionDB.cpp \ Missions/MissionInfo.cpp \ Missions/MissionInfoDecl.cpp \ Missions/MissionManager.cpp \ Http/HttpConnection.cpp \ Http/HttpRequest.cpp \ randomizer/mersenne.cpp \ randomizer/mother.cpp \ randomizer/ranrotb.cpp \ randomizer/ranrotw.cpp \ randomizer/userintf.cpp \ ZipLoader/ZipLoader.cpp \ pugixml/pugixml.cpp \ pugixml/pugixpath.cpp \ shop.cpp \ StimResponse/Response.cpp \ StimResponse/ResponseEffect.cpp \ StimResponse/Stim.cpp \ StimResponse/StimResponse.cpp \ StimResponse/StimResponseCollection.cpp \ StimResponse/StimResponseTimer.cpp \ AI/AreaManager.cpp \ AI/CommunicationSubsystem.cpp \ AI/DoorInfo.cpp \ AI/Mind.cpp \ AI/Memory.cpp \ AI/MovementSubsystem.cpp \ AI/Subsystem.cpp \ AI/Conversation/ConversationSystem.cpp \ AI/Conversation/Conversation.cpp \ AI/Conversation/ConversationCommand.cpp \ AI/EAS/EAS.cpp \ AI/EAS/RouteInfo.cpp \ AI/EAS/RouteNode.cpp \ AI/States/AgitatedSearchingState.cpp \ AI/States/AlertIdleState.cpp \ AI/States/BlindedState.cpp \ AI/States/CombatState.cpp \ AI/States/AgitatedSearchingStateLanternBot.cpp \ AI/States/ConversationState.cpp \ AI/States/DeadState.cpp \ AI/States/EmergeFromCoverState.cpp \ AI/States/FailedKnockoutState.cpp \ AI/States/FleeState.cpp \ AI/States/FleeDoneState.cpp \ AI/States/IdleSleepState.cpp \ AI/States/IdleState.cpp \ AI/States/KnockedOutState.cpp \ AI/States/LostTrackOfEnemyState.cpp \ AI/States/ObservantState.cpp \ AI/States/PainState.cpp \ AI/States/SearchingState.cpp \ AI/States/State.cpp \ AI/States/StayInCoverState.cpp \ AI/States/SuspiciousState.cpp \ AI/States/SwitchOnLightState.cpp \ AI/States/TakeCoverState.cpp \ AI/States/UnreachableTargetState.cpp \ AI/Tasks/ChaseEnemyRangedTask.cpp \ AI/Tasks/ChaseEnemyTask.cpp \ AI/Tasks/CombatTask.cpp \ AI/Tasks/CommunicationTask.cpp \ AI/Tasks/CommWaitTask.cpp \ AI/Tasks/FleeTask.cpp \ AI/Tasks/GreetingBarkTask.cpp \ AI/Tasks/HandleDoorTask.cpp \ AI/Tasks/HandleElevatorTask.cpp \ AI/Tasks/IdleAnimationTask.cpp \ AI/Tasks/InteractionTask.cpp \ AI/Tasks/InvestigateSpotTask.cpp \ AI/Tasks/MeleeCombatTask.cpp \ AI/Tasks/MoveToCoverTask.cpp \ AI/Tasks/MoveToPositionTask.cpp \ AI/Tasks/PathAnimTask.cpp \ AI/Tasks/PathCornerTask.cpp \ AI/Tasks/PathCycleAnimTask.cpp \ AI/Tasks/PathHideTask.cpp \ AI/Tasks/PathInteractTask.cpp \ AI/Tasks/PathLookatTask.cpp \ AI/Tasks/PathShowTask.cpp \ AI/Tasks/PathSitTask.cpp \ AI/Tasks/PathSleepTask.cpp \ AI/Tasks/PathTask.cpp \ AI/Tasks/PathTurnTask.cpp \ AI/Tasks/PathWaitForTriggerTask.cpp \ AI/Tasks/PathWaitTask.cpp \ AI/Tasks/PatrolTask.cpp \ AI/Tasks/PlayAnimationTask.cpp \ AI/Tasks/AnimalPatrolTask.cpp \ AI/Tasks/RandomHeadturnTask.cpp \ AI/Tasks/RandomTurningTask.cpp \ AI/Tasks/RangedCombatTask.cpp \ AI/Tasks/RepeatedBarkTask.cpp \ AI/Tasks/ResolveMovementBlockTask.cpp \ AI/Tasks/SingleBarkTask.cpp \ AI/Tasks/ScriptTask.cpp \ AI/Tasks/ThrowObjectTask.cpp \ AI/Tasks/WaitTask.cpp \ AI/Tasks/WanderInLocationTask.cpp \ SEED.cpp \ ModelGenerator.cpp \ ImageMapManager.cpp \ LightController.cpp \ StaticMulti.cpp \ sourcehook/sourcehook.cpp' darkModList = scons_utils.BuildList('../../DarkMod', darkModSrc) ziploader_list = SConscript( '../../sys/scons/SConscript.ziploader' ) local_env = g_game_env.Clone() local_env.Append( CPPDEFINES = [ 'GAME_DLL' ] ) local_env.Append( CPPFLAGS = [ '-Wno-unused', '-Wno-deprecated' ] ) if g_os == 'MacOSX': local_env.Append(LIBS = [ File('#/macosx/libcurl/libcurl.a'), File('#/macosx/libpng/libpng12.a'), File('#/macosx/libjpeg/libjpeg.a'), File('#/macosx/boost/lib/libboost_filesystem.a'), File('#/macosx/boost/lib/libboost_system.a'), File('#/macosx/boost/lib/libboost_thread.a') ]) else: # Linux # Link the runtime statically, link statically against libjpeg.a and libpng.a # the corresponding packages libpng12-dev and libjpeg-dev must be available on the system local_env.Append( LINKFLAGS = [ '-lrt', '-ljpeg', '-lpng' ] ) local_env.Append(LIBS = [ File('#/linux/libcurl/libcurl.a'), File('#/linux/boost/lib/libboost_filesystem.a'), File('#/linux/boost/lib/libboost_system.a'), File('#/linux/boost/lib/libboost_thread.a') ]) # greebo: Use custom compiled devIL in Linux and Mac OS X devil_list = SConscript( '../../sys/scons/SConscript.devil' ) full_list = game_list + darkModList + idlib_objects + ziploader_list + devil_list ret = local_env.SharedLibrary('game', full_list ) Return( 'ret' )