/
Makefile
58 lines (46 loc) · 1.39 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Written based on the original by Hilton Lipschitz on 2015-09-01.
# Makefile currently tested on MacOS.
UNAME_S := $(shell uname -s)
# CC
ifeq ($(UNAME_S),Darwin)
CC := clang++ -arch x86_64
else
CC := g++
endif
# Folders
SRCDIR := src
BUILDDIR := build
TARGETDIR := bin
BOOSTDIR := /usr/local/Cellar/boost/1.67.0_1
# Targets
EXECUTABLE := SedanSpot
TARGET := $(TARGETDIR)/$(EXECUTABLE)
# Code Lists
SRCEXT := cpp
SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
# Shared Compiler Flags
CFLAGS := -c
INC := -I /usr/local/include -I $(BOOSTDIR)/include
LIB := -L /usr/local/lib -L $(BOOSTDIR)/lib -lboost_program_options
ifeq ($(UNAME_S),Linux)
CFLAGS += -std=gnu++11 -O3 # -fPIC
# PostgreSQL Special
PG_VER := 9.3
INC += -I /usr/pgsql-$(PG_VER)/include
LIB += -L /usr/pgsql-$(PG_VER)/lib
else
CFLAGS += -std=c++11 -stdlib=libc++ -O3
endif
$(TARGET): $(OBJECTS)
@mkdir -p $(TARGETDIR)
@echo " Linking $(TARGET)"; $(CC) $^ -o $(TARGET) $(LIB)
$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
@mkdir -p $(BUILDDIR)
@echo "Compiling $<..."; $(CC) $(CFLAGS) $(INC) -c -o $@ $<
clean:
@echo "Cleaning..."; $(RM) -r $(BUILDDIR) $(TARGETDIR) example/output.csv
test: $(TARGET)
./$(TARGET) --input example/input.csv --sample-size 500 > example/output.csv
@echo 'Anomaly scores written to example/output.csv.'
.PHONY: clean