History

configure: detect ARM variants

Using gnu make's variable variable-names.

grischka committed 13 years ago

Commit c4397b21 parent b9f089f2 files · +37 −33Browse files

Unified · Split

2 files
  1. Makefile +19 −33
  2. configure +18 −0
Makefile+19−33
@@ -8,11 +8,6 @@ VPATH = $(top_srcdir) · 7 unmodified lines
88
99 CPPFLAGS = -I$(TOP) # for config.h
1010
11−CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC
12−CFLAGS_P=$(CFLAGS) -pg -static
13−LIBS_P=
14−LDFLAGS_P=$(LDFLAGS)
15−
1611 ifeq (-$(findstring $(GCC_MAJOR),01)-,--)
1712 CFLAGS+=-fno-strict-aliasing
1813 ifeq (-$(findstring $(GCC_MAJOR),23)-,--)
@@ -23,12 +18,17 @@ else · 4 unmodified lines
2318 CFLAGS+=-Wno-unused-result
2419 endif
2520 endif
26−endif
27−
21+else # not GCC
22+ifeq (-$(findstring clang,$(CC))-,-clang-)
2823 # make clang accept gnuisms in libtcc1.c
29−ifeq ($(CC),clang)
3024 CFLAGS+=-fheinous-gnu-extensions
3125 endif
26+endif
27+
28+CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC
29+CFLAGS_P=$(CFLAGS) -pg -static
30+LIBS_P=
31+LDFLAGS_P=$(LDFLAGS)
3232
3333 ifdef CONFIG_WIN64
3434 CONFIG_WIN32=yes
@@ -41,31 +41,6 @@ LIBS+=-ldl · 6 unmodified lines
4141 endif
4242 endif
4343
44−ifeq ($(ARCH),i386)
45−NATIVE_DEFINES+=-DTCC_TARGET_I386
46−else ifeq ($(ARCH),x86-64)
47−NATIVE_DEFINES+=-DTCC_TARGET_X86_64
48−endif
49−
50−ifeq ($(ARCH),arm)
51−NATIVE_DEFINES+=-DTCC_TARGET_ARM
52−NATIVE_DEFINES+=-DWITHOUT_LIBTCC
53−ifneq (,$(wildcard /lib/ld-linux-armhf.so.3 /lib/arm-linux-gnueabihf/ld-linux.so.3))
54−NATIVE_DEFINES+=-DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
55−else ifneq (,$(wildcard /lib/ld-linux.so.3))
56−NATIVE_DEFINES+=-DTCC_ARM_EABI
57−endif
58−NATIVE_DEFINES+=$(if $(shell grep -l "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo),-DTCC_ARM_VFP)
59−endif
60−
61−ifdef CONFIG_WIN32
62−NATIVE_DEFINES+=-DTCC_TARGET_PE
63−endif
64−
65−ifneq ($(wildcard /lib/ld-uClibc.so.0),)
66−NATIVE_DEFINES+=-DTCC_UCLIBC
67−endif
68−
6944 # make libtcc as static or dynamic library?
7045 ifdef DISABLE_STATIC
7146 LIBTCC=libtcc.so.1.0
@@ -78,6 +53,17 @@ LIBTCC=libtcc.a · 6 unmodified lines
7853 LINK_LIBTCC=
7954 endif
8055
56+CONFIG_$(ARCH) = yes
57+NATIVE_DEFINES_$(CONFIG_i386) += -DTCC_TARGET_I386
58+NATIVE_DEFINES_$(CONFIG_x86-64) += -DTCC_TARGET_X86_64
59+NATIVE_DEFINES_$(CONFIG_WIN32) += -DTCC_TARGET_PE
60+NATIVE_DEFINES_$(CONFIG_uClibc) += -DTCC_UCLIBC
61+NATIVE_DEFINES_$(CONFIG_arm) += -DTCC_TARGET_ARM -DWITHOUT_LIBTCC
62+NATIVE_DEFINES_$(CONFIG_arm_eabihf) += -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
63+NATIVE_DEFINES_$(CONFIG_arm_eabi) += -DTCC_ARM_EABI
64+NATIVE_DEFINES_$(CONFIG_arm_vfp) += -DTCC_ARM_VFP
65+NATIVE_DEFINES += $(NATIVE_DEFINES_yes)
66+
8167 ifeq ($(TOP),.)
8268
8369 PROGS=tcc$(EXESUF)
configure+18−0
@@ -44,6 +44,7 @@ tcc_libpaths="" · 43 unmodified lines
4444 tcc_crtprefix=""
4545 tcc_elfinterp=""
4646 tcc_lddir=
47+confvars=
4748
4849 cpu=`uname -m`
4950
@@ -304,6 +305,17 @@ if test -z "$cross_prefix" ; then · 254 unmodified lines
304305 tcc_lddir="lib64"
305306 fi
306307
308+ if test "$cpu" = "armv4l" ; then
309+ if test "${triplet%eabihf}" != "$triplet" ; then
310+ confvars="$confvars arm_eabihf"
311+ elif test "${triplet%eabi}" != "$triplet" ; then
312+ confvars="$confvars arm_eabi"
313+ fi
314+ if grep -s -q "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo ; then
315+ confvars="$confvars arm_vfp"
316+ fi
317+ fi
318+
307319 # multiarch_triplet=${libc_dir#*/}
308320 # multiarch_triplet=${multiarch_triplet%/}
309321 # tcc_lddir="${libc_dir%%/*}"
@@ -311,6 +323,9 @@ if test -z "$cross_prefix" ; then · 1 unmodified line
311323 # tcc_lddir="$tcc_lddir/$multiarch_triplet"
312324 # fi
313325
326+ if test -f "/lib/ld-uClibc.so.0" ; then
327+ confvars="$confvars uClibc"
328+ fi
314329 # gr: maybe for after the release:
315330 # tcc_elfinterp="$(ldd $CONFTEST | grep 'ld.*.so' | sed 's,\s*\(\S\+\).*,\1,')"
316331 # echo "elfinterp $tcc_elfinterp"
@@ -424,6 +439,9 @@ fi · 107 unmodified lines
424439
425440 echo "TARGETOS=$targetos" >> config.mak
426441
442+for v in $confvars ; do
443+ echo "CONFIG_$v=yes" >> config.mak
444+done
427445 if test "$noldl" = "yes" ; then
428446 echo "CONFIG_NOLDL=yes" >> config.mak
429447 fi

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t