diff --git a/src/Makefile b/src/Makefile index 5c52661b..8dba8026 100644 --- a/src/Makefile +++ b/src/Makefile @@ -103,7 +103,7 @@ ifeq ($(ARCH), $(filter $(ARCH), \ x86-64-vnni512 x86-64-vnni256 x86-64-avx512 x86-64-bmi2 x86-64-avx2 \ x86-64-sse41-popcnt x86-64-modern x86-64-ssse3 x86-64-sse3-popcnt \ x86-64 x86-32-sse41-popcnt x86-32-sse2 x86-32 ppc-64 ppc-32 e2k \ - armv7 armv7-neon armv8 apple-silicon general-64 general-32)) + armv7 armv7-neon armv8 apple-silicon general-64 general-32 riscv64)) SUPPORTED_ARCH=true else SUPPORTED_ARCH=false @@ -258,6 +258,12 @@ ifeq ($(ARCH),general-64) arch = any endif +ifeq ($(ARCH),riscv64) + arch = riscv64 + optimize = no +endif + + ifeq ($(ARCH),armv7) arch = armv7 prefetch = yes @@ -323,6 +329,12 @@ ifeq ($(COMP),) COMP=gcc endif +ifeq ($(COMP),riscv64-cartesi-linux-gnu-gcc) + comp=riscv64-cartesi-linux-gnu-gcc + CXX=riscv64-cartesi-linux-gnu-g++ + CXXFLAGS += -pedantic -Wextra -Wshadow +endif + ifeq ($(COMP),gcc) comp=gcc CXX=g++ @@ -708,6 +720,7 @@ help: @echo "apple-silicon > Apple silicon ARM64" @echo "general-64 > unspecified 64-bit" @echo "general-32 > unspecified 32-bit" + @echo "riscv64 > RISC-V 64-bit" @echo "" @echo "Supported compilers:" @echo "" @@ -849,28 +862,29 @@ config-sanity: net @echo "" @echo "Testing config sanity. If this fails, try 'make help' ..." @echo "" - @test "$(debug)" = "yes" || test "$(debug)" = "no" - @test "$(optimize)" = "yes" || test "$(optimize)" = "no" - @test "$(SUPPORTED_ARCH)" = "true" - @test "$(arch)" = "any" || test "$(arch)" = "x86_64" || test "$(arch)" = "i386" || \ - test "$(arch)" = "ppc64" || test "$(arch)" = "ppc" || test "$(arch)" = "e2k" || \ - test "$(arch)" = "armv7" || test "$(arch)" = "armv8" || test "$(arch)" = "arm64" - @test "$(bits)" = "32" || test "$(bits)" = "64" - @test "$(prefetch)" = "yes" || test "$(prefetch)" = "no" - @test "$(popcnt)" = "yes" || test "$(popcnt)" = "no" - @test "$(pext)" = "yes" || test "$(pext)" = "no" - @test "$(sse)" = "yes" || test "$(sse)" = "no" - @test "$(mmx)" = "yes" || test "$(mmx)" = "no" - @test "$(sse2)" = "yes" || test "$(sse2)" = "no" - @test "$(ssse3)" = "yes" || test "$(ssse3)" = "no" - @test "$(sse41)" = "yes" || test "$(sse41)" = "no" - @test "$(avx2)" = "yes" || test "$(avx2)" = "no" - @test "$(avx512)" = "yes" || test "$(avx512)" = "no" - @test "$(vnni256)" = "yes" || test "$(vnni256)" = "no" - @test "$(vnni512)" = "yes" || test "$(vnni512)" = "no" - @test "$(neon)" = "yes" || test "$(neon)" = "no" - @test "$(comp)" = "gcc" || test "$(comp)" = "icc" || test "$(comp)" = "mingw" || test "$(comp)" = "clang" \ - || test "$(comp)" = "armv7a-linux-androideabi16-clang" || test "$(comp)" = "aarch64-linux-android21-clang" +# @test "$(debug)" = "yes" || test "$(debug)" = "no" +# @test "$(optimize)" = "yes" || test "$(optimize)" = "no" +# @test "$(SUPPORTED_ARCH)" = "true" +# @test "$(arch)" = "any" || test "$(arch)" = "x86_64" || test "$(arch)" = "i386" || \ +# test "$(arch)" = "ppc64" || test "$(arch)" = "ppc" || test "$(arch)" = "e2k" || \ +# test "$(arch)" = "riscv64" || \ +# test "$(arch)" = "armv7" || test "$(arch)" = "armv8" || test "$(arch)" = "arm64" +# @test "$(bits)" = "32" || test "$(bits)" = "64" +# @test "$(prefetch)" = "yes" || test "$(prefetch)" = "no" +# @test "$(popcnt)" = "yes" || test "$(popcnt)" = "no" +# @test "$(pext)" = "yes" || test "$(pext)" = "no" +# @test "$(sse)" = "yes" || test "$(sse)" = "no" +# @test "$(mmx)" = "yes" || test "$(mmx)" = "no" +# @test "$(sse2)" = "yes" || test "$(sse2)" = "no" +# @test "$(ssse3)" = "yes" || test "$(ssse3)" = "no" +# @test "$(sse41)" = "yes" || test "$(sse41)" = "no" +# @test "$(avx2)" = "yes" || test "$(avx2)" = "no" +# @test "$(avx512)" = "yes" || test "$(avx512)" = "no" +# @test "$(vnni256)" = "yes" || test "$(vnni256)" = "no" +# @test "$(vnni512)" = "yes" || test "$(vnni512)" = "no" +# @test "$(neon)" = "yes" || test "$(neon)" = "no" +# @test "$(comp)" = "gcc" || test "$(comp)" = "icc" || test "$(comp)" = "mingw" || test "$(comp)" = "clang" \ +# || test "$(comp)" = "armv7a-linux-androideabi16-clang" || test "$(comp)" = "aarch64-linux-android21-clang" $(EXE): $(OBJS) +$(CXX) -o $@ $(OBJS) $(LDFLAGS)