2 # Default platform hint
14 PAKNAME
= blobwars.pak
18 GAME_PROG
= blobwars
$(X
)
20 MAP_PROG
= mapeditor
$(X
)
22 # Ensure pak can be run during cross-compilation
23 PAK
= $(WINE
) .
/$(PAK_PROG
)
30 BINDIR
= $(PREFIX
)/games
/
31 DATADIR
= $(PREFIX
)/share
/games
/blobwars
/
32 DOCDIR
= $(PREFIX
)/share
/doc
/$(PROG
)/
33 ICONDIR
= $(PREFIX
)/share
/icons
/hicolor
/
34 DESKTOPDIR
= $(PREFIX
)/share
/applications
/
35 LOCALEDIR
= $(PREFIX
)/share
/locale
/
37 ifeq ($(PLATFORM
),MINGW
)
40 DATADIR
= $(PREFIX
)/data
/
41 DOCDIR
= $(PREFIX
)/doc
/
42 ICONDIR
= $(PREFIX
)/icons
/
43 DESKTOPDIR
= $(PREFIX
)/misc
/
44 LOCALEDIR
= $(PREFIX
)/locale
/
47 CXXFLAGS
+= `sdl-config --cflags` -DVERSION
=$(VERSION
) -DRELEASE
=$(RELEASE
) -DUSEPAK
=$(USEPAK
)
48 CXXFLAGS
+= -DPAKNAME
=\"$(PAKNAME
)\" -DPAKLOCATION
=\"$(DATADIR
)\" -D
$(PLATFORM
) -DGAMEPLAYMANUAL
=\"$(DOCDIR
)index.html
\" -Wall
49 CXXFLAGS
+= -DLOCALEDIR
=\"$(LOCALEDIR
)\"
50 CXXFLAGS
+= $(CFLAGS
) # -pg -Werror
52 ifeq ($(PLATFORM
),MINGW
)
58 LIBS
= $(LDFLAGS
) `sdl-config --libs` -lSDL_mixer
-lSDL_image
-lSDL_ttf
-lz
$(INTL_LIBS
)
62 OBJS
+= CCollision.o CCutscene.o CConfig.o
64 OBJS
+= CEffect.o CEngine.o CEntity.o
66 OBJS
+= CGame.o CGameData.o CGameObject.o CGraphics.o
72 OBJS
+= CMap.o CMath.o
74 OBJS
+= CPak.o CParticle.o CPersistant.o CPersistData.o
75 OBJS
+= CRadarBlip.o CReplayData.o
76 OBJS
+= CSpawnPoint.o CSprite.o CSwitch.o
77 OBJS
+= CTeleporter.o CTrain.o CTrap.o
78 OBJS
+= CWeapon.o CWidget.o
81 OBJS
+= bosses.o bullets.o
84 OBJS
+= effects.o enemies.o entities.o explosions.o
86 OBJS
+= galdov.o game.o graphics.o
88 OBJS
+= info.o init.o intro.o items.o
89 OBJS
+= lineDefs.o loadSave.o
90 OBJS
+= map.o mapData.o mias.o mission.o
91 OBJS
+= objectives.o obstacles.o options.o
92 OBJS
+= particles.o player.o
94 OBJS
+= spawnPoints.o switches.o
95 OBJS
+= tankBoss.o teleporters.o title.o trains.o traps.o triggers.o
96 OBJS
+= weapons.o widgets.o
98 GAMEOBJS
= $(OBJS
) main.o
99 MAPOBJS
= $(OBJS
) mapEditor.o
100 PAKOBJS
= CFileData.o pak.o
102 LOCALE_MO
= $(patsubst %.po
,%.mo
,$(wildcard locale
/*.po
))
104 # top-level rule to create the program.
105 all: $(GAME_PROG
) $(PAK_PROG
) $(LOCALE_MO
)
107 # compiling other source files.
108 %.o
: src
/%.
cpp src
/%.h src
/defs.h src
/defines.h src
/headers.h
109 $(CXX
) $(CXXFLAGS
) -c
$<
111 # linking the program.
112 $(GAME_PROG
): $(GAMEOBJS
)
113 $(CXX
) -o
$@
$(GAMEOBJS
) $(LIBS
)
115 $(PAK_PROG
): $(PAKOBJS
)
116 $(CXX
) -o
$@
$(PAKOBJS
) $(LIBS
)
121 $(MAP_PROG
): $(MAPOBJS
)
122 $(CXX
) -o
$@
$(MAPOBJS
) $(LIBS
)
124 # cleaning everything that can be automatically recreated with "make".
126 $(RM
) $(GAMEOBJS
) mapEditor.o pak.o
$(GAME_PROG
) $(PAKNAME
) \
127 $(PAK_PROG
) $(MAP_PROG
) $(LOCALE_MO
)
130 $(PAK
) data gfx music sound
$(PAKNAME
)
135 $(PAK
) data gfx music sound
$(PAKNAME
)
140 mkdir
-p
$(ICONDIR
)16x16
/apps
141 mkdir
-p
$(ICONDIR
)32x32
/apps
142 mkdir
-p
$(ICONDIR
)64x64
/apps
143 mkdir
-p
$(DESKTOPDIR
)
145 install -m
755 $(GAME_PROG
) $(BINDIR
)$(GAME_PROG
)
146 install -m
644 $(PAKNAME
) $(DATADIR
)$(PAKNAME
)
147 install -m
644 $(DOCS
) $(DOCDIR
)
148 cp
$(ICONS
)$(PROG
).png
$(ICONDIR
)32x32
/apps
/
149 cp
$(ICONS
)$(PROG
)-mini.png
$(ICONDIR
)16x16
/apps
/$(PROG
).png
150 cp
$(ICONS
)$(PROG
)-large.png
$(ICONDIR
)64x64
/apps
/$(PROG
).png
151 cp
$(ICONS
)$(PROG
).desktop
$(DESKTOPDIR
)
153 @for f in
$(LOCALE_MO
); do \
154 lang
=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
155 mkdir
-p
$(LOCALEDIR
)$$lang/LC_MESSAGES
; \
156 echo
"cp $$f $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
157 cp
$$f $(LOCALEDIR
)$$lang/LC_MESSAGES
/$(PROG
).mo
; \
161 $(RM
) $(BINDIR
)$(GAME_PROG
)
162 $(RM
) $(DATADIR
)$(PAKNAME
)
164 $(RM
) $(ICONDIR
)$(ICONS
)$(PROG
).png
165 $(RM
) $(ICONDIR
)16x16
/apps
/$(PROG
).png
166 $(RM
) $(ICONDIR
)32x32
/apps
/$(PROG
).png
167 $(RM
) $(ICONDIR
)64x64
/apps
/$(PROG
).png
168 $(RM
) $(DESKTOPDIR
)$(PROG
).desktop
170 @for f in
$(LOCALE_MO
); do \
171 lang
=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
172 echo
"$(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
173 $(RM
) $(LOCALEDIR
)$$lang/LC_MESSAGES
/$(PROG
).mo
; \