SRC=src
OBJ=obj

CC=gcc
CFLAGS=-Wall -Wextra -O3

TARGET=libgravity.so
TEST_TARGET=testapp

SRCS=$(wildcard $(SRC)/*.c)
OBJS=$(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(SRCS))

$(TARGET): $(OBJS)
	$(CC) -shared $(OBJS) -o $(TARGET)

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

$(TEST_TARGET): test.c $(TARGET)
	$(CC) $(CFLAGS) test.c -lgravity -L. -o $(TEST_TARGET) 

test: $(TEST_TARGET)

setup:
	mkdir -p $(OBJ)

clean:
	rm $(TARGET)
	rm $(TEST_TARGET)
	rm -r $(OBJ)/*.o

install: $(TARGET)
	sudo cp $(TARGET) /usr/local/lib/

.PHONY: setup clean test install