XOPTS=-DPACKAGE_NAME=\"xinvaders3d\" \
     -DPACKAGE_TARNAME=\"xinvaders3d\" \
     -DPACKAGE_VERSION=\"1.9.0\" \
     -DPACKAGE_STRING=\"xinvaders3d\ 1.9.0\" \
     -DPACKAGE_BUGREPORT=\"https://github.com/JoesCat/xinvaders3d/issues\" \
     -DPACKAGE_URL=\"https://github.com/JoesCat/xinvaders3d\" \
     -DPACKAGE=\"xinvaders3d\" \
     -DVERSION=\"1.9.0\" \
     -DSTDC_HEADERS=1 \
     -DHAVE_SYS_TYPES_H=1 \
     -DHAVE_SYS_STAT_H=1 \
     -DHAVE_STDLIB_H=1 \
     -DHAVE_STRING_H=1 \
     -DHAVE_MEMORY_H=1 \
     -DHAVE_STRINGS_H=1 \
     -DHAVE_INTTYPES_H=1 \
     -DHAVE_STDINT_H=1 \
     -DHAVE_UNISTD_H=1 \
     -D__EXTENSIONS__=1 \
     -D_ALL_SOURCE=1 \
     -D_GNU_SOURCE=1 \
     -D_POSIX_PTHREAD_SEMANTICS=1 \
     -D_TANDEM_SOURCE=1 \
     -DMOTIF=HAVE_MOTIF \
     -DGAME_LINUX_X11=1 \
     -I. \
     -g \
     -O2 \
     -Wall -Wextra -Wcast-align -Wbad-function-cast -Wc++-compat -Wmissing-prototypes -Wunused -Wdeprecated-declarations

OPTS=-DGAME_PITREX=1 -I. -g -O2 -Wall

all: xinv3d vexinv3d

aliens.o: aliens.c game.h mat4x4.h vec4x1.h camera.h system.h defines.h object.h externs.h
	gcc $(OPTS) -c aliens.c

camera.o: camera.c mat4x4.h vec4x1.h camera.h
	gcc $(OPTS) -c camera.c

effects.o: effects.c game.h mat4x4.h vec4x1.h camera.h system.h defines.h object.h externs.h
	gcc $(OPTS) -c effects.c

game.o: game.c game.h mat4x4.h vec4x1.h camera.h system.h defines.h object.h externs.h gtext.h
	gcc $(OPTS) -c game.c

object.o: object.c mat4x4.h vec4x1.h defines.h object.h
	gcc $(OPTS) -c object.c

mat4x4.o: mat4x4.c mat4x4.h vec4x1.h
	gcc $(OPTS) -c mat4x4.c

player.o: player.c game.h mat4x4.h vec4x1.h camera.h system.h defines.h object.h externs.h
	gcc $(OPTS) -c player.c

vec4x1.o: vec4x1.c vec4x1.h
	gcc $(OPTS) -c vec4x1.c

main-pitrex.o: main-pitrex.c game.h mat4x4.h vec4x1.h camera.h system.h defines.h object.h externs.h
	gcc $(OPTS) -c main-pitrex.c

main-x11.o: main-x11.c game.h mat4x4.h vec4x1.h camera.h system.h defines.h object.h externs.h
	gcc $(OPTS) -c main-x11.c

xinv3d: aliens.o camera.o effects.o game.o object.o mat4x4.o player.o vec4x1.o main-x11.o
	gcc $(OPTS) -DGAME_LINUX_X11=1 -o xinv3d aliens.o camera.o effects.o game.o object.o mat4x4.o player.o vec4x1.o main-x11.o -lX11 -lm 

vexinv3d: aliens.o camera.o effects.o game.o object.o mat4x4.o player.o vec4x1.o main-pitrex.o
	gcc $(OPTS) -o vexinv3d aliens.o camera.o effects.o game.o object.o mat4x4.o player.o vec4x1.o main-pitrex.o -lm 

clean:
	rm -f *~ aliens.o camera.o effects.o game.o object.o mat4x4.o player.o vec4x1.o main-pitrex.o xinv3d vexinv3d
