@@ -283,7 +283,7 @@ opt_core() {
283
283
fi
284
284
done
285
285
else
286
- if [ -n " $META " ]
286
+ if [ ! -z " $META " ]
287
287
then
288
288
OP=" $OP =<$META >"
289
289
fi
@@ -317,23 +317,12 @@ envopt() {
317
317
fi
318
318
319
319
# If script or environment provided a value, save it.
320
- if [ -n " $VV " ]
320
+ if [ ! -z " $VV " ]
321
321
then
322
322
putvar $V
323
323
fi
324
324
}
325
325
326
- enable_if_not_disabled () {
327
- local OP=$1
328
- local UOP=$( echo $OP | tr ' [:lower:]' ' [:upper:]' | tr ' \-' ' \_' )
329
- local ENAB_V=" CFG_ENABLE_$UOP "
330
- local EXPLICITLY_DISABLED=" CFG_DISABLE_${UOP} _PROVIDED"
331
- eval VV=\$ $EXPLICITLY_DISABLED
332
- if [ -z " $VV " ]; then
333
- eval $ENAB_V =1
334
- fi
335
- }
336
-
337
326
to_llvm_triple () {
338
327
case $1 in
339
328
i686-w64-mingw32) echo i686-pc-windows-gnu ;;
@@ -601,7 +590,9 @@ valopt llvm-root "" "set LLVM root"
601
590
valopt python " " " set path to python"
602
591
valopt jemalloc-root " " " set directory where libjemalloc_pic.a is located"
603
592
valopt build " ${DEFAULT_BUILD} " " GNUs ./configure syntax LLVM build triple"
604
- valopt android-cross-path " /opt/ndk_standalone" " Android NDK standalone path"
593
+ valopt android-cross-path " /opt/ndk_standalone" " Android NDK standalone path (deprecated)"
594
+ valopt arm-linux-androideabi-ndk " " " arm-linux-androideabi NDK standalone path"
595
+ valopt aarch64-linux-android-ndk " " " aarch64-linux-android NDK standalone path"
605
596
valopt release-channel " dev" " the name of the release channel to build"
606
597
valopt musl-root " /usr/local" " MUSL root installation directory"
607
598
@@ -682,12 +673,10 @@ if [ -n "$CFG_ENABLE_DEBUG" ]; then
682
673
CFG_DISABLE_OPTIMIZE=1
683
674
CFG_DISABLE_OPTIMIZE_CXX=1
684
675
fi
685
-
686
- # Set following variables to 1 unless setting already provided
687
- enable_if_not_disabled debug-assertions
688
- enable_if_not_disabled debug-jemalloc
689
- enable_if_not_disabled debuginfo
690
- enable_if_not_disabled llvm-assertions
676
+ CFG_ENABLE_DEBUG_ASSERTIONS=1
677
+ CFG_ENABLE_DEBUG_JEMALLOC=1
678
+ CFG_ENABLE_DEBUGINFO=1
679
+ CFG_ENABLE_LLVM_ASSERTIONS=1
691
680
fi
692
681
693
682
# OK, now write the debugging options
@@ -767,7 +756,7 @@ probe CFG_LLDB lldb
767
756
# On MacOS X, invoking `javac` pops up a dialog if the JDK is not
768
757
# installed. Since `javac` is only used if `antlr4` is available,
769
758
# probe for it only in this case.
770
- if [ -n " $CFG_ANTLR4 " ]
759
+ if [ ! -z " $CFG_ANTLR4 " ]
771
760
then
772
761
probe CFG_JAVAC javac
773
762
fi
@@ -786,14 +775,14 @@ then
786
775
fi
787
776
fi
788
777
789
- if [ -n " $CFG_GDB " ]
778
+ if [ ! -z " $CFG_GDB " ]
790
779
then
791
780
# Store GDB's version
792
781
CFG_GDB_VERSION=$( $CFG_GDB --version 2> /dev/null | head -1)
793
782
putvar CFG_GDB_VERSION
794
783
fi
795
784
796
- if [ -n " $CFG_LLDB " ]
785
+ if [ ! -z " $CFG_LLDB " ]
797
786
then
798
787
# Store LLDB's version
799
788
CFG_LLDB_VERSION=$( $CFG_LLDB --version 2> /dev/null | head -1)
@@ -819,7 +808,7 @@ step_msg "looking for target specific programs"
819
808
820
809
probe CFG_ADB adb
821
810
822
- if [ -n " $CFG_PANDOC " ]
811
+ if [ ! -z " $CFG_PANDOC " ]
823
812
then
824
813
# Extract "MAJOR MINOR" from Pandoc's version number
825
814
PV_MAJOR_MINOR=$( pandoc --version | grep ' ^pandoc' |
845
834
BIN_SUF=.exe
846
835
fi
847
836
848
- if [ -n " $CFG_ENABLE_LOCAL_RUST " ]
837
+ if [ ! -z " $CFG_ENABLE_LOCAL_RUST " ]
849
838
then
850
839
system_rustc=$( which rustc)
851
840
if [ -f ${CFG_LOCAL_RUST_ROOT} /bin/rustc${BIN_SUF} ]
930
919
931
920
# Okay, at this point, we have made up our minds about whether we are
932
921
# going to force CFG_ENABLE_CLANG or not; save the setting if so.
933
- if [ -n " $CFG_ENABLE_CLANG " ]
922
+ if [ ! -z " $CFG_ENABLE_CLANG " ]
934
923
then
935
924
putvar CFG_ENABLE_CLANG
936
925
fi
937
926
938
927
# Same with jemalloc. save the setting here.
939
- if [ -n " $CFG_DISABLE_JEMALLOC " ]
928
+ if [ ! -z " $CFG_DISABLE_JEMALLOC " ]
940
929
then
941
930
putvar CFG_DISABLE_JEMALLOC
942
931
fi
943
932
944
- if [ -n " $CFG_LLVM_ROOT " -a -z " $CFG_DISABLE_LLVM_VERSION_CHECK " -a -e " $CFG_LLVM_ROOT /bin/llvm-config" ]
933
+ if [ ! -z " $CFG_LLVM_ROOT " -a -z " $CFG_DISABLE_LLVM_VERSION_CHECK " -a -e " $CFG_LLVM_ROOT /bin/llvm-config" ]
945
934
then
946
935
step_msg " using custom LLVM at $CFG_LLVM_ROOT "
947
936
970
959
# CFG_ENABLE_CLANG is set, that indicates that we are opting into
971
960
# running such safeguards.
972
961
973
- if [ -n " $CC " ]
962
+ if [ ! -z " $CC " ]
974
963
then
975
964
msg " skipping compiler inference steps; using provided CC=$CC "
976
965
CFG_CC=" $CC "
983
972
putvar CFG_USING_CLANG
984
973
fi
985
974
else
986
- if [ -n " $CFG_ENABLE_CLANG " ]
975
+ if [ ! -z " $CFG_ENABLE_CLANG " ]
987
976
then
988
977
if [ -z " $CFG_CLANG " ]
989
978
then
997
986
fi
998
987
fi
999
988
1000
- if [ -n " $CFG_ENABLE_CLANG " ]
989
+ if [ ! -z " $CFG_ENABLE_CLANG " ]
1001
990
then
1002
991
case " $CC " in
1003
992
(' ' |* clang)
@@ -1013,7 +1002,7 @@ then
1013
1002
CFG_CLANG_VERSION=$( echo $CFG_CLANG_REPORTED_VERSION | sed ' s/.*version \(.*\) .*/\1/' )
1014
1003
fi
1015
1004
1016
- if [ -n " $CFG_OSX_CLANG_VERSION " ]
1005
+ if [ ! -z " $CFG_OSX_CLANG_VERSION " ]
1017
1006
then
1018
1007
case $CFG_OSX_CLANG_VERSION in
1019
1008
(7.0* )
@@ -1042,7 +1031,7 @@ then
1042
1031
esac
1043
1032
fi
1044
1033
1045
- if [ -n " $CFG_ENABLE_CCACHE " ]
1034
+ if [ ! -z " $CFG_ENABLE_CCACHE " ]
1046
1035
then
1047
1036
if [ -z " $CFG_CCACHE " ]
1048
1037
then
@@ -1112,20 +1101,24 @@ do
1112
1101
fi
1113
1102
1114
1103
case $i in
1115
- arm-linux-androideabi)
1116
-
1117
- if [ ! -f $CFG_ANDROID_CROSS_PATH /bin/arm-linux-androideabi-gcc ]
1104
+ * android* )
1105
+ upper_snake_target=$( echo " $i " | tr ' [:lower:]' ' [:upper:]' | tr ' \-' ' \_' )
1106
+ eval ndk=\$ " CFG_${upper_snake_target} _NDK"
1107
+ if [ -z " $ndk " ]
1118
1108
then
1119
- err " NDK $CFG_ANDROID_CROSS_PATH /bin/arm-linux-androideabi-gcc not found"
1120
- fi
1121
- if [ ! -f $CFG_ANDROID_CROSS_PATH /bin/arm-linux-androideabi-g++ ]
1122
- then
1123
- err " NDK $CFG_ANDROID_CROSS_PATH /bin/arm-linux-androideabi-g++ not found"
1124
- fi
1125
- if [ ! -f $CFG_ANDROID_CROSS_PATH /bin/arm-linux-androideabi-ar ]
1126
- then
1127
- err " NDK $CFG_ANDROID_CROSS_PATH /bin/arm-linux-androideabi-ar not found"
1109
+ ndk=$CFG_ANDROID_CROSS_PATH
1110
+ eval " CFG_${upper_snake_target} _NDK" =$CFG_ANDROID_CROSS_PATH
1111
+ warn " generic/default Android NDK option is deprecated (use --$i -ndk option instead)"
1128
1112
fi
1113
+
1114
+ # Perform a basic sanity check of the NDK
1115
+ for android_ndk_tool in " $ndk /bin/$i -gcc" " $ndk /bin/$i -g++" " $ndk /bin/$i -ar"
1116
+ do
1117
+ if [ ! -f $android_ndk_tool ]
1118
+ then
1119
+ err " NDK tool $android_ndk_tool not found (bad or missing --$i -ndk option?)"
1120
+ fi
1121
+ done
1129
1122
;;
1130
1123
1131
1124
arm-apple-darwin)
@@ -1177,13 +1170,8 @@ do
1177
1170
# INCLUDE and LIB variables for MSVC so we can set those in the
1178
1171
# build system as well.
1179
1172
install=$( reg QUERY \
1180
- ' HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14 .0' \
1173
+ ' HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12 .0' \
1181
1174
-v InstallDir)
1182
- if [ -z " $install " ]; then
1183
- install=$( reg QUERY \
1184
- ' HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0' \
1185
- -v InstallDir)
1186
- fi
1187
1175
need_ok " couldn't find visual studio install root"
1188
1176
CFG_MSVC_ROOT=$( echo " $install " | grep InstallDir | sed ' s/.*REG_SZ[ ]*//' )
1189
1177
CFG_MSVC_ROOT=$( dirname " $CFG_MSVC_ROOT " )
1204
1192
;;
1205
1193
esac
1206
1194
bindir=" ${CFG_MSVC_ROOT} /VC/bin"
1207
- if [ -n " $msvc_part " ]; then
1195
+ if [ ! -z " $msvc_part " ]; then
1208
1196
bindir=" $bindir /$msvc_part "
1209
1197
fi
1210
1198
eval CFG_MSVC_BINDIR_$bits =" \" $bindir \" "
1234
1222
esac
1235
1223
done
1236
1224
1237
- if [ -n " $CFG_PERF " ]
1225
+ if [ ! -z " $CFG_PERF " ]
1238
1226
then
1239
1227
HAVE_PERF_LOGFD=` $CFG_PERF stat --log-fd 2>&1 | grep ' unknown option' `
1240
1228
if [ -z " $HAVE_PERF_LOGFD " ];
@@ -1344,11 +1332,11 @@ then
1344
1332
" ${CFG_GIT} " submodule init
1345
1333
1346
1334
# Disable submodules that we're not using
1347
- if [ -n " ${CFG_LLVM_ROOT} " ]; then
1335
+ if [ ! -z " ${CFG_LLVM_ROOT} " ]; then
1348
1336
msg " git: submodule deinit src/llvm"
1349
1337
" ${CFG_GIT} " submodule deinit src/llvm
1350
1338
fi
1351
- if [ -n " ${CFG_JEMALLOC_ROOT} " ]; then
1339
+ if [ ! -z " ${CFG_JEMALLOC_ROOT} " ]; then
1352
1340
msg " git: submodule deinit src/jemalloc"
1353
1341
" ${CFG_GIT} " submodule deinit src/jemalloc
1354
1342
fi
1395
1383
if [ -z $CFG_LLVM_ROOT ]
1396
1384
then
1397
1385
LLVM_BUILD_DIR=${CFG_BUILD_DIR} $t /llvm
1398
- if [ -n " $CFG_DISABLE_OPTIMIZE_LLVM " ]
1386
+ if [ ! -z " $CFG_DISABLE_OPTIMIZE_LLVM " ]
1399
1387
then
1400
1388
LLVM_DBG_OPTS=" --enable-debug-symbols --disable-optimized"
1401
1389
# Just use LLVM straight from its build directory to
1451
1439
msg " configuring LLVM for $t with cmake"
1452
1440
1453
1441
CMAKE_ARGS=" -DLLVM_INCLUDE_TESTS=OFF"
1454
- if [ -n " $CFG_DISABLE_OPTIMIZE_LLVM " ]; then
1442
+ if [ ! -z " $CFG_DISABLE_OPTIMIZE_LLVM " ]; then
1455
1443
CMAKE_ARGS=" $CMAKE_ARGS -DCMAKE_BUILD_TYPE=Debug"
1456
1444
else
1457
1445
CMAKE_ARGS=" $CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release"
@@ -1465,22 +1453,12 @@ do
1465
1453
1466
1454
msg " configuring LLVM with:"
1467
1455
msg " $CMAKE_ARGS "
1468
- case " $CFG_MSVC_ROOT " in
1469
- * 14.0* )
1470
- generator=" Visual Studio 14 2015"
1471
- ;;
1472
- * 12.0* )
1473
- generator=" Visual Studio 12 2013"
1474
- ;;
1475
- * )
1476
- err " can't determine generator for LLVM cmake"
1477
- ;;
1478
- esac
1479
1456
case " $t " in
1480
1457
x86_64-* )
1481
- generator=" $generator Win64"
1458
+ generator=" Visual Studio 12 2013 Win64"
1482
1459
;;
1483
1460
i686-* )
1461
+ generator=" Visual Studio 12 2013"
1484
1462
;;
1485
1463
* )
1486
1464
err " can only build LLVM for x86 platforms"
1553
1531
1554
1532
(* )
1555
1533
msg " inferring LLVM_CXX/CC from CXX/CC = $CXX /$CC "
1556
- if [ -n " $CFG_ENABLE_CCACHE " ]
1534
+ if [ ! -z " $CFG_ENABLE_CCACHE " ]
1557
1535
then
1558
1536
if [ -z " $CFG_CCACHE " ]
1559
1537
then
@@ -1682,25 +1660,26 @@ putvar CFG_HOST
1682
1660
putvar CFG_TARGET
1683
1661
putvar CFG_LIBDIR_RELATIVE
1684
1662
putvar CFG_DISABLE_MANAGE_SUBMODULES
1685
- putvar CFG_ANDROID_CROSS_PATH
1663
+ putvar CFG_AARCH64_LINUX_ANDROID_NDK
1664
+ putvar CFG_ARM_LINUX_ANDROIDEABI_NDK
1686
1665
putvar CFG_MANDIR
1687
1666
1688
1667
# Avoid spurious warnings from clang by feeding it original source on
1689
1668
# ccache-miss rather than preprocessed input.
1690
- if [ -n " $CFG_ENABLE_CCACHE " ] && [ -n " $CFG_USING_CLANG " ]
1669
+ if [ ! -z " $CFG_ENABLE_CCACHE " ] && [ ! -z " $CFG_USING_CLANG " ]
1691
1670
then
1692
1671
CFG_CCACHE_CPP2=1
1693
1672
putvar CFG_CCACHE_CPP2
1694
1673
fi
1695
1674
1696
- if [ -n " $CFG_ENABLE_CCACHE " ]
1675
+ if [ ! -z " $CFG_ENABLE_CCACHE " ]
1697
1676
then
1698
1677
CFG_CCACHE_BASEDIR=${CFG_SRC_DIR}
1699
1678
putvar CFG_CCACHE_BASEDIR
1700
1679
fi
1701
1680
1702
1681
1703
- if [ -n $BAD_PANDOC ]
1682
+ if [ ! -z $BAD_PANDOC ]
1704
1683
then
1705
1684
CFG_PANDOC=
1706
1685
putvar CFG_PANDOC
0 commit comments