]> git.jsancho.org Git - lugaru.git/blob - makefile
Fixed buffer overrun (misunderstanding about input system).
[lugaru.git] / makefile
1
2 macosx := false
3 use_devil := false
4 use_fmod := false
5
6 BINDIR := bin
7 RUNDIR := run
8 SRCDIR := Source
9 SDLDIR := SDL12
10 LIBPNGDIR := libpng-1.2.8
11 JPEGLIBDIR := jpeg-6b
12 ZLIBDIR := zlib-1.2.3
13 OPENALDIR := OpenAL
14 GLUDIR := GLU
15 LIBOGGDIR := libogg-1.0
16 LIBVORBISDIR := libvorbis-1.0.1
17
18 EXE := $(RUNDIR)/lugaru-bin
19
20 CXX := /opt/crosstool/gcc-4.1.2-glibc-2.3.6/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/g++
21 CC := /opt/crosstool/gcc-4.1.2-glibc-2.3.6/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/gcc
22 #CXX := g++
23 #CC := gcc
24 LD := /opt/crosstool/gcc-4.1.2-glibc-2.3.6/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/g++
25
26 #OPT := -O0
27 OPT := -O3 -fno-strict-aliasing -falign-loops=16 -fno-math-errno
28 #OPT := -Os -fno-strict-aliasing
29
30 # always use this on the Mac, even in debug builds, since we aren't building
31 #  a dylib at this point.
32 ifeq ($(strip $(macosx)),true)
33   OPT += -mdynamic-no-pic
34 endif
35
36 DEFINES := \
37         -DPLATFORM_UNIX=1 \
38         -DPLATFORM_LINUX=1 \
39         -DUSE_SDL=1 \
40         -DTRUE=1 \
41         -DFALSE=0 \
42         -Dstricmp=strcasecmp \
43         -DBinIO_STDINT_HEADER="<stdint.h>" \
44
45 INCLUDES := \
46                         -I$(SRCDIR) \
47                         -I$(SDLDIR)/include \
48                         -I./OpenGL/ \
49                         -I./OpenGL/GL \
50
51 ifeq ($(strip $(use_devil)),true)
52     DEFINES += -DUSE_DEVIL=1
53     INCLUDES += -I$(SRCDIR)/devil/include
54 else
55     DEFINES += -DZ_PREFIX=1
56     INCLUDES += -I$(ZLIBDIR) -I$(LIBPNGDIR) -I$(JPEGLIBDIR)
57 endif
58
59 ifeq ($(strip $(use_fmod)),false)
60     DEFINES += -DUSE_OPENAL=1
61     INCLUDES += -I$(OPENALDIR)/include -I$(LIBOGGDIR)/include -I$(LIBVORBISDIR)/include
62 endif
63
64
65 CFLAGS := -g -c $(OPT) $(INCLUDES) $(DEFINES) -fsigned-char -pipe
66 CFLAGS += -w
67
68 ifeq ($(strip $(macosx)),true)
69   CFLAGS += -fpascal-strings -faltivec -fasm -force_cpusubtype_ALL -Wno-long-double -mdynamic-no-pic
70   CFLAGS += -DPLATFORM_BIGENDIAN=1 -DMACOSX=1 -DPLATFORM_MACOSX=1
71   LDFLAGS := -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework Carbon
72   APPLDFLAGS := $(SDLDIR)/lib/libSDL-1.2.0.dylib $(SDLDIR)/lib/libSDLmain-osx.a
73 else
74   CFLAGS += -DPLATFORM_LINUX=1
75   LDFLAGS := ./libSDL-1.2.so.0
76
77   ifeq ($(strip $(use_devil)),true)
78     LDFLAGS += ./libIL.so.1 ./libILU.so.1 ./libILUT.so.1
79   endif
80
81   ifeq ($(strip $(use_fmod)),true)
82     POSTLDFLAGS += -lpthread ./libfmod-linux-x86.a
83   else
84     LDFLAGS += ./openal.so
85   endif
86 endif
87
88 CXXFLAGS := $(CFLAGS)
89
90 SRCS := \
91         Frustum.cpp \
92         GameDraw.cpp \
93         GameInitDispose.cpp \
94         GameTick.cpp \
95         Globals.cpp \
96         Lights.cpp \
97         Models.cpp \
98         Objects.cpp \
99         pack.c \
100         pack_private.c \
101         Person.cpp \
102         private.c \
103         Quaternions.cpp \
104         Random.c \
105         Skeleton.cpp \
106         Skybox.cpp \
107         Sprites.cpp \
108         Terrain.cpp \
109         Text.cpp \
110         TGALoader.cpp \
111         unpack.c \
112         unpack_private.c \
113         Weapons.cpp \
114         MacCompatibility.cpp \
115         logger/logger.cpp \
116         WinInput.cpp \
117         OpenGL_Windows.cpp \
118         openal_wrapper.cpp \
119
120 SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))
121
122
123 UNUSED_SRCS := \
124         DRIVER.CC \
125         MD5.CC \
126
127
128 PNGSRCS := \
129     png.c \
130     pngerror.c \
131     pnggccrd.c \
132     pngget.c \
133     pngmem.c \
134     pngpread.c \
135     pngread.c \
136     pngrio.c \
137     pngrtran.c \
138     pngrutil.c \
139     pngset.c \
140     pngtrans.c \
141     pngvcrd.c \
142     pngwio.c \
143     pngwrite.c \
144     pngwtran.c \
145     pngwutil.c \
146
147 PNGSRCS := $(foreach f,$(PNGSRCS),$(LIBPNGDIR)/$(f))
148
149 JPEGSRCS := \
150         jdapistd.c \
151     jdmaster.c \
152     jdapimin.c \
153     jcapimin.c \
154     jdmerge.c \
155     jdatasrc.c \
156     jdatadst.c \
157     jdcoefct.c \
158     jdcolor.c \
159     jddctmgr.c \
160     jdhuff.c \
161     jdinput.c \
162     jdmainct.c \
163     jdmarker.c \
164     jdphuff.c \
165     jdpostct.c \
166     jdsample.c \
167     jdtrans.c \
168     jerror.c \
169     jidctflt.c \
170     jidctfst.c \
171     jidctint.c \
172     jidctred.c \
173     jmemmgr.c \
174     jutils.c \
175     jmemnobs.c \
176     jquant1.c \
177     jquant2.c \
178     jcomapi.c \
179     jcmarker.c \
180     jcapistd.c \
181     jcparam.c \
182     jcinit.c \
183     jcdctmgr.c \
184     jccoefct.c \
185     jcmainct.c \
186     jfdctflt.c \
187     jfdctint.c \
188     jfdctfst.c \
189     jchuff.c \
190     jcphuff.c \
191     jcsample.c \
192     jcmaster.c \
193     jccolor.c \
194     jcprepct.c \
195
196 JPEGSRCS := $(foreach f,$(JPEGSRCS),$(JPEGLIBDIR)/$(f))
197
198
199 ZLIBSRCS = \
200         adler32.c \
201         compress.c \
202         crc32.c \
203         deflate.c \
204         gzio.c \
205         infback.c \
206         inffast.c \
207         inflate.c \
208         inftrees.c \
209         trees.c \
210         uncompr.c \
211         zutil.c \
212
213 ZLIBSRCS := $(foreach f,$(ZLIBSRCS),$(ZLIBDIR)/$(f))
214
215
216 GLUSRCS := \
217         dict.c \
218         geom.c \
219         memalloc.c \
220         mesh.c \
221         mipmap.c \
222         normal.c \
223         priorityq.c \
224         render.c \
225         sweep.c \
226         tess.c \
227         tessmono.c \
228         util.c \
229
230 GLUSRCS := $(foreach f,$(GLUSRCS),$(GLUDIR)/$(f))
231
232
233 OGGSRCS := \
234         bitwise.o \
235         framing.o
236
237 OGGSRCS := $(foreach f,$(OGGSRCS),$(LIBOGGDIR)/src/$(f))
238
239 VORBISSRCS := \
240         analysis.o \
241     bitrate.o \
242     block.o \
243     codebook.o \
244     envelope.o \
245     floor0.o \
246     floor1.o \
247     info.o \
248     lpc.o \
249     lsp.o \
250     mapping0.o \
251     mdct.o \
252     psy.o \
253     registry.o \
254     res0.o \
255     sharedbook.o \
256     smallft.o \
257     synthesis.o \
258     vorbisfile.o \
259     window.o
260
261 VORBISSRCS := $(foreach f,$(VORBISSRCS),$(LIBVORBISDIR)/lib/$(f))
262
263 ifeq ($(strip $(macosx)),false)
264         SRCS += $(GLUSRCS)
265 endif
266
267 ifeq ($(strip $(use_devil)),false)
268     SRCS += $(PNGSRCS) $(JPEGSRCS) $(ZLIBSRCS)
269 endif
270
271 ifeq ($(strip $(use_fmod)),false)
272     SRCS += $(OGGSRCS) $(VORBISSRCS)
273 endif
274
275 OBJS := $(SRCS:.CC=.o)
276 OBJS := $(OBJS:.cc=.o)
277 OBJS := $(OBJS:.cpp=.o)
278 OBJS := $(OBJS:.c=.o)
279 OBJS := $(OBJS:.m=.o)
280 OBJS := $(foreach f,$(OBJS),$(BINDIR)/$(f))
281
282
283 .PHONY: clean all
284
285 all : $(EXE)
286
287 $(BINDIR)/%.o : %.cpp
288         @mkdir -p $(dir $@)
289         $(CXX) -o $@ $(CXXFLAGS) $<
290
291 $(BINDIR)/%.o : %.CC
292         @mkdir -p $(dir $@)
293         $(CXX) -x c++ -o $@ $(CXXFLAGS) $<
294
295 $(BINDIR)/%.o : %.cc
296         @mkdir -p $(dir $@)
297         $(CXX) -o $@ $(CXXFLAGS) $<
298
299 $(BINDIR)/%.o : %.m
300         @mkdir -p $(dir $@)
301         $(CC) -o $@ $(CFLAGS) $<
302
303 $(BINDIR)/%.o : %.c
304         @mkdir -p $(dir $@)
305         $(CC) -o $@ $(CFLAGS) $<
306
307 $(EXE) : $(OBJS) $(APPOBJS)
308         @mkdir -p $(dir $@)
309 ifeq ($(strip $(macosx)),true)
310         ranlib $(SDLDIR)/lib/libSDLmain-osx.a
311         ranlib $(FREETYPEDIR)/lib/libfreetype-osx.a
312 endif
313         $(LD) -o $@ $(APPLDFLAGS) $(LDFLAGS) $(OBJS) $(APPOBJS) $(POSTLDFLAGS)
314
315 clean:
316         rm -f $(BINDIR)/*.o
317         rm -f $(BINDIR)/$(SRCDIR)/*.o
318         rm -f $(BINDIR)/$(SRCDIR)/logger/*.o
319         rm -f $(BINDIR)/$(GLUDIR)/*.o
320         rm -f $(BINDIR)/$(LIBPNGDIR)/*.o
321         rm -f $(BINDIR)/$(JPEGLIBDIR)/*.o
322         rm -f $(BINDIR)/$(ZLIBDIR)/*.o
323         rm -f $(BINDIR)/$(LIBOGGDIR)/src/*.o
324         rm -f $(BINDIR)/$(LIBVORBISDIR)/lib/*.o
325         rm -f $(EXE)
326
327 # end of makefile ...
328