1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
PROG = blobwars
PAKNAME = blobwars.pak
DOCS = doc/*
ICONS = icons/
VERSION = 1.08
RELEASE = 1
USEPAK = 0
PREFIX=$(DESTDIR)/usr
BINDIR = $(PREFIX)/games/
DATADIR = $(PREFIX)/share/games/blobwars/
DOCDIR = $(PREFIX)/share/doc/$(PROG)/
ICONDIR = $(PREFIX)/share/icons/hicolor/
DESKTOPDIR = $(PREFIX)/share/applications/
LOCALEDIR = $(PREFIX)/share/locale/
CXXFLAGS += `sdl-config --cflags` -DVERSION=$(VERSION) -DRELEASE=$(RELEASE) -DUSEPAK=$(USEPAK)
CXXFLAGS += -DPAKNAME=\"$(PAKNAME)\" -DPAKLOCATION=\"$(DATADIR)\" -DUNIX -DGAMEPLAYMANUAL=\"$(DOCDIR)index.html\" -Wall
CXXFLAGS += -DLOCALEDIR=\"$(LOCALEDIR)\"
CXXFLAGS += $(CFLAGS)
LIBS = `sdl-config --libs` -lSDL_mixer -lSDL_image -lSDL_ttf -lz
OBJS += aquaBoss.o bosses.o bullets.o cutscene.o
OBJS += CAudio.o CBoss.o CCollision.o CCutscene.o CData.o CEffect.o CEngine.o CEntity.o CFileData.o CGame.o
OBJS += CGameData.o CGameObject.o CGraphics.o CHub.o CKeyboard.o CJoystick.o CLineDef.o CList.o
OBJS += CMap.o CMath.o CObjective.o CPak.o CParticle.o CPersistant.o CPersistData.o
OBJS += CRadarBlip.o CSpawnPoint.o CSprite.o CSwitch.o CTeleporter.o CTrain.o CTrap.o CWeapon.o CWidget.o
OBJS += droidBoss.o effects.o enemies.o entities.o explosions.o finalBattle.o galdov.o game.o graphics.o
OBJS += hub.o info.o init.o intro.o items.o lineDefs.o loadSave.o map.o mapData.o mias.o
OBJS += mission.o objectives.o obstacles.o options.o particles.o player.o resources.o spawnPoints.o
OBJS += switches.o tankBoss.o teleporters.o title.o trains.o traps.o triggers.o weapons.o widgets.o
GAMEOBJS = $(OBJS) main.o
MAPOBJS = $(OBJS) mapEditor.o
PAKOBJS = CFileData.o pak.o
LOCALE_MO = $(patsubst %.po,%.mo,$(wildcard locale/*.po))
# top-level rule to create the program.
#all: $(PROG) pak $(LOCALE_MO)
all: $(PROG) $(LOCALE_MO)
# compiling other source files.
%.o: src/%.cpp src/%.h src/defs.h src/defines.h src/headers.h
$(CXX) $(CXXFLAGS) -c $<
# linking the program.
$(PROG): $(GAMEOBJS)
$(CXX) $(LIBS) $(GAMEOBJS) -o $(PROG)
pak: $(PAKOBJS)
$(CXX) $(LIBS) $(PAKOBJS) -o pak
%.mo: %.po
msgfmt -c -o $@ $<
mapeditor: $(MAPOBJS)
$(CXX) $(LIBS) $(MAPOBJS) -o mapeditor
# cleaning everything that can be automatically recreated with "make".
clean:
$(RM) $(GAMEOBJS) mapEditor.o pak.o $(PROG) $(PAKNAME) pak mapeditor $(LOCALE_MO)
buildpak: pak
./pak data gfx music sound $(PAKNAME)
# install
install:
#./pak data gfx music sound $(PAKNAME)
mkdir -p $(BINDIR)
mkdir -p $(DATADIR)
mkdir -p $(DOCDIR)
mkdir -p $(ICONDIR)16x16/apps
mkdir -p $(ICONDIR)32x32/apps
mkdir -p $(ICONDIR)64x64/apps
mkdir -p $(DESKTOPDIR)
install -o root -g games -m 755 $(PROG) $(BINDIR)$(PROG)
#install -o root -g games -m 644 $(PAKNAME) $(DATADIR)$(PAKNAME)
cp -r data gfx $(DATADIR)
install -o root -g games -m 644 $(DOCS) $(DOCDIR)
cp $(ICONS)$(PROG).png $(ICONDIR)32x32/apps/
cp $(ICONS)$(PROG)-mini.png $(ICONDIR)16x16/apps/$(PROG).png
cp $(ICONS)$(PROG)-large.png $(ICONDIR)64x64/apps/$(PROG).png
cp $(ICONS)$(PROG).desktop $(DESKTOPDIR)
@for f in $(LOCALE_MO); do \
lang=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
mkdir -p $(LOCALEDIR)$$lang/LC_MESSAGES; \
echo "cp $$f $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
cp $$f $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo; \
done
uninstall:
$(RM) $(BINDIR)$(PROG)
$(RM) $(DATADIR)$(PAKNAME)
$(RM) -r $(DOCDIR)
$(RM) $(ICONDIR)$(ICONS)$(PROG).png
$(RM) $(ICONDIR)16x16/apps/$(PROG).png
$(RM) $(ICONDIR)32x32/apps/$(PROG).png
$(RM) $(ICONDIR)64x64/apps/$(PROG).png
$(RM) $(DESKTOPDIR)$(PROG).desktop
@for f in $(LOCALE_MO); do \
lang=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
echo "$(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
$(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo; \
done
|