Repository navigation
Expand file tree
/
Copy pathMakefile.rule
More file actions
113 lines (103 loc) · 2.65 KB
/
Copy pathMakefile.rule
File metadata and controls
113 lines (103 loc) · 2.65 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# Copyright 2019 the deepx authors.
# Author: Yafei Zhang (kimmyzhang@tencent.com)
#
SOURCE_ROOT := $(shell pwd)
BUILD_ROOT := $(shell pwd)
CC ?= gcc
CXX ?= g++
AR ?= ar
CPPFLAGS += -I$(SOURCE_ROOT)/include -I$(SOURCE_ROOT)/thirdparty
CFLAGS += -pthread -std=c11 -g -Wall -Wextra -Werror -pedantic
CXXFLAGS += -pthread -std=c++11 -g -Wall -Wextra -Werror -pedantic
LDFLAGS += -pthread
MACHINE := $(shell $(CXX) $(CPPFLAGS) $(CXXFLAGS) -dumpmachine)
BUILD_DIR := build_$(MACHINE)
BUILD_DIR_ABS = $(BUILD_ROOT)/$(BUILD_DIR)
PREFIX := /usr/local
OS_DARWIN := 0
OS_LINUX := 0
OS_POSIX := 0
OS_WIN := 0
OS_MINGW := 0
ifeq ($(findstring darwin,$(MACHINE)),darwin)
OS_DARWIN := 1
OS_POSIX := 1
CPPFLAGS += -DOS_DARWIN=1 -DOS_POSIX=1
endif
ifeq ($(findstring linux,$(MACHINE)),linux)
OS_LINUX := 1
OS_POSIX := 1
CPPFLAGS += -DOS_LINUX=1 -DOS_POSIX=1
LDFLAGS += -ldl
endif
ifeq ($(findstring mingw,$(MACHINE)),mingw)
OS_WIN := 1
OS_MINGW := 1
CPPFLAGS += -DOS_WIN=1 -DOS_MINGW=1
CPPFLAGS += -D_WIN32_WINNT=0x0501
LDFLAGS += -lws2_32 -lmswsock -static
endif
DEBUG ?= 0
ifeq ($(DEBUG),1)
CFLAGS += -O0
CXXFLAGS += -O0 -Og
BUILD_DIR := $(BUILD_DIR)_d
else
CPPFLAGS += -DNDEBUG
CFLAGS += -O3
CXXFLAGS += -O3
BUILD_DIR := $(BUILD_DIR)_r
endif
SIMD ?= 0
ifeq ($(SIMD),1)
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59800
CFLAGS := $(filter-out -Werror,$(CFLAGS))
CXXFLAGS := $(filter-out -Werror,$(CXXFLAGS))
CFLAGS += -ftree-vectorize -ffast-math -mavx -mfma -mavx2
CXXFLAGS += -ftree-vectorize -ffast-math -mavx -mfma -mavx2
endif
SAGE2 ?= 0
SAGE2_SGEMM ?= 0
SAGE2_SGEMM_JIT ?= 0
_SAGE2 := 0
ifeq ($(SAGE2),1)
CPPFLAGS += -DHAVE_SAGE2=1
_SAGE2 := 1
endif
ifeq ($(SAGE2_SGEMM),1)
CPPFLAGS += -DHAVE_SAGE2_SGEMM=1
_SAGE2 := 1
endif
ifeq ($(SAGE2_SGEMM_JIT),1)
CPPFLAGS += -DHAVE_SAGE2_SGEMM_JIT=1
_SAGE2 := 1
endif
ifeq ($(_SAGE2),1)
CPPFLAGS += -I$(BUILD_ROOT)/sage2/include
LDFLAGS += $(BUILD_ROOT)/sage2/$(BUILD_DIR)/libsage2.a
endif
3RD_CPPFLAGS := $(CPPFLAGS)
3RD_CFLAGS := $(filter-out -Wall -Wextra -Werror -pedantic,$(CFLAGS))
3RD_CXXFLAGS := $(filter-out -Wall -Wextra -Werror -pedantic,$(CXXFLAGS))
# export for subdir
export SOURCE_ROOT
export BUILD_ROOT
export CC
export CXX
export AR
export CPPFLAGS
export CFLAGS
export CXXFLAGS
export 3RD_CPPFLAGS
export 3RD_CFLAGS
export 3RD_CXXFLAGS
export LDFLAGS
export MACHINE
export BUILD_DIR
export BUILD_DIR_ABS
export PREFIX
export OS_DARWIN
export OS_LINUX
export OS_POSIX
export OS_WIN
export OS_MINGW