diff options
author | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2020-06-16 22:45:54 +0100 |
---|---|---|
committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2020-06-16 22:59:59 +0100 |
commit | 99c79ea9fcabc82844f4f1833653cba2f6649ab5 (patch) | |
tree | 949f2b62dd30f2a262b25a03982f9cfddaaa5131 | |
parent | 7e8098139f1e8cb2346e9ad3c1787af193d8fea5 (diff) | |
parent | 6a52c4ee9d2ee8b5723fc9fac4ebc97b77357613 (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.mk | 2 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 4 | ||||
-rwxr-xr-x | reproduce/software/shell/configure.sh | 80 |
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'" |