CC ?= gcc
CFLAGS ?= -I. -fPIC
OUT_DIR := ..

SRC := polybench.c
OBJ := polybench.o

LIB_DIR := $(OUT_DIR)/lib
INCLUDE_DIR := $(OUT_DIR)/include

STATIC_LIB := $(LIB_DIR)/libpolybench.a
DYNAMIC_LIB := $(LIB_DIR)/libpolybench.so

.PHONY: all clean

all: directories $(STATIC_LIB) $(DYNAMIC_LIB)
	cp polybench.h $(INCLUDE_DIR)

directories:
	mkdir -p $(LIB_DIR)
	mkdir -p $(INCLUDE_DIR)

$(STATIC_LIB): $(OBJ)
	ar rcs $@ $^

$(DYNAMIC_LIB): $(OBJ)
	$(CC) -shared -o $@ $^

$(OBJ): $(SRC)
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -rf $(LIB_DIR) $(INCLUDE_DIR) $(OBJ)