PROG = hashtbl
OBJS = $(PROG).o hashfuncs.o
CC = gcc
DBGFLAGS = -g -O0
ifdef DEBUG
    CFLAGS = $(DBGFLAGS) -Wall -std=c99
else
    CFLAGS = -Wall -std=c99 -O2 -march=native -mtune=native
endif
LDFLAGS = -lm

$(PROG): $(OBJS)
	$(CC) $(LDFLAGS) $(OBJS) -o $(PROG)

$(PROG).o: $(PROG).c hashtbl.h hashfuncs.h
	$(CC) -c $(CFLAGS) $(PROG).c

hashfuncs.o: hashfuncs.c hashfuncs.h
	$(CC) -c $(CFLAGS) hashfuncs.c

.PHONY: clean

clean:
	rm -f *.o ./$(PROG)