##### http://autoconf-archive.cryp.to/ax_f90_library_setup.html # # SYNOPSIS # # AX_F90_LIBRARY_SETUP(LIBRARY, HEADER-REGEXP, MODULE-REGEXP, LIB-REGEXP, FUNCTION-BODY) # # DESCRIPTION # # Convenience macro to set up a fortran 90 library in a simplified # way. LIBRARY is the name of the library. HEADER-REGEXP is a regular # expression (used by find) matched by the header file to look for # (may be empty). MODULE-REGEXP is a regular expression (used by # find) matched by the filename of the module (may be empty). # LIB-REGEXP is a regular expression (used by find) matched by the # filename of the library, this is useful either if the library # filename does not follow the traditional libxxx.a or libxxx.so # pattern, or if some specific information is embedded into the name, # like compiler used, debugging status ...). FUNCTION-BODY is the # body of a function (including the 'use' statements and the call to # a function defined by the library). # # This macro is a simple wrapper around AX_F90_MODULE and # AX_F90_LIBRARY that uses the parameters provided by the end user # through a --with-xxx option to set up the search path. Both a # module and a library will be tested, the same path will be used for # both tests, so the path must be set up with a common parent # directory of both the library file and the module file. The macro # also automatically updates the FCFLAGS, LDFLAGS and LIBS variables # in addition to providing the F90_HEADER_xxx, F90_MODULE_xxx, # F90_LDFLAGS_xxx and F90_LIBS_xxx output variables. # # Example: suppose you have # /home/nostradamus/esoteric/lib/libalchemy.a and # /home/nostradamus/esoteric/mod/alchemy.mod which provides a # function transmute_into_gold, you can use the following in you # configure.ac: # # AX_F90_MODULE_EXTENSION # if test x$ax_f90_modext = xunknown ; then # AC_MSG_ERROR([unable to find f90 modules extension]) # fi # AX_F90_LIBRARY_SETUP(alchemy,[],alchemy.$ax_f90_modext,libalchemy*,[ # use alchemy # call transmute_into_gold('lead') # ]) # # and the user could configure your package using a command like # this: # # ./configure --with-alchemy=$HOME/esoteric # # LAST MODIFICATION # # 2005-01-14 # # COPYLEFT # # Copyright (c) 2005 Luc Maisonobe # # Copying and distribution of this file, with or without # modification, are permitted in any medium without royalty provided # the copyright notice and this notice are preserved. AC_DEFUN([AX_F90_LIBRARY_SETUP],[ AC_ARG_WITH([$1],[ --with-$1=path specify search path form $1 module and library], [if test x${withval} = xno ; then AC_MSG_WARN([$1 disabled at user option]) fi],[withval=""]) if test x$2 != x ; then AX_F90_HEADER([$1],[$2],[$5],$withval,[ FCFLAGS="$FCFLAGS $AS_TR_SH(F90_HEADER_$1)" ],[]) fi if test x$3 != x ; then AX_F90_MODULE([$1],[$3],[$5],$withval,[ FCFLAGS="$FCFLAGS $AS_TR_SH(F90_MODULE_$1)" ],[]) fi AX_F90_LIBRARY([$1],[$4],[$5],$withval,[ LDFLAGS="$LDFLAGS $AS_TR_SH(F90_LDFLAGS_$1)" LIBS="$AS_TR_SH(F90_LIBS_$1) $LIBS" ],[]) ])