52 lines
1.4 KiB
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)/*
|