CC=gcc
CFLAGS=-c -Wall -O2 -g3
LDFLAGS=-lSDL -lSDL_gfx -lSDL_ttf -lSDL_image -lSDL_mixer
SOURCES=main.c gfxtools.c game.c sound.c types.h
OBJECTS=$(SOURCES:.c=.o)
HEADERS=$(SOURCES:.c=.h)
EXECUTABLE=main

all: $(EXECUTABLE)

# Make executable from objects (.o) files
$(EXECUTABLE): $(OBJECTS)
	$(CC) $(LDFLAGS) $(OBJECTS) -o $@

# Make objects (.o) files from source (.c) files
# This depends on all header files to make sure objects are regenerated if headerfiles changes
%.o: %.c $(HEADERS)
	$(CC) $(CFLAGS) $< -o $@
