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
8 8
9CPPFLAGS = -I$(TOP) # for config.h9CPPFLAGS = -I$(TOP) # for config.h
10 10
11CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC
12CFLAGS_P=$(CFLAGS) -pg -static
13LIBS_P=
14LDFLAGS_P=$(LDFLAGS)
15
16ifeq (-$(findstring $(GCC_MAJOR),01)-,--)11ifeq (-$(findstring $(GCC_MAJOR),01)-,--)
17CFLAGS+=-fno-strict-aliasing12CFLAGS+=-fno-strict-aliasing
18ifeq (-$(findstring $(GCC_MAJOR),23)-,--)13ifeq (-$(findstring $(GCC_MAJOR),23)-,--)
@@ -23,12 +18,17 @@ else · 4 unmodified lines
23CFLAGS+=-Wno-unused-result18CFLAGS+=-Wno-unused-result
24endif19endif
25endif20endif
26endif21else # not GCC
27 22ifeq (-$(findstring clang,$(CC))-,-clang-)
28# make clang accept gnuisms in libtcc1.c23# make clang accept gnuisms in libtcc1.c
29ifeq ($(CC),clang)
30CFLAGS+=-fheinous-gnu-extensions24CFLAGS+=-fheinous-gnu-extensions
31endif25endif
26endif
27
28CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC
29CFLAGS_P=$(CFLAGS) -pg -static
30LIBS_P=
31LDFLAGS_P=$(LDFLAGS)
32 32
33ifdef CONFIG_WIN6433ifdef CONFIG_WIN64
34CONFIG_WIN32=yes34CONFIG_WIN32=yes
@@ -41,31 +41,6 @@ LIBS+=-ldl · 6 unmodified lines
41endif41endif
42endif42endif
43 43
44ifeq ($(ARCH),i386)
45NATIVE_DEFINES+=-DTCC_TARGET_I386
46else ifeq ($(ARCH),x86-64)
47NATIVE_DEFINES+=-DTCC_TARGET_X86_64
48endif
49
50ifeq ($(ARCH),arm)
51NATIVE_DEFINES+=-DTCC_TARGET_ARM
52NATIVE_DEFINES+=-DWITHOUT_LIBTCC
53ifneq (,$(wildcard /lib/ld-linux-armhf.so.3 /lib/arm-linux-gnueabihf/ld-linux.so.3))
54NATIVE_DEFINES+=-DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
55else ifneq (,$(wildcard /lib/ld-linux.so.3))
56NATIVE_DEFINES+=-DTCC_ARM_EABI
57endif
58NATIVE_DEFINES+=$(if $(shell grep -l "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo),-DTCC_ARM_VFP)
59endif
60
61ifdef CONFIG_WIN32
62NATIVE_DEFINES+=-DTCC_TARGET_PE
63endif
64
65ifneq ($(wildcard /lib/ld-uClibc.so.0),)
66NATIVE_DEFINES+=-DTCC_UCLIBC
67endif
68
69# make libtcc as static or dynamic library?44# make libtcc as static or dynamic library?
70ifdef DISABLE_STATIC45ifdef DISABLE_STATIC
71LIBTCC=libtcc.so.1.046LIBTCC=libtcc.so.1.0
@@ -78,6 +53,17 @@ LIBTCC=libtcc.a · 6 unmodified lines
78LINK_LIBTCC=53LINK_LIBTCC=
79endif54endif
80 55
56CONFIG_$(ARCH) = yes
57NATIVE_DEFINES_$(CONFIG_i386) += -DTCC_TARGET_I386
58NATIVE_DEFINES_$(CONFIG_x86-64) += -DTCC_TARGET_X86_64
59NATIVE_DEFINES_$(CONFIG_WIN32) += -DTCC_TARGET_PE
60NATIVE_DEFINES_$(CONFIG_uClibc) += -DTCC_UCLIBC
61NATIVE_DEFINES_$(CONFIG_arm) += -DTCC_TARGET_ARM -DWITHOUT_LIBTCC
62NATIVE_DEFINES_$(CONFIG_arm_eabihf) += -DTCC_ARM_EABI -DTCC_ARM_HARDFLOAT
63NATIVE_DEFINES_$(CONFIG_arm_eabi) += -DTCC_ARM_EABI
64NATIVE_DEFINES_$(CONFIG_arm_vfp) += -DTCC_ARM_VFP
65NATIVE_DEFINES += $(NATIVE_DEFINES_yes)
66
81ifeq ($(TOP),.)67ifeq ($(TOP),.)
82 68
83PROGS=tcc$(EXESUF)69PROGS=tcc$(EXESUF)
configure+18−0
@@ -44,6 +44,7 @@ tcc_libpaths="" · 43 unmodified lines
44tcc_crtprefix=""44tcc_crtprefix=""
45tcc_elfinterp=""45tcc_elfinterp=""
46tcc_lddir=46tcc_lddir=
47confvars=
47 48
48cpu=`uname -m`49cpu=`uname -m`
49 50
@@ -304,6 +305,17 @@ if test -z "$cross_prefix" ; then · 254 unmodified lines
304 tcc_lddir="lib64"305 tcc_lddir="lib64"
305 fi306 fi
306 307
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
307# multiarch_triplet=${libc_dir#*/}319# multiarch_triplet=${libc_dir#*/}
308# multiarch_triplet=${multiarch_triplet%/}320# multiarch_triplet=${multiarch_triplet%/}
309# tcc_lddir="${libc_dir%%/*}"321# tcc_lddir="${libc_dir%%/*}"
@@ -311,6 +323,9 @@ if test -z "$cross_prefix" ; then · 1 unmodified line
311# tcc_lddir="$tcc_lddir/$multiarch_triplet"323# tcc_lddir="$tcc_lddir/$multiarch_triplet"
312# fi324# fi
313 325
326 if test -f "/lib/ld-uClibc.so.0" ; then
327 confvars="$confvars uClibc"
328 fi
314# gr: maybe for after the release:329# gr: maybe for after the release:
315# tcc_elfinterp="$(ldd $CONFTEST | grep 'ld.*.so' | sed 's,\s*\(\S\+\).*,\1,')"330# tcc_elfinterp="$(ldd $CONFTEST | grep 'ld.*.so' | sed 's,\s*\(\S\+\).*,\1,')"
316 # echo "elfinterp $tcc_elfinterp"331 # echo "elfinterp $tcc_elfinterp"
@@ -424,6 +439,9 @@ fi · 107 unmodified lines
424 439
425echo "TARGETOS=$targetos" >> config.mak440echo "TARGETOS=$targetos" >> config.mak
426 441
442for v in $confvars ; do
443 echo "CONFIG_$v=yes" >> config.mak
444done
427if test "$noldl" = "yes" ; then445if test "$noldl" = "yes" ; then
428 echo "CONFIG_NOLDL=yes" >> config.mak446 echo "CONFIG_NOLDL=yes" >> config.mak
429fi447fi

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