1#CXX = g++
2CXX = i586-mingw32msvc-g++
3CXXFLAGS = -DWIN32 -DMINGW -ffunction-sections -fdata-sections -Wall -Os -fno-exceptions -fno-unwind-tables -fno-rtti -DGL_GLEXT_PROTOTYPES
4# -Weffc++
5# NDEBUG pro release ?
6LDFLAGS = -Wl,--gc-sections
7LIBS = /usr/i586-mingw32msvc/lib/libglfw.a -lopengl32 -lglu32
8INCLUDES =
9FILE2C = utils/file2c.rb
10
11OBJECTS = main.o snoutlib/glfwapp.o snoutlib/settings.o snoutlib/loadingscreen.o snoutlib/procedural.o \
12	  snoutlib/misc.o snoutlib/timer.o snoutlib/mfont.o snoutlib/svg.o snoutlib/tesselate.o \
13	  snoutlib/menu.o snoutlib/shader.o snoutlib/staticmesh.o snoutlib/rtt_fbo.o snoutlib/gldefs.o\
14	  snoutlib/particles.o snoutlib/perlin.o snoutlib/bbox.o snoutlib/fx.o\
15	  gamemenu.o layout.o background.o boat.o pboat.o pe_smoke.o resources.o credits.o hiscore.o \
16	  torpedo.o pe_bubbles.o pe_bubble_expl.o game.o missile.o fx_missile_expl.o pe_smoketrail.o \
17	  fx_ship_expl.o fx_torpedo_expl.o pe_torpedo_expl.o fx_moving_text.o
18
19SRCS = $(OBJECTS:.o=.cpp)
20
21BINARY = sea.exe
22
23.SUFFIXES: .cpp .o
24
25all: $(BINARY)
26
27resources: data/sha/seawaves.vs
28	$(FILE2C) data/sha/seawaves.vs data/res/seawaves.vs.h text
29	$(FILE2C) data/sha/clouds.vs data/res/clouds.vs.h text
30	$(FILE2C) data/sha/clouds.fs data/res/clouds.fs.h text
31	$(FILE2C) data/model/torpedo.m data/res/torpedo.m.h binary
32	$(FILE2C) data/model/torpedo2.m data/res/torpedo2.m.h binary
33	$(FILE2C) data/model/tanker.m data/res/tanker.m.h binary
34	$(FILE2C) data/model/pboat.m data/res/pboat.m.h binary
35
36
37$(BINARY): $(OBJECTS)
38	$(CXX) $(LDFLAGS) -o $(BINARY) $(OBJECTS) $(LIBS)
39
40strip: $(BINARY)
41	i586-mingw32msvc-strip -s -R .comment $(BINARY)
42
43pack: $(BINARY) strip
44	upx --ultra-brute $(BINARY)
45
46size: clean pack
47
48clean:
49	rm -f $(OBJECTS) $(BINARY) core
50
51