| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- ####################################################################
- # #
- # Q-Gears #
- # #
- # Depends : OGRE, OIS, openal, vorbisfile #
- # Internal : lua, luabind, tinyxml #
- # #
- # make DEBUG=1 - Debug #
- # make - Release #
- # #
- ####################################################################
- # Useful stuff, for eg. cross-compiling
- INCLUDE_DIR := /usr/include
- OGRE_INCLUDE := ${INCLUDE_DIR}/OGRE
- OIS_INCLUDE := ${INCLUDE_DIR}/OIS
- CFLAGS := `pkg-config OGRE OIS openal vorbisfile --cflags`
- CXXFLAGS := `pkg-config OGRE OIS openal vorbisfile --cflags`
- LIBS := `pkg-config OGRE OIS openal vorbisfile --libs`
- DEBUG := 0
- # ---- Q-GEARS Specific ----
- CORE_DIR := core
- VIEWER_DIR := viewer
- QGEARS_BIN := QGears
- BUILD_DIR := ../output
- # ATM there is no intelligent render system selection,
- # so put your rendersystem path here and it gets copied to build dir
- # with name "RenderSystem_GL.so" or "RenderSystem_GL_d.so" in debug mode
- OGRE_RENDERER := /usr/lib/OGRE/RenderSystem_GL.so
- # ---- Libs that come with Q-Gears ---
- INTERNAL_LIB_DIR := ${CORE_DIR}/library
- LUA_DIR := ${INTERNAL_LIB_DIR}/lua
- LUABIND_DIR := ${INTERNAL_LIB_DIR}/luabind
- TINYXML_DIR := ${INTERNAL_LIB_DIR}/tinyxml
- # If you set these to 0, we will try to use system libs instead
- BUILD_INTERNAL_LUA := 1
- BUILD_INTERNAL_LUABIND := 1
- BUILD_INTERNAL_TINYXML := 1
- # Define libs for these if you don't want to build them
- # Default values are just a guess, there is no quarntee all of them come with pkg-configs
- LUA_LIB = `pkg-config lua --libs`
- LUABIND_LIB = `pkg-config luabind --libs`
- TINYXML_LIB = `pkg-config tinyxml --libs`
- # ---- A.I ----
- # Intenal libs should be build before anything else.
- ifeq (${BUILD_INTERNAL_LUA},1)
- SOURCE += $(patsubst %.c,%,$(wildcard ${LUA_DIR}/*.c))
- else
- LIBS += ${LUA_LIB}
- INCLUDES += -I${LUA_DIR}
- endif
- ifeq (${BUILD_INTERNAL_LUABIND},1)
- SOURCE += $(patsubst %.cpp,%,$(wildcard ${LUABIND_DIR}/*.cpp))
- else
- LIBS += ${LUABIND_LIB}
- INCLUDES += -I${LUABIND_DIR}
- endif
- ifeq (${BUILD_INTERNAL_TINYXML},1)
- SOURCE += $(patsubst %.cpp,%,$(wildcard ${TINYXML_DIR}/*.cpp))
- else
- LIBS += ${TINYXML_LIB}
- INCLUDES += -I${TINYXML_DIR}
- endif
- ifeq (${DEBUG},1)
- DEFINES += -D_DEBUG
- CFLAGS = -g -O0
- CXXFLAGS = -g -O0
- endif
- # ---- Build defines ----
- SOURCE += Main.cpp \
- $(patsubst %.cpp,%,$(wildcard core/*.cpp)) \
- $(patsubst %.cpp,%,$(wildcard core/particles/*.cpp)) \
- $(patsubst %.cpp,%,$(wildcard core/particles/emitters/*.cpp)) \
- $(patsubst %.cpp,%,$(wildcard core/particles/renderer/*.cpp))
- DEFINES += -DTIXML_USE_STL
- INCLUDES += -I. -I${VIEWER_DIR} -I${CORE_DIR} -I${INCLUDE_DIR} -I${OGRE_INCLUDE} -I${OIS_INCLUDE} -I${INTERNAL_LIB_DIR}
- TARGET = ${BUILD_DIR}/${QGEARS_BIN}
- OBJ = $(addsuffix .o, $(basename $(SOURCE)))
- all: ${TARGET}
- @true
- # Ugly CPP
- %.o : %.cpp
- ${CXX} ${CXXFLAGS} ${DEFINES} ${INCLUDES} -c $^ -o $@
- # Good old C
- %.o : %.c
- ${CC} ${CFLAGS} ${DEFINES} ${INCLUDES} -c $^ -o $@
- # Link, create build dir if does not exist
- ${TARGET}: ${OBJ}
- mkdir -p "${BUILD_DIR}"
- ${CXX} $^ ${LIBS} -o "${TARGET}"
- ifeq (${DEBUG},1)
- cp "${OGRE_RENDERER}" "${BUILD_DIR}/RenderSystem_GL_d.so"
- else
- cp "${OGRE_RENDERER}" "${BUILD_DIR}/RenderSystem_GL.so"
- endif
- # Note: Don't clean ${BUILD_DIR} it's generally non good idea for deveploment
- clean:
- ${RM} ${OBJ}
- ${RM} "${TARGET}"
- # TO-DO
- # Note: Use ${PREFIX} for install location
- install:
- echo "Not yet implented"
|