1# -*- mode: makefile -*-
2# -----------------------------------------------------------------
3# Programmer(s): Steven Smith @ LLNL
4#                David J. Gardner @ LLNL
5# -----------------------------------------------------------------
6# SUNDIALS Copyright Start
7# Copyright (c) 2002-2021, Lawrence Livermore National Security
8# and Southern Methodist University.
9# All rights reserved.
10#
11# See the top-level LICENSE and NOTICE files for details.
12#
13# SPDX-License-Identifier: BSD-3-Clause
14# SUNDIALS Copyright End
15# -----------------------------------------------------------------
16# Makefile for @SOLVER@ pthreads examples
17#
18# This file is generated from a template using variables
19# set at configuration time. It can be used as a template for
20# other user Makefiles.
21# -----------------------------------------------------------------
22
23SHELL = @SHELL@
24
25prefix       = @prefix@
26exec_prefix  = @exec_prefix@
27includedir   = @includedir@
28libdir       = @libdir@
29
30CPP      = @CPP@
31CPPFLAGS = @CPPFLAGS@
32CC       = @CC@
33CFLAGS   = @CFLAGS@
34LDFLAGS  = @LDFLAGS@ @CMAKE_THREAD_LIBS_INIT@
35LIBS     = @LIBS@
36
37LINKFLAGS = -Wl,-rpath,@libdir@
38
39# -----------------------------------------------------------------------------------------
40
41LIBRARIES_LAPACK = -lsundials_sunlinsollapackdense -lsundials_sunlinsollapackband @LAPACK_LIBS@
42LINKFLAGS_LAPACK = ${LINKFLAGS}:@LAPACK_LIBRARY_DIR@
43
44INCLUDES_KLU  = @KLU_INCLUDE_DIR@
45LIBRARIES_KLU = -lsundials_sunlinsolklu @KLU_LIBS@
46LINKFLAGS_KLU = ${LINKFLAGS}:@KLU_LIBRARY_DIR@
47
48INCLUDES_SLUMT  = @SUPERLUMT_INCLUDE_DIR@
49LIBRARIES_SLUMT = -lsundials_sunlinsolsuperlumt @SUPERLUMT_LIBS@
50LINKFLAGS_SLUMT = ${LINKFLAGS}:@SUPERLUMT_LIBRARY_DIR@
51
52TMP_INCS  = ${includedir} ${INCLUDES_SLUMT} ${INCLUDES_KLU}
53INCLUDES  = $(addprefix -I, ${TMP_INCS})
54LIBRARIES = -l@SOLVER_LIB@ -lsundials_nvecpthreads ${LIBS}
55
56# -----------------------------------------------------------------------------------------
57
58EXAMPLES = @EXAMPLES@
59EXAMPLES_DEPENDENCIES = @EXAMPLES_DEPENDENCIES@
60
61OBJECTS = ${EXAMPLES:=.o}
62OBJECTS_DEPENDENCIES = ${EXAMPLES_DEPENDENCIES:=.o}
63
64# LAPACK Examples
65EXAMPLES_BL = @EXAMPLES_BL@
66EXAMPLES_DEPENDENCIES_BL = @EXAMPLES_DEPENDENCIES_BL@
67
68OBJECTS_BL = ${EXAMPLES_BL:=.o}
69OBJECTS_DEPENDENCIES_BL = ${EXAMPLES_DEPENDENCIES_BL:=.o}
70
71# KLU Examples
72EXAMPLES_KLU = @EXAMPLES_KLU@
73EXAMPLES_DEPENDENCIES_KLU = @EXAMPLES_DEPENDENCIES_KLU@
74
75OBJECTS_KLU = ${EXAMPLES_KLU:=.o}
76OBJECTS_DEPENDENCIES_KLU = ${EXAMPLES_DEPENDENCIES_KLU:=.o}
77
78# SuperLU_MT Examples
79EXAMPLES_SLUMT = @EXAMPLES_SLUMT@
80EXAMPLES_DEPENDENCIES_SLUMT = @EXAMPLES_DEPENDENCIES_SLUMT@
81
82OBJECTS_SLUMT = ${EXAMPLES_SLUMT:=.o}
83OBJECTS_DEPENDENCIES_SLUMT = ${EXAMPLES_DEPENDENCIES_SLUMT:=.o}
84
85# -----------------------------------------------------------------------------------------
86
87.SUFFIXES : .o .c
88
89.c.o :
90	${CC} ${CPPFLAGS} ${CFLAGS} ${INCLUDES} -c $<
91
92# -----------------------------------------------------------------------------------------
93
94all: examples examples_bl examples_klu examples_slumt
95
96examples: ${OBJECTS}
97	@for i in ${EXAMPLES} ; do \
98	  echo "${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LINKFLAGS}" ; \
99	  ${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LINKFLAGS} ; \
100	done
101
102examples_bl: ${OBJECTS_BL}
103	@for i in ${EXAMPLES_BL} ; do \
104	  echo "${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES_BL} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LIBRARIES_LAPACK} ${LINKFLAGS_LAPACK}" ; \
105	  ${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES_BL} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LIBRARIES_LAPACK} ${LINKFLAGS_LAPACK} ; \
106	done
107
108examples_klu: ${OBJECTS_KLU}
109	@for i in ${EXAMPLES_KLU} ; do \
110	  echo "${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES_KLU} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LIBRARIES_KLU} ${LINKFLAGS_KLU}" ; \
111	  ${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES_KLU} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LIBRARIES_KLU} ${LINKFLAGS_KLU} ; \
112	done
113
114examples_slumt: ${OBJECTS_SLUMT}
115	@for i in ${EXAMPLES_SLUMT} ; do \
116	  echo "${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES_SLUMT} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LIBRARIES_SLUMT} ${LINKFLAGS_SLUMT}" ; \
117	  ${CC} -o $${i} $${i}.o ${OBJECTS_DEPENDENCIES_SLUMT} ${CFLAGS} ${LDFLAGS} ${INCLUDES} -L${libdir} ${LIBRARIES} ${LIBRARIES_SLUMT} ${LINKFLAGS_SLUMT} ; \
118	done
119
120${OBJECTS}: ${OBJECTS_DEPENDENCIES}
121
122${OBJECTS_BL}: ${OBJECTS_DEPENDENCIES_BL}
123
124${OBJECTS_KLU}: ${OBJECTS_DEPENDENCIES_KLU}
125
126${OBJECTS_SLUMT}: ${OBJECTS_DEPENDENCIES_SLUMT}
127
128clean:
129	rm -f ${OBJECTS_DEPENDENCIES} ${OBJECTS_DEPENDENCIES_BL} ${OBJECTS_DEPENDENCIES_KLU} ${OBJECTS_DEPENDENCIES_SLUMT}
130	rm -f ${OBJECTS} ${OBJECTS_BL} ${OBJECTS_KLU} ${OBJECTS_SLUMT}
131	rm -f ${EXAMPLES} ${EXAMPLES_BL} ${EXAMPLES_KLU} ${EXAMPLES_SLUMT}
132
133# -----------------------------------------------------------------------------------------
134