CC = gcc
LIBS = -lSDL_mixer $(shell sdl-config --libs) -lm -lSDL_image -lSDL_mixer \
       -lstdc++ -lSDL_net # -lwsock32
INCS = $(shell sdl-config --cflags) -I./VSDL
OPTIMIZE = -Wall -O3
TARGETS = main.o menu.o about.o tournament.o playnet.o world.o ball.o raket.o \
          world_for_SDL.o widgets.o

all: shuffle

ball.o: ball.cpp ball.h
	$(CC) $(OPTIMIZE) $(INCS) -o ball.o -c ball.cpp

raket.o: raket.cpp raket.h
	$(CC) $(OPTIMIZE) $(INCS) -o raket.o -c raket.cpp

world.o: world.cpp world.h def.h
	$(CC) $(OPTIMIZE) $(INCS) -o world.o -c world.cpp

world_for_SDL.o: world_for_SDL.cpp world_for_SDL.h world.o 
	$(CC) $(OPTIMIZE) $(INCS) -o world_for_SDL.o -c world_for_SDL.cpp
 
widgets.o: widgets.cpp widgets.h
	$(CC) $(OPTIMIZE) $(INCS) -o widgets.o -c widgets.cpp

main.o: main.cpp main.h
	$(CC) $(OPTIMIZE) $(INCS) -o main.o -c main.cpp

menu.o: menu.cpp menu.h main.h 
	$(CC) $(OPTIMIZE) $(INCS) -o menu.o -c menu.cpp

about.o: about.cpp about.h main.h
	$(CC) $(OPTIMIZE) $(INCS) -o about.o -c about.cpp

tournament.o: tournament.cpp tournament.h main.h
	$(CC) $(OPTIMIZE) $(INCS) -o tournament.o -c tournament.cpp

playnet.o: playnet.cpp playnet.h main.h
	$(CC) $(OPTIMIZE) $(INCS) -o playnet.o -c playnet.cpp

./VSDL/libVSDL.a: 
	make -C ./VSDL

shuffle: $(TARGETS) ./VSDL/libVSDL.a
	$(CC) $(OPTIMIZE) -mwindows -o shuffle $(TARGETS) ./VSDL/libVSDL.a $(LIBS)

clean:
	#------------Cleaning--------------------------------------------#
	make clean -C ./VSDL
	rm *.o *~ core
	
