Using gnu make's variable variable-names.
Unified · Split
| @@ -8,11 +8,6 @@ VPATH = $(top_srcdir) · 7 unmodified lines | ||
| 8 | 8 | |
| 9 | 9 | CPPFLAGS = -I$(TOP) # for config.h |
| 10 | 10 | |
| 11 | −CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC | |
| 12 | −CFLAGS_P=$(CFLAGS) -pg -static | |
| 13 | −LIBS_P= | |
| 14 | −LDFLAGS_P=$(LDFLAGS) | |
| 15 | − | |
| 16 | 11 | ifeq (-$(findstring $(GCC_MAJOR),01)-,--) |
| 17 | 12 | CFLAGS+=-fno-strict-aliasing |
| 18 | 13 | ifeq (-$(findstring $(GCC_MAJOR),23)-,--) |
| @@ -23,12 +18,17 @@ else · 4 unmodified lines | ||
| 23 | 18 | CFLAGS+=-Wno-unused-result |
| 24 | 19 | endif |
| 25 | 20 | endif |
| 26 | −endif | |
| 27 | − | |
| 21 | +else # not GCC | |
| 22 | +ifeq (-$(findstring clang,$(CC))-,-clang-) | |
| 28 | 23 | # make clang accept gnuisms in libtcc1.c |
| 29 | −ifeq ($(CC),clang) | |
| 30 | 24 | CFLAGS+=-fheinous-gnu-extensions |
| 31 | 25 | endif |
| 26 | +endif | |
| 27 | + | |
| 28 | +CPPFLAGS_P=$(CPPFLAGS) -DCONFIG_TCC_STATIC | |
| 29 | +CFLAGS_P=$(CFLAGS) -pg -static | |
| 30 | +LIBS_P= | |
| 31 | +LDFLAGS_P=$(LDFLAGS) | |
| 32 | 32 | |
| 33 | 33 | ifdef CONFIG_WIN64 |
| 34 | 34 | CONFIG_WIN32=yes |
| @@ -41,31 +41,6 @@ LIBS+=-ldl · 6 unmodified lines | ||
| 41 | 41 | endif |
| 42 | 42 | endif |
| 43 | 43 | |
| 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 | − | |
| 69 | 44 | # make libtcc as static or dynamic library? |
| 70 | 45 | ifdef DISABLE_STATIC |
| 71 | 46 | LIBTCC=libtcc.so.1.0 |
| @@ -78,6 +53,17 @@ LIBTCC=libtcc.a · 6 unmodified lines | ||
| 78 | 53 | LINK_LIBTCC= |
| 79 | 54 | endif |
| 80 | 55 | |
| 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 | + | |
| 81 | 67 | ifeq ($(TOP),.) |
| 82 | 68 | |
| 83 | 69 | PROGS=tcc$(EXESUF) |
| @@ -44,6 +44,7 @@ tcc_libpaths="" · 43 unmodified lines | ||
| 44 | 44 | tcc_crtprefix="" |
| 45 | 45 | tcc_elfinterp="" |
| 46 | 46 | tcc_lddir= |
| 47 | +confvars= | |
| 47 | 48 | |
| 48 | 49 | cpu=`uname -m` |
| 49 | 50 | |
| @@ -304,6 +305,17 @@ if test -z "$cross_prefix" ; then · 254 unmodified lines | ||
| 304 | 305 | tcc_lddir="lib64" |
| 305 | 306 | 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 | 319 | # multiarch_triplet=${libc_dir#*/} |
| 308 | 320 | # multiarch_triplet=${multiarch_triplet%/} |
| 309 | 321 | # tcc_lddir="${libc_dir%%/*}" |
| @@ -311,6 +323,9 @@ if test -z "$cross_prefix" ; then · 1 unmodified line | ||
| 311 | 323 | # tcc_lddir="$tcc_lddir/$multiarch_triplet" |
| 312 | 324 | # fi |
| 313 | 325 | |
| 326 | + if test -f "/lib/ld-uClibc.so.0" ; then | |
| 327 | + confvars="$confvars uClibc" | |
| 328 | + fi | |
| 314 | 329 | # gr: maybe for after the release: |
| 315 | 330 | # tcc_elfinterp="$(ldd $CONFTEST | grep 'ld.*.so' | sed 's,\s*\(\S\+\).*,\1,')" |
| 316 | 331 | # echo "elfinterp $tcc_elfinterp" |
| @@ -424,6 +439,9 @@ fi · 107 unmodified lines | ||
| 424 | 439 | |
| 425 | 440 | echo "TARGETOS=$targetos" >> config.mak |
| 426 | 441 | |
| 442 | +for v in $confvars ; do | |
| 443 | + echo "CONFIG_$v=yes" >> config.mak | |
| 444 | +done | |
| 427 | 445 | if test "$noldl" = "yes" ; then |
| 428 | 446 | echo "CONFIG_NOLDL=yes" >> config.mak |
| 429 | 447 | fi |