SRC=src OBJ=obj CC=gcc CFLAGS=-Wall -Wextra -fPIC -O3# -fsanitize=address -g TARGET=libgravity.so TEST_TARGET=testapp SRCS=$(shell find $(SRC) -name '*.c') OBJS=$(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(SRCS)) $(TARGET): $(OBJS) $(CC) -shared $(OBJS) -o $(TARGET) $(OBJ)/%.o: $(SRC)/%.c @mkdir -p $(dir $@) $(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: find $(OBJ) -name '*.o' -delete rm $(TARGET) rm $(TEST_TARGET) install: $(TARGET) sudo cp $(TARGET) /usr/local/lib/ .PHONY: setup clean test install