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 CXXFLAGS
+= `sdl-config --cflags` -DVERSION
=$(VERSION
) -DRELEASE
=$(RELEASE
) -DUSEPAK
=$(USEPAK
)
38 CXXFLAGS
+= -DPAKNAME
=\"$(PAKNAME
)\" -DPAKLOCATION
=\"$(DATADIR
)\" -D
$(PLATFORM
) -DGAMEPLAYMANUAL
=\"$(DOCDIR
)index.html
\" -Wall
39 CXXFLAGS
+= -DLOCALEDIR
=\"$(LOCALEDIR
)\"
40 CXXFLAGS
+= $(CFLAGS
) -pg
-Werror
42 ifeq ($(PLATFORM
),MINGW
)
48 LIBS
= $(LDFLAGS
) `sdl-config --libs` -lSDL_mixer
-lSDL_image
-lSDL_ttf
-lz
$(INTL_LIBS
)
52 OBJS
+= CCollision.o CCutscene.o CConfig.o
54 OBJS
+= CEffect.o CEngine.o CEntity.o
56 OBJS
+= CGame.o CGameData.o CGameObject.o CGraphics.o
62 OBJS
+= CMap.o CMath.o
64 OBJS
+= CPak.o CParticle.o CPersistant.o CPersistData.o
65 OBJS
+= CRadarBlip.o CReplayData.o
66 OBJS
+= CSpawnPoint.o CSprite.o CSwitch.o
67 OBJS
+= CTeleporter.o CTrain.o CTrap.o
68 OBJS
+= CWeapon.o CWidget.o
71 OBJS
+= bosses.o bullets.o
74 OBJS
+= effects.o enemies.o entities.o explosions.o
76 OBJS
+= galdov.o game.o graphics.o
78 OBJS
+= info.o init.o intro.o items.o
79 OBJS
+= lineDefs.o loadSave.o
80 OBJS
+= map.o mapData.o mias.o mission.o
81 OBJS
+= objectives.o obstacles.o options.o
82 OBJS
+= particles.o player.o
84 OBJS
+= spawnPoints.o switches.o
85 OBJS
+= tankBoss.o teleporters.o title.o trains.o traps.o triggers.o
86 OBJS
+= weapons.o widgets.o
88 GAMEOBJS
= $(OBJS
) main.o
89 MAPOBJS
= $(OBJS
) mapEditor.o
90 PAKOBJS
= CFileData.o pak.o
92 LOCALE_MO
= $(patsubst %.po
,%.mo
,$(wildcard locale
/*.po
))
94 # top-level rule to create the program.
95 all: $(GAME_PROG
) $(PAK_PROG
) $(LOCALE_MO
)
97 # compiling other source files.
98 %.o
: src
/%.
cpp src
/%.h src
/defs.h src
/defines.h src
/headers.h
99 $(CXX
) $(CXXFLAGS
) -c
$<
101 # linking the program.
102 $(GAME_PROG
): $(GAMEOBJS
)
103 $(CXX
) -o
$@
$(GAMEOBJS
) $(LIBS
)
105 $(PAK_PROG
): $(PAKOBJS
)
106 $(CXX
) -o
$@
$(PAKOBJS
) $(LIBS
)
111 $(MAP_PROG
): $(MAPOBJS
)
112 $(CXX
) -o
$@
$(MAPOBJS
) $(LIBS
)
114 # cleaning everything that can be automatically recreated with "make".
116 $(RM
) $(GAMEOBJS
) mapEditor.o pak.o
$(GAME_PROG
) $(PAKNAME
) \
117 $(PAK_PROG
) $(MAP_PROG
) $(LOCALE_MO
)
120 $(PAK
) data gfx music sound
$(PAKNAME
)
125 $(PAK
) data gfx music sound
$(PAKNAME
)
130 mkdir
-p
$(ICONDIR
)16x16
/apps
131 mkdir
-p
$(ICONDIR
)32x32
/apps
132 mkdir
-p
$(ICONDIR
)64x64
/apps
133 mkdir
-p
$(DESKTOPDIR
)
135 install -m
755 $(GAME_PROG
) $(BINDIR
)$(GAME_PROG
)
136 install -m
644 $(PAKNAME
) $(DATADIR
)$(PAKNAME
)
137 install -m
644 $(DOCS
) $(DOCDIR
)
138 cp
$(ICONS
)$(PROG
).png
$(ICONDIR
)32x32
/apps
/
139 cp
$(ICONS
)$(PROG
)-mini.png
$(ICONDIR
)16x16
/apps
/$(PROG
).png
140 cp
$(ICONS
)$(PROG
)-large.png
$(ICONDIR
)64x64
/apps
/$(PROG
).png
141 cp
$(ICONS
)$(PROG
).desktop
$(DESKTOPDIR
)
143 @for f in
$(LOCALE_MO
); do \
144 lang
=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
145 mkdir
-p
$(LOCALEDIR
)$$lang/LC_MESSAGES
; \
146 echo
"cp $$f $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
147 cp
$$f $(LOCALEDIR
)$$lang/LC_MESSAGES
/$(PROG
).mo
; \
151 $(RM
) $(BINDIR
)$(GAME_PROG
)
152 $(RM
) $(DATADIR
)$(PAKNAME
)
154 $(RM
) $(ICONDIR
)$(ICONS
)$(PROG
).png
155 $(RM
) $(ICONDIR
)16x16
/apps
/$(PROG
).png
156 $(RM
) $(ICONDIR
)32x32
/apps
/$(PROG
).png
157 $(RM
) $(ICONDIR
)64x64
/apps
/$(PROG
).png
158 $(RM
) $(DESKTOPDIR
)$(PROG
).desktop
160 @for f in
$(LOCALE_MO
); do \
161 lang
=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
162 echo
"$(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
163 $(RM
) $(LOCALEDIR
)$$lang/LC_MESSAGES
/$(PROG
).mo
; \