diff options
Diffstat (limited to 'reproduce/software')
-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'" |