1 # Makefile for Irrlicht Examples
\r
2 # It's usually sufficient to change just the target name and source file list
\r
3 # and be sure that CXX is set to a valid compiler
\r
4 SOURCE_FILES = porting.cpp guiMessageMenu.cpp materials.cpp guiTextInputMenu.cpp guiInventoryMenu.cpp irrlichtwrapper.cpp guiPauseMenu.cpp defaultsettings.cpp mapnode.cpp tile.cpp voxel.cpp mapblockobject.cpp inventory.cpp debug.cpp serialization.cpp light.cpp filesys.cpp connection.cpp environment.cpp client.cpp server.cpp socket.cpp mapblock.cpp mapsector.cpp heightmap.cpp map.cpp player.cpp utility.cpp main.cpp test.cpp
\r
6 DEBUG_TARGET = debugtest
\r
7 DEBUG_SOURCES = $(addprefix src/, $(SOURCE_FILES))
\r
8 DEBUG_BUILD_DIR = debugbuild
\r
9 DEBUG_OBJECTS = $(addprefix $(DEBUG_BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))
\r
11 FAST_TARGET = fasttest
\r
12 FAST_SOURCES = $(addprefix src/, $(SOURCE_FILES))
\r
13 FAST_BUILD_DIR = fastbuild
\r
14 FAST_OBJECTS = $(addprefix $(FAST_BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))
\r
16 SERVER_TARGET = server
\r
17 SERVER_SOURCE_FILES = porting.cpp materials.cpp defaultsettings.cpp mapnode.cpp voxel.cpp mapblockobject.cpp inventory.cpp debug.cpp serialization.cpp light.cpp filesys.cpp connection.cpp environment.cpp server.cpp socket.cpp mapblock.cpp mapsector.cpp heightmap.cpp map.cpp player.cpp utility.cpp servermain.cpp test.cpp
\r
18 SERVER_SOURCES = $(addprefix src/, $(SERVER_SOURCE_FILES))
\r
19 SERVER_BUILD_DIR = serverbuild
\r
20 SERVER_OBJECTS = $(addprefix $(SERVER_BUILD_DIR)/, $(SERVER_SOURCE_FILES:.cpp=.o))
\r
22 IRRLICHTPATH = ../irrlicht/irrlicht-1.7.1
\r
23 JTHREADPATH = ../jthread/jthread-1.2.1
\r
28 ifeq ($(HOSTTYPE), x86_64)
\r
32 debug: CXXFLAGS = -Wall -g -O1
\r
33 debug: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DDEBUG -DRUN_IN_PLACE
\r
34 debug: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread -lz
\r
36 fast: CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686
\r
37 fast: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DUNITTEST_DISABLE -DRUN_IN_PLACE
\r
38 fast: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread -lz
\r
40 server: CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686
\r
41 server: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DSERVER -DUNITTEST_DISABLE -DRUN_IN_PLACE
\r
42 server: LDFLAGS = -L$(JTHREADPATH)/src/.libs -ljthread -lz -lpthread
\r
44 DEBUG_DESTPATH = bin/$(DEBUG_TARGET)
\r
45 FAST_DESTPATH = bin/$(FAST_TARGET)
\r
46 SERVER_DESTPATH = bin/$(SERVER_TARGET)
\r
50 debug: $(DEBUG_BUILD_DIR) $(DEBUG_DESTPATH)
\r
51 fast: $(FAST_BUILD_DIR) $(FAST_DESTPATH)
\r
52 server: $(SERVER_BUILD_DIR) $(SERVER_DESTPATH)
\r
55 mkdir -p $(DEBUG_BUILD_DIR)
\r
57 mkdir -p $(FAST_BUILD_DIR)
\r
58 $(SERVER_BUILD_DIR):
\r
59 mkdir -p $(SERVER_BUILD_DIR)
\r
61 $(DEBUG_DESTPATH): $(DEBUG_OBJECTS)
\r
62 $(CXX) -o $@ $(DEBUG_OBJECTS) $(LDFLAGS)
\r
64 $(FAST_DESTPATH): $(FAST_OBJECTS)
\r
65 $(CXX) -o $@ $(FAST_OBJECTS) $(LDFLAGS)
\r
67 $(SERVER_DESTPATH): $(SERVER_OBJECTS)
\r
68 $(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS)
\r
70 $(DEBUG_BUILD_DIR)/%.o: src/%.cpp
\r
71 $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
\r
73 $(FAST_BUILD_DIR)/%.o: src/%.cpp
\r
74 $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
\r
76 $(SERVER_BUILD_DIR)/%.o: src/%.cpp
\r
77 $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
\r
79 clean: clean_debug clean_fast clean_server
\r
82 @$(RM) $(DEBUG_OBJECTS) $(DEBUG_DESTPATH)
\r
85 @$(RM) $(FAST_OBJECTS) $(FAST_DESTPATH)
\r
88 @$(RM) $(SERVER_OBJECTS) $(SERVER_DESTPATH)
\r
90 .PHONY: all all_win32 clean clean_debug clean_win32 clean_fast clean_server
\r