objs = game.o objects.o prepare.o main.o player.o level.o advobj.o levelio.o menu.o helpers.o button.o jpeg.o
edobjs = prepare.o level.o editor.o objects.o advobj.o player.o levelio.o jpeg.o
allobjs = $(objs) $(edobjs)

game: sa.exe
both: sa.exe editor.exe
ed: editor.exe

sa.exe: $(objs)
	g++ $(objs) -lalleg -o sa.exe

editor.exe: $(edobjs)
	g++ $(edobjs) -lalleg -o edit.exe

editor.o: prepare.h objects.h player.h level.h types.h advobj.h levelio.h

game.o: game.h objects.h prepare.h level.h advobj.h player.h types.h levelio.h helpers.h button.h
objects.o: objects.h types.h
prepare.o: prepare.h types.h jpgalleg.h
main.o: objects.h prepare.h game.h
player.o: player.h game.h objects.h types.h level.h prepare.h
level.o: level.h objects.h types.h game.h
advobj.o: advobj.h objects.h types.h prepare.h player.h
levelio.o: types.h level.h player.h game.h
helpers.o: helpers.h
jpeg.o: jpgalleg.h
	gcc -c -o jpeg.o jpeg.c
button.o:
menu.o:

.PHONY: clean game ed both

clean:
	del $(allobjs) sa.exe edit.exe
	del *.bak