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