-#ifeq logical or
-ifeq ($(CORE), $(filter $(CORE),CORTEXA9 CORTEXA15))
+ifeq ($(CORE), $(filter $(CORE),ARMV7 CORTEXA9 CORTEXA15))
ifeq ($(OSNAME), Android)
CCOMMON_OPT += -mfpu=neon -march=armv7-a
FCOMMON_OPT += -mfpu=neon -march=armv7-a
endif
endif
-ifeq ($(CORE), ARMV7)
-ifeq ($(OSNAME), Android)
-ifeq ($(ARM_SOFTFP_ABI), 1)
-CCOMMON_OPT += -mfpu=neon -march=armv7-a
-FCOMMON_OPT += -mfpu=neon -march=armv7-a
-else
-CCOMMON_OPT += -mfpu=neon -march=armv7-a -Wl,--no-warn-mismatch
-FCOMMON_OPT += -mfpu=neon -march=armv7-a -Wl,--no-warn-mismatch
-endif
-else
-CCOMMON_OPT += -mfpu=vfpv3 -march=armv7-a
-FCOMMON_OPT += -mfpu=vfpv3 -march=armv7-a
-endif
-endif
-
ifeq ($(CORE), ARMV6)
CCOMMON_OPT += -mfpu=vfp -march=armv6
FCOMMON_OPT += -mfpu=vfp -march=armv6
endif
-
ifeq ($(CORE), ARMV5)
-CCOMMON_OPT += -marm -march=armv5
-FCOMMON_OPT += -marm -march=armv5
+CCOMMON_OPT += -march=armv5
+FCOMMON_OPT += -march=armv5
endif
NO_EXPRECISION = 1
endif
+ifeq ($(OSNAME), Android)
+EXTRALIB += -lm
+endif
+
ifeq ($(OSNAME), AIX)
EXTRALIB += -lm
endif
NO_BINARY_MODE = 1
BINARY_DEFINED = 1
-CCOMMON_OPT += -marm
-FCOMMON_OPT += -marm
-
-ifeq ($(ARM_SOFTFP_ABI), 1)
-CCOMMON_OPT += -mfloat-abi=softfp -DARM_SOFTFP_ABI
-FCOMMON_OPT += -mfloat-abi=softfp -DARM_SOFTFP_ABI
+# If ABI is specified on command line use it. Else use the automatically detected ABI.
+ifeq ($(ARM_SOFTFP_ABI),1)
+ARM_ABI = softfp
else
-CCOMMON_OPT += -mfloat-abi=hard
-FCOMMON_OPT += -mfloat-abi=hard
+ifeq ($(ARM_HARD_ABI),1)
+ARM_ABI = hard
+else
+ARM_ABI=$(ARM_ABI_AUTO)
+endif
endif
+export ARM_ABI_AUTO
+CCOMMON_OPT += -marm -mfloat-abi=$(ARM_ABI)
+FCOMMON_OPT += -marm -mfloat-abi=$(ARM_ABI)
+
endif
ifeq ($(ARCH), arm64)
$defined = 1;
}
-if (($architecture eq "arm") || ($architecture eq "arm64")) {
+if ($architecture eq "arm") {
+ $defined = 1;
+ $data = `$compiler_name -dM -E ctest2.c | grep -w __ARM_PCS_VFP`;
+ if ($data ne "") {
+ $abi = "hard";
+ } else {
+ $abi = "softfp";
+ }
+}
+
+if ($architecture eq "arm64") {
$defined = 1;
}
print MAKEFILE "HAVE_MSA=1\n" if $have_msa eq 1;
print MAKEFILE "MSA_FLAGS=$msa_flags\n" if $have_msa eq 1;
+if ($architecture eq "arm") {
+ print MAKEFILE "ARM_ABI_AUTO=$abi\n";
+}
+
$os =~ tr/[a-z]/[A-Z]/;
$architecture =~ tr/[a-z]/[A-Z]/;
$compiler =~ tr/[a-z]/[A-Z]/;