@@ -568,39 +568,104 @@ RUN_FPM_SH="run-fpm.sh"
568568cat << EOF > $RUN_FPM_SH
569569#!/bin/sh
570570#-- DO NOT EDIT -- created by caffeine/install.sh
571- fpm="${FPM} "
571+ FPM="${FPM} "
572+ FC="` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_FC` "
573+ CC="` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_CC` "
574+ FFLAGS="$compiler_flag "
575+ CFLAGS="` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_CFLAGS` "
576+ LDFLAGS="` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_LDFLAGS` "
572577FPM_DRIVER=\$ {FPM_DRIVER:-\` realpath \$ 0\` }
573578export FPM_DRIVER
574579fpm_sub_cmd=\$ 1; shift
575580if echo "--help -help --version -version --list -list new update list clean publish" | grep -w -q -e "\$ fpm_sub_cmd" ; then
576581 set -x
577- exec \$ fpm "\$ fpm_sub_cmd" "\$ @"
582+ exec " \$ FPM" "\$ fpm_sub_cmd" "\$ @"
578583elif echo "build test run install" | grep -w -q -e "\$ fpm_sub_cmd" ; then
579584 sed -i.bak 's/^link = .*\$ /$FPM_TOML_LINK_ENTRY /' $FPM_TOML
580585 rm -f $FPM_TOML .bak # issue 282: this is the only portable way to use sed -i
581586 if test -n "$GASNET_RUNNER_ARG " && echo "test run" | grep -w -q -e "\$ fpm_sub_cmd" ; then
582587 set -- "--runner=$GASNET_RUNNER_ARG " "\$ @"
583588 fi
584589 set -x
585- exec \$ fpm "\$ fpm_sub_cmd" \\
590+ exec " \$ FPM" "\$ fpm_sub_cmd" \\
586591 --profile debug \\
587- --flag " $compiler_flag " \\
588- --compiler " ` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_FC ` " \\
589- --c-compiler "` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_CC ` " \\
590- --c-flag "` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_CFLAGS ` " \\
591- --link-flag "` $PKG_CONFIG caffeine --variable=CAFFEINE_FPM_LDFLAGS ` " \\
592+ --compiler " \$ FC " \\
593+ --flag " \$ FFLAGS" \\
594+ --c-compiler "\$ CC " \\
595+ --c-flag "\$ CFLAGS " \\
596+ --link-flag "\$ LDFLAGS " \\
592597 "\$ @"
598+ elif echo "info" | grep -w -q -e "\$ fpm_sub_cmd" ; then
599+ LINE=--------------------------------------------------
600+ SRCDIR=\$ (dirname \$ FPM_DRIVER)
601+ GASNETDIR="$GASNET_PREFIX "
602+ GASNETCONFIG="\$ GASNETDIR/include/gasnet_config.h"
603+ echo \$ LINE
604+ echo Version info:
605+ echo Caffeine \$ (grep version \$ SRCDIR/fpm.toml)
606+ if test -d \$ SRCDIR/.git ; then
607+ GITVER=\$ ( ( cd \$ SRCDIR && git describe --long --dirty --always ) 2> /dev/null)
608+ if test -n "\$ GITVER"; then
609+ echo " git describe: \$ GITVER"
610+ fi
611+ fi
612+ if test -r "\$ GASNETCONFIG"; then
613+ echo GASNet version \$ (grep GASNETI_RELEASE_VERSION \$ GASNETCONFIG | cut -d' ' -f3-)
614+ fi
615+ grep -e assert -e julienne \$ SRCDIR/fpm.toml
616+ echo \$ LINE
617+ echo Platform info:
618+ uname -a
619+ if test -r /etc/os-release ; then grep -e NAME -e VERSION /etc/os-release ; fi
620+ if test -x /usr/bin/sw_vers ; then /usr/bin/sw_vers ; fi
621+ echo \$ LINE
622+ echo Install settings:
623+ echo ID="\$ (date) \$ (whoami)"
624+ echo PREFIX=$PREFIX
625+ echo FPM=\$ FPM
626+ echo FC=\$ FC
627+ echo CC=\$ CC
628+ echo FFLAGS=\$ FFLAGS
629+ echo CFLAGS=\$ FFLAGS
630+ echo LDFLAGS=\$ LDFLAGS
631+ grep -e link \$ SRCDIR/fpm.toml
632+ echo GASNET=\$ GASNETDIR
633+ echo GASNET_CONDUIT=$GASNET_CONDUIT
634+ echo GASNET_THREADMODE=$GASNET_THREADMODE
635+ if test -r "\$ GASNETCONFIG"; then
636+ grep -e GASNETI_BUILD_ID -e GASNETI_CONFIGURE_ARGS \$ GASNETCONFIG | cut -d' ' -f2-
637+ fi
638+ for tool in FPM FC CC ; do
639+ echo \$ LINE
640+ eval toolval="\\ $\$ tool"
641+ echo \$ tool : \$ toolval
642+ # strip off any arguments that might be embedded:
643+ toolval=\$ (echo \$ toolval | cut -d' ' -f1)
644+ eval /bin/ls -al \$ toolval
645+ eval /bin/ls -alhL \$ toolval
646+ \$ toolval --version
647+ done
648+ echo \$ LINE
593649else
594650 echo "ERROR: Unrecognized fpm subcommand \$ fpm_sub_cmd"
595- \$ fpm list
651+ \$ FPM list
596652 exit 1
597653fi
598654EOF
599655chmod u+x $RUN_FPM_SH
600656# for backwards-compatibility of instructions/scripting:
601657( cd build && ln -f -s ../$RUN_FPM_SH run-fpm.sh )
602658
603- ./$RUN_FPM_SH build $VERBOSE
659+ ./$RUN_FPM_SH build $VERBOSE || \
660+ ( set +x
661+ echo " Defect reporting information:"
662+ ./$RUN_FPM_SH info
663+ echo
664+ echo Oh no, the Caffeine build appears to have failed!
665+ echo Please paste the ENTIRE output above into a new issue here:
666+ echo " https://github.com/berkeleylab/caffeine/issues"
667+ exit 1
668+ )
604669
605670LIBCAFFEINE_DST=libcaffeine-$GASNET_CONDUIT -$GASNET_THREADMODE .a
606671LIBCAFFEINE_SRC=$( ./$RUN_FPM_SH install --list 2> /dev/null | grep libcaffeine | cut -d' ' -f2)
615680 ln -sf " $LIBCAFFEINE_DST " " $PREFIX /lib/libcaffeine.a"
616681fi
617682
683+ mkdir -p " $PREFIX /share/caffeine"
684+ ./$RUN_FPM_SH info > " $PREFIX /share/caffeine/caffeine-info-$GASNET_CONDUIT -$GASNET_THREADMODE .txt"
685+
618686cat << EOF
619687
620688________________ Caffeine has been dispensed! ________________
0 commit comments