⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fortran.m4

📁 LINUX下的源码工具,可自己分析,或者直接装在系统上作为应用
💻 M4
📖 第 1 页 / 共 2 页
字号:
# This file is part of Autoconf.                       -*- Autoconf -*-# Fortran languages support.# Copyright 2001# Free Software Foundation, Inc.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA# 02111-1307, USA.## As a special exception, the Free Software Foundation gives unlimited# permission to copy, distribute and modify the configure scripts that# are the output of Autoconf.  You need not follow the terms of the GNU# General Public License when using or distributing such scripts, even# though portions of the text of Autoconf appear in them.  The GNU# General Public License (GPL) does govern all other use of the material# that constitutes the Autoconf program.## Certain portions of the Autoconf source text are designed to be copied# (in certain cases, depending on the input) into the output of# Autoconf.  We call these the "data" portions.  The rest of the Autoconf# source text consists of comments plus executable code that decides which# of the data portions to output in any given case.  We call these# comments and executable code the "non-data" portions.  Autoconf never# copies any of the non-data portions into its output.## This special exception to the GPL applies to versions of Autoconf# released by the Free Software Foundation.  When you make and# distribute a modified version of Autoconf, you may extend this special# exception to the GPL to apply to your modified version as well, *unless*# your modified version has the potential to copy into its output some# of the text that was the non-data portion of the version that you started# with.  (In other words, unless your change moves or copies text from# the non-data portions to the data portions.)  If your modification has# such potential, you must delete any notice of this special exception# to the GPL from your modified version.## Written by David MacKenzie, with help from# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,# Roland McGrath, Noah Friedman, david d zuhn, and many others.# _AC_LIST_MEMBER_IF(ELEMENT, LIST, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])# ---------------------------------------------------------------------------## Processing the elements of a list is tedious in shell programming,# as lists tend to be implemented as space delimited strings.## This macro searches LIST for ELEMENT, and executes ACTION-IF-FOUND# if ELEMENT is a member of LIST, otherwise it executes# ACTION-IF-NOT-FOUND.AC_DEFUN([_AC_LIST_MEMBER_IF],[dnl Do some sanity checking of the arguments.m4_if([$1], , [AC_FATAL([$0: missing argument 1])])dnlm4_if([$2], , [AC_FATAL([$0: missing argument 2])])dnl  ac_exists=false  for ac_i in $2; do    if test x"$1" = x"$ac_i"; then      ac_exists=true      break    fi  done  AS_IF([test x"$ac_exists" = xtrue], [$3], [$4])[]dnl])# _AC_LIST_MEMBER_IF# _AC_LINKER_OPTION(LINKER-OPTIONS, SHELL-VARIABLE)# -------------------------------------------------## Specifying options to the compiler (whether it be the C, C++ or# Fortran 77 compiler) that are meant for the linker is compiler# dependent.  This macro lets you give options to the compiler that# are meant for the linker in a portable, compiler-independent way.## This macro take two arguments, a list of linker options that the# compiler should pass to the linker (LINKER-OPTIONS) and the name of# a shell variable (SHELL-VARIABLE).  The list of linker options are# appended to the shell variable in a compiler-dependent way.## For example, if the selected language is C, then this:##   _AC_LINKER_OPTION([-R /usr/local/lib/foo], foo_LDFLAGS)## will expand into this if the selected C compiler is gcc:##   foo_LDFLAGS="-Xlinker -R -Xlinker /usr/local/lib/foo"## otherwise, it will expand into this:##   foo_LDFLAGS"-R /usr/local/lib/foo"## You are encouraged to add support for compilers that this macro# doesn't currently support.# FIXME: Get rid of this macro.AC_DEFUN([_AC_LINKER_OPTION],[if test "$ac_compiler_gnu" = yes; then  for ac_link_opt in $1; do    $2="[$]$2 -Xlinker $ac_link_opt"  doneelse  $2="[$]$2 $1"fi[]dnl])# _AC_LINKER_OPTION## ----------------------- #### 1. Language selection.  #### ----------------------- ### ----------------------------- ## 1d. The Fortran 77 language.  ## ----------------------------- ## AC_LANG(Fortran 77)# -------------------m4_define([AC_LANG(Fortran 77)],[ac_ext=fac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD'ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&AS_MESSAGE_LOG_FD'ac_compiler_gnu=$ac_cv_f77_compiler_gnu])# AC_LANG_FORTRAN77# -----------------AU_DEFUN([AC_LANG_FORTRAN77], [AC_LANG(Fortran 77)])# _AC_LANG_ABBREV(Fortran 77)# ---------------------------m4_define([_AC_LANG_ABBREV(Fortran 77)], [f77])## ---------------------- #### 2.Producing programs.  #### ---------------------- ### ------------------------ ## 2d. Fortran 77 sources.  ## ------------------------ ## AC_LANG_SOURCE(Fortran 77)(BODY)# --------------------------------# FIXME: Apparently, according to former AC_TRY_COMPILER, the CPP# directives must not be included.  But AC_TRY_RUN_NATIVE was not# avoiding them, so?m4_define([AC_LANG_SOURCE(Fortran 77)],[$1])# AC_LANG_PROGRAM(Fortran 77)([PROLOGUE], [BODY])# -----------------------------------------------# Yes, we discard the PROLOGUE.m4_define([AC_LANG_PROGRAM(Fortran 77)],[m4_ifval([$1],       [m4_warn([syntax], [$0: ignoring PROLOGUE: $1])])dnl      program main$2      end])# AC_LANG_CALL(Fortran 77)(PROLOGUE, FUNCTION)# --------------------------------------------# FIXME: This is a guess, help!m4_define([AC_LANG_CALL(Fortran 77)],[AC_LANG_PROGRAM([$1],[      call $2])])## -------------------------------------------- #### 3. Looking for Compilers and Preprocessors.  #### -------------------------------------------- ### ----------------------------- ## 3d. The Fortran 77 compiler.  ## ----------------------------- ## AC_LANG_PREPROC(Fortran 77)# ---------------------------# Find the Fortran 77 preprocessor.  Must be AC_DEFUN'd to be AC_REQUIRE'able.AC_DEFUN([AC_LANG_PREPROC(Fortran 77)],[m4_warn([syntax],         [$0: No preprocessor defined for ]_AC_LANG)])# AC_LANG_COMPILER(Fortran 77)# ----------------------------# Find the Fortran 77 compiler.  Must be AC_DEFUN'd to be# AC_REQUIRE'able.AC_DEFUN([AC_LANG_COMPILER(Fortran 77)],[AC_REQUIRE([AC_PROG_F77])])# ac_cv_prog_g77# --------------# We used to name the cache variable this way.AU_DEFUN([ac_cv_prog_g77],[ac_cv_f77_compiler_gnu])# AC_PROG_F77([COMPILERS...])# ---------------------------# COMPILERS is a space separated list of Fortran 77 compilers to search# for.  Fortran 95 isn't strictly backwards-compatible with Fortran 77,# but `f95' is worth trying.## Compilers are ordered by#  1. F77, F90, F95#  2. Good/tested native compilers, bad/untested native compilers#  3. Wrappers around f2c go last.## `fort77' is a wrapper around `f2c'.# It is believed that under HP-UX `fort77' is the name of the native# compiler.  On some Cray systems, fort77 is a native compiler.# frt is the Fujitsu F77 compiler.# pgf77 and pgf90 are the Portland Group F77 and F90 compilers.# xlf/xlf90/xlf95 are IBM (AIX) F77/F90/F95 compilers.# lf95 is the Lahey-Fujitsu compiler.# fl32 is the Microsoft Fortran "PowerStation" compiler.# af77 is the Apogee F77 compiler for Intergraph hardware running CLIX.# epcf90 is the "Edinburgh Portable Compiler" F90.# fort is the Compaq Fortran 90 (now 95) compiler for Tru64 and Linux/Alpha.AC_DEFUN([AC_PROG_F77],[AC_LANG_PUSH(Fortran 77)dnlAC_ARG_VAR([F77],    [Fortran 77 compiler command])dnlAC_ARG_VAR([FFLAGS], [Fortran 77 compiler flags])dnl_AC_ARG_VAR_LDFLAGS()dnlAC_CHECK_TOOLS(F77,      [m4_default([$1],                  [g77 f77 xlf frt pgf77 fl32 af77 fort77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 lf95 g95])])# Provide some information about the compiler.echo "$as_me:__oline__:" \     "checking for _AC_LANG compiler version" >&AS_MESSAGE_LOG_FDac_compiler=`set X $ac_compile; echo $[2]`_AC_EVAL([$ac_compiler --version </dev/null >&AS_MESSAGE_LOG_FD])_AC_EVAL([$ac_compiler -v </dev/null >&AS_MESSAGE_LOG_FD])_AC_EVAL([$ac_compiler -V </dev/null >&AS_MESSAGE_LOG_FD])m4_expand_once([_AC_COMPILER_EXEEXT])[]dnlm4_expand_once([_AC_COMPILER_OBJEXT])[]dnl# If we don't use `.F' as extension, the preprocessor is not run on the# input file.ac_save_ext=$ac_extac_ext=F_AC_LANG_COMPILER_GNUac_ext=$ac_save_extG77=`test $ac_compiler_gnu = yes && echo yes`_AC_PROG_F77_GAC_LANG_POP(Fortran 77)dnl])# AC_PROG_F77# _AC_PROG_F77_G# --------------# Check whether -g works, even if FFLAGS is set, in case the package# plays around with FFLAGS (such as to build both debugging and normal# versions of a library), tasteless as that idea is.m4_define([_AC_PROG_F77_G],[ac_test_FFLAGS=${FFLAGS+set}ac_save_FFLAGS=$FFLAGSFFLAGS=AC_CACHE_CHECK(whether $F77 accepts -g, ac_cv_prog_f77_g,[FFLAGS=-g_AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],[ac_cv_prog_f77_g=yes],[ac_cv_prog_f77_g=no])])if test "$ac_test_FFLAGS" = set; then  FFLAGS=$ac_save_FFLAGSelif test $ac_cv_prog_f77_g = yes; then  if test "$G77" = yes; then    FFLAGS="-g -O2"  else    FFLAGS="-g"  fielse  if test "$G77" = yes; then    FFLAGS="-O2"  else    FFLAGS=  fifi[]dnl])# _AC_PROG_F77_G# AC_PROG_F77_C_O# ---------------# Test if the Fortran 77 compiler accepts the options `-c' and `-o'# simultaneously, and define `F77_NO_MINUS_C_MINUS_O' if it does not.## The usefulness of this macro is questionable, as I can't really see# why anyone would use it.  The only reason I include it is for# completeness, since a similar test exists for the C compiler.AC_DEFUN([AC_PROG_F77_C_O],[AC_REQUIRE([AC_PROG_F77])dnlAC_CACHE_CHECK([whether $F77 understand -c and -o together],               [ac_cv_prog_f77_c_o],[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])# We test twice because some compilers refuse to overwrite an existing# `.o' file with `-o', although they will create one.ac_try='$F77 $FFLAGS -c conftest.$ac_ext -o conftest.$ac_objext >&AS_MESSAGE_LOG_FD'if AC_TRY_EVAL(ac_try) &&     test -f conftest.$ac_objext &&     AC_TRY_EVAL(ac_try); then  ac_cv_prog_f77_c_o=yeselse  ac_cv_prog_f77_c_o=nofirm -f conftest*])if test $ac_cv_prog_f77_c_o = no; then  AC_DEFINE(F77_NO_MINUS_C_MINUS_O, 1,            [Define to 1 if your Fortran 77 compiler doesn't accept             -c and -o together.])fi])# AC_PROG_F77_C_O## ------------------------------- #### 4. Compilers' characteristics.  #### ------------------------------- ### ---------------------------------------- ## 4d. Fortran 77 compiler characteristics. ## ---------------------------------------- ## _AC_PROG_F77_V_OUTPUT([FLAG = $ac_cv_prog_f77_v])# -------------------------------------------------# Link a trivial Fortran program, compiling with a verbose output FLAG# (which default value, $ac_cv_prog_f77_v, is computed by# _AC_PROG_F77_V), and return the output in $ac_f77_v_output.  This# output is processed in the way expected by AC_F77_LIBRARY_LDFLAGS,# so that any link flags that are echoed by the compiler appear as# space-separated items.AC_DEFUN([_AC_PROG_F77_V_OUTPUT],[AC_REQUIRE([AC_PROG_F77])dnlAC_LANG_PUSH(Fortran 77)dnlAC_LANG_CONFTEST([AC_LANG_PROGRAM([])])# Compile and link our simple test program by passing a flag (argument# 1 to this macro) to the Fortran 77 compiler in order to get# "verbose" output that we can then parse for the Fortran 77 linker# flags.ac_save_FFLAGS=$FFLAGSFFLAGS="$FFLAGS m4_default([$1], [$ac_cv_prog_f77_v])"(eval echo $as_me:__oline__: \"$ac_link\") >&AS_MESSAGE_LOG_FDac_f77_v_output=`eval $ac_link AS_MESSAGE_LOG_FD>&1 2>&1 | grep -v 'Driving:'`echo "$ac_f77_v_output" >&AS_MESSAGE_LOG_FDFFLAGS=$ac_save_FFLAGSrm -f conftest*AC_LANG_POP(Fortran 77)dnl# If we are using xlf then replace all the commas with spaces.if echo $ac_f77_v_output | grep xlfentry >/dev/null 2>&1; then  ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'`fi# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where# /foo, /bar, and /baz are search directories for the Fortran linker.# Here, we change these into -L/foo -L/bar -L/baz (and put it first):ac_f77_v_output="`echo $ac_f77_v_output |	grep 'LPATH is:' |	sed 's,.*LPATH is\(: *[[^ ]]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output"# If we are using Cray Fortran then delete quotes.# Use "\"" instead of '"' for font-lock-mode.# FIXME: a more general fix for quoted arguments with spaces?if echo $ac_f77_v_output | grep cft90 >/dev/null 2>&1; then  ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"`fi[]dnl])# _AC_PROG_F77_V_OUTPUT# _AC_PROG_F77_V# --------------## Determine the flag that causes the Fortran 77 compiler to print# information of library and object files (normally -v)# Needed for AC_F77_LIBRARY_FLAGS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -