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
5 SOURCE_FILES = 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 SOURCES = $(addprefix src/, $(SOURCE_FILES))
\r
8 OBJECTS = $(addprefix $(BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))
\r
10 FAST_TARGET = fasttest
\r
11 FAST_SOURCES = $(addprefix src/, $(SOURCE_FILES))
\r
12 FAST_BUILD_DIR = fastbuild
\r
13 FAST_OBJECTS = $(addprefix $(FAST_BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))
\r
15 SERVER_TARGET = server
\r
16 SERVER_SOURCE_FILES = 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
17 SERVER_SOURCES = $(addprefix src/, $(SERVER_SOURCE_FILES))
\r
18 SERVER_BUILD_DIR = serverbuild
\r
19 SERVER_OBJECTS = $(addprefix $(SERVER_BUILD_DIR)/, $(SERVER_SOURCE_FILES:.cpp=.o))
\r
21 IRRLICHTPATH = ../irrlicht/irrlicht-1.7.1
\r
22 JTHREADPATH = ../jthread/jthread-1.2.1
\r
24 #CXXFLAGS = -O2 -ffast-math -Wall -fomit-frame-pointer -pipe
\r
25 CXXFLAGS = -O2 -ffast-math -Wall -g -pipe
\r
26 #CXXFLAGS = -O1 -ffast-math -Wall -g
\r
27 #CXXFLAGS = -Wall -g -O0
\r
29 #FAST_CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686
\r
35 ifeq ($(HOSTTYPE), x86_64)
\r
39 # Target specific settings
\r
41 all_linux fast_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread -lz
\r
42 all_linux fast_linux: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src
\r
43 fast_linux server_linux: CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686
\r
44 server_linux: LDFLAGS = -L$(JTHREADPATH)/src/.libs -ljthread -lz -lpthread
\r
45 server_linux: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DSERVER
\r
46 all_linux fast_linux clean_linux: SYSTEM=Linux
\r
48 # These are out of date
\r
49 all_win32: LDFLAGS = -L$(IRRLICHTPATH)/lib/Win32-gcc -L$(JTHREADPATH)/Debug -lIrrlicht -lopengl32 -lm -ljthread
\r
50 all_win32 clean_win32: SYSTEM=Win32-gcc
\r
51 all_win32 clean_win32: SUF=.exe
\r
53 # Name of the binary - only valid for targets which set SYSTEM
\r
55 DESTPATH = bin/$(TARGET)$(SUF)
\r
56 FAST_DESTPATH = bin/$(FAST_TARGET)$(SUF)
\r
57 SERVER_DESTPATH = bin/$(SERVER_TARGET)$(SUF)
\r
61 all_linux all_win32: $(BUILD_DIR) $(DESTPATH)
\r
62 fast_linux: $(FAST_BUILD_DIR) $(FAST_DESTPATH)
\r
63 server_linux: $(SERVER_BUILD_DIR) $(SERVER_DESTPATH)
\r
66 mkdir -p $(BUILD_DIR)
\r
68 mkdir -p $(FAST_BUILD_DIR)
\r
69 $(SERVER_BUILD_DIR):
\r
70 mkdir -p $(SERVER_BUILD_DIR)
\r
72 $(DESTPATH): $(OBJECTS)
\r
73 $(CXX) -o $@ $(OBJECTS) $(LDFLAGS)
\r
75 $(FAST_DESTPATH): $(FAST_OBJECTS)
\r
76 $(CXX) -o $@ $(FAST_OBJECTS) $(LDFLAGS) -DUNITTEST_DISABLE
\r
78 $(SERVER_DESTPATH): $(SERVER_OBJECTS)
\r
79 $(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS) -DSERVER -DUNITTEST_DISABLE
\r
81 $(BUILD_DIR)/%.o: src/%.cpp
\r
82 $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
\r
84 $(FAST_BUILD_DIR)/%.o: src/%.cpp
\r
85 $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
\r
87 $(SERVER_BUILD_DIR)/%.o: src/%.cpp
\r
88 $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
\r
90 clean: clean_linux clean_win32 clean_fast_linux clean_server_linux
\r
92 clean_linux clean_win32:
\r
93 @$(RM) $(OBJECTS) $(DESTPATH)
\r
96 @$(RM) $(OBJECTS) $(FAST_DESTPATH)
\r
99 @$(RM) $(SERVER_OBJECTS) $(SERVER_DESTPATH)
\r
101 .PHONY: all all_win32 clean clean_linux clean_win32 clean_fast_linux clean_server_linux
\r