]> git.jsancho.org Git - lugaru.git/blob - makefile
34e3982cbfd53e0eccd995150290f36705c03ad3
[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
30 INCLUDES := \
31                         -I./SDL12/include \
32                         -I./OpenGL/ \
33                         -I./OpenGL/GL \
34                         -I$(SRCDIR) \
35
36 CFLAGS := -w -g -c $(OPT) $(INCLUDES) $(DEFINES) -fsigned-char
37
38 ifeq ($(strip $(macosx)),true)
39   CFLAGS += -fpascal-strings -faltivec -fasm -force_cpusubtype_ALL -Wno-long-double -mdynamic-no-pic
40   CFLAGS += -DPLATFORM_BIGENDIAN=1 -DMACOSX=1 -DPLATFORM_MACOSX=1
41   LDFLAGS := -framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework Carbon
42   APPLDFLAGS := $(SDLDIR)/lib/libSDL-1.2.0.dylib $(SDLDIR)/lib/libSDLmain-osx.a
43 else
44   CFLAGS += -DPLATFORM_LINUX=1
45   #CFLAGS += -msse -mmmx
46   LDFLAGS := -lSDL
47 endif
48
49 CXXFLAGS := $(CFLAGS)
50
51 SRCS := \
52         Frustum.cpp \
53         GameDraw.cpp \
54         GameInitDispose.cpp \
55         GameTick.cpp \
56         Globals.cpp \
57         Lights.cpp \
58         Models.cpp \
59         Objects.cpp \
60         OpenGL_Windows.cpp \
61         pack.c \
62         pack_private.c \
63         Person.cpp \
64         private.c \
65         Quaternions.cpp \
66         Random.c \
67         Skeleton.cpp \
68         Skybox.cpp \
69         Sprites.cpp \
70         Terrain.cpp \
71         Text.cpp \
72         TGALoader.cpp \
73         unpack.c \
74         unpack_private.c \
75         Weapons.cpp \
76         WinDefs.cpp \
77         WinInput.cpp \
78         logger\logger.cpp \
79         Driver.cc \
80         Md5.cc \
81
82
83 OBJS := $(SRCS:.cpp=.o)
84 OBJS := $(OBJS:.c=.o)
85 OBJS := $(OBJS:.m=.o)
86 OBJS := $(foreach f,$(OBJS),$(BINDIR)/$(f))
87 SRCS := $(foreach f,$(SRCS),$(SRCDIR)/$(f))
88
89
90 .PHONY: clean all
91
92 all : $(EXE)
93
94 $(BINDIR)/%.o : $(SRCDIR)/%.cpp
95         $(CXX) -o $@ $(CXXFLAGS) $<
96
97 $(BINDIR)/%.o : $(SRCDIR)/%.CC
98         $(CXX) -o $@ $(CXXFLAGS) $<
99
100 $(BINDIR)/%.o : $(SRCDIR)/%.m
101         $(CC) -o $@ $(CFLAGS) $<
102
103 $(BINDIR)/%.o : $(SRCDIR)/%.c
104         $(CC) -o $@ $(CFLAGS) $<
105
106 $(EXE) : $(OBJS) $(APPOBJS)
107 ifeq ($(strip $(macosx)),true)
108         ranlib $(SDLDIR)/lib/libSDLmain-osx.a
109         ranlib $(FREETYPEDIR)/lib/libfreetype-osx.a
110 endif
111         $(LD) -o $@ $(APPLDFLAGS) $(LDFLAGS) $(OBJS) $(APPOBJS)
112
113 clean:
114         rm -rf $(BINDIR)/*.o
115         rm -rf $(EXE)
116
117 # end of makefile ...
118