forked from mrtuborg/libSTARK
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
49 lines (38 loc) · 1.12 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
include ../flags.mk
WHICH := $(shell which which)
MKDIR := $(shell $(WHICH) mkdir)
DIRNAME := $(shell $(WHICH) dirname)
INCFLAGS=-I. -I$(LIBSTARKINC) -I$(ALGEBRAINC) -I$(FFTINC)
LIBS= \
gtest \
stark \
algebralib \
FFT
LIBFLAGS=$(addprefix -l, $(LIBS))
LNKFLAGS=-L"$(ALGEBRALNKDIR)" -L"$(FFTLIBLNKDIR)" -L"$(LIBSTARKLINKDIR)" -lgomp
SRCDIR = .
SRCEXT = cpp
OBJDIR = $(BLDDIR)/obj
SRCS := $(shell find $(SRCDIR) -name '*.$(SRCEXT)')
SRCDIRS := $(shell find . -name '*.$(SRCEXT)' -exec dirname {} \; | uniq)
OBJS := $(patsubst %.$(SRCEXT),$(OBJDIR)/%.o,$(SRCS))
TARGET=$(BLDDIR)/libstark-tests
all: $(TARGET)
$(TARGET): buildrepo $(OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GCC Linker'
$(CC) -o "$@" $(OBJS) -fopenmp $(LNKFLAGS) $(LIBFLAGS)
@echo 'Finished building target: $@'
$(OBJDIR)/%.o: %.$(SRCEXT)
# @echo "$(CC) $(CFLAGS) $(CPPFLAGS) $(INCFLAGS) -c -o "$@" "$<""
$(CC) $(CFLAGS) $(CPPFLAGS) $(INCFLAGS) -c -o "$@" "$<"
clean:
$(RM) -f $(TARGET) $(OBJS) $(DEPS)
buildrepo:
$(call make-repo)
define make-repo
for dir in $(SRCDIRS); \
do \
mkdir -p $(OBJDIR)/$$dir; \
done
endef