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