From b0abe614ae838470d000b6ccc5025803401d4053 Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Mon, 14 Dec 2020 16:26:00 +0900 Subject: [PATCH] support m1 mac --- Makefile | 6 +++++- common.mk | 21 +++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index b60492d..10fc568 100644 --- a/Makefile +++ b/Makefile @@ -91,6 +91,10 @@ ifneq ($(CPU),) ASM_SRC=$(ASM_SRC_PATH_NAME).s endif ASM_OBJ=$(OBJ_DIR)/$(CPU).o +ifeq ($(OS),mac-m1) + ASM_SRC=src/base64.ll + ASM_OBJ=$(OBJ_DIR)/base64.o +endif BN256_OBJ=$(OBJ_DIR)/bn_c256.o BN384_OBJ=$(OBJ_DIR)/bn_c384.o BN384_256_OBJ=$(OBJ_DIR)/bn_c384_256.o @@ -400,7 +404,7 @@ update_cybozulib: cp -a $(addprefix ../cybozulib/,$(wildcard include/cybozu/*.hpp)) include/cybozu/ clean: - $(RM) $(LIB_DIR)/*.a $(LIB_DIR)/*.$(LIB_SUF) $(OBJ_DIR)/*.o $(OBJ_DIR)/*.obj $(OBJ_DIR)/*.d $(EXE_DIR)/*.exe $(GEN_EXE) $(ASM_OBJ) $(LIB_OBJ) $(BN256_OBJ) $(BN384_OBJ) $(BN512_OBJ) $(FUNC_LIST) src/*.ll lib/*.a src/static_code.asm src/dump_code + $(RM) $(LIB_DIR)/*.a $(LIB_DIR)/*.$(LIB_SUF) $(OBJ_DIR)/*.o $(OBJ_DIR)/*.obj $(OBJ_DIR)/*.d $(EXE_DIR)/*.exe $(GEN_EXE) $(ASM_OBJ) $(LIB_OBJ) $(BN256_OBJ) $(BN384_OBJ) $(BN512_OBJ) $(FUNC_LIST) lib/*.a src/static_code.asm src/dump_code ALL_SRC=$(SRC_SRC) $(TEST_SRC) $(SAMPLE_SRC) DEPEND_FILE=$(addprefix $(OBJ_DIR)/, $(addsuffix .d,$(basename $(ALL_SRC)))) diff --git a/common.mk b/common.mk index 29cd650..707aa35 100644 --- a/common.mk +++ b/common.mk @@ -1,5 +1,6 @@ GCC_VER=$(shell $(PRE)$(CC) -dumpversion) UNAME_S=$(shell uname -s) +ARCH?=$(shell uname -m) NASM_ELF_OPT=-felf64 ifeq ($(UNAME_S),Linux) OS=Linux @@ -13,8 +14,11 @@ ifeq ($(findstring CYGWIN,$(UNAME_S)),CYGWIN) OS=cygwin endif ifeq ($(UNAME_S),Darwin) - OS=mac - ARCH=x86_64 + ifeq ($(ARCH),x86_64) + OS=mac + else + OS=mac-m1 + endif LIB_SUF=dylib OPENSSL_DIR?=/usr/local/opt/openssl CFLAGS+=-I$(OPENSSL_DIR)/include @@ -39,7 +43,6 @@ ifeq ($(UNAME_S),FreeBSD) LDFLAGS+=-L/usr/local/lib endif -ARCH?=$(shell uname -m) ifneq ($(findstring $(ARCH),x86_64/amd64),) CPU=x86-64 INTEL=1 @@ -63,11 +66,12 @@ ifneq ($(findstring $(ARCH),armv7l/armv6l),) BIT=32 #LOW_ASM_SRC=src/asm/low_arm.s endif -ifeq ($(ARCH),aarch64) +#ifeq ($(ARCH),aarch64) +ifneq ($(findstring $(ARCH),aarch64/arm64),) CPU=aarch64 BIT=64 endif -ifeq ($(findstring $(OS),mac/mingw64/openbsd),) +ifeq ($(findstring $(OS),mac/mac-m1/mingw64/openbsd),) LDFLAGS+=-lrt endif @@ -111,11 +115,8 @@ CFLAGS+=$(CFLAGS_OPT_USER) endif CFLAGS+=$(CFLAGS_USER) MCL_USE_GMP?=1 -ifeq ($(OS),mac) - ifeq ($(shell sw_vers -productVersion),10.15) - # workaround because of GMP does not run well on Catalina - MCL_USE_GMP=0 - endif +ifneq ($(OS),mac/mac-m1,) + MCL_USE_GMP=0 endif MCL_USE_OPENSSL?=0 ifeq ($(MCL_USE_GMP),0)