aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/software')
-rw-r--r--reproduce/software/make/basic.mk2
-rw-r--r--reproduce/software/make/high-level.mk4
-rwxr-xr-xreproduce/software/shell/configure.sh80
3 files changed, 56 insertions, 30 deletions
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index b4745e2..82bc42d 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -805,7 +805,7 @@ $(idir)/etc:; mkdir $@
# Note: cert.pm has to be AFTER the tarball, otherwise the build script
# will try to unpack cert.pm and crash (it unpacks the first dependency
# under `tdir').
-$(ibidir)/openssl: $(ibidir)/tar \
+$(ibidir)/openssl: $(ibidir)/perl \
$(tdir)/openssl-$(openssl-version).tar.gz \
$(tdir)/cert.pem \
| $(idir)/etc
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 7cc2d51..75fa8ac 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -1224,9 +1224,9 @@ $(ibidir)/xlsxio: $(ibidir)/cmake \
if [ x$(on_mac_os) = xyes ]; then \
export CC=clang; \
export CXX=clang++; \
- export LDFLAGS="-lbz2"; \
+ export LDFLAGS="$$LDFLAGS -lbz2"; \
else \
- export LDFLAGS="-lbz2 -lbsd"; \
+ export LDFLAGS="$$LDFLAGS -lbz2 -lbsd"; \
fi; \
$(call cbuild, xlsxio-$(xlsxio-version), static, \
-DMINIZIP_DIR:PATH=$(idir) \
diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh
index 3b3c38f..b2e3979 100755
--- a/reproduce/software/shell/configure.sh
+++ b/reproduce/software/shell/configure.sh
@@ -569,9 +569,13 @@ cat <<EOF
Project's local configuration
-----------------------------
-Local configuration includes things like top-level directories, or
-processing steps. It is STRONGLY recommended to read the comments, and set
-the best values for your system (where necessary).
+Below, some basic local settings will be requested to start building
+Maneage on this system (if they haven't been specified on the
+command-line). This includes the top-level directories that Maneage will
+use on your system. Most are only optional and you can simply press ENTER,
+without giving any value (in this case, Maneage will download the necessary
+components from pre-defined webpages). It is STRONGLY recommended to read
+the description above each question before answering it.
EOF
@@ -708,7 +712,14 @@ EOF
do
# Ask the user (if not already set on the command-line).
if [ x"$build_dir" = x ]; then
- read -p"Please enter the top build directory: " build_dir
+ if read -p"Please enter the top build directory: " build_dir; then
+ just_a_place_holder_to_avoid_not_equal_test=1;
+ else
+ echo "ERROR: shell is in non-interactive-mode and no build directory specified."
+ echo "The build directory (described above) is mandatory, configuration can't continue."
+ echo "Please use '--build-dir' to specify a build directory non-interactively."
+ exit 1
+ fi
fi
# If it exists, see if we can write in it. If not, try making it.
@@ -778,10 +789,7 @@ if [ x"$input_dir" = x ]; then
else
indir=$input_dir
fi
-mk20name=$(awk '!/^#/ && $1=="MK20DATA" {print $3}' $adir/INPUTS.conf)
-mk20md5=$(awk '!/^#/ && $1=="MK20MD5" {print $3}' $adir/INPUTS.conf)
-mk20size=$(awk '!/^#/ && $1=="MK20SIZE" {print $3}' $adir/INPUTS.conf)
-mk20url=$(awk '!/^#/ && $1=="MK20URL" {print $3}' $adir/INPUTS.conf)
+noninteractive_sleep=2
if [ $rewritepconfig = yes ] && [ x"$input_dir" = x ]; then
cat <<EOF
@@ -789,28 +797,37 @@ if [ $rewritepconfig = yes ] && [ x"$input_dir" = x ]; then
(OPTIONAL) Input dataset directory
----------------------------------
-This project needs the dataset(s) listed below. If you already have them,
-please specify the directory hosting them on this system. If you don't,
-they will be downloaded automatically. Each file is shown with its total
-volume and its 128-bit MD5 checksum in parenthesis.
+This project needs the dataset(s) listed in the following file:
+
+ reproduce/analysis/config/INPUTS.conf
- $mk20name ($mk20size, $mk20md5):
- Supplementary dataset to http://dx.doi.org/10.1101/2020.01.15.908111
- URL: $mk20url
+If you already have a copy of them on this system, please specify the
+directory hosting them on this system. If they aren't present, they will be
+downloaded automatically when necessary.
-NOTE I: This directory, or the datasets above, are optional. If it doesn't
-exist, the files will be downloaded in the build directory and used.
+NOTE I: This directory is optional. If not given, or if the files can't be
+found inside it, any necessary file will be downloaded directly in the
+build directory and used.
-NOTE II: This directory (if given) will only be read, nothing will be
-written into it, so no writing permissions are necessary.
+NOTE II: If a directory is given, it will be used as read-only. Nothing
+will be written into it, so no writing permissions are necessary.
TIP: If you have these files in multiple directories on your system and
-don't want to download them or make duplicates, you can create symbolic
-links to them and put those symbolic links in the given top-level
-directory.
+don't want to make duplicates, you can create symbolic links to them and
+put those symbolic links in the given top-level directory.
EOF
- read -p"(OPTIONAL) Input datasets directory ($indir): " inindir
+ # Read the input directory if interactive mode is enabled.
+ if read -p"(OPTIONAL) Input datasets directory ($indir): " inindir; then
+ just_a_place_holder_to_avoid_not_equal_test=1;
+ else
+ echo "WARNING: interactive-mode seems to be disabled!"
+ echo "If you have a local copy of the inputs, use '--input-dir'."
+ echo "... project configuration will continue in $noninteractive_sleep sec ..."
+ sleep $noninteractive_sleep
+ fi
+
+ # In case an input-directory is given, write it in 'indir'.
if [ x$inindir != x ]; then
indir=$inindir
echo " -- Using '$indir'"
@@ -837,15 +854,24 @@ if [ $rewritepconfig = yes ] && [ x"$software_dir" = x ]; then
To ensure an identical build environment, the project will use its own
build of the programs it needs. Therefore the tarball of the relevant
-programs are necessary. If a tarball isn't present in the specified
-directory, *IT WILL BE DOWNLOADED* automatically.
+programs are necessary.
If you don't specify any directory here, or it doesn't contain the tarball
-of a dependency, it is necessary to have an internet connection. The
+of a dependency, it is necessary to have an internet connection because the
project will download the tarballs it needs automatically.
EOF
- read -p"(OPTIONAL) Directory of dependency tarballs ($ddir): " tmpddir
+ # Read the software directory if interactive mode is enabled.
+ if read -p"(OPTIONAL) Directory of dependency tarballs ($ddir): " tmpddir; then
+ just_a_place_holder_to_avoid_not_equal_test=1;
+ else
+ echo "WARNING: interactive-mode seems to be disabled!"
+ echo "If you have a local copy of the software source, use '--software-dir'."
+ echo "... project configuration will continue in $noninteractive_sleep sec ..."
+ sleep $noninteractive_sleep
+ fi
+
+ # If given, write the software directory.
if [ x"$tmpddir" != x ]; then
ddir=$tmpddir
echo " -- Using '$ddir'"