]> git.jsancho.org Git - lugaru.git/blob - makefile
bbda64736bab0690d95e369e9775075a0e2d593d
[lugaru.git] / makefile
1
2 macosx := false
3 use_devil := false
4 use_fmod := true
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
14 EXE := $(RUNDIR)/lugaru-bin
15
16 #CXX := ccache g++
17 #CC := ccache gcc
18 CXX := g++
19 CC := gcc
20 LD := g++
21
22 #OPT := -O0
23 OPT := -O3 -fno-strict-aliasing -falign-loops=16 -fno-math-errno
24 #OPT := -Os -fno-strict-aliasing
25
26 # always use this on the Mac, even in debug builds, since we aren't building
27 #  a dylib at this point.
28 ifeq ($(strip $(macosx)),true)
29   OPT += -mdynamic-no-pic
30 endif
31
32 DEFINES := \
33         -DPLATFORM_UNIX=1 \
34         -DPLATFORM_LINUX=1 \
35         -DUSE_SDL=1 \
36         -DTRUE=1 \
37         -DFALSE=0 \
38         -Dstricmp=strcasecmp \
39
40 INCLUDES := \
41                         -I$(SRCDIR) \
42                         -I$(SDLDIR)/include \
43                         -I./OpenGL/ \
44                         -I./OpenGL/GL \
45
46 ifeq ($(strip $(use_devil)),true)
47     DEFINES += -DUSE_DEVIL=1
48     INCLUDES += -I$(SRCDIR)/devil/include
49 else
50     DEFINES += -DZ_PREFIX=1
51     INCLUDES += -I$(ZLIBDIR) -I$(LIBPNGDIR) -I$(JPEGLIBDIR)
52 endif
53
54 ifeq ($(strip $(use_fmod)),false)
55     DEFINES += -DUSE_OPENAL=1
56 endif
57
58
59 CFLAGS := -g -c $(OPT) $(INCLUDES) $(DEFINES) -fsigned-char -pipe
60 CFLAGS += -w
61
62 ifeq ($(strip $(macosx)),true)
63   CFLAGS += -fpascal-strings -faltivec -fasm -force_cpusubtype_ALL -Wno-long-double -mdynamic-no-pic
64   CFLAGS += -DPLATFORM_BIGENDIAN=1 -DMACOSX=1 -DPLATFORM_MACOSX=1
65   LDFLAGS := -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework Carbon
66   APPLDFLAGS := $(SDLDIR)/lib/libSDL-1.2.0.dylib $(SDLDIR)/lib/libSDLmain-osx.a
67 else
68   CFLAGS += -DPLATFORM_LINUX=1
69   LDFLAGS := ./libSDL-1.2.so.0
70   POSTLDFLAGS := /usr/lib/libGLU.a
71
72   ifeq ($(strip $(use_devil)),true)
73     LDFLAGS += ./libIL.so.1 ./libILU.so.1 ./libILUT.so.1
74   endif
75
76   ifeq ($(strip $(use_fmod)),true)
77     LDFLAGS += ./libfmod.so
78   endif
79 endif
80
81 CXXFLAGS := $(CFLAGS)
82
83 SRCS := \
84         Frustum.cpp \
85         GameDraw.cpp \
86         GameInitDispose.cpp \
87         GameTick.cpp \
88         Globals.cpp \
89         Lights.cpp \
90         Models.cpp \
91         Objects.cpp \
92         pack.c \
93         pack_private.c \
94         Person.cpp \
95         private.c \
96         Quaternions.cpp \
97         Random.c \
98         Skeleton.cpp \
99         Skybox.cpp \
100         Sprites.cpp \
101         Terrain.cpp \
102         Text.cpp \
103         TGALoader.cpp \
104         unpack.c \
105         unpack_private.c \
106         Weapons.cpp \
107         MacCompatibility.cpp \
108         logger/logger.cpp \
109         WinInput.cpp \
110         OpenGL_Windows.cpp \
111         openal_wrapper.cpp \
112
113 SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))
114
115
116 UNUSED_SRCS := \
117         DRIVER.CC \
118         MD5.CC \
119
120
121 PNGSRCS := \
122     png.c \
123     pngerror.c \
124     pnggccrd.c \
125     pngget.c \
126     pngmem.c \
127     pngpread.c \
128     pngread.c \
129     pngrio.c \
130     pngrtran.c \
131     pngrutil.c \
132     pngset.c \
133     pngtrans.c \
134     pngvcrd.c \
135     pngwio.c \
136     pngwrite.c \
137     pngwtran.c \
138     pngwutil.c \
139
140 PNGSRCS := $(foreach f,$(PNGSRCS),$(LIBPNGDIR)/$(f))
141
142 JPEGSRCS := \
143         jdapistd.c \
144     jdmaster.c \
145     jdapimin.c \
146     jcapimin.c \
147     jdmerge.c \
148     jdatasrc.c \
149     jdatadst.c \
150     jdcoefct.c \
151     jdcolor.c \
152     jddctmgr.c \
153     jdhuff.c \
154     jdinput.c \
155     jdmainct.c \
156     jdmarker.c \
157     jdphuff.c \
158     jdpostct.c \
159     jdsample.c \
160     jdtrans.c \
161     jerror.c \
162     jidctflt.c \
163     jidctfst.c \
164     jidctint.c \
165     jidctred.c \
166     jmemmgr.c \
167     jutils.c \
168     jmemnobs.c \
169     jquant1.c \
170     jquant2.c \
171     jcomapi.c \
172     jcmarker.c \
173     jcapistd.c \
174     jcparam.c \
175     jcinit.c \
176     jcdctmgr.c \
177     jccoefct.c \
178     jcmainct.c \
179     jfdctflt.c \
180     jfdctint.c \
181     jfdctfst.c \
182     jchuff.c \
183     jcphuff.c \
184     jcsample.c \
185     jcmaster.c \
186     jccolor.c \
187     jcprepct.c \
188
189 JPEGSRCS := $(foreach f,$(JPEGSRCS),$(JPEGLIBDIR)/$(f))
190
191
192 ZLIBSRCS = \
193         adler32.c \
194         compress.c \
195         crc32.c \
196         deflate.c \
197         gzio.c \
198         infback.c \
199         inffast.c \
200         inflate.c \
201         inftrees.c \
202         trees.c \
203         uncompr.c \
204         zutil.c \
205
206 ZLIBSRCS := $(foreach f,$(ZLIBSRCS),$(ZLIBDIR)/$(f))
207
208
209 ifneq ($(strip $(use_devil)),true)
210     SRCS += $(PNGSRCS) $(JPEGSRCS) $(ZLIBSRCS)
211 endif
212
213 OBJS := $(SRCS:.CC=.o)
214 OBJS := $(OBJS:.cc=.o)
215 OBJS := $(OBJS:.cpp=.o)
216 OBJS := $(OBJS:.c=.o)
217 OBJS := $(OBJS:.m=.o)
218 OBJS := $(foreach f,$(OBJS),$(BINDIR)/$(f))
219
220
221 .PHONY: clean all
222
223 all : $(EXE)
224
225 $(BINDIR)/%.o : %.cpp
226         $(CXX) -o $@ $(CXXFLAGS) $<
227
228 $(BINDIR)/%.o : %.CC
229         $(CXX) -x c++ -o $@ $(CXXFLAGS) $<
230
231 $(BINDIR)/%.o : %.cc
232         $(CXX) -o $@ $(CXXFLAGS) $<
233
234 $(BINDIR)/%.o : %.m
235         $(CC) -o $@ $(CFLAGS) $<
236
237 $(BINDIR)/%.o : %.c
238         $(CC) -o $@ $(CFLAGS) $<
239
240 $(EXE) : $(OBJS) $(APPOBJS)
241 ifeq ($(strip $(macosx)),true)
242         ranlib $(SDLDIR)/lib/libSDLmain-osx.a
243         ranlib $(FREETYPEDIR)/lib/libfreetype-osx.a
244 endif
245         $(LD) -o $@ $(APPLDFLAGS) $(LDFLAGS) $(OBJS) $(APPOBJS) $(POSTLDFLAGS)
246
247 clean:
248         rm -f $(BINDIR)/*.o
249         rm -f $(BINDIR)/$(SRCDIR)/*.o
250         rm -f $(BINDIR)/$(SRCDIR)/logger/*.o
251         rm -f $(BINDIR)/$(LIBPNGDIR)/*.o
252         rm -f $(BINDIR)/$(JPEGLIB)/*.o
253         rm -f $(BINDIR)/$(ZLIBDIR)/*.o
254         rm -f $(EXE)
255
256 # end of makefile ...
257