# # Modification History # # 2006-June-27 Jason Rohrer # Created. Condensed from X86 and PPC makefiles in Transcend project. # ## # The common GnuLinux portion of Makefiles. # Should not be made manually---used by configure to build Makefiles. ## PLATFORM_COMPILE_FLAGS = ${CXXFLAGS} -I${LOCALBASE}/include -I${X11BASE}/include -DLINUX # various GL and X windows librariesneeded for linux # also need portaudio library (which in turn needs pthreads) PLATFORM_LINK_FLAGS = -L${LOCALBASE}/lib -L${X11BASE}/lib -lGL -lglut -lGLU -lX11 -lXi -lXext -lXmu -pthread -lportaudio # All platforms but OSX support g++ and need no linker hacks GXX = ${CXX} LINK_FLAGS = ## # Platform-specific minorGems file path prefixes ## PLATFORM = Linux PLATFORM_PATH = linux TIME_PLATFORM = Unix TIME_PLATFORM_PATH = unix DIRECTORY_PLATFORM = Unix DIRECTORY_PLATFORM_PATH = unix # # Modification History # # 2004-April-30 Jason Rohrer # Created. Modified from MUTE source. # # 2005-August-29 Jason Rohrer # Added optimization options. # ## # The common portion of all Makefiles. # Should not be made manually---used by configure to build Makefiles. ## # switch on compilation and dependency generation for minorGems GL code MINOR_GEMS_USE_GL = 1 EXE_LINKER = ${GXX} RANLIB = ranlib LIBRARY_LINKER = ar DEBUG_ON_FLAG = -g #-DDEBUG_MEMORY DEBUG_OFF_FLAG = DEBUG_FLAG = ${DEBUG_OFF_FLAG} PROFILE_ON_FLAG = -pg -a -DUSE_GPROF_THREADS PROFILE_OFF_FLAG = PROFILE_FLAG = ${PROFILE_OFF_FLAG} OPTIMIZE_ON_FLAG = -O9 OPTIMIZE_OFF_FLAG = OPTIMIZE_FLAG = ${OPTIMIZE_ON_FLAG} PORT_AUDIO_PATH = ${ROOT_PATH}/minorGems/sound/portaudio # common to all platforms SOCKET_UDP_PLATFORM_PATH = unix SOCKET_UDP_PLATFORM = Unix COMPILE_FLAGS = -Wall ${PLATFORM_COMPILE_FLAGS} ${PROFILE_FLAG} -I${ROOT_PATH} COMPILE = ${GXX} ${COMPILE_FLAGS} -c EXE_LINK = ${EXE_LINKER} ${COMPILE_FLAGS} ${LINK_FLAGS} LIBRARY_LINK = ${LIBRARY_LINKER} cru # # Generic: # # Map all .cpp C++ and C files into .o object files # # $@ represents the name.o file # $< represents the name.cpp file # .cpp.o: ${COMPILE} -o $@ $< .c.o: ${COMPILE} -o $@ $< # # Modification History # # 2004-November-19 Jason Rohrer # Copied from Primrose source. # # 2004-November-21 Jason Rohrer # Added multi-source downloader. # # 2004-December-13 Jason Rohrer # Added socket manager. # # 2005-February-4 Jason Rohrer # Added ScreenGL. # # 2005-February-21 Jason Rohrer # Added SingleTextureGL. # # 2006-November-21 Jason Rohrer # Added PNGImageConverter. # ## # The common portion of Makefiles for all targets that use minorGems, # supplying variable definitions for minorGems. # # Should not be made manually---used by project-specific configure scripts to # build Makefiles. ## # This file is intended to be included in another makefile. # The following variables need to be defined: # # ROOT_PATH the path to the directory containing the minorGems directory # PLATFORM_PATH # PLATFORM # DIRECTORY_PLATFORM_PATH # DIRECTORY_PLATFORM # TIME_PLATFORM_PATH # TIME_PLATFORM # SOCKET_UDP_PLATFORM_PATH # SOCKET_UDP_PLATFORM # Makefile Usage: # -- Include this file # -- Define your project-specific targets and rules # -- Include Makefile.minorGems_targets PLATFORM_DIRECTORY = ${ROOT_PATH}/minorGems/io/file/${DIRECTORY_PLATFORM_PATH}/Directory${DIRECTORY_PLATFORM} PLATFORM_TIME = ${ROOT_PATH}/minorGems/system/${TIME_PLATFORM_PATH}/Time${TIME_PLATFORM} PLATFORM_HOST_ADDRESS = ${ROOT_PATH}/minorGems/network/${PLATFORM_PATH}/HostAddress${PLATFORM} PLATFORM_SOCKET = ${ROOT_PATH}/minorGems/network/${PLATFORM_PATH}/Socket${PLATFORM} PLATFORM_SOCKET_CLIENT = ${ROOT_PATH}/minorGems/network/${PLATFORM_PATH}/SocketClient${PLATFORM} PLATFORM_SOCKET_SERVER = ${ROOT_PATH}/minorGems/network/${PLATFORM_PATH}/SocketServer${PLATFORM} PLATFORM_SOCKET_UDP = ${ROOT_PATH}/minorGems/network/${SOCKET_UDP_PLATFORM_PATH}/SocketUDP${SOCKET_UDP_PLATFORM} PLATFORM_TYPE_IO = ${ROOT_PATH}/minorGems/io/${PLATFORM_PATH}/TypeIO${PLATFORM} PLATFORM_THREAD = ${ROOT_PATH}/minorGems/system/${PLATFORM_PATH}/Thread${PLATFORM} PLATFORM_MUTEX_LOCK = ${ROOT_PATH}/minorGems/system/${PLATFORM_PATH}/MutexLock${PLATFORM} PLATFORM_BINARY_SEMAPHORE = ${ROOT_PATH}/minorGems/system/${PLATFORM_PATH}/BinarySemaphore${PLATFORM} ## # Header, source, and object files. ## SIMPLE_VECTOR_H = ${ROOT_PATH}/minorGems/util/SimpleVector.h OUTPUT_STREAM_H = ${ROOT_PATH}/minorGems/io/OutputStream.h INPUT_STREAM_H = ${ROOT_PATH}/minorGems/io/InputStream.h HOST_ADDRESS_H = ${ROOT_PATH}/minorGems/network/HostAddress.h HOST_ADDRESS_CPP = ${PLATFORM_HOST_ADDRESS}.cpp HOST_ADDRESS_O = ${PLATFORM_HOST_ADDRESS}.o SOCKET_H = ${ROOT_PATH}/minorGems/network/Socket.h SOCKET_CPP = ${PLATFORM_SOCKET}.cpp SOCKET_O = ${PLATFORM_SOCKET}.o SOCKET_CLIENT_H = ${ROOT_PATH}/minorGems/network/SocketClient.h SOCKET_CLIENT_CPP = ${PLATFORM_SOCKET_CLIENT}.cpp SOCKET_CLIENT_O = ${PLATFORM_SOCKET_CLIENT}.o SOCKET_SERVER_H = ${ROOT_PATH}/minorGems/network/SocketServer.h SOCKET_SERVER_CPP = ${PLATFORM_SOCKET_SERVER}.cpp SOCKET_SERVER_O = ${PLATFORM_SOCKET_SERVER}.o SOCKET_UDP_H = ${ROOT_PATH}/minorGems/network/SocketUDP.h SOCKET_UDP_CPP = ${PLATFORM_SOCKET_UDP}.cpp SOCKET_UDP_O = ${PLATFORM_SOCKET_UDP}.o SOCKET_STREAM_H = ${ROOT_PATH}/minorGems/network/SocketStream.h NETWORK_FUNCTION_LOCKS = ${ROOT_PATH}/minorGems/network/NetworkFunctionLocks NETWORK_FUNCTION_LOCKS_H = ${NETWORK_FUNCTION_LOCKS}.h NETWORK_FUNCTION_LOCKS_CPP = ${NETWORK_FUNCTION_LOCKS}.cpp NETWORK_FUNCTION_LOCKS_O = ${NETWORK_FUNCTION_LOCKS}.o SOCKET_MANAGER = ${ROOT_PATH}/minorGems/network/SocketManager SOCKET_MANAGER_H = ${SOCKET_MANAGER}.h SOCKET_MANAGER_CPP = ${SOCKET_MANAGER}.cpp SOCKET_MANAGER_O = ${SOCKET_MANAGER}.o PATH_H = ${ROOT_PATH}/minorGems/io/file/Path.h PATH_CPP = ${ROOT_PATH}/minorGems/io/file/${PLATFORM_PATH}/Path${PLATFORM}.cpp PATH_O = ${ROOT_PATH}/minorGems/io/file/${PLATFORM_PATH}/Path${PLATFORM}.o FILE_H = ${ROOT_PATH}/minorGems/io/file/File.h FILE_OUTPUT_STREAM_H = ${ROOT_PATH}/minorGems/io/file/FileOutputStream.h FILE_INPUT_STREAM_H = ${ROOT_PATH}/minorGems/io/file/FileInputStream.h DIRECTORY_H = ${ROOT_PATH}/minorGems/io/file/Directory.h DIRECTORY_CPP = ${PLATFORM_DIRECTORY}.cpp DIRECTORY_O = ${PLATFORM_DIRECTORY}.o TYPE_IO_H = ${ROOT_PATH}/minorGems/io/TypeIO.h TYPE_IO_CPP = ${PLATFORM_TYPE_IO}.cpp TYPE_IO_O = ${PLATFORM_TYPE_IO}.o TIME_H = ${ROOT_PATH}/minorGems/system/Time.h TIME_CPP = ${PLATFORM_TIME}.cpp TIME_O = ${PLATFORM_TIME}.o THREAD_H = ${ROOT_PATH}/minorGems/system/Thread.h THREAD_CPP = ${PLATFORM_THREAD}.cpp THREAD_O = ${PLATFORM_THREAD}.o MUTEX_LOCK_H = ${ROOT_PATH}/minorGems/system/MutexLock.h MUTEX_LOCK_CPP = ${PLATFORM_MUTEX_LOCK}.cpp MUTEX_LOCK_O = ${PLATFORM_MUTEX_LOCK}.o BINARY_SEMAPHORE_H = ${ROOT_PATH}/minorGems/system/BinarySemaphore.h BINARY_SEMAPHORE_CPP = ${PLATFORM_BINARY_SEMAPHORE}.cpp BINARY_SEMAPHORE_O = ${PLATFORM_BINARY_SEMAPHORE}.o SEMAPHORE_H = ${ROOT_PATH}/minorGems/system/Semaphore.h APP_LOG_H = ${ROOT_PATH}/minorGems/util/log/AppLog.h APP_LOG_CPP = ${ROOT_PATH}/minorGems/util/log/AppLog.cpp APP_LOG_O = ${ROOT_PATH}/minorGems/util/log/AppLog.o PRINT_LOG_H = ${ROOT_PATH}/minorGems/util/log/PrintLog.h PRINT_LOG_CPP = ${ROOT_PATH}/minorGems/util/log/PrintLog.cpp PRINT_LOG_O = ${ROOT_PATH}/minorGems/util/log/PrintLog.o FILE_LOG_H = ${ROOT_PATH}/minorGems/util/log/FileLog.h FILE_LOG_CPP = ${ROOT_PATH}/minorGems/util/log/FileLog.cpp FILE_LOG_O = ${ROOT_PATH}/minorGems/util/log/FileLog.o LOG_H = ${ROOT_PATH}/minorGems/util/log/Log.h LOG_CPP = ${ROOT_PATH}/minorGems/util/log/Log.cpp LOG_O = ${ROOT_PATH}/minorGems/util/log/Log.o PRINT_UTILS_H = ${ROOT_PATH}/minorGems/util/printUtils.h PRINT_UTILS_CPP = ${ROOT_PATH}/minorGems/util/printUtils.cpp PRINT_UTILS_O = ${ROOT_PATH}/minorGems/util/printUtils.o WEB_CLIENT_H = ${ROOT_PATH}/minorGems/network/web/WebClient.h WEB_CLIENT_CPP = ${ROOT_PATH}/minorGems/network/web/WebClient.cpp WEB_CLIENT_O = ${ROOT_PATH}/minorGems/network/web/WebClient.o URL_UTILS_H = ${ROOT_PATH}/minorGems/network/web/URLUtils.h URL_UTILS_CPP = ${ROOT_PATH}/minorGems/network/web/URLUtils.cpp URL_UTILS_O = ${ROOT_PATH}/minorGems/network/web/URLUtils.o MIME_TYPER = ${ROOT_PATH}/minorGems/network/web/MimeTyper MIME_TYPER_H = ${MIME_TYPER}.h MIME_TYPER_CPP = ${MIME_TYPER}.cpp MIME_TYPER_O = ${MIME_TYPER}.o WEB_SERVER_PATH = ${ROOT_PATH}/minorGems/network/web/server WEB_SERVER = ${WEB_SERVER_PATH}/WebServer WEB_SERVER_H = ${WEB_SERVER}.h WEB_SERVER_CPP = ${WEB_SERVER}.cpp WEB_SERVER_O = ${WEB_SERVER}.o REQUEST_HANDLING_THREAD = ${WEB_SERVER_PATH}/RequestHandlingThread REQUEST_HANDLING_THREAD_H = ${REQUEST_HANDLING_THREAD}.h REQUEST_HANDLING_THREAD_CPP = ${REQUEST_HANDLING_THREAD}.cpp REQUEST_HANDLING_THREAD_O = ${REQUEST_HANDLING_THREAD}.o THREAD_HANDLING_THREAD = ${WEB_SERVER_PATH}/ThreadHandlingThread THREAD_HANDLING_THREAD_H = ${THREAD_HANDLING_THREAD}.h THREAD_HANDLING_THREAD_CPP = ${THREAD_HANDLING_THREAD}.cpp THREAD_HANDLING_THREAD_O = ${THREAD_HANDLING_THREAD}.o CONNECTION_PERMISSION_HANDLER = ${WEB_SERVER_PATH}/ConnectionPermissionHandler CONNECTION_PERMISSION_HANDLER_H = ${CONNECTION_PERMISSION_HANDLER}.h CONNECTION_PERMISSION_HANDLER_CPP = ${CONNECTION_PERMISSION_HANDLER}.cpp CONNECTION_PERMISSION_HANDLER_O = ${CONNECTION_PERMISSION_HANDLER}.o STOP_SIGNAL_THREAD = ${ROOT_PATH}/minorGems/system/StopSignalThread STOP_SIGNAL_THREAD_H = ${STOP_SIGNAL_THREAD}.h STOP_SIGNAL_THREAD_CPP = ${STOP_SIGNAL_THREAD}.cpp STOP_SIGNAL_THREAD_O = ${STOP_SIGNAL_THREAD}.o FINISHED_SIGNAL_THREAD = ${ROOT_PATH}/minorGems/system/FinishedSignalThread FINISHED_SIGNAL_THREAD_H = ${FINISHED_SIGNAL_THREAD}.h FINISHED_SIGNAL_THREAD_CPP = ${FINISHED_SIGNAL_THREAD}.cpp FINISHED_SIGNAL_THREAD_O = ${FINISHED_SIGNAL_THREAD}.o FINISHED_SIGNAL_THREAD_MANAGER = ${ROOT_PATH}/minorGems/system/FinishedSignalThreadManager FINISHED_SIGNAL_THREAD_MANAGER_H = ${FINISHED_SIGNAL_THREAD_MANAGER}.h FINISHED_SIGNAL_THREAD_MANAGER_CPP = ${FINISHED_SIGNAL_THREAD_MANAGER}.cpp FINISHED_SIGNAL_THREAD_MANAGER_O = ${FINISHED_SIGNAL_THREAD_MANAGER}.o STRING_BUFFER_OUTPUT_STREAM_H = ${ROOT_PATH}/minorGems/util/StringBufferOutputStream.h STRING_BUFFER_OUTPUT_STREAM_CPP = ${ROOT_PATH}/minorGems/util/StringBufferOutputStream.cpp STRING_BUFFER_OUTPUT_STREAM_O = ${ROOT_PATH}/minorGems/util/StringBufferOutputStream.o XML_UTILS_H = ${ROOT_PATH}/minorGems/formats/xml/XMLUtils.h XML_UTILS_CPP = ${ROOT_PATH}/minorGems/formats/xml/XMLUtils.cpp XML_UTILS_O = ${ROOT_PATH}/minorGems/formats/xml/XMLUtils.o HTML_UTILS_H = ${ROOT_PATH}/minorGems/formats/html/HTMLUtils.h HTML_UTILS_CPP = ${ROOT_PATH}/minorGems/formats/html/HTMLUtils.cpp HTML_UTILS_O = ${ROOT_PATH}/minorGems/formats/html/HTMLUtils.o SETTINGS_MANAGER_H = ${ROOT_PATH}/minorGems/util/SettingsManager.h SETTINGS_MANAGER_CPP = ${ROOT_PATH}/minorGems/util/SettingsManager.cpp SETTINGS_MANAGER_O = ${ROOT_PATH}/minorGems/util/SettingsManager.o TRANSLATION_MANAGER_H = ${ROOT_PATH}/minorGems/util/TranslationManager.h TRANSLATION_MANAGER_CPP = ${ROOT_PATH}/minorGems/util/TranslationManager.cpp TRANSLATION_MANAGER_O = ${ROOT_PATH}/minorGems/util/TranslationManager.o STRING_UTILS = ${ROOT_PATH}/minorGems/util/stringUtils STRING_UTILS_H = ${STRING_UTILS}.h STRING_UTILS_CPP = ${STRING_UTILS}.cpp STRING_UTILS_O = ${STRING_UTILS}.o SHA1 = ${ROOT_PATH}/minorGems/crypto/hashes/sha1 SHA1_H = ${SHA1}.h SHA1_CPP = ${SHA1}.cpp SHA1_O = ${SHA1}.o MEMORY_TRACK_H = ${ROOT_PATH}/minorGems/util/development/memory/MemoryTrack.h MEMORY_TRACK_CPP = ${ROOT_PATH}/minorGems/util/development/memory/MemoryTrack.cpp MEMORY_TRACK_O = ${ROOT_PATH}/minorGems/util/development/memory/MemoryTrack.o DEBUG_MEMORY = ${ROOT_PATH}/minorGems/util/development/memory/debugMemory DEBUG_MEMORY_H = ${DEBUG_MEMORY}.h DEBUG_MEMORY_CPP = ${DEBUG_MEMORY}.cpp DEBUG_MEMORY_O = ${DEBUG_MEMORY}.o # variable pointing to both necessary .o files for memory tracking MEMORY_TRACKER_O = ${MEMORY_TRACK_O} ${DEBUG_MEMORY_O} # p2p parts HOST_CATCHER = ${ROOT_PATH}/minorGems/network/p2pParts/HostCatcher HOST_CATCHER_H = ${HOST_CATCHER}.h HOST_CATCHER_CPP = ${HOST_CATCHER}.cpp HOST_CATCHER_O = ${HOST_CATCHER}.o OUTBOUND_CHANNEL = ${ROOT_PATH}/minorGems/network/p2pParts/OutboundChannel OUTBOUND_CHANNEL_H = ${OUTBOUND_CHANNEL}.h OUTBOUND_CHANNEL_CPP = ${OUTBOUND_CHANNEL}.cpp OUTBOUND_CHANNEL_O = ${OUTBOUND_CHANNEL}.o DUPLICATE_MESSAGE_DETECTOR = ${ROOT_PATH}/minorGems/network/p2pParts/DuplicateMessageDetector DUPLICATE_MESSAGE_DETECTOR_H = ${DUPLICATE_MESSAGE_DETECTOR}.h DUPLICATE_MESSAGE_DETECTOR_CPP = ${DUPLICATE_MESSAGE_DETECTOR}.cpp DUPLICATE_MESSAGE_DETECTOR_O = ${DUPLICATE_MESSAGE_DETECTOR}.o PROTOCOL_UTILS = ${ROOT_PATH}/minorGems/network/p2pParts/protocolUtils PROTOCOL_UTILS_H = ${PROTOCOL_UTILS}.h PROTOCOL_UTILS_CPP = ${PROTOCOL_UTILS}.cpp PROTOCOL_UTILS_O = ${PROTOCOL_UTILS}.o MESSAGE_PER_SECOND_LIMITER = ${ROOT_PATH}/minorGems/network/p2pParts/MessagePerSecondLimiter MESSAGE_PER_SECOND_LIMITER_H = ${MESSAGE_PER_SECOND_LIMITER}.h MESSAGE_PER_SECOND_LIMITER_CPP = ${MESSAGE_PER_SECOND_LIMITER}.cpp MESSAGE_PER_SECOND_LIMITER_O = ${MESSAGE_PER_SECOND_LIMITER}.o MULTI_SOURCE_DOWNLOADER = ${ROOT_PATH}/minorGems/network/p2pParts/MultiSourceDownloader MULTI_SOURCE_DOWNLOADER_H = ${MULTI_SOURCE_DOWNLOADER}.h MULTI_SOURCE_DOWNLOADER_CPP = ${MULTI_SOURCE_DOWNLOADER}.cpp MULTI_SOURCE_DOWNLOADER_O = ${MULTI_SOURCE_DOWNLOADER}.o ENCODING_UTILS = ${ROOT_PATH}/minorGems/formats/encodingUtils ENCODING_UTILS_H = ${ENCODING_UTILS}.h ENCODING_UTILS_CPP = ${ENCODING_UTILS}.cpp ENCODING_UTILS_O = ${ENCODING_UTILS}.o SCREEN_GL = ${ROOT_PATH}/minorGems/graphics/openGL/ScreenGL SCREEN_GL_H = ${SCREEN_GL}.h SCREEN_GL_CPP = ${SCREEN_GL}.cpp SCREEN_GL_O = ${SCREEN_GL}.o SINGLE_TEXTURE_GL = ${ROOT_PATH}/minorGems/graphics/openGL/SingleTextureGL SINGLE_TEXTURE_GL_H = ${SINGLE_TEXTURE_GL}.h SINGLE_TEXTURE_GL_CPP = ${SINGLE_TEXTURE_GL}.cpp SINGLE_TEXTURE_GL_O = ${SINGLE_TEXTURE_GL}.o PNG_IMAGE_CONVERTER = ${ROOT_PATH}/minorGems/graphics/converters/PNGImageConverter PNG_IMAGE_CONVERTER_H = ${PNG_IMAGE_CONVERTER}.h PNG_IMAGE_CONVERTER_CPP = ${PNG_IMAGE_CONVERTER}.cpp PNG_IMAGE_CONVERTER_O = ${PNG_IMAGE_CONVERTER}.o# # Modification History # # 2006-June-27 Jason Rohrer # Created. Copied from Transcend. # ## # The portion of game2 Makefiles common to all platforms. # # Should not be made manually---used by game2/configure to build Makefiles. ## ROOT_PATH = ../.. USER_INTERFACE_PATH = userInterface SOUND_PATH = sound LAYER_SOURCE = \ glCommon.cpp \ features.cpp\ game.cpp \ World.cpp \ Plant.cpp \ PlantLeaf.cpp \ PlantFlower.cpp \ Fruit.cpp \ Gardener.cpp \ Portal.cpp \ GardenerAI2.cpp \ FlyingObject.cpp \ emotionIcons.cpp \ landscape.cpp \ SoilMap.cpp \ Seeds.cpp \ Genetics.cpp \ GardenerGenetics.cpp \ PlantGenetics.cpp \ PortalLayerGenetics.cpp \ ImmortalGenetics.cpp \ ${USER_INTERFACE_PATH}/ButtonBase.cpp \ ${USER_INTERFACE_PATH}/PlantButton.cpp \ ${USER_INTERFACE_PATH}/PlotButton.cpp \ ${USER_INTERFACE_PATH}/WaterButton.cpp \ ${USER_INTERFACE_PATH}/PoisonButton.cpp \ ${USER_INTERFACE_PATH}/HarvestButton.cpp \ ${USER_INTERFACE_PATH}/EmotionButton.cpp \ ${USER_INTERFACE_PATH}/PauseButton.cpp \ ${USER_INTERFACE_PATH}/RestartButton.cpp \ ${USER_INTERFACE_PATH}/QuitButton.cpp \ ${USER_INTERFACE_PATH}/TextDisplay.cpp \ ${USER_INTERFACE_PATH}/ObjectSelector.cpp \ ${USER_INTERFACE_PATH}/EatButton.cpp \ ${USER_INTERFACE_PATH}/GiftButton.cpp \ ${USER_INTERFACE_PATH}/DiscardButton.cpp \ ${USER_INTERFACE_PATH}/MateButton.cpp \ ${USER_INTERFACE_PATH}/FollowButton.cpp \ ${USER_INTERFACE_PATH}/TexturedPanel.cpp \ ${USER_INTERFACE_PATH}/NextTutorialButton.cpp \ ${USER_INTERFACE_PATH}/TextBlockGL.cpp \ ${SOUND_PATH}/MusicNoteWaveTable.cpp \ ${SOUND_PATH}/MusicPart.cpp \ ${SOUND_PATH}/MusicPlayer.cpp \ ${SOUND_PATH}/SoundPlayer.cpp \ ${SOUND_PATH}/SoundSamples.cpp \ LAYER_OBJECTS = ${LAYER_SOURCE:.cpp=.o} NEEDED_MINOR_GEMS_OBJECTS = \ ${SCREEN_GL_O} \ ${SINGLE_TEXTURE_GL_O} \ ${TYPE_IO_O} \ ${STRING_UTILS_O} \ ${STRING_BUFFER_OUTPUT_STREAM_O} \ ${PATH_O} \ ${TIME_O} \ ${THREAD_O} \ ${MUTEX_LOCK_O} \ ${PNG_IMAGE_CONVERTER_O} \ ${TRANSLATION_MANAGER_O} TEST_SOURCE = TEST_OBJECTS = ${TEST_SOURCE:.cpp=.o} DEPENDENCY_FILE = Makefile.dependencies # targets all: Cultivation clean: rm -f ${DEPENDENCY_FILE} ${LAYER_OBJECTS} ${TEST_OBJECTS} ${NEEDED_MINOR_GEMS_OBJECTS} Cultivation Cultivation: ${LAYER_OBJECTS} ${NEEDED_MINOR_GEMS_OBJECTS} ${EXE_LINK} -o Cultivation ${LAYER_OBJECTS} ${NEEDED_MINOR_GEMS_OBJECTS} ${PLATFORM_LINK_FLAGS} # add this on Unix to support JPEG video frame output # -ljpeg ${ROOT_PATH}/minorGems/graphics/converters/unix/JPEGImageConverterUnix.cpp # sed command for fixing up the dependencies generated by g++ # g++ (pre-3.0) leaves the path off of the .o target # look for a .o file at the beginning of a line (in other words, one # without a path), and replace it with the full-path version. # This should be compatible with g++ 3.0, since we only replace .o names # that occur at the beginning of a line (using the "^" modifier) GAME_2_SED_FIX_COMMAND = sed ' \ s/^ButtonBase.o/$${USER_INTERFACE_PATH}\/ButtonBase.o/; \ s/^PlantButton.o/$${USER_INTERFACE_PATH}\/PlantButton.o/; \ s/^PlotButton.o/$${USER_INTERFACE_PATH}\/PlotButton.o/; \ s/^WaterButton.o/$${USER_INTERFACE_PATH}\/WaterButton.o/; \ s/^PoisonButton.o/$${USER_INTERFACE_PATH}\/PoisonButton.o/; \ s/^HarvestButton.o/$${USER_INTERFACE_PATH}\/HarvestButton.o/; \ s/^EmotionButton.o/$${USER_INTERFACE_PATH}\/EmotionButton.o/; \ s/^PauseButton.o/$${USER_INTERFACE_PATH}\/PauseButton.o/; \ s/^RestartButton.o/$${USER_INTERFACE_PATH}\/RestartButton.o/; \ s/^QuitButton.o/$${USER_INTERFACE_PATH}\/QuitButton.o/; \ s/^TextDisplay.o/$${USER_INTERFACE_PATH}\/TextDisplay.o/; \ s/^ObjectSelector.o/$${USER_INTERFACE_PATH}\/ObjectSelector.o/; \ s/^EatButton.o/$${USER_INTERFACE_PATH}\/EatButton.o/; \ s/^GiftButton.o/$${USER_INTERFACE_PATH}\/GiftButton.o/; \ s/^DiscardButton.o/$${USER_INTERFACE_PATH}\/DiscardButton.o/; \ s/^MateButton.o/$${USER_INTERFACE_PATH}\/MateButton.o/; \ s/^FollowButton.o/$${USER_INTERFACE_PATH}\/FollowButton.o/; \ s/^TexturedPanel.o/$${USER_INTERFACE_PATH}\/TexturedPanel.o/; \ s/^NextTutorialButton.o/$${USER_INTERFACE_PATH}\/NextTutorialButton.o/; \ s/^TextBlockGL.o/$${USER_INTERFACE_PATH}\/TextBlockGL.o/; \ s/^MusicNoteWaveTable.o/$${SOUND_PATH}\/MusicNoteWaveTable.o/; \ s/^MusicPart.o/$${SOUND_PATH}\/MusicPart.o/; \ s/^MusicPlayer.o/$${SOUND_PATH}\/MusicPlayer.o/; \ s/^SoundPlayer.o/$${SOUND_PATH}\/SoundPlayer.o/; \ s/^SoundSamples.o/$${SOUND_PATH}\/SoundSamples.o/; \ ' # build the dependency file ${DEPENDENCY_FILE}: ${LAYER_SOURCE} ${TEST_SOURCE} rm -f ${DEPENDENCY_FILE} ${COMPILE} -MM ${LAYER_SOURCE} ${TEST_SOURCE} >> ${DEPENDENCY_FILE}.temp cat ${DEPENDENCY_FILE}.temp | ${GAME_2_SED_FIX_COMMAND} >> ${DEPENDENCY_FILE} rm -f ${DEPENDENCY_FILE}.temp include ${DEPENDENCY_FILE} # # Modification History # # 2004-November-19 Jason Rohrer # Copied from Primrose source. # # 2004-November-21 Jason Rohrer # Added multi-source downloader. # # 2004-December-13 Jason Rohrer # Added socket manager. # # 2005-February-4 Jason Rohrer # Added ScreenGL. # # 2005-February-21 Jason Rohrer # Added SingleTextureGL. # # 2006-April-24 Jason Rohrer # Added conditional compilation of files that depend on OpenGL/GLUT. # # 2006-November-21 Jason Rohrer # Added PNGImageConverter. # ## # The common portion of Makefiles for all targets that use minorGems, # supplying target dependencies for minorGems targets. # # # Should not be made manually---used by project-specific configure scripts to # build Makefiles. ## # Makefile Usage: # -- Include Makefile.minorGems # -- Define your project-specific targets and rules # -- Include this file # NOTE: # To use files that depend on OpenGL and GLUT, you must define the variable # MINOR_GEMS_USE_GL in your makefile BEFORE including this file. ifdef MINOR_GEMS_USE_GL # Add the files that depend on GL and GLUT to the list of minor gems source # files OPEN_GL_CPP_FILES = ${SCREEN_GL_CPP} ${SINGLE_TEXTURE_GL_CPP} endif ## # Dependencies. ## MINOR_GEMS_SOURCE = \ ${HOST_ADDRESS_CPP} \ ${SOCKET_CPP} \ ${SOCKET_SERVER_CPP} \ ${SOCKET_CLIENT_CPP} \ ${SOCKET_UDP_CPP} \ ${NETWORK_FUNCTION_LOCKS_CPP} \ ${SOCKET_MANAGER_CPP} \ ${PATH_CPP} \ ${DIRECTORY_CPP} \ ${TYPE_IO_CPP} \ ${TIME_CPP} \ ${THREAD_CPP} \ ${MUTEX_LOCK_CPP} \ ${BINARY_SEMAPHORE_CPP} \ ${APP_LOG_CPP} \ ${PRINT_LOG_CPP} \ ${FILE_LOG_CPP} \ ${LOG_CPP} \ ${PRINT_UTILS_CPP} \ ${WEB_CLIENT_CPP} \ ${URL_UTILS_CPP} \ ${MIME_TYPER_CPP} \ ${STRING_BUFFER_OUTPUT_STREAM_CPP} \ ${XML_UTILS_CPP} \ ${HTML_UTILS_CPP} \ ${SETTINGS_MANAGER_CPP} \ ${TRANSLATION_MANAGER_CPP} \ ${STRING_UTILS_CPP} \ ${SHA1_CPP} \ ${MEMORY_TRACK_CPP} \ ${DEBUG_MEMORY_CPP} \ ${HOST_CATCHER_CPP} \ ${OUTBOUND_CHANNEL_CPP} \ ${DUPLICATE_MESSAGE_DETECTOR_CPP} \ ${PROTOCOL_UTILS_CPP} \ ${MESSAGE_PER_SECOND_LIMITER_CPP} \ ${MULTI_SOURCE_DOWNLOADER_CPP} \ ${ENCODING_UTILS_CPP} \ ${WEB_SERVER_CPP} \ ${REQUEST_HANDLING_THREAD_CPP} \ ${THREAD_HANDLING_THREAD_CPP} \ ${CONNECTION_PERMISSION_HANDLER_CPP} \ ${STOP_SIGNAL_THREAD_CPP} \ ${FINISHED_SIGNAL_THREAD_CPP} \ ${FINISHED_SIGNAL_THREAD_MANAGER_CPP} \ ${OPEN_GL_CPP_FILES} \ ${PNG_IMAGE_CONVERTER_CPP} # sed command for fixing up the dependencies generated by g++ # g++ (pre-3.0) leaves the path off of the .o target # look for a .o file at the beginning of a line (in other words, one # without a path), and replace it with the full-path version. # This should be compatible with g++ 3.0, since we only replace .o names # that occur at the beginning of a line (using the "^" modifier) # Split into two parts because sed (on certain platforms) cannot process # a string of commands as one long argument MINOR_GEMS_SED_FIX_COMMAND_A = sed ' \ s/^HostAddress.*\.o/$${HOST_ADDRESS_O}/; \ s/^SocketServer.*\.o/$${SOCKET_SERVER_O}/; \ s/^SocketClient.*\.o/$${SOCKET_CLIENT_O}/; \ s/^SocketUDP.*\.o/$${SOCKET_UDP_O}/; \ s/^SocketManager.*\.o/$${SOCKET_MANAGER_O}/; \ s/^Socket.*\.o/$${SOCKET_O}/; \ s/^NetworkFunctionLocks.*\.o/$${NETWORK_FUNCTION_LOCKS_O}/; \ s/^Path.*\.o/$${PATH_O}/; \ s/^Directory.*\.o/$${DIRECTORY_O}/; \ s/^TypeIO.*\.o/$${TYPE_IO_O}/; \ s/^Time.*\.o/$${TIME_O}/; \ s/^MutexLock.*\.o/$${MUTEX_LOCK_O}/; \ s/^BinarySemaphore.*\.o/$${BINARY_SEMAPHORE_O}/; \ s/^AppLog.*\.o/$${APP_LOG_O}/; \ s/^PrintLog.*\.o/$${PRINT_LOG_O}/; \ s/^FileLog.*\.o/$${FILE_LOG_O}/; \ s/^Log.*\.o/$${LOG_O}/; \ s/^PrintUtils.*\.o/$${PRINT_UTILS_O}/; \ s/^WebClient.*\.o/$${WEB_CLIENT_O}/; \ s/^URLUtils.*\.o/$${URL_UTILS_O}/; \ s/^MimeTyper.*\.o/$${MIME_TYPER_O}/; \ s/^StringBufferOutputStream.*\.o/$${STRING_BUFFER_OUTPUT_STREAM_O}/; \ s/^XMLUtils.*\.o/$${XML_UTILS_O}/; \ s/^HTMLUtils.*\.o/$${HTML_UTILS_O}/; \ s/^SettingsManager.*\.o/$${SETTINGS_MANAGER_O}/; \ s/^TranslationManager.*\.o/$${TRANSLATION_MANAGER_O}/; \ s/^stringUtils.*\.o/$${STRING_UTILS_O}/; \ s/^sha1.*\.o/$${SHA1_O}/; \ ' MINOR_GEMS_SED_FIX_COMMAND_B = sed ' \ s/^MemoryTrack.*\.o/$${MEMORY_TRACK_O}/; \ s/^DebugMemory.*\.o/$${DEBUG_MEMORY_O}/; \ s/^HostCatcher.*\.o/$${HOST_CATCHER_O}/; \ s/^OutboundChannel.*\.o/$${OUTBOUND_CHANNEL_O}/; \ s/^DuplicateMessageDetector.*\.o/$${DUPLICATE_MESSAGE_DETECTOR_O}/; \ s/^protocolUtils.*\.o/$${PROTOCOL_UTILS_O}/; \ s/^MessagePerSecondLimiter.*\.o/$${MESSAGE_PER_SECOND_LIMITER_O}/; \ s/^MultiSourceDownloader.*\.o/$${MULTI_SOURCE_DOWNLOADER_O}/; \ s/^encodingUtils.*\.o/$${ENCODING_UTILS_O}/; \ s/^WebServer.*\.o/$${WEB_SERVER_O }/; \ s/^RequestHandlingThread.*\.o/$${REQUEST_HANDLING_THREAD_O}/; \ s/^ThreadHandlingThread.*\.o/$${THREAD_HANDLING_THREAD_O}/; \ s/^Thread.*\.o/$${THREAD_O}/; \ s/^ConnectionPermissionHandler.*\.o/$${CONNECTION_PERMISSION_HANDLER_O}/; \ s/^StopSignalThread.*\.o/$${STOP_SIGNAL_THREAD_O}/; \ s/^FinishedSignalThreadManager.*\.o/$${FINISHED_SIGNAL_THREAD_MANAGER_O}/; \ s/^FinishedSignalThread.*\.o/$${FINISHED_SIGNAL_THREAD_O}/; \ s/^ScreenGL.*\.o/$${SCREEN_GL_O}/; \ s/^SingleTextureGL.*\.o/$${SINGLE_TEXTURE_GL_O}/; \ s/^PNGImageConverter.*\.o/$${PNG_IMAGE_CONVERTER_O}/; \ ' MINOR_GEMS_DEPENDENCY_FILE = Makefile.minorGems_dependencies # build the dependency file ${MINOR_GEMS_DEPENDENCY_FILE}: ${MINOR_GEMS_SOURCE} rm -f ${MINOR_GEMS_DEPENDENCY_FILE} ${COMPILE} -I${ROOT_PATH} -MM ${MINOR_GEMS_SOURCE} >> ${MINOR_GEMS_DEPENDENCY_FILE}.temp cat ${MINOR_GEMS_DEPENDENCY_FILE}.temp | ${MINOR_GEMS_SED_FIX_COMMAND_A} | ${MINOR_GEMS_SED_FIX_COMMAND_B} >> ${MINOR_GEMS_DEPENDENCY_FILE} rm -f ${MINOR_GEMS_DEPENDENCY_FILE}.temp include ${MINOR_GEMS_DEPENDENCY_FILE}