pagerank/Makefile

52 lines
1.4 KiB
Makefile

# --------------------------------------------------
# Configuration
# --------------------------------------------------
CC := gcc
CFLAGS := -Wall -fopenmp -O3
SRCDIR := src
OBJDIR := out
DATAPATH := data/web-Google/web-Google.mtx
#
SRCS := $(wildcard $(SRCDIR)/*.c)
OBJS := $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SRCS))
# --------------------------------------------------
# Phony targets
# --------------------------------------------------
.PHONY: all sparse clean
all: sparse
sparse: $(OBJDIR)/sparse | $(OBJDIR)
@echo "→ Running sparse"
./$(OBJDIR)/sparse
# --------------------------------------------------
# Link
# --------------------------------------------------
$(OBJDIR)/sparse: $(OBJS) $(DATAPATH) | $(OBJDIR)
@echo "→ Copying input data"
cp $(DATAPATH) $(OBJDIR)/input.rb
@echo "→ Linking $@"
$(CC) $(CFLAGS) -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)/*