diff --git a/Makefile b/Makefile index 031b8e7..83a59b4 100644 --- a/Makefile +++ b/Makefile @@ -8,34 +8,36 @@ CFLAGS += -Wconversion -Wunreachable-code CFLAGS += -D_GNU_SOURCE LDFLAGS = -SRC = modfetch.c semver.c -OBJ = $(SRC:.c=.o) +NAME = modfetch + +PROG = modfetch.c +LIB = semver.c +OBJ = $(PROG:.c=.o) $(LIB:.c=.o) BIN = target TEMPMOD = $(wildcard modules/*.c) MOD = $(TEMPMOD:modules/%=%) -PROGRAM = modfetch .PHONY: all clean -all: dirs modules $(PROGRAM) +all: dirs modules $(NAME) modules: dirs $(MOD:.c=.so) dirs: - mkdir -p ./$(BIN) + mkdir -p $(BIN) -$(PROGRAM): $(addprefix $(BIN)/, $(OBJ)) - $(CC) -o $(BIN)/$(PROGRAM) $^ $(LDFLAGS) +$(NAME): $(OBJ) + $(CC) -o $(BIN)/$(NAME) $(addprefix $(BIN)/, $^) $(LDFLAGS) + +%.so: modules/%.c $(LIB) + $(CC) -o $(BIN)/$@ $^ -shared -fPIC $(CFLAGS) $(LDFLAGS) %.o: %.c $(CC) -o $(BIN)/$@ -c $< $(CFLAGS) -%.so: modules/%.c - $(CC) -o $(BIN)/$@ $^ -shared -fPIC $(CFLAGS) - clean: clean_modules - rm -rf $(OBJ) - rm -rf $(PROGRAM) + rm -rf $(addprefix $(BIN)/, $(OBJ)) + rm -rf $(BIN)/$(NAME) clean_modules: rm -rf $(wildcard $(BIN)/*.so)