Salome HOME
updated copyright message
[modules/med.git] / adm_local / unix / config_files / ac_check_sizeof_fortran.m4
1 dnl Copyright (C) 2007-2023  CEA/DEN, EDF R&D, OPEN CASCADE
2 dnl
3 dnl This library is free software; you can redistribute it and/or
4 dnl modify it under the terms of the GNU Lesser General Public
5 dnl License as published by the Free Software Foundation; either
6 dnl version 2.1 of the License, or (at your option) any later version.
7 dnl
8 dnl This library is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
10 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 dnl Lesser General Public License for more details.
12 dnl
13 dnl You should have received a copy of the GNU Lesser General Public
14 dnl License along with this library; if not, write to the Free Software
15 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 dnl
17 dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 dnl
19
20 AC_DEFUN([AC_CHECK_SIZEOF_FORTRAN], [
21   AC_REQUIRE([AC_F77_WRAPPERS])
22   AC_CACHE_CHECK([size of Fortran [$1]], [ac_cv_sizeof_fortran_[]translit($1, [A-Z *], [a-z_p])],[
23     AC_LANG_SAVE()
24     AC_LANG([Fortran 77])
25     AC_COMPILE_IFELSE([
26       AC_LANG_SOURCE([
27         subroutine fsize()
28         $1 i(2)
29         call csize(i(1), i(2))
30         end
31       ])
32     ],[
33       AC_LANG([C])
34       cp conftest.$ac_objext conftestf.$ac_objext
35       old_LDFLAGS="$LDFLAGS"
36       LDFLAGS="conftestf.$ac_objext $LDFLAGS"
37       AC_TRY_RUN([
38 #       include <stdio.h>
39 #         define CSIZE F77_FUNC(csize,CSIZE)
40 #         define FSIZE F77_FUNC(fsize,FSIZE)
41         static long size_val;
42         /* Called by Fortran */
43         void CSIZE (i1p, i2p)
44         char *i1p, *i2p;
45         {
46           size_val = (i2p - i1p);
47         }
48         main() {
49           FILE *f=fopen ("conftestval","w");
50           if (!f) return 1;
51           /* Call the Fortran function */
52           FSIZE ();
53           fprintf (f, "%d\n", size_val);
54           return 0;
55         }
56      ])
57      LDFLAGS="$old_LDFLAGS"
58      ac_cv_sizeof_fortran_[]translit($1, [A-Z *], [a-z_p])=`cat conftestval`
59      rm -f conftestval conftestf.$ac_objext
60     ])
61     AC_LANG_RESTORE()
62   ])
63   AC_DEFINE_UNQUOTED(SIZEOF_FORTRAN_[]translit($1, [a-z *], [A-Z_p]),
64                      [$ac_cv_sizeof_fortran_[]translit($1, [A-Z *], [a-z_p])],
65                      [The size of a Fortran `$1', as computed by sizeof.])
66
67 ])