]> git.jsancho.org Git - lugaru.git/blob - makefile
7356dd39ae9d4331d41a31deb6dfa3bf10e57816
[lugaru.git] / makefile
1
2 macosx := false
3
4 BINDIR := bin
5 RUNDIR := run
6 SRCDIR := Source
7 SDLDIR := SDL12
8
9 EXE := $(RUNDIR)/lugaru-bin
10
11 CXX := ccache g++
12 CC := ccache gcc
13 #CXX := g++
14 #CC := gcc
15 LD := g++
16
17 OPT := -O0
18 #OPT := -O3 -fno-strict-aliasing -falign-loops=16 -fno-math-errno
19 #OPT := -Os -fno-strict-aliasing
20
21 # always use this on the Mac, even in debug builds, since we aren't building
22 #  a dylib at this point.
23 ifeq ($(strip $(macosx)),true)
24   OPT += -mdynamic-no-pic
25 endif
26
27 DEFINES := \
28         -DPLATFORM_UNIX=1 \
29         -DPLATFORM_LINUX=1 \
30         -DUSE_SDL=1 \
31         -DTRUE=1 \
32         -DFALSE=0 \
33         -Dstricmp=strcasecmp \
34
35 INCLUDES := \
36                         -I./SDL12/include \
37                         -I./OpenGL/ \
38                         -I./OpenGL/GL \
39                         -I$(SRCDIR) \
40
41 CFLAGS := -g -c $(OPT) $(INCLUDES) $(DEFINES) -fsigned-char
42 CFLAGS += -w
43
44 ifeq ($(strip $(macosx)),true)
45   CFLAGS += -fpascal-strings -faltivec -fasm -force_cpusubtype_ALL -Wno-long-double -mdynamic-no-pic
46   CFLAGS += -DPLATFORM_BIGENDIAN=1 -DMACOSX=1 -DPLATFORM_MACOSX=1
47   LDFLAGS := -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework Carbon
48   APPLDFLAGS := $(SDLDIR)/lib/libSDL-1.2.0.dylib $(SDLDIR)/lib/libSDLmain-osx.a
49 else
50   CFLAGS += -DPLATFORM_LINUX=1
51   #CFLAGS += -msse -mmmx
52   LDFLAGS := -lSDL -lGL -lGLU -L$(RUNDIR) -lfmod
53 endif
54
55 CXXFLAGS := $(CFLAGS)
56
57 SRCS := \
58         Frustum.cpp \
59         GameDraw.cpp \
60         GameInitDispose.cpp \
61         GameTick.cpp \
62         Globals.cpp \
63         Lights.cpp \
64         Models.cpp \
65         Objects.cpp \
66         pack.c \
67         pack_private.c \
68         Person.cpp \
69         private.c \
70         Quaternions.cpp \
71         Random.c \
72         Skeleton.cpp \
73         Skybox.cpp \
74         Sprites.cpp \
75         Terrain.cpp \
76         Text.cpp \
77         TGALoader.cpp \
78         unpack.c \
79         unpack_private.c \
80         Weapons.cpp \
81         MacCompatibility.cpp \
82         logger/logger.cpp \
83         DRIVER.CC \
84         MD5.CC \
85         SDLInput.cpp \
86
87 UNUSED_SRCS := \
88         OpenGL_Windows.cpp \
89
90 OBJS := $(SRCS:.CC=.o)
91 OBJS := $(OBJS:.cc=.o)
92 OBJS := $(OBJS:.cpp=.o)
93 OBJS := $(OBJS:.c=.o)
94 OBJS := $(OBJS:.m=.o)
95 OBJS := $(foreach f,$(OBJS),$(BINDIR)/$(f))
96 SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))
97
98
99 .PHONY: clean all
100
101 all : $(EXE)
102
103 $(BINDIR)/%.o : $(SRCDIR)/%.cpp
104         $(CXX) -o $@ $(CXXFLAGS) $<
105
106 $(BINDIR)/%.o : $(SRCDIR)/%.CC
107         $(CXX) -o $@ $(CXXFLAGS) $<
108
109 $(BINDIR)/%.o : $(SRCDIR)/%.cc
110         $(CXX) -o $@ $(CXXFLAGS) $<
111
112 $(BINDIR)/%.o : $(SRCDIR)/%.m
113         $(CC) -o $@ $(CFLAGS) $<
114
115 $(BINDIR)/%.o : $(SRCDIR)/%.c
116         $(CC) -o $@ $(CFLAGS) $<
117
118 $(EXE) : $(OBJS) $(APPOBJS)
119 ifeq ($(strip $(macosx)),true)
120         ranlib $(SDLDIR)/lib/libSDLmain-osx.a
121         ranlib $(FREETYPEDIR)/lib/libfreetype-osx.a
122 endif
123         $(LD) -o $@ $(APPLDFLAGS) $(LDFLAGS) $(OBJS) $(APPOBJS)
124
125 clean:
126         rm -rf $(BINDIR)/*.o
127         rm -rf $(BINDIR)/logger/*.o
128         rm -rf $(EXE)
129
130 # end of makefile ...
131