-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
49 lines (39 loc) · 1.1 KB
/
Makefile
File metadata and controls
49 lines (39 loc) · 1.1 KB
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
CLA=clang++
CXX=g++
CXXFLAGS=-std=c++11 -Ofast -DFINAL_CHECK -DSPECIAL_HP -fpermissive
UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
ifeq ($(UNAME_S), Linux)
LIBNAME = libutils_linux64.so
else
ifeq ($(UNAME_M), arm64)
LIBNAME = libutils_Mac_M1.so
else
LIBNAME = libutils_Mac_x86.so
endif
endif
LIBDIR = src/Utils/lib
LIB = $(LIBDIR)/$(LIBNAME)
SOURCES = src/ensemble_design.cpp
DEPS = src/optimizer.cpp src/optimizer.h src/Utils/reader.h src/Utils/network.h src/Utils/codon.h src/Utils/utility_v.h src/Utils/common.h src/Utils/base.h
BIN = bin/EnsembleDesign
all: $(BIN)
$(BIN): $(SOURCES) $(DEPS) $(LIB) | bin
@echo "Compiling binary $(BIN) using $(LIBNAME)..."
mkdir -p bin
cp $(LIB) $(LIBDIR)/libutils.so
if $(CLA) $(CXXFLAGS) $(SOURCES) -o $(BIN) $(LIBDIR)/libutils.so; then \
echo "Compiled with clang++; finished"; \
else \
if $(CXX) $(CXXFLAGS) $(SOURCES) -o $(BIN) $(LIBDIR)/libutils.so; then \
echo "Compiled with g++; finished"; \
else \
echo "Compilation failed!"; \
exit 1; \
fi; \
fi
bin:
mkdir -p bin
.PHONY: clean
clean:
rm -f $(BIN)