]> git.jsancho.org Git - lugaru.git/blob - makefile
Game builds and runs...need more input.
[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                         -I$(SRCDIR)/devil/include \
41
42 CFLAGS := -g -c $(OPT) $(INCLUDES) $(DEFINES) -fsigned-char
43 CFLAGS += -w
44
45 ifeq ($(strip $(macosx)),true)
46   CFLAGS += -fpascal-strings -faltivec -fasm -force_cpusubtype_ALL -Wno-long-double -mdynamic-no-pic
47   CFLAGS += -DPLATFORM_BIGENDIAN=1 -DMACOSX=1 -DPLATFORM_MACOSX=1
48   LDFLAGS := -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework Carbon
49   APPLDFLAGS := $(SDLDIR)/lib/libSDL-1.2.0.dylib $(SDLDIR)/lib/libSDLmain-osx.a
50 else
51   CFLAGS += -DPLATFORM_LINUX=1
52   #CFLAGS += -msse -mmmx
53   LDFLAGS := ./libSDL-1.2.so.0 -lGL -lGLU ./libfmod.so ./libIL.so.1 ./libILU.so.1 ./libILUT.so.1
54 endif
55
56 CXXFLAGS := $(CFLAGS)
57
58 SRCS := \
59         Frustum.cpp \
60         GameDraw.cpp \
61         GameInitDispose.cpp \
62         GameTick.cpp \
63         Globals.cpp \
64         Lights.cpp \
65         Models.cpp \
66         Objects.cpp \
67         pack.c \
68         pack_private.c \
69         Person.cpp \
70         private.c \
71         Quaternions.cpp \
72         Random.c \
73         Skeleton.cpp \
74         Skybox.cpp \
75         Sprites.cpp \
76         Terrain.cpp \
77         Text.cpp \
78         TGALoader.cpp \
79         unpack.c \
80         unpack_private.c \
81         Weapons.cpp \
82         MacCompatibility.cpp \
83         logger/logger.cpp \
84         DRIVER.CC \
85         MD5.CC \
86         SDLInput.cpp \
87         OpenGL_Windows.cpp \
88
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