
CC=gcc
#FLAGS= -Wall -g
FLAGS= -O3 -Wall -march=core2 -fomit-frame-pointer
LFLAGS= -lm # -lpthread -lz

LIB=./lib
INCLUDE=./include
BIN=./bin
SRC=./src
OBJ=./obj

LIBMAC6903_DIR=../libmac6903

libmac6903_LIB = -L$(LIBMAC6903_DIR)/lib -lmac6903
libmac6903_FLAGS = -I$(LIBMAC6903_DIR)/include

#Rules
all: random_walk_seg

libmac6903:
	$(MAKE) -C $(LIBMAC6903_DIR)

random_walk_seg: $(BIN)/random_walk_seg

$(BIN)/random_walk_seg: $(OBJ)/main.o $(OBJ)/random_walk.o $(OBJ)/temp_sparse_matrix.o libmac6903
	$(CC) $(FLAGS) $(libmac6903_LIB) $(LFLAGS) $(OBJ)/main.o $(OBJ)/random_walk.o -llis -lmac6903 $(OBJ)/temp_sparse_matrix.o -o $@

$(OBJ)/main.o: $(SRC)/main.c $(INCLUDE)/random_walk.h
	$(CC) $(FLAGS) $(libmac6903_FLAGS) -I$(INCLUDE) -c $< -I$(INCLUDE) -o $@

$(OBJ)/temp_sparse_matrix.o: $(SRC)/temp_sparse_matrix.c $(INCLUDE)/temp_sparse_matrix.h
	$(CC) $(FLAGS) -c $< -I$(INCLUDE) -o $@

$(OBJ)/random_walk.o: $(SRC)/random_walk.c $(INCLUDE)/random_walk.h $(INCLUDE)/temp_sparse_matrix.h
	$(CC) $(FLAGS) $(libmac6903_FLAGS) -I$(INCLUDE) -c $< -o $@

clean:
	$(RM) -f *~ $(OBJ)/*.o $(BIN)/random_walk_seg

