File: ax_f90_library_setup.texi

package info (click to toggle)
autoconf-archive 20160916-1~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 7,960 kB
  • sloc: sh: 694; python: 62; makefile: 49
file content (69 lines) | stat: -rw-r--r-- 2,867 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@node ax_f90_library_setup
@unnumberedsec ax_f90_library_setup

@majorheading Synopsis

@smallexample
AX_F90_LIBRARY_SETUP(LIBRARY, HEADER-REGEXP, MODULE-REGEXP, LIB-REGEXP, FUNCTION-BODY)
@end smallexample

@majorheading 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:

@smallexample
  AX_F90_MODULE_EXTENSION
  if test x$ax_cv_f90_modext = xunknown ; then
    AC_MSG_ERROR([unable to find f90 modules extension])
  fi
  AX_F90_LIBRARY_SETUP(alchemy,[],alchemy.$ax_cv_f90_modext,libalchemy*,[
     use alchemy
     call transmute_into_gold('lead')
    ])
@end smallexample

and the user could configure your package using a command like this:

@smallexample
  ./configure --with-alchemy=$HOME/esoteric
@end smallexample

@majorheading Source Code

Download the
@uref{http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_f90_library_setup.m4,latest
version of @file{ax_f90_library_setup.m4}} or browse
@uref{http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=history;f=m4/ax_f90_library_setup.m4,the
macro's revision history}.

@majorheading License

@w{Copyright @copyright{} 2009 Luc Maisonobe @email{luc@@spaceroots.org}}

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. This file is offered as-is, without any
warranty.