#
# Makefile for random alpha PageRank experiments with libbvg
#
# David Gleich
# Copyright, Stanford University, 2008
# 4 February 2008
#

# setup paths and sources
LIBBVG_SRC_DIR := src
LIBBVG_INCLUDE := -Iinclude -Isrc -Iboost
LIBBVG_SRC := bitfile.c bvgraph.c bvgraph_iterator.c properties.c util.c
LIBBVG_FULL_SRC := $(addprefix $(LIBBVG_SRC_DIR)/,$(LIBBVG_SRC))
LIBBVG_FULL_OBJ := $(LIBBVG_FULL_SRC:.c=.o)

DEPS := rapr_common.hpp

GQPAGERANKNAME := gqrapr
GQPAGERANKOBJS := gqrapr.o 
MCPAGERANKNAME := mcrapr
MCPAGERANKOBJS := mcrapr.o 
PCEPAGERANKNAME := pcerapr_beta
PCEPAGERANKOBJS := pcerapr_beta.o 
BVPAGERANKNAME := bvpr
BVPAGERANKOBJS := bvpagerank.o 

INCLUDE := $(INCLUDE) $(LIBBVG_INCLUDE)

# setup flags
CFLAGS := $(CFLAGS) -Wall -O2 $(LIBBVG_INCLUDE)
CXXFLAGS := $(CXXFLAGS) -Wall -O2 $(LIBBVG_INCLUDE)

# declare phony targets
.PHONY: all clean 

all: $(MCPAGERANKNAME) $(PCEPAGERANKNAME) $(BVPAGERANKNAME) $(GQPAGERANKNAME)

$(MCPAGERANKNAME) : $(LIBBVG_FULL_SRC:.c=.o) $(MCPAGERANKOBJS) $(DEPS)
	$(CXX) $(LIBBVG_FULL_SRC:.c=.o) $(MCPAGERANKOBJS) -o $(MCPAGERANKNAME)
	
$(PCEPAGERANKNAME) : $(LIBBVG_FULL_SRC:.c=.o) $(PCEPAGERANKOBJS) $(DEPS)
	$(CXX) $(LIBBVG_FULL_SRC:.c=.o) $(PCEPAGERANKOBJS) -o $(PCEPAGERANKNAME)	
    
$(BVPAGERANKNAME) : $(LIBBVG_FULL_SRC:.c=.o) $(BVPAGERANKOBJS) $(DEPS)
	$(CXX) $(LIBBVG_FULL_SRC:.c=.o) $(BVPAGERANKOBJS) -o $(BVPAGERANKNAME)	    
	
$(GQPAGERANKNAME) : $(LIBBVG_FULL_SRC:.c=.o) $(GQPAGERANKOBJS) $(DEPS)
	$(CXX) $(LIBBVG_FULL_SRC:.c=.o) $(GQPAGERANKOBJS) -o $(GQPAGERANKNAME)	    	
		
clean:
	$(RM) $(MCPAGERANKOBJS) $(PCEPAGERANKOBJS) $(BVPAGERANKOBJS) \
		$(GQPAGERANKOBJS)
		
clean_all:
	$(RM) $(LIBBVG_FULL_SRC:.c=.o) \
		$(MCPAGERANKOBJS) $(PCEPAGERANKOBJS) \
		$(MCPAGERANKNAME) $(PCEPAGERANKNAME) \
        $(BVPAGERANKNAME) $(BVPAGERANKOBJS) \
        $(GQPAGERANKNAME) $(GQPAGERANKOBJS) \

	