diff --git a/lisp/Makefile.Linux b/lisp/Makefile.Linux index 5c564816f..0689d83de 100644 --- a/lisp/Makefile.Linux +++ b/lisp/Makefile.Linux @@ -54,7 +54,28 @@ ADD_LDFLAGS += -Wl,--no-as-needed endif # set CPU arch with -D -MACHINE=$(shell uname -m) +GCC_MACHINE=$(shell gcc -dumpmachine) +$(info "-- GCC_MACHINE = ${GCC_MACHINE}") +ifneq ($(GCC_MACHINE),) + ifneq (,$(findstring x86_64-linux-gnu,$(GCC_MACHINE))) + MACHINE=x86_64 + endif + ifneq (,$(findstring i686-linux-gnu,$(GCC_MACHINE))) + MACHINE=i686 + endif + ifneq (,$(findstring aarch64-linux-gnu,$(GCC_MACHINE))) + MACHINE=aarch64 + endif + ifneq (,$(findstring arm-linux-gnu,$(GCC_MACHINE))) + MACHINE=arm + endif + ifneq (,$(findstring powerpc64le-linux-gnu,$(GCC_MACHINE))) + MACHINE=ppc64le + endif + ifneq (,$(findstring mips64el-linux-gnu,$(GCC_MACHINE))) + MACHINE=mips64 + endif +endif # need to set 'i486', for conditionals in c/*.[ch]. ifneq ($(shell gcc -dumpmachine | grep "i.*86-linux"),) MACHINE=i486 diff --git a/lisp/Makefile.Linux.thread b/lisp/Makefile.Linux.thread index 913b67b65..2e0fd806e 100644 --- a/lisp/Makefile.Linux.thread +++ b/lisp/Makefile.Linux.thread @@ -91,7 +91,7 @@ GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl THREADDEP=mthread_posix.c #THREADDEP=pthreads.c -ifeq ($(shell /bin/uname -m), x86_64) +ifeq ($(shell gcc -dumpmachine | sed 's/\(.*\)-.*-.*/\1/'), x86_64) CC += -m32 -DUSE_MULTI_LIB LD += -melf_i386 endif diff --git a/lisp/Makefile.LinuxARM b/lisp/Makefile.LinuxARM index 4b2683d1b..e49262b35 100644 --- a/lisp/Makefile.LinuxARM +++ b/lisp/Makefile.LinuxARM @@ -36,7 +36,8 @@ XVERSION=X_V11R6_1 #MACHINE=armv6 #MACHINE=armv5te -MACHINE=$(shell uname -m | sed 's/\(armv[0-9]\).*/\1/') +# gcc -dumpmachine retruns target triplet consists of three fields separated by a hyphen (-). +MACHINE=$(shell gcc -dumpmachine | sed 's/\(.*\)-.*-.*/\1/') GCC_MAJOR_VERSION=$(shell gcc -dumpversion | sed -e 's/\([0-9]\)\.\([0-9]\)\([\.0-9]*\)/\1/') GCC_MINOR_VERSION=$(shell gcc -dumpversion | sed -e 's/\([0-9]\)\.\([0-9]\)\([\.0-9]*\)/\2/') diff --git a/lisp/image/jpeg/makefile b/lisp/image/jpeg/makefile index cd55d2fc6..b58946a63 100644 --- a/lisp/image/jpeg/makefile +++ b/lisp/image/jpeg/makefile @@ -1,7 +1,13 @@ # jpeg compression/decompression for euslisp # copyright (c) 1997, Toshihiro Matsui, Electrotechnical Laboratory -OS = $(shell uname | sed s/-.*//) +ifeq ($(shell gcc -dumpmachine | sed 's/.*-\(.*\)-.*/\1/'), linux) + OS=Linux +else ifeq ($(shell gcc -dumpmachine | sed 's/.*-.*-\([a-zA-Z]*\).*/\1/'), darwin) + OS=Darwin +else ifeq ($(shell gcc -dumpmachine | sed 's/.*-.*-\(.*\)/\1/'), cygwin) + OS=Cygwin +endif ifeq ($(OS), Linux) LSFX = so else @@ -18,7 +24,7 @@ else LD = gcc -dynamiclib endif -ifeq ($(shell uname -m), x86_64) +ifeq ($(shell gcc -dumpmachine | sed 's/\(.*\)-.*-.*/\1/'), x86_64) ifneq ($(ARCHDIR), Linux64) ifneq ($(ARCHDIR), Darwin) CC += -m32 diff --git a/test/Makefile b/test/Makefile index 1fa5e144d..c7ecb6072 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,6 +1,12 @@ GCC_MACHINE=$(shell gcc -dumpmachine) $(info "-- GCC_MACHINE = ${GCC_MACHINE}") -OS=$(shell uname -s | sed 's/[^A-Za-z1-9].*//') +ifeq ($(shell echo $(GCC_MACHINE) | sed 's/.*-\(.*\)-.*/\1/'), linux) + OS=Linux +else ifeq ($(shell echo $(GCC_MACHINE) | sed 's/.*-.*-\([a-zA-Z]*\).*/\1/'), darwin) + OS=Darwin +else ifeq ($(shell echo $(GCC_MACHINE) | sed 's/.*-.*-\(.*\)/\1/'), cygwin) + OS=Cygwin +endif $(info "-- OS = ${OS}") ifeq ($(OS),Linux) export MAKEFILE=Makefile.Linux