-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathMakefile
47 lines (34 loc) · 1.09 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
TARGET = ema
LIBS = -L$(BWADIR) -lbwa -lm -lz -lpthread
CC = gcc
WARNINGS = -Wall -Wextra
CFLAGS = -std=gnu99 -march=x86-64 -O3 -fopenmp -flto -fstrict-aliasing $(WARNINGS)
LFLAGS = -lstdc++ -march=x86-64 -O3 -flto -fopenmp -lpthread
CXX = g++
CPPFLAGS = -c -std=c++11 -O3 -march=x86-64 -pthread
LDFLAGS = -pthread
#CFLAGS = -std=gnu99 -fstrict-aliasing -fopenmp -ggdb -O0 $(WARNINGS)
#LFLAGS = -fopenmp -lpthread
SRCDIR = src
OBJDIR = obj
INCDIR = include
CPPDIR = cpp
BWADIR = bwa
.PHONY: default all preproc bwa clean
default: $(TARGET)
all: default
OBJECTS = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(wildcard $(SRCDIR)/*.c)) $(patsubst $(CPPDIR)/%.cc, $(CPPDIR)/%.o, $(wildcard $(CPPDIR)/*.cc))
HEADERS = $(wildcard $(INCDIR)/*.h $(BWADIR)/*.h)
preproc:
$(MAKE) -C $(CPPDIR)
bwa:
$(MAKE) -C $(BWADIR)
$(OBJDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)
$(CC) $(CFLAGS) -I. -I$(INCDIR) -c $< -o $@
.PRECIOUS: $(TARGET) $(OBJECTS)
$(TARGET): $(OBJECTS) preproc bwa
$(CXX) $(LDFLAGS) $(LFLAGS) $(OBJECTS) $(LIBS) -o $@
clean:
-rm -f $(OBJDIR)/*.o
$(MAKE) clean -C $(CPPDIR)
$(MAKE) clean -C $(BWADIR)