summaryrefslogtreecommitdiff
path: root/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'makefile')
-rw-r--r--makefile63
1 files changed, 63 insertions, 0 deletions
diff --git a/makefile b/makefile
new file mode 100644
index 0000000..c62c247
--- /dev/null
+++ b/makefile
@@ -0,0 +1,63 @@
+CC = clang
+
+SRC_DIR = src
+INC_DIR = include
+BUILD_DIR = build
+BIN_DIR = bin
+
+TARGET = $(BIN_DIR)/benchmark
+
+SOURCES = \
+ $(SRC_DIR)/main.c \
+ $(SRC_DIR)/spires_interface.c \
+ $(SRC_DIR)/crossbar_generator.c \
+ $(SRC_DIR)/read_crossbar.c
+
+OBJECTS = $(SOURCES:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o)
+
+CPPFLAGS = \
+ -I$(INC_DIR) \
+ -Ispires/include \
+ -I/usr/include/plplot
+
+CFLAGS = \
+ -Wall \
+ -Wextra \
+ -Wpedantic \
+ -std=c11 \
+ -g \
+ -fopenmp
+
+LDFLAGS = \
+ -Lspires/lib \
+ -Wl,-rpath,'$$ORIGIN/../spires/lib'
+
+LDLIBS = \
+ -lspires \
+ -lopenblas \
+ -llapacke \
+ -lplplot \
+ -lm \
+ -fopenmp
+
+.PHONY: all run clean
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECTS) | $(BIN_DIR)
+ $(CC) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $@
+
+$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
+$(BUILD_DIR):
+ mkdir -p $(BUILD_DIR)
+
+$(BIN_DIR):
+ mkdir -p $(BIN_DIR)
+
+run: $(TARGET)
+ ./$(TARGET)
+
+clean:
+ rm -rf $(BUILD_DIR) $(BIN_DIR)