diff --git a/CHANGES b/CHANGES index d36f56d..875b4bb 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,29 @@ -The following are the changes from calc version 2.14.0.7 to date: +The following are the changes from calc version 2.14.0.9 to date: + + Due to issues with clang and Apple Silicon, ARCH_CFLAGS is now, + by default, empty: + + ARCH_CFLAGS= + + If you want to use, say, -march=native, then either change + the Makefile or make with: + + make all ARCH_CFLAGS='-march=native' + + Added arch and hardware as GNU Makefile computed values. + As with ${target}, ${arch} and ${hardware} is computed by uname: + + target: uname -a + arch: uname -p + hardware: uname -m + + Fixed compiling calc on Apple Silicon with homebrew. On Apple + Silicon, HomeBrew installs on into a different location. The + Makefile checks if ${hardware} is arm64 and adjusts the location + of libraries such as readline and history accordingly. + + +The following are the changes from calc version 2.14.0.7 to 2.14.0.8: Fizzbin is a better word. :-) diff --git a/Makefile b/Makefile index b152a39..188fedd 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,12 @@ ifeq ($(target),) target=$(shell uname -s 2>/dev/null) endif +ifeq ($(arch),) +arch=$(shell uname -p 2>/dev/null) +endif +ifeq ($(hardware),) +hardware=$(shell uname -m 2>/dev/null) +endif # The shell used by this Makefile # @@ -135,15 +141,27 @@ USE_READLINE= -DUSE_READLINE #READLINE_LIB= -L/usr/gnu/lib -lreadline -lhistory -lncurses #READLINE_LIB= -L${PREFIX}/lib -lreadline -lhistory -lncurses ifeq ($(target),Darwin) -# homebrew installs readline & history libs in ${PREFIX}/opt/readline/lib +ifeq ($(hardware),arm64) +# Darwin arm64 homebrew installs readline & history libs in /opt/homebrew/opt/readline/lib +READLINE_LIB= -L/opt/homebrew/opt/readline/lib -lreadline -lhistory -lncurses +else +# Assume Darwin non-arm64 is x86_64 +# Darwin x86_64 homebrew installs readline & history libs in ${PREFIX}/opt/readline/lib READLINE_LIB= -L${PREFIX}/opt/readline/lib -lreadline -lhistory -lncurses +endif else READLINE_LIB= -lreadline -lhistory -lncurses endif # ifeq ($(target),Darwin) -# homebrew installs readline & history *.h under ${PREFIX}/opt/readline/include +ifeq ($(hardware),arm64) +# Darwin arm64 homebrew installs readline & history *.h under /opt/homebrew/opt/readline/include +READLINE_INCLUDE= -I${PREFIX}/opt/homebrew/opt/readline/include +else +# Assume Darwin non-arm64 is x86_64 +# Darwin x86_64 homebrew installs readline & history *.h under ${PREFIX}/opt/readline/include READLINE_INCLUDE= -I${PREFIX}/opt/readline/include +endif else READLINE_INCLUDE= endif diff --git a/Makefile.ship b/Makefile.ship index 075a22a..f33ee78 100644 --- a/Makefile.ship +++ b/Makefile.ship @@ -79,6 +79,12 @@ SHELL= /bin/sh ifeq ($(target),) target=$(shell uname -s 2>/dev/null) endif +ifeq ($(arch),) +arch=$(shell uname -p 2>/dev/null) +endif +ifeq ($(hardware),) +hardware=$(shell uname -m 2>/dev/null) +endif #endif /* end of skip for non-Gnu makefiles */ ############################################################################## @@ -1280,8 +1286,8 @@ EXTRA_LDFLAGS= # The ARCH_CFLAGS are ${CC} when compiling C files. They follow # CCMISC and precede EXTRA_CFLAGS. # -ARCH_CFLAGS= -march=native -#ARCH_CFLAGS= +ARCH_CFLAGS= +#ARCH_CFLAGS= -march=native # COMMON_CFLAGS are the common ${CC} flags used for all programs, both # intermediate and final calc and calc related programs