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