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