52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # --------------------------------------------------
 | |
| # Configuration
 | |
| # --------------------------------------------------
 | |
| CC       := gcc
 | |
| CFLAGS   := -Wall -fopenmp -O3
 | |
| LDFLAGS  := -lm
 | |
| 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 pagerank clean
 | |
| 
 | |
| all: pagerank
 | |
| 
 | |
| pagerank: $(OBJDIR)/pagerank | $(OBJDIR)
 | |
| 	@echo "→ Build complete: pagerank"
 | |
| 
 | |
| # --------------------------------------------------
 | |
| # Link
 | |
| # --------------------------------------------------
 | |
| $(OBJDIR)/pagerank: $(OBJS) $(DATAPATH) | $(OBJDIR)
 | |
| 	@echo "→ Copying input data"
 | |
| 	cp $(DATAPATH) $(OBJDIR)/input.mtx
 | |
| 	@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)/*
 |