# Makefile GUI_SDL
CFLAGS := -fPIC -c -g -I/usr/local/include 
CLIBS  := -L/usr/local/lib -lSDL -lSDL_ttf -lSDL_mixer -lSDL_image
AR     := ar

WIN32_CFLAGS := -Wall -mwindows -c -I./cross-tools/i586-mingw32/include
WIN32_CLIBS := -L./cross-tools/i586-mingw32/lib -lSDL -lSDL_ttf -lSDL_mixer -lSDL_image
WIN32_CC    := i586-mingw32msvc-gcc

all:
	make clean
	make posix
	make win32
	make post_build

clean:
	rm -rf ./bin/*
	rm -f *.o

posix_compile:
	$(CC) $(CFLAGS) ./src/list.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/pair_list.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/text_list.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/init.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/load.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/keyboard.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/collision.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/physics.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/audio.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/animation.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/drawing.c $(CLIBS)
	$(CC) $(CFLAGS) ./src/sprite.c $(CLIBS)
posix_static:
	mkdir ./bin/posix/static/
	$(AR) -cvq ./bin/posix/static/libMG.a *.o
posix_shared:
	mkdir ./bin/posix/shared/
	$(CC) -shared *.o -o ./bin/posix/shared/libMG.so $(CLIBS)
posix:
	mkdir ./bin/posix/
	make posix_compile
	make posix_static
	make posix_shared

win32_compile:
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/list.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/pair_list.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/text_list.c $(CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/init.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/load.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/keyboard.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/collision.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/physics.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/audio.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/animation.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/drawing.c $(WIN32_CLIBS)
	$(WIN32_CC) $(WIN32_CFLAGS) ./src/sprite.c $(WIN32_CLIBS)

win32_shared:
	mkdir ./bin/win32/shared/
	$(WIN32_CC) -shared *.o -o ./bin/win32/shared/libMG.dll $(WIN32_CLIBS)

win32:
	#TODO: Make crosscompilation
	mkdir ./bin/win32/
	make win32_compile
	make win32_shared

post_build:
	rm *.o
