mirror of
https://github.com/herumi/xbyak
synced 2024-11-21 16:09:11 -07:00
fbb18f69d5
GitHub's CI default runners are full of all kinds of software, and this
can cause hard to reproduce errors. Luckly, GitHub Actions supports
running jobs in a container image, so that the build environment is
minimal and reprocucible.
This patch changes the main CI job to run in a Debian Testing container,
fixing the issues described in
<cfb1127c3b
>.
As Debian Testing is a semi-rolling relase distribution, and nasm 2.15
is shipped by default, I've also modified the script to install nasm
from apt instead of building it from source.
128 lines
3.1 KiB
Makefile
128 lines
3.1 KiB
Makefile
XBYAK_INC=../xbyak/xbyak.h
|
|
CXX?=g++
|
|
|
|
BOOST_EXIST=$(shell echo "#include <boost/spirit/core.hpp>" | $(CXX) -x c++ -c - 2>/dev/null && echo 1)
|
|
UNAME_M=$(shell uname -m)
|
|
|
|
ONLY_64BIT=0
|
|
ifeq ($(shell uname -s),Darwin)
|
|
ONLY_64BIT=1
|
|
OS=mac
|
|
ifeq ($(UNAME_M),x86_64)
|
|
BIT=64
|
|
endif
|
|
ifeq ($(UNAME_M),i386)
|
|
BIT=32
|
|
endif
|
|
ifeq ($(shell sw_vers -productVersion | cut -c1-4 | sed 's/\.//'),105)
|
|
ifeq ($(shell sysctl -n hw.cpu64bit_capable),1)
|
|
BIT=64
|
|
endif
|
|
endif
|
|
else
|
|
BIT=32
|
|
ifeq ($(UNAME_M),x86_64)
|
|
BIT=64
|
|
endif
|
|
ifeq ($(UNAME_M),amd64)
|
|
BIT=64
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(BIT),64)
|
|
TARGET += test64 bf64 memfunc64 test_util64 jmp_table64
|
|
ifeq ($(BOOST_EXIST),1)
|
|
TARGET += calc64 #calc2_64
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(OS),mac)
|
|
TARGET += static_buf64
|
|
TARGET += memfd
|
|
endif
|
|
|
|
|
|
ifneq ($(ONLY_64BIT),1)
|
|
TARGET += test quantize bf toyvm test_util memfunc static_buf jmp_table
|
|
ifeq ($(BOOST_EXIST),1)
|
|
TARGET += calc #calc2
|
|
endif
|
|
endif
|
|
|
|
all: $(TARGET)
|
|
|
|
CFLAGS_WARN=-Wall -Wextra -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wfloat-equal -Wpointer-arith #-pedantic
|
|
|
|
CFLAGS=-g -O2 -fomit-frame-pointer -Wall -I../ $(CFLAGS_WARN) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
|
|
|
test:
|
|
$(CXX) $(CFLAGS) test0.cpp -o $@ -m32
|
|
|
|
quantize:
|
|
$(CXX) $(CFLAGS) quantize.cpp -o $@ -m32
|
|
|
|
calc:
|
|
$(CXX) $(CFLAGS) calc.cpp -o $@ -m32
|
|
calc64:
|
|
$(CXX) $(CFLAGS) calc.cpp -o $@ -m64
|
|
calc2:
|
|
$(CXX) $(CFLAGS) calc2.cpp -o $@ -m32
|
|
calc2_64:
|
|
$(CXX) $(CFLAGS) calc2.cpp -o $@ -m64
|
|
|
|
bf:
|
|
$(CXX) $(CFLAGS) bf.cpp -o $@ -m32
|
|
bf64:
|
|
$(CXX) $(CFLAGS) bf.cpp -o $@ -m64
|
|
|
|
memfunc:
|
|
$(CXX) $(CFLAGS) memfunc.cpp -o $@ -m32
|
|
memfunc64:
|
|
$(CXX) $(CFLAGS) memfunc.cpp -o $@ -m64
|
|
|
|
toyvm:
|
|
$(CXX) $(CFLAGS) toyvm.cpp -o $@ -m32
|
|
|
|
test64:
|
|
$(CXX) $(CFLAGS) test0.cpp -o $@ -m64
|
|
test_util:
|
|
$(CXX) $(CFLAGS) test_util.cpp -o $@ -m32
|
|
test_util64:
|
|
$(CXX) $(CFLAGS) test_util.cpp -o $@ -m64
|
|
static_buf:
|
|
$(CXX) $(CFLAGS) static_buf.cpp -o $@ -m32
|
|
static_buf64:
|
|
$(CXX) $(CFLAGS) static_buf.cpp -o $@ -m64
|
|
jmp_table:
|
|
$(CXX) $(CFLAGS) jmp_table.cpp -o $@ -m32
|
|
jmp_table64:
|
|
$(CXX) $(CFLAGS) jmp_table.cpp -o $@ -m64
|
|
memfd:
|
|
$(CXX) $(CFLAGS) memfd.cpp -o $@ -m64
|
|
profiler: profiler.cpp ../xbyak/xbyak_util.h
|
|
$(CXX) $(CFLAGS) profiler.cpp -o $@
|
|
profiler-vtune: profiler.cpp ../xbyak/xbyak_util.h
|
|
$(CXX) $(CFLAGS) profiler.cpp -o $@ -DXBYAK_USE_VTUNE -I /opt/intel/vtune_amplifier/include/ -L /opt/intel/vtune_amplifier/lib64 -ljitprofiling -ldl
|
|
|
|
clean:
|
|
rm -rf $(TARGET) profiler profiler-vtune
|
|
|
|
test : test0.cpp $(XBYAK_INC)
|
|
test64: test0.cpp $(XBYAK_INC)
|
|
quantize : quantize.cpp $(XBYAK_INC)
|
|
calc : calc.cpp $(XBYAK_INC)
|
|
calc64 : calc.cpp $(XBYAK_INC)
|
|
calc2 : calc2.cpp $(XBYAK_INC)
|
|
calc2_64 : calc2.cpp $(XBYAK_INC)
|
|
bf : bf.cpp $(XBYAK_INC)
|
|
bf64 : bf.cpp $(XBYAK_INC)
|
|
memfunc : memfunc.cpp $(XBYAK_INC)
|
|
memfunc64 : memfunc.cpp $(XBYAK_INC)
|
|
toyvm : toyvm.cpp $(XBYAK_INC)
|
|
static_buf: static_buf.cpp $(XBYAK_INC)
|
|
static_buf64: static_buf.cpp $(XBYAK_INC)
|
|
test_util : test_util.cpp $(XBYAK_INC) ../xbyak/xbyak_util.h
|
|
test_util2 : test_util.cpp $(XBYAK_INC) ../xbyak/xbyak_util.h
|
|
jmp_table: jmp_table.cpp $(XBYAK_INC)
|
|
jmp_table64: jmp_table.cpp $(XBYAK_INC)
|
|
memfd: memfd.cpp $(XBYAK_INC)
|