# Makefile for spacefight

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 = spacefight
HFILES = main.h menu_helper.h gameskel.h random_check.h \
	levelact.h misc.h topten.h \
	obj-bg.h obj-text.h obj-player.h obj-playershot.h \
	obj-fighter.h obj-fightershot.h obj-radar.h obj-mine.h \
	obj-tanker.h obj-bomber.h obj-escort.h obj-cargoship.h \
	obj-factory.h obj-asteroid.h obj-battleship.h obj-mothership.h \
	obj-mothershot.h
OBJ = ofunc.o main.o menu_helper.o save.o gameskel.o random_check.o \
	levelact.o misc.o topten.o \
	objmgmt-fighter.o objmgmt-radar.o objmgmt-mine.o \
	objmgmt-tanker.o objmgmt-bomber.o objmgmt-cargoship.o \
	objmgmt-factory.o objmgmt-asteroid.o objmgmt-battleship.o \
	obj-bg.o obj-text.o obj-player.o obj-playershot.o \
	obj-fighter.o obj-fightershot.o obj-radar.o obj-mine.o \
	obj-tanker.o obj-bomber.o obj-escort.o obj-cargoship.o \
	obj-factory.o obj-asteroid.o obj-battleship.o obj-mothership.o \
	obj-mothershot.o \
	objobj-player-playershot.o objobj-fighter-fightershot.o \
	objobj-player-fighter.o objobj-player-fightershot.o \
	objobj-fighter-playershot.o objobj-player-radar.o \
	objobj-radar-playershot.o objobj-mine-playershot.o \
	objobj-player-mine.o objobj-tanker-playershot.o \
	objobj-player-tanker.o objobj-player-bomber.o \
	objobj-bomber-playershot.o objobj-escort-fighter.o \
	objobj-player-cargoship.o objobj-cargoship-playershot.o \
	objobj-player-factory.o objobj-factory-playershot.o \
	objobj-factory-fightershot.o objobj-player-asteroid.o \
	objobj-asteroid-playershot.o objobj-fighter-asteroid.o \
	objobj-asteroid-asteroid.o objobj-battleship-fightershot.o \
	objobj-battleship-playershot.o objobj-mothership-mothershot.o \
	objobj-mothership-playershot.o objobj-player-mothershot.o \
	objobj-player-battleship.o objobj-player-mothership.o


# +++ compile and clean +++

all: version $(GAME)

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

clean:
	rm -f $(GAME) $(OBJ)

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


# +++ object files ++++

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

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

menu_helper.o: menu_helper.c menu_helper.h
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c menu_helper.c

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

objobj-fighter-fightershot.o: objobj-fighter-fightershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-fighter-fightershot.c

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

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

objobj-fighter-playershot.o: objobj-fighter-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-fighter-playershot.c

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

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

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

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

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

objobj-radar-playershot.o: objobj-radar-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-radar-playershot.c

objobj-mine-playershot.o: objobj-mine-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-mine-playershot.c

objobj-tanker-playershot.o: objobj-tanker-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-tanker-playershot.c

objobj-bomber-playershot.o: objobj-bomber-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-bomber-playershot.c

objobj-escort-fighter.o: objobj-escort-fighter.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-escort-fighter.c

objobj-cargoship-playershot.o: objobj-cargoship-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-cargoship-playershot.c

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

objobj-factory-playershot.o: objobj-factory-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-factory-playershot.c

objobj-factory-fightershot.o: objobj-factory-fightershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-factory-fightershot.c

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

objobj-asteroid-playershot.o: objobj-asteroid-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-asteroid-playershot.c

objobj-fighter-asteroid.o: objobj-fighter-asteroid.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-fighter-asteroid.c

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

objobj-battleship-fightershot.o: objobj-battleship-fightershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-battleship-fightershot.c

objobj-battleship-playershot.o: objobj-battleship-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-battleship-playershot.c

objobj-mothership-mothershot.o: objobj-mothership-mothershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-mothership-mothershot.c

objobj-mothership-playershot.o: objobj-mothership-playershot.c $(HFILES)
	$(CC) $(CFLAGS) $(VGAG_CFLAGS) -c objobj-mothership-playershot.c

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

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

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

