added dedicated server build without irrlicht
[oweals/minetest.git] / Makefile
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 TARGET = test\r
5 SOURCE_FILES = guiPauseMenu.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
7 BUILD_DIR = build\r
8 OBJECTS = $(addprefix $(BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))\r
9 #OBJECTS = $(SOURCES:.cpp=.o)\r
10 \r
11 FAST_TARGET = fasttest\r
12 \r
13 SERVER_TARGET = server\r
14 SERVER_SOURCE_FILES = 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
15 SERVER_SOURCES = $(addprefix src/, $(SERVER_SOURCE_FILES))\r
16 SERVER_BUILD_DIR = serverbuild\r
17 SERVER_OBJECTS = $(addprefix $(SERVER_BUILD_DIR)/, $(SERVER_SOURCE_FILES:.cpp=.o))\r
18 #SERVER_OBJECTS = $(SERVER_SOURCES:.cpp=.o)\r
19 \r
20 IRRLICHTPATH = ../irrlicht/irrlicht-1.7.1\r
21 JTHREADPATH = ../jthread/jthread-1.2.1\r
22 \r
23 #CXXFLAGS = -O2 -ffast-math -Wall -fomit-frame-pointer -pipe\r
24 CXXFLAGS = -O2 -ffast-math -Wall -g -pipe\r
25 #CXXFLAGS = -O1 -ffast-math -Wall -g\r
26 #CXXFLAGS = -Wall -g -O0\r
27 \r
28 #FAST_CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686\r
29 \r
30 #Default target\r
31 \r
32 all: all_linux\r
33 \r
34 ifeq ($(HOSTTYPE), x86_64)\r
35 LIBSELECT=64\r
36 endif\r
37 \r
38 # Target specific settings\r
39 \r
40 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
41 all_linux fast_linux: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src\r
42 fast_linux server_linux: CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686\r
43 server_linux: LDFLAGS = -L$(JTHREADPATH)/src/.libs -ljthread -lz -lpthread\r
44 server_linux: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DSERVER\r
45 all_linux fast_linux clean_linux: SYSTEM=Linux\r
46 \r
47 # These are out of date\r
48 all_win32: LDFLAGS = -L$(IRRLICHTPATH)/lib/Win32-gcc -L$(JTHREADPATH)/Debug -lIrrlicht -lopengl32 -lm -ljthread\r
49 all_win32 clean_win32: SYSTEM=Win32-gcc\r
50 all_win32 clean_win32: SUF=.exe\r
51 \r
52 # Name of the binary - only valid for targets which set SYSTEM\r
53 \r
54 DESTPATH = bin/$(TARGET)$(SUF)\r
55 FAST_DESTPATH = bin/$(FAST_TARGET)$(SUF)\r
56 SERVER_DESTPATH = bin/$(SERVER_TARGET)$(SUF)\r
57 \r
58 # Build commands\r
59 \r
60 all_linux all_win32: make_build_dir $(DESTPATH)\r
61 fast_linux: make_build_dir $(FAST_DESTPATH)\r
62 server_linux: make_server_build_dir $(SERVER_DESTPATH)\r
63 \r
64 make_build_dir:\r
65         mkdir -p $(BUILD_DIR)\r
66 make_server_build_dir:\r
67         mkdir -p $(SERVER_BUILD_DIR)\r
68 \r
69 $(DESTPATH): $(OBJECTS)\r
70         $(CXX) -o $@ $(OBJECTS) $(LDFLAGS)\r
71 \r
72 $(FAST_DESTPATH): $(SOURCES)\r
73         $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) -DUNITTEST_DISABLE\r
74 \r
75 $(SERVER_DESTPATH): $(SERVER_OBJECTS)\r
76         $(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS) -DSERVER -DUNITTEST_DISABLE\r
77 \r
78 $(BUILD_DIR)/%.o: src/%.cpp\r
79         $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)\r
80 \r
81 $(SERVER_BUILD_DIR)/%.o: src/%.cpp\r
82         $(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)\r
83 \r
84 clean: clean_linux clean_win32 clean_fast_linux clean_server_linux\r
85 \r
86 clean_linux clean_win32:\r
87         @$(RM) $(OBJECTS) $(DESTPATH)\r
88 \r
89 clean_fast_linux:\r
90         @$(RM) $(OBJECTS) $(FAST_DESTPATH)\r
91 \r
92 clean_server_linux:\r
93         @$(RM) $(SERVER_OBJECTS) $(SERVER_DESTPATH)\r
94 \r
95 .PHONY: all all_win32 clean clean_linux clean_win32 clean_fast_linux clean_server_linux\r