Commit b53c05f5 by Dave Love Committed by Dave Love

Makefile.in: Re-write build procedure mainly to honour dependencies correctly but also allow...

1998-07-10  Dave Love  <d.love@dl.ac.uk>
	* Makefile.in: Re-write build procedure mainly to honour
	dependencies correctly but also allow making in the build
	directory by configuring the relevant variables.  The lib[FIU]77
	subdirs do dependency checking of their objects.  Stamp files
	dictate when to run (new) archive targets in subdirs.  Some
	tidying of variables.  Supply full set of standard targets.
	* configure.in: Move much of testing to new configures in
	subdirs.  Tidy up handling of RANLIB etc.
	* stamp-h.in, libF77/configure.in, libI77/configure.in,
	libF77/configure, libI77/configure: New files.
	* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
	Change in step with libf2c/Makefile.in.

From-SVN: r21082
parent e3fc7b68
1998-07-10 Dave Love <d.love@dl.ac.uk>
* Makefile.in: Re-write build procedure mainly to honour
dependencies correctly but also allow making in the build
directory by configuring the relevant variables. The lib[FIU]77
subdirs do dependency checking of their objects. Stamp files
dictate when to run (new) archive targets in subdirs. Some
tidying of variables. Supply full set of standard targets.
* configure.in: Move much of testing to new configures in
subdirs. Tidy up handling of RANLIB etc.
* stamp-h.in, libF77/configure.in, libI77/configure.in,
libF77/configure, libI77/configure: New files.
* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
Change in step with libf2c/Makefile.in.
1998-07-09 Dave Love <d.love@dl.ac.uk>
* libU77/Makefile.in (check): Wrap -lg2c ... -lm around $(LIBS) in
......
970811
980709
TODO list for the g77 library
* `Makefile.in's should be brought up to standard; I'm not sure they
have a complete set of targets at present.
* Investigate building shared libraries on systems we know about
(probably in 0.5.22, using libtool-1.0 from the FSF, which looks
quite useful).
(probably using libtool).
* Test cases.
* Better test cases.
* Allow the library to be stripped to save space.
* Allow the library to be stripped to save space. (The install-strip
makefile target now allows this, should it be easily invocable.)
* An interface to IEEE maths functions from libc where this makes
sense.
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1995, 1997 Free Software Foundation, Inc.
# Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Fortran.
......@@ -34,20 +34,11 @@ test "$AR" || AR=ar
AC_SUBST(AR)
if test "$RANLIB"; then :
AC_SUBST(RANLIB)
dnl Make sure that RANLIB_TEST is set also.
if test -z "$RANLIB_TEST"; then
RANLIB_TEST=true
fi
else
RANLIB_TEST=true
AC_PROG_RANLIB
fi
AC_SUBST(RANLIB_TEST)
dnl not needed for g77?
dnl AC_PROG_MAKE_SET
dnl Checks for libraries.
AC_PROG_INSTALL
AC_PROG_MAKE_SET
dnl Checks for header files.
# Sanity check for the cross-compilation case:
......@@ -58,181 +49,6 @@ including headers and, preferably, the library, before you can configure
the G77 runtime system. If necessary, install gcc now with \`LANGUAGES=c',
then the target library, then build with \`LANGUAGES=f77'.])])
AC_HEADER_STDC
dnl We could do this if we didn't know we were using gcc
dnl AC_MSG_CHECKING(for prototype-savvy compiler)
dnl AC_CACHE_VAL(g77_cv_sys_proto,
dnl [AC_TRY_LINK(,
dnl dnl looks screwy because TRY_LINK expects a function body
dnl [return 0;} int foo (int * bar) {],
dnl g77_cv_sys_proto=yes,
dnl [g77_cv_sys_proto=no
dnl AC_DEFINE(KR_headers)])])
dnl AC_MSG_RESULT($g77_cv_sys_proto)
dnl for U77
dnl AC_CHECK_HEADERS(unistd.h)
AC_MSG_CHECKING(for posix)
AC_CACHE_VAL(g77_cv_header_posix,
AC_EGREP_CPP(yes,
[#include <sys/types.h>
#include <unistd.h>
#ifdef _POSIX_VERSION
yes
#endif
],
g77_cv_header_posix=yes,
g77_cv_header_posix=no))
AC_MSG_RESULT($g77_cv_header_posix)
# We can rely on the GNU library being posix-ish. I guess checking the
# header isn't actually like checking the functions, though...
AC_MSG_CHECKING(for GNU library)
AC_CACHE_VAL(g77_cv_lib_gnu,
AC_EGREP_CPP(yes,
[#include <stdio.h>
#ifdef __GNU_LIBRARY__
yes
#endif
],
g77_cv_lib_gnu=yes, g77_cv_lib_gnu=no))
AC_MSG_RESULT($g77_cv_lib_gnu)
# Apparently cygwin needs to be special-cased.
AC_MSG_CHECKING([for cyg\`win'32])
AC_CACHE_VAL(g77_cv_sys_cygwin32,
AC_EGREP_CPP(yes,
[#ifdef __CYGWIN32__
yes
#endif
],
g77_cv_sys_cygwin32=yes,
g77_cv_sys_cygwin32=no))
AC_MSG_RESULT($g77_cv_sys_cygwin32)
# ditto for mingw32.
AC_MSG_CHECKING([for mingw32])
AC_CACHE_VAL(g77_cv_sys_mingw32,
AC_EGREP_CPP(yes,
[#ifdef __MINGW32__
yes
#endif
],
g77_cv_sys_mingw32=yes,
g77_cv_sys_mingw32=no))
AC_MSG_RESULT($g77_cv_sys_mingw32)
AC_CHECK_HEADER(fcntl.h,
test $g77_cv_header_posix = yes && AC_DEFINE(_POSIX_SOURCE),
AC_DEFINE(NO_FCNTL) AC_DEFINE(OPEN_DECL))
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
dnl Checks for library functions.
AC_TYPE_SIGNAL
# we'll get atexit by default
if test $ac_cv_header_stdc != yes; then
AC_CHECK_FUNC(atexit,
AC_DEFINE(onexit,atexit),dnl just in case
[AC_DEFINE(NO_ONEXIT)
AC_CHECK_FUNC(onexit,,
[AC_CHECK_FUNC(on_exit,
AC_DEFINE(onexit,on_exit),)])])
else true
fi
# This should always succeed on unix.
# Apparently positive result on cygwin loses re. NON_UNIX_STDIO
# (as of cygwin b18). Likewise on mingw.
AC_CHECK_FUNC(fstat)
AC_MSG_CHECKING([need for NON_UNIX_STDIO])
if test $g77_cv_sys_cygwin32 = yes \
|| test $g77_cv_sys_mingw32 = yes \
|| test $ac_cv_func_fstat = no; then
AC_MSG_RESULT(yes)
AC_DEFINE(NON_UNIX_STDIO)
else
AC_MSG_RESULT(no)
fi
# This is necessary for e.g. Linux:
AC_MSG_CHECKING([for necessary members of struct FILE])
AC_CACHE_VAL(g77_cv_struct_FILE,
[AC_TRY_COMPILE([#include <stdio.h>],
[FILE s; s._ptr; s._base; s._flag;],g77_cv_struct_FILE=yes,
g77_cv_struct_FILE=no)])dnl
AC_MSG_RESULT($g77_cv_struct_FILE)
if test $g77_cv_struct_FILE = no; then
AC_DEFINE(MISSING_FILE_ELEMS)
fi
dnl perhaps should check also for remainder
dnl Unfortunately, the message implies we're just checking for -lm...
AC_CHECK_LIB(m,drem,AC_DEFINE(IEEE_drem))
dnl for U77:
dnl AC_CHECK_FUNCS(symlink getcwd lstat)
dnl test $ac_cv_func_symlink = yes && SYMLNK=symlnk_.o
dnl test $ac_cv_func_lstat = yes && SYMLNK="$SYMLNK lstat_.o"
dnl AC_SUBST(SYMLNK)
AC_CHECK_FUNCS(tempnam)
# posix will guarantee the right behaviour for sprintf, else we can't be
# sure; HEADER_STDC wouldn't be the right check in sunos4, for instance.
# However, on my sunos4/gcc setup unistd.h leads us wrongly to believe
# we're posix-conformant, so always do the test.
AC_MSG_CHECKING(for ansi/posix sprintf result)
dnl This loses if included as an argument to AC_CACHE_VAL because the
dnl changequote doesn't take effect and the [] vanish.
dnl fixme: use cached value
AC_TRY_RUN(changequote(<<, >>)dnl
<<#include <stdio.h>
/* does sprintf return the number of chars transferred? */
main () {char foo[2]; (sprintf(foo, "1") == 1) ? exit(0) : exit(1);}
>>changequote([, ]),
g77_cv_sys_sprintf_ansi=yes,
g77_cv_sys_sprintf_ansi=no,
g77_cv_sys_sprintf_ansi=no)
AC_CACHE_VAL(g77_cv_sys_sprintf_ansi,
g77_cv_sys_sprintf_ansi=$g77_cv_sys_sprintf_ansi)
dnl We get a misleading `(cached)' message...
AC_MSG_RESULT($g77_cv_sys_sprintf_ansi)
# The cygwin patch takes steps to avoid defining USE_STRLEN here -- I don't
# understand why.
if test $g77_cv_sys_sprintf_ansi != yes; then
AC_DEFINE(USE_STRLEN)
fi
# define NON_ANSI_RW_MODES on unix (can't hurt)
AC_MSG_CHECKING(NON_ANSI_RW_MODES)
AC_EGREP_CPP(yes,
[#ifdef unix
yes
#endif
#ifdef __unix
yes
#endif
#ifdef __unix__
yes
#endif
], is_unix=yes, is_unix=no)
if test $g77_cv_sys_cygwin32 = yes || test $g77_cv_sys_mingw32 = yes; then
AC_MSG_RESULT(no)
else
if test $is_unix = yes; then
AC_DEFINE(NON_ANSI_RW_MODES)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
# We have to firkle with the info in hconfig.h to figure out suitable types
# (via com.h). proj.h and com.h are in $srcdir/.., config.h which they need
# is in ../.. and the config files are in $srcdir/../../config.
......@@ -330,13 +146,6 @@ F2C_LONGINT=$g77_cv_sys_f2clongint
ac_cpp=$late_ac_cpp
AC_SUBST(F2C_LONGINT)
dnl maybe check for drem/remainder
# This EOF_CHAR is a misfeature on unix.
AC_DEFINE(NO_EOF_CHAR_CHECK)
AC_DEFINE(Skip_f2c_Undefs)
# avoid confusion in case the `makefile's from the f2c distribution have
# got put here
test -f libF77/makefile && mv libF77/makefile libF77/makefile.ori
......@@ -357,13 +166,8 @@ AC_SUBST(gcc_version_trigger)
AC_CANONICAL_SYSTEM
AC_SUBST(target_alias)
AC_CONFIG_SUBDIRS(libU77)
AC_OUTPUT(Makefile g2c.h libI77/Makefile libF77/Makefile)
dnl We might have configuration options to:
dnl * change unit preconnexion in libI77/err.c (f_init.c)
dnl * -DALWAYS_FLUSH in libI77
dnl * -DOMIT_BLANK_CC in libI77
AC_CONFIG_SUBDIRS(libU77 libI77 libF77)
AC_OUTPUT(Makefile g2c.h)
dnl Local Variables:
dnl comment-start: "dnl "
......
......@@ -23,27 +23,30 @@
#### Start of system configuration section. ####
# $(srcdir) must be set to the g77 runtime libF77 source directory
# (g77/f/runtime/libF77).
# $(srcdir) must be set to the g77 runtime libF77 source directory.
srcdir = @srcdir@
VPATH = @srcdir@
# gcc/f/runtime/configure sets this to all the -D options appropriate
# for the configuration.
# configure sets this to all the -D options appropriate for the
# configuration.
DEFS = @DEFS@
#### End of system configuration section. ####
LIBG2C = ../libg2c.a
F2C_H_DIR = @srcdir@/..
G2C_H_DIR = ..
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
AR = @AR@
ARFLAGS = rc
@SET_MAKE@
SHELL = /bin/sh
# Must be passed in explicitly. Sample values are shown below.
#CC = /gcc-build-dir/xgcc -B/gcc-build-dir/
#CFLAGS = -O -g
#CPPFLAGS =
#F2C_H_DIR = /gcc-source-dir/f/runtime
#G2C_H_DIR = /gcc-build-dir/f/runtime
#GCC_H_DIR = /gcc-build-dir/include
#### End of system configuration section. ####
ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) -I$(GCC_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS)
ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS)
.SUFFIXES:
.SUFFIXES: .c .o
......@@ -74,9 +77,29 @@ EFL = ef1asc_.o ef1cmc_.o
CHAR = s_cat.o s_cmp.o s_copy.o
F90BIT = lbitbits.o lbitshft.o qbitbits.o qbitshft.o
all: $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
OBJS = $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
$(HALF) $(CMP) $(EFL) $(CHAR) $(F90BIT)
all: ../stamp-libf77
../stamp-libf77: $(OBJS)
echo timestamp > ../stamp-libf77
archive:
$(AR) $(ARFLAGS) $(LIBG2C) $(OBJS)
Makefile: Makefile.in config.status
$(SHELL) config.status
config.status: configure
rm -f config.cache
CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \
CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck
${srcdir}/configure: configure.in
rm -f config.cache
cd ${srcdir} && autoconf
VersionF.o: Version.c
$(CC) -c $(ALL_CFLAGS) -o $@ $(srcdir)/Version.c
......@@ -84,4 +107,18 @@ VersionF.o: Version.c
$(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) $(HALF) $(CMP) $(EFL) \
$(CHAR) $(F90BIT): $(F2C_H_DIR)/f2c.h $(G2C_H_DIR)/g2c.h
.PHONY: all
check install uninstall install-strip dist installcheck installdirs:
mostlyclean:
rm -f *.o
clean: mostlyclean
rm -f config.log
distclean: clean
rm -f config.cache config.status Makefile ../stamp-libf77 configure
maintainer-clean:
.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \
install-strip dist installcheck installdirs archive
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Fortran.
#
#GNU Fortran 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.
#
#GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#02111-1307, USA.
AC_INIT(getarg_.c)
dnl Checks for programs.
# For g77 we'll set CC to point at the built gcc, but this will get it into
# the makefiles
AC_PROG_CC
test "$AR" || AR=ar
AC_SUBST(AR)
AC_PROG_MAKE_SET
dnl Checks for libraries.
dnl Checks for header files.
# Sanity check for the cross-compilation case:
AC_CHECK_HEADER(stdio.h,:,
[AC_MSG_ERROR([Can't find stdio.h.
You must have a usable C system for the target already installed, at least
including headers and, preferably, the library, before you can configure
the G77 runtime system. If necessary, install gcc now with \`LANGUAGES=c',
then the target library, then build with \`LANGUAGES=f77'.])])
AC_HEADER_STDC
dnl We could do this if we didn't know we were using gcc
dnl AC_MSG_CHECKING(for prototype-savvy compiler)
dnl AC_CACHE_VAL(g77_cv_sys_proto,
dnl [AC_TRY_LINK(,
dnl dnl looks screwy because TRY_LINK expects a function body
dnl [return 0;} int foo (int * bar) {],
dnl g77_cv_sys_proto=yes,
dnl [g77_cv_sys_proto=no
dnl AC_DEFINE(KR_headers)])])
dnl AC_MSG_RESULT($g77_cv_sys_proto)
AC_MSG_CHECKING(for posix)
AC_CACHE_VAL(g77_cv_header_posix,
AC_EGREP_CPP(yes,
[#include <sys/types.h>
#include <unistd.h>
#ifdef _POSIX_VERSION
yes
#endif
],
g77_cv_header_posix=yes,
g77_cv_header_posix=no))
AC_MSG_RESULT($g77_cv_header_posix)
# We can rely on the GNU library being posix-ish. I guess checking the
# header isn't actually like checking the functions, though...
AC_MSG_CHECKING(for GNU library)
AC_CACHE_VAL(g77_cv_lib_gnu,
AC_EGREP_CPP(yes,
[#include <stdio.h>
#ifdef __GNU_LIBRARY__
yes
#endif
],
g77_cv_lib_gnu=yes, g77_cv_lib_gnu=no))
AC_MSG_RESULT($g77_cv_lib_gnu)
dnl Checks for library functions.
AC_TYPE_SIGNAL
# we'll get atexit by default
if test $ac_cv_header_stdc != yes; then
AC_CHECK_FUNC(atexit,
AC_DEFINE(onexit,atexit),dnl just in case
[AC_DEFINE(NO_ONEXIT)
AC_CHECK_FUNC(onexit,,
[AC_CHECK_FUNC(on_exit,
AC_DEFINE(onexit,on_exit),)])])
else true
fi
dnl perhaps should check also for remainder
dnl Unfortunately, the message implies we're just checking for -lm...
AC_CHECK_LIB(m,drem,AC_DEFINE(IEEE_drem))
AC_DEFINE(Skip_f2c_Undefs)
AC_OUTPUT(Makefile)
dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
dnl End:
......@@ -23,27 +23,31 @@
#### Start of system configuration section. ####
# $(srcdir) must be set to the g77 runtime libF77 source directory
# (g77/f/runtime/libF77).
# $(srcdir) must be set to the g77 runtime libI77 source directory.
srcdir = @srcdir@
VPATH = @srcdir@
# gcc/f/runtime/configure sets this to all the -D options appropriate
# for the configuration.
# configure sets this to all the -D options appropriate for the
# configuration.
DEFS = @DEFS@
#### End of system configuration section. ####
LIBG2C = ../libg2c.a
F2C_H_DIR = @srcdir@/..
G2C_H_DIR = ..
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
AR = @AR@
ARFLAGS = rc
@SET_MAKE@
SHELL = /bin/sh
# Must be passed in explicitly. Sample values are shown below.
#CC = /gcc-build-dir/xgcc -B/gcc-build-dir/
#CFLAGS = -O -g
#CPPFLAGS =
#F2C_H_DIR = /gcc-source-dir/f/runtime
#G2C_H_DIR = /gcc-build-dir/f/runtime
#GCC_H_DIR = /gcc-build-dir/include
#### End of system configuration section. ####
ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) -I$(GCC_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS)
ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR) -I$(F2C_H_DIR) $(CPPFLAGS) \
$(DEFS) $(CFLAGS)
.SUFFIXES:
.SUFFIXES: .c .o
......@@ -57,7 +61,25 @@ OBJ = VersionI.o backspace.o close.o dfe.o dolio.o due.o endfile.o err.o \
util.o wref.o wrtfmt.o wsfe.o wsle.o wsne.o xwsne.o \
ftell_.o
all: $(OBJ)
all: ../stamp-libi77
../stamp-libi77: $(OBJ)
echo timestamp > ../stamp-libi77
archive:
$(AR) $(ARFLAGS) $(LIBG2C) $(OBJ)
Makefile: Makefile.in config.status
$(SHELL) config.status
config.status: configure
rm -f config.cache
CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \
CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck
${srcdir}/configure: configure.in
rm -f config.cache
cd ${srcdir} && autoconf
VersionI.o: Version.c
$(CC) -c $(ALL_CFLAGS) -o $@ $(srcdir)/Version.c
......@@ -118,4 +140,18 @@ xwsne.o: fmt.h
# May be pessimistic:
$(OBJ): $(F2C_H_DIR)/f2c.h $(G2C_H_DIR)/g2c.h
.PHONY: all
check install uninstall install-strip dist installcheck installdirs:
mostlyclean:
rm -f *.o
clean: mostlyclean
rm -f config.log
distclean: clean
rm -f config.cache config.status Makefile ../stamp-libi77 configure
maintainer-clean:
.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \
install-strip dist installcheck installdirs archive
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Fortran.
#
#GNU Fortran 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.
#
#GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#02111-1307, USA.
AC_INIT(ftell_.c)
dnl Checks for programs.
# For g77 we'll set CC to point at the built gcc, but this will get it into
# the makefiles
AC_PROG_CC
test "$AR" || AR=ar
AC_SUBST(AR)
AC_PROG_MAKE_SET
dnl Checks for libraries.
dnl Checks for header files.
# Sanity check for the cross-compilation case:
AC_CHECK_HEADER(stdio.h,:,
[AC_MSG_ERROR([Can't find stdio.h.
You must have a usable C system for the target already installed, at least
including headers and, preferably, the library, before you can configure
the G77 runtime system. If necessary, install gcc now with \`LANGUAGES=c',
then the target library, then build with \`LANGUAGES=f77'.])])
AC_HEADER_STDC
dnl We could do this if we didn't know we were using gcc
dnl AC_MSG_CHECKING(for prototype-savvy compiler)
dnl AC_CACHE_VAL(g77_cv_sys_proto,
dnl [AC_TRY_LINK(,
dnl dnl looks screwy because TRY_LINK expects a function body
dnl [return 0;} int foo (int * bar) {],
dnl g77_cv_sys_proto=yes,
dnl [g77_cv_sys_proto=no
dnl AC_DEFINE(KR_headers)])])
dnl AC_MSG_RESULT($g77_cv_sys_proto)
AC_MSG_CHECKING(for posix)
AC_CACHE_VAL(g77_cv_header_posix,
AC_EGREP_CPP(yes,
[#include <sys/types.h>
#include <unistd.h>
#ifdef _POSIX_VERSION
yes
#endif
],
g77_cv_header_posix=yes,
g77_cv_header_posix=no))
AC_MSG_RESULT($g77_cv_header_posix)
# We can rely on the GNU library being posix-ish. I guess checking the
# header isn't actually like checking the functions, though...
AC_MSG_CHECKING(for GNU library)
AC_CACHE_VAL(g77_cv_lib_gnu,
AC_EGREP_CPP(yes,
[#include <stdio.h>
#ifdef __GNU_LIBRARY__
yes
#endif
],
g77_cv_lib_gnu=yes, g77_cv_lib_gnu=no))
AC_MSG_RESULT($g77_cv_lib_gnu)
# Apparently cygwin needs to be special-cased.
AC_MSG_CHECKING([for cyg\`win'32])
AC_CACHE_VAL(g77_cv_sys_cygwin32,
AC_EGREP_CPP(yes,
[#ifdef __CYGWIN32__
yes
#endif
],
g77_cv_sys_cygwin32=yes,
g77_cv_sys_cygwin32=no))
AC_MSG_RESULT($g77_cv_sys_cygwin32)
# ditto for mingw32.
AC_MSG_CHECKING([for mingw32])
AC_CACHE_VAL(g77_cv_sys_mingw32,
AC_EGREP_CPP(yes,
[#ifdef __MINGW32__
yes
#endif
],
g77_cv_sys_mingw32=yes,
g77_cv_sys_mingw32=no))
AC_MSG_RESULT($g77_cv_sys_mingw32)
AC_CHECK_HEADER(fcntl.h,
test $g77_cv_header_posix = yes && AC_DEFINE(_POSIX_SOURCE),
AC_DEFINE(NO_FCNTL) AC_DEFINE(OPEN_DECL))
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
dnl Checks for library functions.
# This should always succeed on unix.
# Apparently positive result on cygwin loses re. NON_UNIX_STDIO
# (as of cygwin b18). Likewise on mingw.
AC_CHECK_FUNC(fstat)
AC_MSG_CHECKING([need for NON_UNIX_STDIO])
if test $g77_cv_sys_cygwin32 = yes \
|| test $g77_cv_sys_mingw32 = yes \
|| test $ac_cv_func_fstat = no; then
AC_MSG_RESULT(yes)
AC_DEFINE(NON_UNIX_STDIO)
else
AC_MSG_RESULT(no)
fi
AC_CHECK_FUNCS(tempnam)
# posix will guarantee the right behaviour for sprintf, else we can't be
# sure; HEADER_STDC wouldn't be the right check in sunos4, for instance.
# However, on my sunos4/gcc setup unistd.h leads us wrongly to believe
# we're posix-conformant, so always do the test.
AC_MSG_CHECKING(for ansi/posix sprintf result)
dnl This loses if included as an argument to AC_CACHE_VAL because the
dnl changequote doesn't take effect and the [] vanish.
dnl fixme: use cached value
AC_TRY_RUN(changequote(<<, >>)dnl
<<#include <stdio.h>
/* does sprintf return the number of chars transferred? */
main () {char foo[2]; (sprintf(foo, "1") == 1) ? exit(0) : exit(1);}
>>changequote([, ]),
g77_cv_sys_sprintf_ansi=yes,
g77_cv_sys_sprintf_ansi=no,
g77_cv_sys_sprintf_ansi=no)
AC_CACHE_VAL(g77_cv_sys_sprintf_ansi,
g77_cv_sys_sprintf_ansi=$g77_cv_sys_sprintf_ansi)
dnl We get a misleading `(cached)' message...
AC_MSG_RESULT($g77_cv_sys_sprintf_ansi)
# The cygwin patch takes steps to avoid defining USE_STRLEN here -- I don't
# understand why.
if test $g77_cv_sys_sprintf_ansi != yes; then
AC_DEFINE(USE_STRLEN)
fi
# define NON_ANSI_RW_MODES on unix (can't hurt)
AC_MSG_CHECKING(NON_ANSI_RW_MODES)
AC_EGREP_CPP(yes,
[#ifdef unix
yes
#endif
#ifdef __unix
yes
#endif
#ifdef __unix__
yes
#endif
], is_unix=yes, is_unix=no)
# NON_ANSI_RW_MODES shouldn't be necessary on cygwin for binary mounts.
if test $g77_cv_sys_cygwin32 = yes || test $g77_cv_sys_mingw32 = yes; then
AC_MSG_RESULT(no)
else
if test $is_unix = yes; then
AC_DEFINE(NON_ANSI_RW_MODES)
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
# This EOF_CHAR is a misfeature on unix.
AC_DEFINE(NO_EOF_CHAR_CHECK)
AC_DEFINE(Skip_f2c_Undefs)
AC_OUTPUT(Makefile)
dnl We might have configuration options to:
dnl * change unit preconnexion in err.c (f_init.c)
dnl * -DALWAYS_FLUSH
dnl * -DOMIT_BLANK_CC
dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
dnl End:
......@@ -21,29 +21,33 @@
#### Start of system configuration section. ####
# $(srcdir) must be set to the g77 runtime libF77 source directory
# (g77/f/runtime/libF77).
# $(srcdir) must be set to the g77 runtime libU77 source directory
srcdir = @srcdir@
VPATH = @srcdir@
# gcc/f/runtime/configure sets this to all the -D options appropriate
# for the configuration.
# configure sets this to all the -D options appropriate for the
# configuration.
DEFS = @DEFS@
LIBS = @LIBS@
#### End of system configuration section. ####
LIBG2C = ../libg2c.a
F2C_H_DIR = @srcdir@/..
G2C_H_DIR = ..
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
AR = @AR@
ARFLAGS = rc
@SET_MAKE@
# Must be passed in explicitly. Sample values are shown below.
#CC = /gcc-build-dir/xgcc -B/gcc-build-dir/
#CFLAGS = -O -g
#CPPFLAGS =
#F2C_H_DIR = /gcc-source-dir/f/runtime
#G2C_H_DIR = /gcc-build-dir/f/runtime
#GCC_H_DIR = /gcc-build-dir/include
SHELL = /bin/sh
#### End of system configuration section. ####
# fio.h is in libI77. config.h is in `.'.
ALL_CFLAGS = -I. -I$(srcdir) -I$(G2C_H_DIR)/libI77 -I$(F2C_H_DIR)/libI77 -I$(G2C_H_DIR) -I$(F2C_H_DIR) -I$(GCC_H_DIR) $(CPPFLAGS) $(DEFS) $(CFLAGS)
ALL_CFLAGS = -I. -I$(srcdir) -I$(F2C_H_DIR)/libI77 -I$(G2C_H_DIR) \
$(CPPFLAGS) $(DEFS) $(CFLAGS)
# This could probably be done more elegantly, but it's currently
# just for running the u77-test test.
......@@ -76,7 +80,34 @@ SRCS = Version.c gerror_.c perror_.c ierrno_.c itime_.c time_.c \
umask_.c sys_clock_.c date_.c second_.c flush1_.c mclock_.c \
alarm_.c datetime_.c
all: $(OBJS)
all: ../stamp-libu77
../stamp-libu77: $(OBJS)
echo timestamp > ../stamp-libu77
archive:
$(AR) $(ARFLAGS) $(LIBG2C) $(OBJS)
Makefile: Makefile.in config.status
$(SHELL) config.status
config.status: configure
rm -f config.cache
CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \
CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck
${srcdir}/configure: configure.in
cd ${srcdir} && autoconf
${srcdir}/config.h.in: stamp-h.in
${srcdir}/stamp-h.in: configure.in acconfig.h
cd ${srcdir} && autoheader
echo timestamp > ${srcdir}/stamp-h.in
config.h: stamp-h
stamp-h: config.h.in config.status
$(SHELL) config.status
echo timestamp > stamp-h
VersionU.o: Version.c
$(CC) -c $(ALL_CFLAGS) -o $@ $(srcdir)/Version.c
......@@ -139,11 +170,23 @@ mclock_.o: mclock_.c
alarm_.o: alarm_.c
datetime_.o: datetime_.c
lint:
lint $(ALL_CFLAGS) $(SRCS)
check:
-$(G77DIR)g77 -B$(G77DIR) -L.. -g $(srcdir)/u77-test.f -lg2c $(LIBS) -lm && ./a.out
rm -f a.out
.PHONY: lint check all
install uninstall install-strip dist installcheck installdirs:
mostlyclean:
rm -f *.o a.out
clean: mostlyclean
rm -f config.log
distclean: clean
rm -f config.cache config.status Makefile config.h stamp.h \
../stamp-libu77 configure
maintainer-clean:
.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \
install-strip dist installcheck installdirs archive
# Process this file with autoconf to produce a configure script.
# Copyright (C) 1995 Free Software Foundation, Inc.
# Copyright (C) 1995, 1998 Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of the GNU Fortran libU77 library.
......@@ -34,6 +34,10 @@ else
ac_cv_c_cross=no
fi
test "$AR" || AR=ar
AC_SUBST(AR)
AC_PROG_MAKE_SET
dnl This is only because we (horribly) punt the chmod job to the program at
dnl present. Note that the result of this test could be wrong in the cross
dnl case.
......@@ -45,26 +49,6 @@ else
MAYBES=""
fi
dnl for g77 build maybe use $(RANLIB_FOR_TARGET) always (like wise AR)
if test "$ac_cv_c_cross" = yes; then
RANLIB=$RANLIB_FOR_TARGET
AR=$AR_FOR_TARGET
AC_SUBST(RANLIB)
else
AC_PROG_RANLIB
AR=ar
RANLIB_TEST=true
fi
AC_SUBST(AR)
dnl not needed for g77
dnl AC_SUBST(AR_FOR_TARGET)
dnl AC_SUBST(RANLIB_FOR_TARGET)
dnl AC_SUBST(RANLIB_TEST_FOR_TARGET)
dnl not needed for g77?
dnl AC_PROG_MAKE_SET
dnl Checks for libraries.
dnl Checks for header files.
AC_HEADER_STDC
dnl We could do this if we didn't know we were using gcc
......@@ -113,5 +97,4 @@ AC_SUBST(MAYBES)
AC_SUBST(CROSS)
AC_SUBST(RANLIB)
AC_SUBST(RANLIB_TEST)
AC_OUTPUT(Makefile)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment