Skip to content

Commit fc30a11

Browse files
authored
Merge pull request #311 from bonachea/install-info
Add run-fpm info command
2 parents cc127ca + c036564 commit fc30a11

2 files changed

Lines changed: 83 additions & 11 deletions

File tree

.github/workflows/build.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ jobs:
320320
##########################################################################
321321
# Caffeine Install
322322

323-
- name: Version info
323+
- name: Version info (pre-build)
324324
run: |
325325
echo == TOOL VERSIONS ==
326326
echo Platform version info:
@@ -345,6 +345,10 @@ jobs:
345345
##########################################################################
346346
# Caffeine Testing
347347

348+
- name: Version info (run-fpm)
349+
run: |
350+
./run-fpm.sh info
351+
348352
- name: Run examples
349353
run: |
350354
echo CAF_IMAGES=${CAF_IMAGES}

install.sh

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -568,39 +568,104 @@ RUN_FPM_SH="run-fpm.sh"
568568
cat << 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`"
572577
FPM_DRIVER=\${FPM_DRIVER:-\`realpath \$0\`}
573578
export FPM_DRIVER
574579
fpm_sub_cmd=\$1; shift
575580
if 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" "\$@"
578583
elif 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
593649
else
594650
echo "ERROR: Unrecognized fpm subcommand \$fpm_sub_cmd"
595-
\$fpm list
651+
\$FPM list
596652
exit 1
597653
fi
598654
EOF
599655
chmod 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

605670
LIBCAFFEINE_DST=libcaffeine-$GASNET_CONDUIT-$GASNET_THREADMODE.a
606671
LIBCAFFEINE_SRC=$(./$RUN_FPM_SH install --list 2>/dev/null | grep libcaffeine | cut -d' ' -f2)
@@ -615,6 +680,9 @@ else
615680
ln -sf "$LIBCAFFEINE_DST" "$PREFIX/lib/libcaffeine.a"
616681
fi
617682

683+
mkdir -p "$PREFIX/share/caffeine"
684+
./$RUN_FPM_SH info > "$PREFIX/share/caffeine/caffeine-info-$GASNET_CONDUIT-$GASNET_THREADMODE.txt"
685+
618686
cat << EOF
619687
620688
________________ Caffeine has been dispensed! ________________

0 commit comments

Comments
 (0)