CC = gcc
SHELL := /bin/bash

INCLUDE := include
CFLAGS = -Wall -Wextra -I$(INCLUDE) -ggdb

BUILD_DIR := build
TEST_BUILD_DIR := $(BUILD_DIR)/test
TEST_BUILD_FILES := $(TEST_BUILD_DIR)/test.o \
					$(TEST_BUILD_DIR)/array.o \

INCLUDE_INSTALL_PATH := /usr/local/include/LTypes

all: test

test: $(TEST_BUILD_FILES)
	$(CC) $(CFLAGS) -I./test/include -o $(TEST_BUILD_DIR)/test $(TEST_BUILD_FILES)
	@echo ""
	$(TEST_BUILD_DIR)/test

$(TEST_BUILD_DIR)/%.o: test/%.c | $(TEST_BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

$(TEST_BUILD_DIR):
	mkdir -p $(TEST_BUILD_DIR)

$(INCLUDE_INSTALL_PATH):
	mkdir -p $(INCLUDE_INSTALL_PATH)

install: $(INCLUDE_INSTALL_PATH)
	cp $(INCLUDE)/* $(INCLUDE_INSTALL_PATH)

clean:
	rm -rf $(BUILD_DIR)
