# -------------------------------------------------- # Configuration # -------------------------------------------------- CC := gcc CFLAGS := -Wall -fopenmp -O3 LDFLAGS := -lm SRCDIR := src OBJDIR := out # SRCS := $(wildcard $(SRCDIR)/*.c) OBJS := $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SRCS)) # -------------------------------------------------- # Phony targets # -------------------------------------------------- .PHONY: all pagerank clean all: pagerank pagerank: $(OBJDIR)/pagerank | $(OBJDIR) @echo "→ Build complete: pagerank" # -------------------------------------------------- # Link # -------------------------------------------------- $(OBJDIR)/pagerank: $(OBJS) | $(OBJDIR) @echo "→ Linking $@" $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) # -------------------------------------------------- # Compile # -------------------------------------------------- $(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR) @echo "→ Compiling $<" $(CC) $(CFLAGS) -c $< -o $@ # -------------------------------------------------- # Check if output directory exists # -------------------------------------------------- $(OBJDIR): mkdir -p $(OBJDIR) # -------------------------------------------------- # Clean # -------------------------------------------------- clean: rm -rf $(OBJDIR)/*