CC = gcc
LIB = lib/libtgui.a
CFLAGS = -Iinclude -O3 -funroll-loops -ffast-math -fomit-frame-pointer -Wall
CLFLAGS = -s -Llib
AR = ar


all: lib/libtgui.a test/test

test/test: lib/libtgui.a test/obj/test.o
	$(CC) $(CLFLAGS) -o test/test test/obj/test.o -lstdc++ -ltgui -lpng -lldpng `allegro-config --libs`

test/obj/test.o: test/src/test.cpp
	$(CC) $(CFLAGS) -c test/src/test.cpp -o test/obj/test.o

lib/libtgui.a: obj/TButton.o obj/TCheck.o obj/TDialog.o obj/TGui.o obj/TList.o obj/TMessage.o obj/TObject.o obj/TPanel.o obj/TRadio.o obj/TSkin.o obj/TSpin.o obj/TStatic.o
	$(AR) rsv lib/libtgui.a obj/TButton.o obj/TCheck.o obj/TDialog.o obj/TGui.o obj/TList.o obj/TMessage.o obj/TObject.o obj/TPanel.o obj/TRadio.o obj/TSkin.o obj/TSpin.o obj/TStatic.o

obj/TButton.o: src/TButton.cpp include/TButton.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TButton.cpp -o obj/TButton.o

obj/TCheck.o: src/TCheck.cpp include/TCheck.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TCheck.cpp -o obj/TCheck.o

obj/TDialog.o: src/TDialog.cpp include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TDialog.cpp -o obj/TDialog.o

obj/TGui.o: src/TGui.cpp include/TGui.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TGui.cpp -o obj/TGui.o

obj/TList.o: src/TList.cpp include/TList.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TList.cpp -o obj/TList.o

obj/TMessage.o: src/TMessage.cpp include/TMessage.h
	$(CC) $(CFLAGS) -c src/TMessage.cpp -o obj/TMessage.o

obj/TObject.o: src/TObject.cpp include/TObject.h include/TDialog.h
	$(CC) $(CFLAGS) -c src/TObject.cpp -o obj/TObject.o

obj/TPanel.o: src/TPanel.cpp include/TPanel.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TPanel.cpp -o obj/TPanel.o

obj/TRadio.o: src/TRadio.cpp include/TRadio.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TRadio.cpp -o obj/TRadio.o

obj/TSkin.o: src/TSkin.cpp include/TSkin.h
	$(CC) $(CFLAGS) -c src/TSkin.cpp -o obj/TSkin.o

obj/TSpin.o: src/TSpin.cpp include/TSpin.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TSpin.cpp -o obj/TSpin.o

obj/TStatic.o: src/TStatic.cpp include/TStatic.h include/TDialog.h include/TObject.h
	$(CC) $(CFLAGS) -c src/TStatic.cpp -o obj/TStatic.o

clean:
	rm obj/*.o
	rm test/obj/*.o

remove:
	rm lib/*.a
	rm obj/*.o
	rm test/test
	rm test/obj/*.o

install: lib/libtgui.a
	cp lib/libtgui.a /usr/local/lib
	cp include/*.h /usr/local/include
