File: Makefile

package info (click to toggle)
xbyak 7.24.2-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,068 kB
  • sloc: cpp: 21,493; ansic: 2,981; python: 372; makefile: 306; sh: 204
file content (131 lines) | stat: -rw-r--r-- 3,137 bytes parent folder | download
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# To compile with -m32
# apt install g++-multilib
CXX_32 = $(CXX) -m32
CXX_64 = $(CXX) -m64
TARGET = make_nm normalize_prefix bad_address misc cvt_test cvt_test32 noexception misc32 detect_x32 avx10_test
XBYAK_INC=../xbyak/xbyak.h ../xbyak/xbyak_mnemonic.h ../xbyak/xbyak_util.h
UNAME_S=$(shell uname -s)
ifeq ($(shell ./detect_x32),x32)
X32?=1
endif
BIT=32
ifeq ($(shell uname -m),x86_64)
BIT=64
endif
ONLY_64BIT=0
ifeq ($(UNAME_S),Darwin)
  # 32-bit binary is not supported
  ONLY_64BIT=1
endif
ifeq ($(findstring MINGW64,$(UNAME_S)),MINGW64)
  ONLY_64BIT=1
endif
ifeq ($(ONLY_64BIT),0)
  TARGET += jmp address
endif

ifeq ($(BIT),64)
	TARGET += jmp64 address64 apx
	TARGET += sf_test
endif

all: $(TARGET)

CFLAGS_WARN=-Wall -Wextra -Wformat=2 -Wcast-qual -Wwrite-strings -Wfloat-equal -Wpointer-arith

CFLAGS=-O2 -Wall -I.. -I. $(CFLAGS_WARN) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) #-std=c++0x
make_nm:
	$(CXX) $(CFLAGS) make_nm.cpp -o $@
normalize_prefix: normalize_prefix.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) normalize_prefix.cpp -o $@
test_mmx: test_mmx.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) test_mmx.cpp -o $@ -lpthread
jmp: jmp.cpp $(XBYAK_INC)
	$(CXX_32) $(CFLAGS) $< -o $@
jmp64: jmp.cpp $(XBYAK_INC)
	$(CXX_64) $(CFLAGS) $< -o $@
address: address.cpp $(XBYAK_INC)
	$(CXX_32) $(CFLAGS) $< -o $@
address64: address.cpp $(XBYAK_INC)
	$(CXX_64) $(CFLAGS) $< -o $@
bad_address: bad_address.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@
misc: misc.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@
misc32: misc.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@ -DXBYAK32
cvt_test: cvt_test.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@
cvt_test32: cvt_test.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@ -DXBYAK32
noexception: noexception.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@ -fno-exceptions
apx: apx.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@
avx10_test: avx10_test.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@ -DXBYAK64
sf_test: sf_test.cpp $(XBYAK_INC)
	$(CXX) $(CFLAGS) $< -o $@ -DXBYAK64

TEST_FILES=old.txt new-ymm.txt bf16.txt comp.txt misc.txt convert.txt minmax.txt saturation.txt apx.txt
xed_test:
	@set -e; \
	for target in $(addprefix avx10/, $(TEST_FILES)); do \
		./test_by_xed.sh $$target || exit 1; \
	done

test_nm: normalize_prefix $(TARGET)
	$(MAKE) -C ../gen
ifneq ($(ONLY_64BIT),1)
	CXX=$(CXX) ./test_nm.sh Y
	./jmp
	./cvt_test32
endif
	./bad_address
	./misc
	./misc32
	./cvt_test
ifeq ($(BIT),64)
ifneq ($(X32),1)
	CXX=$(CXX) ./test_nm.sh Y64
endif
	./jmp64
	./apx
	./avx10_test
endif

test_avx: normalize_prefix
ifneq ($(ONLY_64BIT),0)
	CXX=$(CXX) ./test_avx.sh Y
endif
ifeq ($(BIT),64)
ifneq ($(X32),1)
	CXX=$(CXX) ./test_avx.sh Y64
endif
endif

test_avx512: normalize_prefix
ifneq ($(ONLY_64BIT),0)
endif
ifeq ($(BIT),64)
endif

test_avx10: avx10_test
	./avx10_test

detect_x32: detect_x32.c
	$(CC) $< -o $@

test: detect_x32
	$(MAKE) test_nm
	$(MAKE) test_avx
	$(MAKE) test_avx512

clean:
	$(RM) a.asm *.lst *.obj *.o $(TARGET) lib_run nm.cpp nm_frame make_512 avx10_test detect_x32

lib_run: lib_test.cpp lib_run.cpp lib.h
	$(CXX) $(CFLAGS) lib_run.cpp lib_test.cpp -o lib_run
make_nm: make_nm.cpp $(XBYAK_INC)

.PHONY: test