2323 Default prefix='\$HOME/.local/bin'
2424 --verbose Show verbose build commands
2525 --yes Assume (yes) to all prompts for non-interactive build
26+ --enable-threads Build a thread-safe Caffeine library and link to
27+ thread-safe GASNet, for use in threaded do-concurrent.
2628
2729All unrecognized arguments will be passed to GASNet's configure.
2830
4850GASNET_VERSION=" stable"
4951VERBOSE=" "
5052GASNET_CONDUIT=" ${GASNET_CONDUIT:- smp} "
53+ GASNET_THREADMODE=" ${GASNET_THREADMODE:- seq} "
5154YES=false
5255APPEND_CFLAGS=" "
5356
@@ -106,6 +109,9 @@ while [ "$1" != "" ]; do
106109 -y | --yes)
107110 YES=" true"
108111 ;;
112+ --enable-threads) GASNET_THREADMODE=par ;;
113+ --disable-threads) GASNET_THREADMODE=seq ;;
114+
109115 * )
110116 # We pass the unmodified argument to GASNet configure
111117 # Quoting is believed sufficient for embedded whitespace but not quotes
382388 printf " Is it ok to download and install $1 ? [yes] "
383389}
384390
385- pkg=" gasnet-$GASNET_CONDUIT -seq "
391+ pkg=" gasnet-$GASNET_CONDUIT -$GASNET_THREADMODE "
386392export PKG_CONFIG_PATH
387393
388394if ! $PKG_CONFIG $pkg ; then
@@ -411,7 +417,7 @@ if ! $PKG_CONFIG $pkg ; then
411417 cmd=" $cmd --with-cc=\" $CC \" --with-cxx=\" $CXX \" "
412418 # select the GASNet config settings Caffeine requires, and disable unused features:
413419 cmd=" $cmd --enable-$GASNET_CONDUIT "
414- cmd=" $cmd --enable-seq --disable -par --disable-parsync"
420+ cmd=" $cmd --enable-seq --enable -par --disable-parsync"
415421 cmd=" $cmd --disable-segment-everything"
416422 # TEMPORARY: disable MPI compatibility until we figure out how to support in fpm
417423 cmd=" $cmd --disable-mpi-compat"
@@ -522,6 +528,10 @@ if ! [[ "$user_compiler_flags " =~ -[DU]ASSERTIONS[=\ ] ]] ; then
522528 compiler_flag+=" -DASSERTIONS"
523529fi
524530
531+ if [[ $GASNET_THREADMODE == " par" ]] ; then
532+ compiler_flag+=" -DCAF_THREAD_SAFE"
533+ fi
534+
525535GASNET_CONDUIT_UPPER=$( tr ' [:lower:]' ' [:upper:]' <<< $GASNET_CONDUIT )
526536compiler_flag+=" -DCAF_NETWORK_$GASNET_CONDUIT_UPPER "
527537
@@ -584,7 +594,7 @@ chmod u+x $RUN_FPM_SH
584594
585595./$RUN_FPM_SH build $VERBOSE
586596
587- LIBCAFFEINE_DST=libcaffeine-$GASNET_CONDUIT .a
597+ LIBCAFFEINE_DST=libcaffeine-$GASNET_CONDUIT - $GASNET_THREADMODE .a
588598LIBCAFFEINE_SRC=$( ./$RUN_FPM_SH install --list 2> /dev/null | grep libcaffeine | cut -d' ' -f2)
589599
590600if [ -z " $LIBCAFFEINE_SRC " ]; then
@@ -593,6 +603,7 @@ if [ -z "$LIBCAFFEINE_SRC" ]; then
593603else
594604 mkdir -p " $PREFIX /lib"
595605 cp -af " $LIBCAFFEINE_SRC " " $PREFIX /lib/$LIBCAFFEINE_DST "
606+ ln -sf " $LIBCAFFEINE_DST " " $PREFIX /lib/libcaffeine-$GASNET_CONDUIT .a"
596607 ln -sf " $LIBCAFFEINE_DST " " $PREFIX /lib/libcaffeine.a"
597608fi
598609
0 commit comments