-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
37 lines (28 loc) · 890 Bytes
/
Makefile
File metadata and controls
37 lines (28 loc) · 890 Bytes
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
CC = g++ -Wall -std=c++11 -O3
UNAME = $(shell uname)
BINDIR = bin
OBJDIR = .obj
SRCDIR = src
DIRS = $(BINDIR) $(OBJDIR)
SOURCESXX := $(wildcard $(SRCDIR)/*.cxx)
SOURCES := $(wildcard $(SRCDIR)/*.cpp)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
EXECUTABLES := $(SOURCESXX:$(SRCDIR)/%.cxx=$(BINDIR)/%)
ifeq ($(UNAME), Darwin)
LIBS = -L/opt/local/lib -L/usr/lib -lgsl -lblas -I/opt/local/include
else
LIBS = -L/usr/lib -lgsl -lblas -l armadillo
INCS = -I /usr/local/include -I/usr/include -I/opt/local/include
endif
all: $(DIRS) $(EXECUTABLES)
directories : $(DIRS)
$(DIRS):
mkdir -p $(DIRS)
$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp
$(CC) $(CFLAGS) -c $< -o $@ $(LIBS) $(INCS)
$(EXECUTABLES): $(BINDIR)/% : $(SRCDIR)/%.cxx $(OBJECTS)
$(CC) -o $@ $< $(OBJECTS) $(LIBS) $(INCS)
.PHONY: all clean directories
clean:
rm $(EXECUTABLES)
rm $(OBJECTS)