DUMPMACHINE := $(shell $(CC) -dumpmachine)

ifneq ($(firstword $(filter x86_64-%,$(DUMPMACHINE))),)
  XCFLAGS = -march=x86-64 -mtune=nocona
else ifneq ($(firstword $(filter i686-%,$(DUMPMACHINE))),)
  XCFLAGS = -march=pentiumpro -mtune=intel
endif

CFLAGS = -std=c99 -O3 -DNDEBUG -Wpedantic -Iinclude $(XCFLAGS)

SRC_PATH := src
OBJ_PATH := obj
LIB_PATH := lib

LIB_FILE := $(LIB_PATH)/libhashset-1.a
OBJ_FILE := $(OBJ_PATH)/hash_set.o

.PHONY: all clean

all: $(LIB_FILE)

$(LIB_FILE): $(OBJ_FILE) $(LIB_PATH)
	$(AR) rcs $@ $<

$(OBJ_FILE): $(SRC_PATH) $(OBJ_PATH)
	$(CC) $(CFLAGS) -c $(SRC_PATH)/$(patsubst %.o,%.c,$(notdir $@)) -o $@

$(SRC_PATH) $(OBJ_PATH) $(LIB_PATH):
	mkdir -p $@

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