Skip to content

Commit

Permalink
use gcc -dumpspec, closes euslisp/EusLisp#485
Browse files Browse the repository at this point in the history
  • Loading branch information
k-okada committed Feb 28, 2022
1 parent e8a4a0b commit 1a066e1
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 6 deletions.
17 changes: 16 additions & 1 deletion lisp/Makefile.Linux
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,22 @@ 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),)
ifeq ($(GCC_MACHINE),x86_64-linux-gnu)
MACHINE=x86_64
endif
ifeq ($(GCC_MACHINE),i686-linux-gnu)
MACHINE=x86
endif
ifeq ($(GCC_MACHINE),aarch64-linux-gnu)
MACHINE=aarch64
endif
ifeq ($(GCC_MACHINE),arm-linux-gnueabihf)
MACHINE=arm
endif
endif
# need to set 'i486', for conditionals in c/*.[ch].
ifneq ($(shell gcc -dumpmachine | grep "i.*86-linux"),)
MACHINE=i486
Expand Down
2 changes: 1 addition & 1 deletion lisp/Makefile.Linux.thread
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion lisp/Makefile.LinuxARM
Original file line number Diff line number Diff line change
Expand Up @@ -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/')
Expand Down
11 changes: 9 additions & 2 deletions lisp/image/jpeg/makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
# 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
endif
ifeq ($(OS), Linux)
LSFX = so
else
Expand All @@ -18,7 +25,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
Expand Down
8 changes: 7 additions & 1 deletion test/Makefile
Original file line number Diff line number Diff line change
@@ -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
Expand Down

0 comments on commit 1a066e1

Please sign in to comment.