CXX=g++
OPTFLAGS=-O3 -march=native

CXXFLAGS=-std=gnu++17 -Wall -Wextra $(OPTFLAGS)
# For profiling
# CXXFLAGS=-std=gnu++17 -Wall -Wextra $(OPTFLAGS) -pg -g

SRC_INCLUDE=-Isrc
SRC_OP_INCLUDE=-Isrc_op
BIN_DIR=bin

all: $(BIN_DIR)/measure_sort_time $(BIN_DIR)/measure_sort_op $(BIN_DIR)/create_input_vector

$(BIN_DIR)/measure_sort_time: experiments/measure_sort_time.cpp
	$(CXX) $(CXXFLAGS) $(SRC_INCLUDE) experiments/measure_sort_time.cpp -o $(BIN_DIR)/measure_sort_time

$(BIN_DIR)/measure_sort_op: experiments/measure_sort_op.cpp
	$(CXX) $(CXXFLAGS) $(SRC_OP_INCLUDE) experiments/measure_sort_op.cpp -o $(BIN_DIR)/measure_sort_op

$(BIN_DIR)/create_input_vector: experiments/create_input_vector.cpp
	$(CXX) $(CXXFLAGS) $(SRC_INCLUDE) experiments/create_input_vector.cpp -o $(BIN_DIR)/create_input_vector

clean:
	rm -f $(BIN_DIR)/*
