# Makefile for game "haunted castle maze" for VgaGames3

CFLAGS = -W -Wall -O2 -g
VGAG_CFLAGS = `vgagames3-config --cflags`
VGAG_LIBS = `vgagames3-config --libs`
VGAG_VERSION_MAIOR = `vgagames3-config --version-maior`
VGAG_VERSION_MINOR = `vgagames3-config --version-minor`

GAME = haunted-castle-maze
HFILES = main.h obj-maze.h obj-player.h obj-ghost.h obj-minotaur.h
OBJ = main.o ofunc.o misc.o save.o obj-maze.o obj-player.o obj-ghost.o \
	obj-minotaur.o obj-music.o \
	objobj-player-ghost.o objobj-player-minotaur.o \
	objmgmt-ghost.o


# +++ compile and clean +++

all: version $(GAME) mazegenerator.d

version:
	@if test $(VGAG_VERSION_MAIOR) -ne 1 || test $(VGAG_VERSION_MINOR) -lt 3; then \
	  echo "*** VgaGames3 version 1.3 or higher is needed ***" >&2; \
	  exit 1; \
	fi

clean:
	rm -f $(GAME) $(OBJ)
	cd mazegenerator && $(MAKE) clean


$(GAME): $(OBJ)
	$(CC) $(OBJ) $(VGAG_LIBS) -o $(GAME)


mazegenerator.d:
	cd mazegenerator && $(MAKE)


# +++ object files ++++

main.o: main.c ofunc.o $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c main.c

misc.o: misc.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c misc.c

save.o: save.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c save.c

ofunc.o: ofunc.c
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c ofunc.c

obj-maze.o: obj-maze.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c obj-maze.c

obj-player.o: obj-player.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c obj-player.c

obj-ghost.o: obj-ghost.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c obj-ghost.c

obj-minotaur.o: obj-minotaur.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c obj-minotaur.c

obj-music.o: obj-music.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c obj-music.c

objobj-player-ghost.o: objobj-player-ghost.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-player-ghost.c

objobj-player-minotaur.o: objobj-player-minotaur.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-player-minotaur.c

objmgmt-ghost.o: objmgmt-ghost.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objmgmt-ghost.c

