EXE = keen
PREFIX = /opt/clonekeen
USRPREFIX = /usr
EXTRADIR = ./extra
DESTDIR = 

BINDIR = $(DESTDIR)/$(PREFIX)
ICNDIR = $(DESTDIR)/$(USRPREFIX)/share/pixmaps
APPDIR = $(DESTDIR)/$(USRPREFIX)/share/applications/hildon

DATA = $(EXTRADIR)/keen.sh bin README LICENSE
ICON = keen.png
DESKTOP = keen.desktop


OBJS = \
main.o sanity.o game.o gamedo.o \
gamepdo.o gamepdo_wm.o editor/editor.o editor/autolight.o console.o \
fileio.o maploader.o map.o graphics.o palette.o \
fonts.o misc.o misc_ui.o graphicmaker.o ini.o \
intro.o menumanager.o menu_options.o menu_keysetup.o menu_savegames.o \
menu_custommap.o editor/menu_editor.o customepisode.o savegame.o twirly.o \
sgrle.o lprintf.o vgatiles.o latch.o lz.o \
message.o cinematics/seqcommon.o cinematics/e1ending.o cinematics/e3ending.o cinematics/blowupworld.o \
cinematics/mortimer.o cinematics/TBC.o FinaleScreenLoader.o globals.o ai/yorp.o \
ai/garg.o ai/vort.o ai/butler.o ai/tank.o ai/door.o \
ai/ray.o ai/icecannon.o ai/teleport.o ai/rope.o ai/walker.o \
ai/tankep2.o ai/platform.o ai/platvert.o ai/vortelite.o ai/se.o \
ai/baby.o ai/earth.o ai/foob.o ai/ninja.o ai/meep.o \
ai/sndwave.o ai/mother.o ai/fireball.o ai/balljack.o ai/nessie.o \
ai/autoray.o ai/gotpoints.o sdl/keydrv.o sdl/snddrv.o sdl/timedrv.o \
sdl/viddrv.o scale2x/scalebit.o scale2x/scale2x.o scale2x/scale3x.o scale2x/pixel.o \
platform.o

CC = gcc
CFLAGS = -O2 -fsigned-char
LDFLAGS = -lSDL -lSDLmain -lstdc++
RM = rm -f
CP = cp -r
MD = mkdir -p
ECHO = echo
CHMOD = chmod
STRIP = strip

all: $(EXE)

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

$(EXE): $(OBJS)
	$(CC) $(LDFLAGS) $^ -o $@
	@$(STRIP) $@
	@$(ECHO) " o If there are no errors, the game compiled succesfully"

clean:
	@$(ECHO) " o Cleaning up source directory"
	@$(RM) *.o *.bak core $(EXE)

install: all
	@$(ECHO) " o Creating install directory $(BINDIR)"
	@$(MD) "$(BINDIR)"
	@$(ECHO) " o Installing game and data to $(BINDIR)"
	@$(CP) $(DATA) "$(BINDIR)"
	$(CHMOD) +x "$(BINDIR)/keen.sh"
	@$(CP) "$(EXE)" "$(BINDIR)/bin"
	@$(ECHO) " o Creating application menu entry"
	@$(MD) "$(ICNDIR)"
	@$(CP) "$(EXTRADIR)/$(ICON)" "$(ICNDIR)"
	@$(MD) "$(APPDIR)"
	@$(CP) "$(EXTRADIR)/$(DESKTOP)" "$(APPDIR)"
	@$(ECHO) ""

uninstall:
	@$(ECHO) " o Removing game and data from $(BINDIR)"
	@$(RM) -r "$(BINDIR)"
	@$(ECHO) " o Removing application menu entry"
	@$(RM) "$(ICNDIR)/$(ICON)" "$(APPDIR)/$(DESKTOP)"
	@$(ECHO) ""

