aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2020-06-16 22:45:54 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2020-06-16 22:59:59 +0100
commit99c79ea9fcabc82844f4f1833653cba2f6649ab5 (patch)
tree949f2b62dd30f2a262b25a03982f9cfddaaa5131
parent7e8098139f1e8cb2346e9ad3c1787af193d8fea5 (diff)
parent6a52c4ee9d2ee8b5723fc9fac4ebc97b77357613 (diff)
Imported recent improvements in Maneage, minor conflicts fixed
Some minor conflicts came up in 'download.mk' and 'verify.mk' (as expected in the "IMPORTANT" commits) and were easily fixed by choosing this branch's values.
-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'"