Allow arbitrary options to be passed to make from netdata-installer.sh. (#11479)
* Allow arbitrary options to be passed to make from netdata-installer.sh. This is mostly intended to allow users to override the number of parallel jobs used during the build process. It’s been made generic as a handful of other options (most notably `--load-average`) are also potentially useful and because the generic behavior is consistent with how most source-based distros handle this type of thing. * Fix pattern checking of MAKEOPTS.
Austin S. Hemmelgarn committed
Sep 14, 2021 at 09:17 UTC
db35cc3e78d7bd1d8bc6b5d8fa319ea82c051e31
2 files changed
+17
-8
netdata-installer.sh
+16
-8
@@ -118,6 +118,13 @@ download_go() {
118
# make sure we save all commands we run
119
run_logfile="netdata-installer.log"
120
121
+# set default make options
122
+if [ -z "${MAKEOPTS}" ]; then
123
+ MAKEOPTS="-j$(find_processors)"
124
+elif echo "${MAKEOPTS}" | grep -vqF -e "-j"; then
125
+ MAKEOPTS="${MAKEOPTS} -j$(find_processors)"
126
+fi
127
+
128
# -----------------------------------------------------------------------------
129
# fix PKG_CHECK_MODULES error
130
@@ -549,7 +556,7 @@ build_libmosquitto() {
556
fi
557
558
if [ "$(uname -s)" = Linux ]; then
552
- run ${env_cmd} ${make} -j$(find_processors) -C "${1}/lib"
559
+ run ${env_cmd} ${make} ${MAKEOPTS} -C "${1}/lib"
560
else
561
pushd ${1} > /dev/null || return 1
562
if [ "$(uname)" = "Darwin" ] && [ -d /usr/local/opt/openssl ]; then
@@ -561,7 +568,7 @@ build_libmosquitto() {
568
else
569
run ${env_cmd} cmake -D WITH_STATIC_LIBRARIES:boolean=YES .
570
fi
564
- run ${env_cmd} ${make} -j$(find_processors) -C lib
571
+ run ${env_cmd} ${make} ${MAKEOPTS} -C lib
572
run mv lib/libmosquitto_static.a lib/libmosquitto.a
573
popd || return 1
574
fi
@@ -657,7 +664,7 @@ EOF
664
$CMAKE_FLAGS \
665
.
666
fi
660
- run ${env_cmd} ${make} -j$(find_processors)
667
+ run ${env_cmd} ${make} ${MAKEOPTS}
668
popd > /dev/null || exit 1
669
}
670
@@ -727,7 +734,7 @@ build_protobuf() {
734
return 1
735
fi
736
730
- if ! run ${env_cmd} $make -j$(find_processors); then
737
+ if ! run ${env_cmd} $make ${MAKEOPTS}; then
738
popd > /dev/null || return 1
739
return 1
740
fi
@@ -803,7 +810,7 @@ build_judy() {
810
run ${env_cmd} automake --add-missing --force --copy --include-deps &&
811
run ${env_cmd} autoconf &&
812
run ${env_cmd} ./configure &&
806
- run ${env_cmd} ${make} -j$(find_processors) -C src &&
813
+ run ${env_cmd} ${make} ${MAKEOPTS} -C src &&
814
run ${env_cmd} ar -r src/libJudy.a src/Judy*/*.o; then
815
popd > /dev/null || return 1
816
else
@@ -881,7 +888,7 @@ build_jsonc() {
888
889
pushd "${1}" > /dev/null || exit 1
890
run ${env_cmd} cmake -DBUILD_SHARED_LIBS=OFF .
884
- run ${env_cmd} ${make} -j$(find_processors)
891
+ run ${env_cmd} ${make} ${MAKEOPTS}
892
popd > /dev/null || exit 1
893
}
894
@@ -939,7 +946,7 @@ bundle_jsonc
946
947
build_libbpf() {
948
pushd "${1}/src" > /dev/null || exit 1
942
- run env CFLAGS=-fPIC CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. ${make} -j$(find_processors) install
949
+ run env CFLAGS=-fPIC CXXFLAGS= LDFLAGS= BUILD_STATIC_ONLY=y OBJDIR=build DESTDIR=.. ${make} ${MAKEOPTS} install
950
popd > /dev/null || exit 1
951
}
952
@@ -1050,7 +1057,7 @@ run $make clean
1057
# -----------------------------------------------------------------------------
1058
progress "Compile netdata"
1059
1053
-run $make -j$(find_processors) || exit 1
1060
+run $make ${MAKEOPTS} || exit 1
1061
1062
# -----------------------------------------------------------------------------
1063
progress "Migrate configuration files for node.d.plugin and charts.d.plugin"
@@ -1925,6 +1932,7 @@ cat << EOF > "${NETDATA_USER_CONFIG_DIR}/.environment"
1932
PATH="${PATH}"
1933
CFLAGS="${CFLAGS}"
1934
LDFLAGS="${LDFLAGS}"
1935
+MAKEOPTS="${MAKEOPTS}"
1936
NETDATA_TMPDIR="${TMPDIR}"
1937
NETDATA_PREFIX="${NETDATA_PREFIX}"
1938
NETDATA_CONFIGURE_OPTIONS="${NETDATA_CONFIGURE_OPTIONS}"
packaging/installer/netdata-updater.sh
+1
@@ -6,6 +6,7 @@
6
# - PATH
7
# - CFLAGS
8
# - LDFLAGS
9
+# - MAKEOPTS
10
# - IS_NETDATA_STATIC_BINARY
11
# - NETDATA_CONFIGURE_OPTIONS
12
# - REINSTALL_OPTIONS