Please check the GNU Autoconf Macro Archive for Updates
AC-Archive
Autoconf Macro Archive

ac-archive.sf.net: - Project CVS - Download
Macro Index
- AM Support
- C++ Support
- C Support
- Fortran Support
- Java Support
- Cross Compilation
- Installed Packages
- Miscellaneous
- LaTeX Support
- Uncategorized
- archive macros
- adl's macros
- bkorb's macros
- guidod's macros
- latex's macros
- other's macros
- rleigh's macros
- obsoleted macros
- released macros
- search index

Documentation
- Contribute!
- History
- acincludedir m4
- acinclude (tool)
- macro howto
- ax tricks
- maintainers
- License
- Topics

generated...
2007年08月05日

(C) 2007 guidod
Synopsis
AX_F90_LIBRARY_SETUP(LIBRARY, HEADER-REGEXP, MODULE-REGEXP, LIB-REGEXP, FUNCTION-BODY)
, 
Version

2005年01月14日

Author

Luc Maisonobe <luc@spaceroots.org>

License

AllPermissive
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. Users of this software should generally follow the principles of the MIT License includings its disclaimer.

Category

cryp.to ac-archive's Fortran Support (released)

Documentation

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
M4 Source Code
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 x2ドル != x ; then
 AX_F90_HEADER([1ドル],[2ドル],[5ドル],$withval,[
 FCFLAGS="$FCFLAGS $AS_TR_SH(F90_HEADER_1ドル)"
 ],[])
 fi
 if test x3ドル != 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"
 ],[])
])

AltStyle によって変換されたページ (->オリジナル) /