From 1c848be815dd0e49513dc77be6fa0e7fea173d94 Mon Sep 17 00:00:00 2001 From: Namjae Choi Date: Sun, 21 Jun 2026 16:32:42 -0600 Subject: [PATCH] Support Kokkos RDC build --- Makefile.am | 164 +++++++++++++++---------------- Makefile.in | 165 ++++++++++++++++---------------- configure | 82 +++++++++++++++- m4/libmesh_optional_packages.m4 | 79 ++++++++++++++- 4 files changed, 323 insertions(+), 167 deletions(-) diff --git a/Makefile.am b/Makefile.am index dd0ad2ec2a4..1cfac9fd07b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -44,7 +44,7 @@ AM_CPPFLAGS = -DLIBMESH_IS_COMPILING_ITSELF \ $(libmesh_optional_INCLUDES) \ -I$(top_builddir)/include # required for libmesh_version.h -LIBS = $(libmesh_optional_LIBS) $(libmesh_precision_LIBS) +LIBS = $(libmesh_precision_LIBS) # additional files which must be included in 'make dist' EXTRA_DIST = reference_elements \ @@ -268,7 +268,7 @@ if LIBMESH_DBG_MODE libmesh_dbg_la_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) libmesh_dbg_la_CXXFLAGS = $(CXXFLAGS_DBG) libmesh_dbg_la_CFLAGS = $(CFLAGS_DBG) - libmesh_dbg_la_LIBADD = contrib/libcontrib_dbg.la $(LIBS) + libmesh_dbg_la_LIBADD = contrib/libcontrib_dbg.la $(libmesh_shared_optional_LIBS) endif if LIBMESH_DEVEL_MODE @@ -277,7 +277,7 @@ if LIBMESH_DEVEL_MODE libmesh_devel_la_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) libmesh_devel_la_CXXFLAGS = $(CXXFLAGS_DEVEL) libmesh_devel_la_CFLAGS = $(CFLAGS_DEVEL) - libmesh_devel_la_LIBADD = contrib/libcontrib_devel.la $(LIBS) + libmesh_devel_la_LIBADD = contrib/libcontrib_devel.la $(libmesh_shared_optional_LIBS) endif if LIBMESH_OPT_MODE @@ -286,7 +286,7 @@ if LIBMESH_OPT_MODE libmesh_opt_la_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) libmesh_opt_la_CXXFLAGS = $(CXXFLAGS_OPT) libmesh_opt_la_CFLAGS = $(CFLAGS_OPT) - libmesh_opt_la_LIBADD = contrib/libcontrib_opt.la $(LIBS) + libmesh_opt_la_LIBADD = contrib/libcontrib_opt.la $(libmesh_shared_optional_LIBS) endif if LIBMESH_PROF_MODE @@ -295,7 +295,7 @@ if LIBMESH_PROF_MODE libmesh_prof_la_CPPFLAGS = $(CPPFLAGS_PROF) $(AM_CPPFLAGS) libmesh_prof_la_CXXFLAGS = $(CXXFLAGS_PROF) libmesh_prof_la_CFLAGS = $(CFLAGS_PROF) - libmesh_prof_la_LIBADD = contrib/libcontrib_prof.la $(LIBS) + libmesh_prof_la_LIBADD = contrib/libcontrib_prof.la $(libmesh_shared_optional_LIBS) endif if LIBMESH_OPROF_MODE @@ -304,7 +304,7 @@ if LIBMESH_OPROF_MODE libmesh_oprof_la_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) libmesh_oprof_la_CXXFLAGS = $(CXXFLAGS_OPROF) libmesh_oprof_la_CFLAGS = $(CFLAGS_OPROF) - libmesh_oprof_la_LIBADD = contrib/libcontrib_oprof.la $(LIBS) + libmesh_oprof_la_LIBADD = contrib/libcontrib_oprof.la $(libmesh_shared_optional_LIBS) endif # Make sure we build the library before we test it @@ -334,25 +334,25 @@ opt_programs += fparser_parse-opt fparser_parse_opt_SOURCES = src/apps/fparser_parse.C fparser_parse_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) fparser_parse_opt_CXXFLAGS = $(CXXFLAGS_OPT) -fparser_parse_opt_LDADD = libmesh_opt.la +fparser_parse_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += fparser_parse-devel fparser_parse_devel_SOURCES = src/apps/fparser_parse.C fparser_parse_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) fparser_parse_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -fparser_parse_devel_LDADD = libmesh_devel.la +fparser_parse_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += fparser_parse-dbg fparser_parse_dbg_SOURCES = src/apps/fparser_parse.C fparser_parse_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) fparser_parse_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -fparser_parse_dbg_LDADD = libmesh_dbg.la +fparser_parse_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += fparser_parse-oprof fparser_parse_oprof_SOURCES = src/apps/fparser_parse.C fparser_parse_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) fparser_parse_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -fparser_parse_oprof_LDADD = libmesh_oprof.la +fparser_parse_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # getpot_parse @@ -360,25 +360,25 @@ opt_programs += getpot_parse-opt getpot_parse_opt_SOURCES = src/apps/getpot_parse.C getpot_parse_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) getpot_parse_opt_CXXFLAGS = $(CXXFLAGS_OPT) -getpot_parse_opt_LDADD = libmesh_opt.la +getpot_parse_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += getpot_parse-devel getpot_parse_devel_SOURCES = src/apps/getpot_parse.C getpot_parse_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) getpot_parse_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -getpot_parse_devel_LDADD = libmesh_devel.la +getpot_parse_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += getpot_parse-dbg getpot_parse_dbg_SOURCES = src/apps/getpot_parse.C getpot_parse_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) getpot_parse_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -getpot_parse_dbg_LDADD = libmesh_dbg.la +getpot_parse_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += getpot_parse-oprof getpot_parse_oprof_SOURCES = src/apps/getpot_parse.C getpot_parse_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) getpot_parse_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -getpot_parse_oprof_LDADD = libmesh_oprof.la +getpot_parse_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # amr @@ -386,25 +386,25 @@ opt_programs += amr-opt amr_opt_SOURCES = src/apps/amr.C amr_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) amr_opt_CXXFLAGS = $(CXXFLAGS_OPT) -amr_opt_LDADD = libmesh_opt.la +amr_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += amr-devel amr_devel_SOURCES = src/apps/amr.C amr_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) amr_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -amr_devel_LDADD = libmesh_devel.la +amr_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += amr-dbg amr_dbg_SOURCES = src/apps/amr.C amr_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) amr_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -amr_dbg_LDADD = libmesh_dbg.la +amr_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += amr-oprof amr_oprof_SOURCES = src/apps/amr.C amr_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) amr_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -amr_oprof_LDADD = libmesh_oprof.la +amr_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # matrixconvert @@ -412,25 +412,25 @@ opt_programs += matrixconvert-opt matrixconvert_opt_SOURCES = src/apps/matrixconvert.C matrixconvert_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) matrixconvert_opt_CXXFLAGS = $(CXXFLAGS_OPT) -matrixconvert_opt_LDADD = libmesh_opt.la +matrixconvert_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += matrixconvert-devel matrixconvert_devel_SOURCES = src/apps/matrixconvert.C matrixconvert_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) matrixconvert_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -matrixconvert_devel_LDADD = libmesh_devel.la +matrixconvert_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += matrixconvert-dbg matrixconvert_dbg_SOURCES = src/apps/matrixconvert.C matrixconvert_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) matrixconvert_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -matrixconvert_dbg_LDADD = libmesh_dbg.la +matrixconvert_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += matrixconvert-oprof matrixconvert_oprof_SOURCES = src/apps/matrixconvert.C matrixconvert_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) matrixconvert_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -matrixconvert_oprof_LDADD = libmesh_oprof.la +matrixconvert_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # matrixsolve @@ -438,25 +438,25 @@ opt_programs += matrixsolve-opt matrixsolve_opt_SOURCES = src/apps/matrixsolve.C matrixsolve_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) matrixsolve_opt_CXXFLAGS = $(CXXFLAGS_OPT) -matrixsolve_opt_LDADD = libmesh_opt.la +matrixsolve_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += matrixsolve-devel matrixsolve_devel_SOURCES = src/apps/matrixsolve.C matrixsolve_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) matrixsolve_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -matrixsolve_devel_LDADD = libmesh_devel.la +matrixsolve_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += matrixsolve-dbg matrixsolve_dbg_SOURCES = src/apps/matrixsolve.C matrixsolve_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) matrixsolve_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -matrixsolve_dbg_LDADD = libmesh_dbg.la +matrixsolve_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += matrixsolve-oprof matrixsolve_oprof_SOURCES = src/apps/matrixsolve.C matrixsolve_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) matrixsolve_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -matrixsolve_oprof_LDADD = libmesh_oprof.la +matrixsolve_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshtool @@ -464,25 +464,25 @@ opt_programs += meshtool-opt meshtool_opt_SOURCES = src/apps/meshtool.C meshtool_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshtool_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshtool_opt_LDADD = libmesh_opt.la +meshtool_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshtool-devel meshtool_devel_SOURCES = src/apps/meshtool.C meshtool_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshtool_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshtool_devel_LDADD = libmesh_devel.la +meshtool_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshtool-dbg meshtool_dbg_SOURCES = src/apps/meshtool.C meshtool_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshtool_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshtool_dbg_LDADD = libmesh_dbg.la +meshtool_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshtool-oprof meshtool_oprof_SOURCES = src/apps/meshtool.C meshtool_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshtool_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshtool_oprof_LDADD = libmesh_oprof.la +meshtool_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # calculator @@ -491,28 +491,28 @@ calculator_opt_SOURCES = src/apps/calculator.C calculator_opt_SOURCES += src/apps/L2system.C src/apps/L2system.h calculator_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) calculator_opt_CXXFLAGS = $(CXXFLAGS_OPT) -calculator_opt_LDADD = libmesh_opt.la +calculator_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += calculator-devel calculator_devel_SOURCES = src/apps/calculator.C calculator_devel_SOURCES += src/apps/L2system.C src/apps/L2system.h calculator_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) calculator_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -calculator_devel_LDADD = libmesh_devel.la +calculator_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += calculator-dbg calculator_dbg_SOURCES = src/apps/calculator.C calculator_dbg_SOURCES += src/apps/L2system.C src/apps/L2system.h calculator_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) calculator_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -calculator_dbg_LDADD = libmesh_dbg.la +calculator_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += calculator-oprof calculator_oprof_SOURCES = src/apps/calculator.C calculator_oprof_SOURCES += src/apps/L2system.C src/apps/L2system.h calculator_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) calculator_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -calculator_oprof_LDADD = libmesh_oprof.la +calculator_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # compare @@ -520,25 +520,25 @@ opt_programs += compare-opt compare_opt_SOURCES = src/apps/compare.C compare_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) compare_opt_CXXFLAGS = $(CXXFLAGS_OPT) -compare_opt_LDADD = libmesh_opt.la +compare_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += compare-devel compare_devel_SOURCES = src/apps/compare.C compare_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) compare_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -compare_devel_LDADD = libmesh_devel.la +compare_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += compare-dbg compare_dbg_SOURCES = src/apps/compare.C compare_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) compare_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -compare_dbg_LDADD = libmesh_dbg.la +compare_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += compare-oprof compare_oprof_SOURCES = src/apps/compare.C compare_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) compare_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -compare_oprof_LDADD = libmesh_oprof.la +compare_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshbcid @@ -546,25 +546,25 @@ opt_programs += meshbcid-opt meshbcid_opt_SOURCES = src/apps/meshbcid.C meshbcid_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshbcid_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshbcid_opt_LDADD = libmesh_opt.la +meshbcid_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshbcid-devel meshbcid_devel_SOURCES = src/apps/meshbcid.C meshbcid_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshbcid_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshbcid_devel_LDADD = libmesh_devel.la +meshbcid_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshbcid-dbg meshbcid_dbg_SOURCES = src/apps/meshbcid.C meshbcid_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshbcid_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshbcid_dbg_LDADD = libmesh_dbg.la +meshbcid_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshbcid-oprof meshbcid_oprof_SOURCES = src/apps/meshbcid.C meshbcid_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshbcid_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshbcid_oprof_LDADD = libmesh_oprof.la +meshbcid_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshid @@ -572,25 +572,25 @@ opt_programs += meshid-opt meshid_opt_SOURCES = src/apps/meshid.C meshid_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshid_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshid_opt_LDADD = libmesh_opt.la +meshid_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshid-devel meshid_devel_SOURCES = src/apps/meshid.C meshid_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshid_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshid_devel_LDADD = libmesh_devel.la +meshid_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshid-dbg meshid_dbg_SOURCES = src/apps/meshid.C meshid_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshid_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshid_dbg_LDADD = libmesh_dbg.la +meshid_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshid-oprof meshid_oprof_SOURCES = src/apps/meshid.C meshid_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshid_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshid_oprof_LDADD = libmesh_oprof.la +meshid_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshavg @@ -598,25 +598,25 @@ opt_programs += meshavg-opt meshavg_opt_SOURCES = src/apps/meshavg.C meshavg_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshavg_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshavg_opt_LDADD = libmesh_opt.la +meshavg_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshavg-devel meshavg_devel_SOURCES = src/apps/meshavg.C meshavg_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshavg_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshavg_devel_LDADD = libmesh_devel.la +meshavg_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshavg-dbg meshavg_dbg_SOURCES = src/apps/meshavg.C meshavg_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshavg_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshavg_dbg_LDADD = libmesh_dbg.la +meshavg_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshavg-oprof meshavg_oprof_SOURCES = src/apps/meshavg.C meshavg_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshavg_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshavg_oprof_LDADD = libmesh_oprof.la +meshavg_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshdiff @@ -624,25 +624,25 @@ opt_programs += meshdiff-opt meshdiff_opt_SOURCES = src/apps/meshdiff.C meshdiff_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshdiff_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshdiff_opt_LDADD = libmesh_opt.la +meshdiff_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshdiff-devel meshdiff_devel_SOURCES = src/apps/meshdiff.C meshdiff_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshdiff_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshdiff_devel_LDADD = libmesh_devel.la +meshdiff_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshdiff-dbg meshdiff_dbg_SOURCES = src/apps/meshdiff.C meshdiff_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshdiff_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshdiff_dbg_LDADD = libmesh_dbg.la +meshdiff_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshdiff-oprof meshdiff_oprof_SOURCES = src/apps/meshdiff.C meshdiff_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshdiff_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshdiff_oprof_LDADD = libmesh_oprof.la +meshdiff_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshnorm @@ -650,25 +650,25 @@ opt_programs += meshnorm-opt meshnorm_opt_SOURCES = src/apps/meshnorm.C meshnorm_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshnorm_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshnorm_opt_LDADD = libmesh_opt.la +meshnorm_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshnorm-devel meshnorm_devel_SOURCES = src/apps/meshnorm.C meshnorm_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshnorm_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshnorm_devel_LDADD = libmesh_devel.la +meshnorm_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshnorm-dbg meshnorm_dbg_SOURCES = src/apps/meshnorm.C meshnorm_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshnorm_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshnorm_dbg_LDADD = libmesh_dbg.la +meshnorm_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshnorm-oprof meshnorm_oprof_SOURCES = src/apps/meshnorm.C meshnorm_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshnorm_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshnorm_oprof_LDADD = libmesh_oprof.la +meshnorm_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # projection @@ -676,25 +676,25 @@ opt_programs += projection-opt projection_opt_SOURCES = src/apps/projection.C projection_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) projection_opt_CXXFLAGS = $(CXXFLAGS_OPT) -projection_opt_LDADD = libmesh_opt.la +projection_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += projection-devel projection_devel_SOURCES = src/apps/projection.C projection_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) projection_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -projection_devel_LDADD = libmesh_devel.la +projection_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += projection-dbg projection_dbg_SOURCES = src/apps/projection.C projection_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) projection_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -projection_dbg_LDADD = libmesh_dbg.la +projection_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += projection-oprof projection_oprof_SOURCES = src/apps/projection.C projection_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) projection_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -projection_oprof_LDADD = libmesh_oprof.la +projection_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # output_libmesh_version @@ -702,25 +702,25 @@ opt_programs += output_libmesh_version-opt output_libmesh_version_opt_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) output_libmesh_version_opt_CXXFLAGS = $(CXXFLAGS_OPT) -output_libmesh_version_opt_LDADD = libmesh_opt.la +output_libmesh_version_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += output_libmesh_version-devel output_libmesh_version_devel_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) output_libmesh_version_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -output_libmesh_version_devel_LDADD = libmesh_devel.la +output_libmesh_version_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += output_libmesh_version-dbg output_libmesh_version_dbg_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) output_libmesh_version_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -output_libmesh_version_dbg_LDADD = libmesh_dbg.la +output_libmesh_version_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += output_libmesh_version-oprof output_libmesh_version_oprof_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) output_libmesh_version_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -output_libmesh_version_oprof_LDADD = libmesh_oprof.la +output_libmesh_version_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # meshplot @@ -728,25 +728,25 @@ opt_programs += meshplot-opt meshplot_opt_SOURCES = src/apps/meshplot.C meshplot_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshplot_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshplot_opt_LDADD = libmesh_opt.la +meshplot_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += meshplot-devel meshplot_devel_SOURCES = src/apps/meshplot.C meshplot_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshplot_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshplot_devel_LDADD = libmesh_devel.la +meshplot_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += meshplot-dbg meshplot_dbg_SOURCES = src/apps/meshplot.C meshplot_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshplot_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshplot_dbg_LDADD = libmesh_dbg.la +meshplot_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += meshplot-oprof meshplot_oprof_SOURCES = src/apps/meshplot.C meshplot_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshplot_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshplot_oprof_LDADD = libmesh_oprof.la +meshplot_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # solution_components @@ -754,25 +754,25 @@ opt_programs += solution_components-opt solution_components_opt_SOURCES = src/apps/solution_components.C solution_components_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) solution_components_opt_CXXFLAGS = $(CXXFLAGS_OPT) -solution_components_opt_LDADD = libmesh_opt.la +solution_components_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += solution_components-devel solution_components_devel_SOURCES = src/apps/solution_components.C solution_components_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) solution_components_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -solution_components_devel_LDADD = libmesh_devel.la +solution_components_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += solution_components-dbg solution_components_dbg_SOURCES = src/apps/solution_components.C solution_components_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) solution_components_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -solution_components_dbg_LDADD = libmesh_dbg.la +solution_components_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += solution_components-oprof solution_components_oprof_SOURCES = src/apps/solution_components.C solution_components_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) solution_components_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -solution_components_oprof_LDADD = libmesh_oprof.la +solution_components_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # splitter @@ -780,25 +780,25 @@ opt_programs += splitter-opt splitter_opt_SOURCES = src/apps/splitter.C splitter_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) splitter_opt_CXXFLAGS = $(CXXFLAGS_OPT) -splitter_opt_LDADD = libmesh_opt.la +splitter_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += splitter-devel splitter_devel_SOURCES = src/apps/splitter.C splitter_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) splitter_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -splitter_devel_LDADD = libmesh_devel.la +splitter_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += splitter-dbg splitter_dbg_SOURCES = src/apps/splitter.C splitter_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) splitter_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -splitter_dbg_LDADD = libmesh_dbg.la +splitter_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += splitter-oprof splitter_oprof_SOURCES = src/apps/splitter.C splitter_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) splitter_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -splitter_oprof_LDADD = libmesh_oprof.la +splitter_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # embedding @@ -806,25 +806,25 @@ opt_programs += embedding-opt embedding_opt_SOURCES = src/apps/embedding.C embedding_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) embedding_opt_CXXFLAGS = $(CXXFLAGS_OPT) -embedding_opt_LDADD = libmesh_opt.la +embedding_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) devel_programs += embedding-devel embedding_devel_SOURCES = src/apps/embedding.C embedding_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) embedding_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -embedding_devel_LDADD = libmesh_devel.la +embedding_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) dbg_programs += embedding-dbg embedding_dbg_SOURCES = src/apps/embedding.C embedding_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) embedding_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -embedding_dbg_LDADD = libmesh_dbg.la +embedding_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) oprof_programs += embedding-oprof embedding_oprof_SOURCES = src/apps/embedding.C embedding_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) embedding_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -embedding_oprof_LDADD = libmesh_oprof.la +embedding_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) if LIBMESH_OPT_MODE diff --git a/Makefile.in b/Makefile.in index 6d16369a4cc..4e36049b9f7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -7735,7 +7735,7 @@ LIBHILBERT_INCLUDE = @LIBHILBERT_INCLUDE@ LIBHILBERT_LIBRARY = @LIBHILBERT_LIBRARY@ LIBMESH_LIBRARY_SUFFIX = @LIBMESH_LIBRARY_SUFFIX@ LIBOBJS = @LIBOBJS@ -LIBS = $(libmesh_optional_LIBS) $(libmesh_precision_LIBS) +LIBS = $(libmesh_precision_LIBS) LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ @@ -7906,6 +7906,7 @@ libmesh_contrib_LDFLAGS = @libmesh_contrib_LDFLAGS@ libmesh_installed_LIBS = @libmesh_installed_LIBS@ libmesh_optional_INCLUDES = @libmesh_optional_INCLUDES@ libmesh_optional_LIBS = @libmesh_optional_LIBS@ +libmesh_shared_optional_LIBS = @libmesh_shared_optional_LIBS@ libmesh_pkgconfig_requires = @libmesh_pkgconfig_requires@ libmesh_precision_LIBS = @libmesh_precision_LIBS@ localedir = @localedir@ @@ -8556,27 +8557,27 @@ lib_LTLIBRARIES = $(am__append_11) $(am__append_12) $(am__append_13) \ @LIBMESH_DBG_MODE_TRUE@libmesh_dbg_la_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) @LIBMESH_DBG_MODE_TRUE@libmesh_dbg_la_CXXFLAGS = $(CXXFLAGS_DBG) @LIBMESH_DBG_MODE_TRUE@libmesh_dbg_la_CFLAGS = $(CFLAGS_DBG) -@LIBMESH_DBG_MODE_TRUE@libmesh_dbg_la_LIBADD = contrib/libcontrib_dbg.la $(LIBS) +@LIBMESH_DBG_MODE_TRUE@libmesh_dbg_la_LIBADD = contrib/libcontrib_dbg.la $(libmesh_shared_optional_LIBS) @LIBMESH_DEVEL_MODE_TRUE@libmesh_devel_la_SOURCES = $(libmesh_SOURCES) @LIBMESH_DEVEL_MODE_TRUE@libmesh_devel_la_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) @LIBMESH_DEVEL_MODE_TRUE@libmesh_devel_la_CXXFLAGS = $(CXXFLAGS_DEVEL) @LIBMESH_DEVEL_MODE_TRUE@libmesh_devel_la_CFLAGS = $(CFLAGS_DEVEL) -@LIBMESH_DEVEL_MODE_TRUE@libmesh_devel_la_LIBADD = contrib/libcontrib_devel.la $(LIBS) +@LIBMESH_DEVEL_MODE_TRUE@libmesh_devel_la_LIBADD = contrib/libcontrib_devel.la $(libmesh_shared_optional_LIBS) @LIBMESH_OPT_MODE_TRUE@libmesh_opt_la_SOURCES = $(libmesh_SOURCES) @LIBMESH_OPT_MODE_TRUE@libmesh_opt_la_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) @LIBMESH_OPT_MODE_TRUE@libmesh_opt_la_CXXFLAGS = $(CXXFLAGS_OPT) @LIBMESH_OPT_MODE_TRUE@libmesh_opt_la_CFLAGS = $(CFLAGS_OPT) -@LIBMESH_OPT_MODE_TRUE@libmesh_opt_la_LIBADD = contrib/libcontrib_opt.la $(LIBS) +@LIBMESH_OPT_MODE_TRUE@libmesh_opt_la_LIBADD = contrib/libcontrib_opt.la $(libmesh_shared_optional_LIBS) @LIBMESH_PROF_MODE_TRUE@libmesh_prof_la_SOURCES = $(libmesh_SOURCES) @LIBMESH_PROF_MODE_TRUE@libmesh_prof_la_CPPFLAGS = $(CPPFLAGS_PROF) $(AM_CPPFLAGS) @LIBMESH_PROF_MODE_TRUE@libmesh_prof_la_CXXFLAGS = $(CXXFLAGS_PROF) @LIBMESH_PROF_MODE_TRUE@libmesh_prof_la_CFLAGS = $(CFLAGS_PROF) -@LIBMESH_PROF_MODE_TRUE@libmesh_prof_la_LIBADD = contrib/libcontrib_prof.la $(LIBS) +@LIBMESH_PROF_MODE_TRUE@libmesh_prof_la_LIBADD = contrib/libcontrib_prof.la $(libmesh_shared_optional_LIBS) @LIBMESH_OPROF_MODE_TRUE@libmesh_oprof_la_SOURCES = $(libmesh_SOURCES) @LIBMESH_OPROF_MODE_TRUE@libmesh_oprof_la_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) @LIBMESH_OPROF_MODE_TRUE@libmesh_oprof_la_CXXFLAGS = $(CXXFLAGS_OPROF) @LIBMESH_OPROF_MODE_TRUE@libmesh_oprof_la_CFLAGS = $(CFLAGS_OPROF) -@LIBMESH_OPROF_MODE_TRUE@libmesh_oprof_la_LIBADD = contrib/libcontrib_oprof.la $(LIBS) +@LIBMESH_OPROF_MODE_TRUE@libmesh_oprof_la_LIBADD = contrib/libcontrib_oprof.la $(libmesh_shared_optional_LIBS) bin_SCRIPTS = # empty, append below CLEANFILES = $(am__append_22) @@ -8648,311 +8649,311 @@ oprof_programs = fparser_parse-oprof getpot_parse-oprof amr-oprof \ fparser_parse_opt_SOURCES = src/apps/fparser_parse.C fparser_parse_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) fparser_parse_opt_CXXFLAGS = $(CXXFLAGS_OPT) -fparser_parse_opt_LDADD = libmesh_opt.la +fparser_parse_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) fparser_parse_devel_SOURCES = src/apps/fparser_parse.C fparser_parse_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) fparser_parse_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -fparser_parse_devel_LDADD = libmesh_devel.la +fparser_parse_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) fparser_parse_dbg_SOURCES = src/apps/fparser_parse.C fparser_parse_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) fparser_parse_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -fparser_parse_dbg_LDADD = libmesh_dbg.la +fparser_parse_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) fparser_parse_oprof_SOURCES = src/apps/fparser_parse.C fparser_parse_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) fparser_parse_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -fparser_parse_oprof_LDADD = libmesh_oprof.la +fparser_parse_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) getpot_parse_opt_SOURCES = src/apps/getpot_parse.C getpot_parse_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) getpot_parse_opt_CXXFLAGS = $(CXXFLAGS_OPT) -getpot_parse_opt_LDADD = libmesh_opt.la +getpot_parse_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) getpot_parse_devel_SOURCES = src/apps/getpot_parse.C getpot_parse_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) getpot_parse_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -getpot_parse_devel_LDADD = libmesh_devel.la +getpot_parse_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) getpot_parse_dbg_SOURCES = src/apps/getpot_parse.C getpot_parse_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) getpot_parse_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -getpot_parse_dbg_LDADD = libmesh_dbg.la +getpot_parse_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) getpot_parse_oprof_SOURCES = src/apps/getpot_parse.C getpot_parse_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) getpot_parse_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -getpot_parse_oprof_LDADD = libmesh_oprof.la +getpot_parse_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) amr_opt_SOURCES = src/apps/amr.C amr_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) amr_opt_CXXFLAGS = $(CXXFLAGS_OPT) -amr_opt_LDADD = libmesh_opt.la +amr_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) amr_devel_SOURCES = src/apps/amr.C amr_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) amr_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -amr_devel_LDADD = libmesh_devel.la +amr_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) amr_dbg_SOURCES = src/apps/amr.C amr_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) amr_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -amr_dbg_LDADD = libmesh_dbg.la +amr_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) amr_oprof_SOURCES = src/apps/amr.C amr_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) amr_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -amr_oprof_LDADD = libmesh_oprof.la +amr_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) matrixconvert_opt_SOURCES = src/apps/matrixconvert.C matrixconvert_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) matrixconvert_opt_CXXFLAGS = $(CXXFLAGS_OPT) -matrixconvert_opt_LDADD = libmesh_opt.la +matrixconvert_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) matrixconvert_devel_SOURCES = src/apps/matrixconvert.C matrixconvert_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) matrixconvert_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -matrixconvert_devel_LDADD = libmesh_devel.la +matrixconvert_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) matrixconvert_dbg_SOURCES = src/apps/matrixconvert.C matrixconvert_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) matrixconvert_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -matrixconvert_dbg_LDADD = libmesh_dbg.la +matrixconvert_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) matrixconvert_oprof_SOURCES = src/apps/matrixconvert.C matrixconvert_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) matrixconvert_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -matrixconvert_oprof_LDADD = libmesh_oprof.la +matrixconvert_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) matrixsolve_opt_SOURCES = src/apps/matrixsolve.C matrixsolve_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) matrixsolve_opt_CXXFLAGS = $(CXXFLAGS_OPT) -matrixsolve_opt_LDADD = libmesh_opt.la +matrixsolve_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) matrixsolve_devel_SOURCES = src/apps/matrixsolve.C matrixsolve_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) matrixsolve_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -matrixsolve_devel_LDADD = libmesh_devel.la +matrixsolve_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) matrixsolve_dbg_SOURCES = src/apps/matrixsolve.C matrixsolve_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) matrixsolve_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -matrixsolve_dbg_LDADD = libmesh_dbg.la +matrixsolve_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) matrixsolve_oprof_SOURCES = src/apps/matrixsolve.C matrixsolve_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) matrixsolve_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -matrixsolve_oprof_LDADD = libmesh_oprof.la +matrixsolve_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshtool_opt_SOURCES = src/apps/meshtool.C meshtool_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshtool_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshtool_opt_LDADD = libmesh_opt.la +meshtool_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshtool_devel_SOURCES = src/apps/meshtool.C meshtool_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshtool_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshtool_devel_LDADD = libmesh_devel.la +meshtool_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshtool_dbg_SOURCES = src/apps/meshtool.C meshtool_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshtool_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshtool_dbg_LDADD = libmesh_dbg.la +meshtool_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshtool_oprof_SOURCES = src/apps/meshtool.C meshtool_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshtool_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshtool_oprof_LDADD = libmesh_oprof.la +meshtool_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) calculator_opt_SOURCES = src/apps/calculator.C src/apps/L2system.C \ src/apps/L2system.h calculator_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) calculator_opt_CXXFLAGS = $(CXXFLAGS_OPT) -calculator_opt_LDADD = libmesh_opt.la +calculator_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) calculator_devel_SOURCES = src/apps/calculator.C src/apps/L2system.C \ src/apps/L2system.h calculator_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) calculator_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -calculator_devel_LDADD = libmesh_devel.la +calculator_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) calculator_dbg_SOURCES = src/apps/calculator.C src/apps/L2system.C \ src/apps/L2system.h calculator_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) calculator_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -calculator_dbg_LDADD = libmesh_dbg.la +calculator_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) calculator_oprof_SOURCES = src/apps/calculator.C src/apps/L2system.C \ src/apps/L2system.h calculator_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) calculator_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -calculator_oprof_LDADD = libmesh_oprof.la +calculator_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) compare_opt_SOURCES = src/apps/compare.C compare_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) compare_opt_CXXFLAGS = $(CXXFLAGS_OPT) -compare_opt_LDADD = libmesh_opt.la +compare_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) compare_devel_SOURCES = src/apps/compare.C compare_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) compare_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -compare_devel_LDADD = libmesh_devel.la +compare_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) compare_dbg_SOURCES = src/apps/compare.C compare_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) compare_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -compare_dbg_LDADD = libmesh_dbg.la +compare_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) compare_oprof_SOURCES = src/apps/compare.C compare_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) compare_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -compare_oprof_LDADD = libmesh_oprof.la +compare_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshbcid_opt_SOURCES = src/apps/meshbcid.C meshbcid_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshbcid_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshbcid_opt_LDADD = libmesh_opt.la +meshbcid_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshbcid_devel_SOURCES = src/apps/meshbcid.C meshbcid_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshbcid_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshbcid_devel_LDADD = libmesh_devel.la +meshbcid_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshbcid_dbg_SOURCES = src/apps/meshbcid.C meshbcid_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshbcid_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshbcid_dbg_LDADD = libmesh_dbg.la +meshbcid_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshbcid_oprof_SOURCES = src/apps/meshbcid.C meshbcid_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshbcid_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshbcid_oprof_LDADD = libmesh_oprof.la +meshbcid_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshid_opt_SOURCES = src/apps/meshid.C meshid_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshid_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshid_opt_LDADD = libmesh_opt.la +meshid_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshid_devel_SOURCES = src/apps/meshid.C meshid_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshid_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshid_devel_LDADD = libmesh_devel.la +meshid_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshid_dbg_SOURCES = src/apps/meshid.C meshid_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshid_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshid_dbg_LDADD = libmesh_dbg.la +meshid_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshid_oprof_SOURCES = src/apps/meshid.C meshid_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshid_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshid_oprof_LDADD = libmesh_oprof.la +meshid_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshavg_opt_SOURCES = src/apps/meshavg.C meshavg_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshavg_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshavg_opt_LDADD = libmesh_opt.la +meshavg_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshavg_devel_SOURCES = src/apps/meshavg.C meshavg_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshavg_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshavg_devel_LDADD = libmesh_devel.la +meshavg_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshavg_dbg_SOURCES = src/apps/meshavg.C meshavg_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshavg_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshavg_dbg_LDADD = libmesh_dbg.la +meshavg_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshavg_oprof_SOURCES = src/apps/meshavg.C meshavg_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshavg_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshavg_oprof_LDADD = libmesh_oprof.la +meshavg_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshdiff_opt_SOURCES = src/apps/meshdiff.C meshdiff_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshdiff_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshdiff_opt_LDADD = libmesh_opt.la +meshdiff_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshdiff_devel_SOURCES = src/apps/meshdiff.C meshdiff_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshdiff_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshdiff_devel_LDADD = libmesh_devel.la +meshdiff_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshdiff_dbg_SOURCES = src/apps/meshdiff.C meshdiff_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshdiff_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshdiff_dbg_LDADD = libmesh_dbg.la +meshdiff_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshdiff_oprof_SOURCES = src/apps/meshdiff.C meshdiff_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshdiff_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshdiff_oprof_LDADD = libmesh_oprof.la +meshdiff_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshnorm_opt_SOURCES = src/apps/meshnorm.C meshnorm_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshnorm_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshnorm_opt_LDADD = libmesh_opt.la +meshnorm_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshnorm_devel_SOURCES = src/apps/meshnorm.C meshnorm_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshnorm_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshnorm_devel_LDADD = libmesh_devel.la +meshnorm_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshnorm_dbg_SOURCES = src/apps/meshnorm.C meshnorm_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshnorm_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshnorm_dbg_LDADD = libmesh_dbg.la +meshnorm_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshnorm_oprof_SOURCES = src/apps/meshnorm.C meshnorm_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshnorm_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshnorm_oprof_LDADD = libmesh_oprof.la +meshnorm_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) projection_opt_SOURCES = src/apps/projection.C projection_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) projection_opt_CXXFLAGS = $(CXXFLAGS_OPT) -projection_opt_LDADD = libmesh_opt.la +projection_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) projection_devel_SOURCES = src/apps/projection.C projection_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) projection_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -projection_devel_LDADD = libmesh_devel.la +projection_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) projection_dbg_SOURCES = src/apps/projection.C projection_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) projection_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -projection_dbg_LDADD = libmesh_dbg.la +projection_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) projection_oprof_SOURCES = src/apps/projection.C projection_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) projection_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -projection_oprof_LDADD = libmesh_oprof.la +projection_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) output_libmesh_version_opt_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) output_libmesh_version_opt_CXXFLAGS = $(CXXFLAGS_OPT) -output_libmesh_version_opt_LDADD = libmesh_opt.la +output_libmesh_version_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) output_libmesh_version_devel_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) output_libmesh_version_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -output_libmesh_version_devel_LDADD = libmesh_devel.la +output_libmesh_version_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) output_libmesh_version_dbg_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) output_libmesh_version_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -output_libmesh_version_dbg_LDADD = libmesh_dbg.la +output_libmesh_version_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) output_libmesh_version_oprof_SOURCES = src/apps/output_libmesh_version.C output_libmesh_version_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) output_libmesh_version_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -output_libmesh_version_oprof_LDADD = libmesh_oprof.la +output_libmesh_version_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) meshplot_opt_SOURCES = src/apps/meshplot.C meshplot_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) meshplot_opt_CXXFLAGS = $(CXXFLAGS_OPT) -meshplot_opt_LDADD = libmesh_opt.la +meshplot_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) meshplot_devel_SOURCES = src/apps/meshplot.C meshplot_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) meshplot_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -meshplot_devel_LDADD = libmesh_devel.la +meshplot_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) meshplot_dbg_SOURCES = src/apps/meshplot.C meshplot_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) meshplot_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -meshplot_dbg_LDADD = libmesh_dbg.la +meshplot_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) meshplot_oprof_SOURCES = src/apps/meshplot.C meshplot_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) meshplot_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -meshplot_oprof_LDADD = libmesh_oprof.la +meshplot_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) solution_components_opt_SOURCES = src/apps/solution_components.C solution_components_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) solution_components_opt_CXXFLAGS = $(CXXFLAGS_OPT) -solution_components_opt_LDADD = libmesh_opt.la +solution_components_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) solution_components_devel_SOURCES = src/apps/solution_components.C solution_components_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) solution_components_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -solution_components_devel_LDADD = libmesh_devel.la +solution_components_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) solution_components_dbg_SOURCES = src/apps/solution_components.C solution_components_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) solution_components_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -solution_components_dbg_LDADD = libmesh_dbg.la +solution_components_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) solution_components_oprof_SOURCES = src/apps/solution_components.C solution_components_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) solution_components_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -solution_components_oprof_LDADD = libmesh_oprof.la +solution_components_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) splitter_opt_SOURCES = src/apps/splitter.C splitter_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) splitter_opt_CXXFLAGS = $(CXXFLAGS_OPT) -splitter_opt_LDADD = libmesh_opt.la +splitter_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) splitter_devel_SOURCES = src/apps/splitter.C splitter_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) splitter_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -splitter_devel_LDADD = libmesh_devel.la +splitter_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) splitter_dbg_SOURCES = src/apps/splitter.C splitter_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) splitter_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -splitter_dbg_LDADD = libmesh_dbg.la +splitter_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) splitter_oprof_SOURCES = src/apps/splitter.C splitter_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) splitter_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -splitter_oprof_LDADD = libmesh_oprof.la +splitter_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) embedding_opt_SOURCES = src/apps/embedding.C embedding_opt_CPPFLAGS = $(CPPFLAGS_OPT) $(AM_CPPFLAGS) embedding_opt_CXXFLAGS = $(CXXFLAGS_OPT) -embedding_opt_LDADD = libmesh_opt.la +embedding_opt_LDADD = libmesh_opt.la $(libmesh_optional_LIBS) embedding_devel_SOURCES = src/apps/embedding.C embedding_devel_CPPFLAGS = $(CPPFLAGS_DEVEL) $(AM_CPPFLAGS) embedding_devel_CXXFLAGS = $(CXXFLAGS_DEVEL) -embedding_devel_LDADD = libmesh_devel.la +embedding_devel_LDADD = libmesh_devel.la $(libmesh_optional_LIBS) embedding_dbg_SOURCES = src/apps/embedding.C embedding_dbg_CPPFLAGS = $(CPPFLAGS_DBG) $(AM_CPPFLAGS) embedding_dbg_CXXFLAGS = $(CXXFLAGS_DBG) -embedding_dbg_LDADD = libmesh_dbg.la +embedding_dbg_LDADD = libmesh_dbg.la $(libmesh_optional_LIBS) embedding_oprof_SOURCES = src/apps/embedding.C embedding_oprof_CPPFLAGS = $(CPPFLAGS_OPROF) $(AM_CPPFLAGS) embedding_oprof_CXXFLAGS = $(CXXFLAGS_OPROF) -embedding_oprof_LDADD = libmesh_oprof.la +embedding_oprof_LDADD = libmesh_oprof.la $(libmesh_optional_LIBS) # ------------------------------------------- # Optional support for code coverage analysis diff --git a/configure b/configure index 731548b0514..a0751491012 100755 --- a/configure +++ b/configure @@ -670,6 +670,7 @@ libmesh_installed_LIBS libmesh_pkgconfig_requires libmesh_contrib_LDFLAGS libmesh_contrib_INCLUDES +libmesh_shared_optional_LIBS libmesh_optional_LIBS libmesh_optional_INCLUDES LIBMESH_ENABLE_METAPHYSICL_FALSE @@ -64443,7 +64444,6 @@ if test "x$enablepetsc" != "xno" then : libmesh_optional_INCLUDES="$PETSCINCLUDEDIRS $libmesh_optional_INCLUDES" - libmesh_optional_LIBS="$PETSCLINKLIBS $libmesh_optional_LIBS" fi if test x$enablepetsc = xyes; then @@ -64798,6 +64798,11 @@ then : libmesh_optional_INCLUDES="$SLEPC_INCLUDE $libmesh_optional_INCLUDES" libmesh_optional_LIBS="$SLEPC_LIBS $libmesh_optional_LIBS" +else $as_nop + if test "x$enablepetsc" != "xno" +then : + libmesh_optional_LIBS="$PETSCLINKLIBS $libmesh_optional_LIBS" +fi fi if test x$enableslepc = xyes; then LIBMESH_ENABLE_SLEPC_TRUE= @@ -73181,6 +73186,62 @@ printf "%s\n" "----------------------------------------------" >&6; } fi +# Libtool keeps -Wl,* tokens in command-line order, but classifies plain -l* +# tokens as dependency libraries and emits them later. For linker groups, keep +# the group contents in the same stream as the group markers. +libmesh_append_optional_lib() +{ + if eval "test \"x\$$1\" = x"; then + eval "$1=\$2" + else + eval "$1=\"\$$1 \$2\"" + fi +} + +libmesh_grouped_optional_LIBS= +libmesh_in_linker_group=no +for libmesh_optional_lib in $libmesh_optional_LIBS +do + case $libmesh_optional_lib in + -Wl,--start-group) + libmesh_in_linker_group=yes + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + ;; + -Wl,--end-group) + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + libmesh_in_linker_group=no + ;; + -l*) + if test "$libmesh_in_linker_group" = yes; then + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,$libmesh_optional_lib + else + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + fi + ;; + */*.a|*/*.so|*/*.so.*|*/*.dylib) + if test "$libmesh_in_linker_group" = yes; then + libmesh_optional_lib_dir=${libmesh_optional_lib%/*} + libmesh_optional_lib_file=${libmesh_optional_lib##*/} + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,-L$libmesh_optional_lib_dir + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,-l:$libmesh_optional_lib_file + else + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + fi + ;; + *.a|*.so|*.so.*|*.dylib) + if test "$libmesh_in_linker_group" = yes; then + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,$libmesh_optional_lib + else + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + fi + ;; + *) + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + ;; + esac +done +libmesh_optional_LIBS=$libmesh_grouped_optional_LIBS + # clean up values, if we have perl. This step is purely cosmetic, but # helps create readable (and easier to debug) compile and link lines # by stripping out repeated entries. This can happen for example when @@ -73209,6 +73270,24 @@ fi fi +# PETSc Kokkos device-link libraries are needed when linking programs but +# should not be linked into libMesh shared libraries. +libmesh_shared_optional_LIBS= +for libmesh_optional_lib in $libmesh_optional_LIBS +do + case $libmesh_optional_lib in + -lpetsckokkosdlink|-lpetsckokkos|-Wl,-lpetsckokkosdlink|-Wl,-lpetsckokkos|*/libpetsckokkosdlink.*|*/libpetsckokkos.*|-Wl,*/libpetsckokkosdlink.*|-Wl,*/libpetsckokkos.*|-Wl,-l:libpetsckokkosdlink.*|-Wl,-l:libpetsckokkos.*) + ;; + *) + if test "x$libmesh_shared_optional_LIBS" = "x"; then + libmesh_shared_optional_LIBS=$libmesh_optional_lib + else + libmesh_shared_optional_LIBS="$libmesh_shared_optional_LIBS $libmesh_optional_lib" + fi + ;; + esac +done + # substitute values @@ -78000,4 +78079,3 @@ printf "%s\n" "--------- Done Configuring libMesh ----------" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ---------------------------------------------" >&5 printf "%s\n" "---------------------------------------------" >&6; } # rm -f -r conftest* config.cache include/libmesh/libmesh_config.h.tmp - diff --git a/m4/libmesh_optional_packages.m4 b/m4/libmesh_optional_packages.m4 index 4e4657839ff..b2f81beffe9 100644 --- a/m4/libmesh_optional_packages.m4 +++ b/m4/libmesh_optional_packages.m4 @@ -224,7 +224,6 @@ dnl if so then don't add these libraries AS_IF([test "x$enablepetsc" != "xno"], [ libmesh_optional_INCLUDES="$PETSCINCLUDEDIRS $libmesh_optional_INCLUDES" - libmesh_optional_LIBS="$PETSCLINKLIBS $libmesh_optional_LIBS" ]) AM_CONDITIONAL(LIBMESH_ENABLE_PETSC, test x$enablepetsc = xyes) # ------------------------------------------------------------- @@ -284,6 +283,9 @@ AS_IF([test $enableslepc = yes], [ libmesh_optional_INCLUDES="$SLEPC_INCLUDE $libmesh_optional_INCLUDES" libmesh_optional_LIBS="$SLEPC_LIBS $libmesh_optional_LIBS" + ], + [AS_IF([test "x$enablepetsc" != "xno"], + [libmesh_optional_LIBS="$PETSCLINKLIBS $libmesh_optional_LIBS"]) ]) AM_CONDITIONAL(LIBMESH_ENABLE_SLEPC, test x$enableslepc = xyes) # ------------------------------------------------------------- @@ -871,6 +873,62 @@ AS_IF([test "$enableoptional" != no], AC_MSG_RESULT(----------------------------------------------) ]) +# Libtool keeps -Wl,* tokens in command-line order, but classifies plain -l* +# tokens as dependency libraries and emits them later. For linker groups, keep +# the group contents in the same stream as the group markers. +libmesh_append_optional_lib() +{ + if eval "test \"x\$$1\" = x"; then + eval "$1=\$2" + else + eval "$1=\"\$$1 \$2\"" + fi +} + +libmesh_grouped_optional_LIBS= +libmesh_in_linker_group=no +for libmesh_optional_lib in $libmesh_optional_LIBS +do + case $libmesh_optional_lib in + -Wl,--start-group) + libmesh_in_linker_group=yes + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + ;; + -Wl,--end-group) + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + libmesh_in_linker_group=no + ;; + -l*) + if test "$libmesh_in_linker_group" = yes; then + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,$libmesh_optional_lib + else + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + fi + ;; + */*.a|*/*.so|*/*.so.*|*/*.dylib) + if test "$libmesh_in_linker_group" = yes; then + libmesh_optional_lib_dir=${libmesh_optional_lib%/*} + libmesh_optional_lib_file=${libmesh_optional_lib##*/} + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,-L$libmesh_optional_lib_dir + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,-l:$libmesh_optional_lib_file + else + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + fi + ;; + *.a|*.so|*.so.*|*.dylib) + if test "$libmesh_in_linker_group" = yes; then + libmesh_append_optional_lib libmesh_grouped_optional_LIBS -Wl,$libmesh_optional_lib + else + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + fi + ;; + *) + libmesh_append_optional_lib libmesh_grouped_optional_LIBS $libmesh_optional_lib + ;; + esac +done +libmesh_optional_LIBS=$libmesh_grouped_optional_LIBS + # clean up values, if we have perl. This step is purely cosmetic, but # helps create readable (and easier to debug) compile and link lines # by stripping out repeated entries. This can happen for example when @@ -891,9 +949,28 @@ AS_IF([test -x $PERL], ]) ]) +# PETSc Kokkos device-link libraries are needed when linking programs but +# should not be linked into libMesh shared libraries. +libmesh_shared_optional_LIBS= +for libmesh_optional_lib in $libmesh_optional_LIBS +do + case $libmesh_optional_lib in + -lpetsckokkosdlink|-lpetsckokkos|-Wl,-lpetsckokkosdlink|-Wl,-lpetsckokkos|*/libpetsckokkosdlink.*|*/libpetsckokkos.*|-Wl,*/libpetsckokkosdlink.*|-Wl,*/libpetsckokkos.*|-Wl,-l:libpetsckokkosdlink.*|-Wl,-l:libpetsckokkos.*) + ;; + *) + if test "x$libmesh_shared_optional_LIBS" = "x"; then + libmesh_shared_optional_LIBS=$libmesh_optional_lib + else + libmesh_shared_optional_LIBS="$libmesh_shared_optional_LIBS $libmesh_optional_lib" + fi + ;; + esac +done + # substitute values AC_SUBST(libmesh_optional_INCLUDES) AC_SUBST(libmesh_optional_LIBS) +AC_SUBST(libmesh_shared_optional_LIBS) AC_SUBST(libmesh_contrib_INCLUDES) AC_SUBST(libmesh_contrib_LDFLAGS) AC_SUBST(libmesh_pkgconfig_requires)