# Makefile for GNU F77 compiler runtime.
-# Copyright (C) 1995-1998 Free Software Foundation, Inc.
+# Copyright (C) 1995-1998, 2001, 2002, 2003 Free Software Foundation, Inc.
# Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Fortran.
#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#02111-1307, USA.
-SHELL = /bin/sh
+SHELL = @SHELL@
+PWD_COMMAND = $${PWDCMD-pwd}
+MAKEOVERRIDES=
+.NOEXPORTS:
#### Start of system configuration section. ####
-srcdir = @srcdir@
-VPATH = @srcdir@
+srcdir = @glibcpp_srcdir@
+VPATH = @glibcpp_srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
target_alias = @target_alias@
gcc_version = @gcc_version@
gcc_version_trigger = @gcc_version_trigger@
+top_srcdir = @top_srcdir@
+toplevel_srcdir = @toplevel_srcdir@
+toolexecdir = @glibcpp_toolexecdir@
+glibcpp_toolexecdir = @glibcpp_toolexecdir@
+glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
top_builddir = .
libdir = $(exec_prefix)/lib
-libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)
+libsubdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)
#
+# Versions should start at 0:0:0 - See libtool manual.
VERSION_MAJOR=0
-VERSION_MINOR=5
-# We'd rather had 27 here - to indicate the version at which
-# a shared libf2c was created; however, libtool doesn't accept this.
+VERSION_MINOR=0
VERSION_SUB=0
# Multilib support variables.
MULTICLEAN = true
# Not configured per top-level version, since that doesn't get passed
+# Versions should start at 0:0:0 - See libtool manual.
# down at configure time, but overrridden by the top-level install
# target.
INSTALL = @INSTALL@
LIBTOOL = @LIBTOOL@
CC = @CC@
+WARN_CFLAGS = -W -Wall
CFLAGS = @CFLAGS@
+AR = @AR@
+RANLIB = @RANLIB@
# List of variables to pass to sub-makes.
# Quote this way so that it can be used to set shell variables too.
FLAGS_TO_PASS= \
CC='$(CC)' \
+ LD='$(LD)' \
LIBTOOL='$(LIBTOOL)' \
+ WARN_CFLAGS='$(WARN_CFLAGS)' \
CFLAGS='$(CFLAGS)' \
CPPFLAGS='$(CPPFLAGS)' \
+ DESTDIR='$(DESTDIR)' \
+ AR='$(AR)' \
RANLIB='$(RANLIB)' \
prefix='$(prefix)' \
exec_prefix='$(exec_prefix)' \
# the dependency) and then (perhaps) builds multilibs.
all: all-unilib
- $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="all-unilib"
+ : $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="all-unilib"
# `all-unilib' is the overall target in the absence of multilibs,
# meant to be invoked via multi-do for multilibs.
# Its dependencies can be satisfied in parallel. The [fiu]77 targets
-# update stamp files (see the subdir makefiles) which the $(LIBG2C)
-# target checks in the sub make to decide whether to run ar/ranlib.
-# (Probably only one stamp file is really needed.) The stamp files
+# update stamp files (object file lists, actually, see the subdir
+# makefiles) on which the $(LIBG2C) depends. The stamp files
# s-lib[fiu]77 are intentionally not targets, since we're only meant
# to come in at the level of this target. The [fiu]77 targets always
# invoke sub makes to check dependencies in the subdirs, else we'd
# This target should normally only get invoked via `all-unilib' --
# after all's well in the subdirs -- actually to assemble the library.
-# The stamp file dependencies are just to check whether libg2c.a is
-# up-to-date (to avoid running ar regardless) -- the files should
-# always have been created by a successful `all-unilib'.
+# The stamp files contain the object lists of each component of the
+# library. The point of breaking them up is to avoid command-line
+# length limitations.
$(LIBG2C): s-libi77 s-libf77 s-libu77 s-libe77
- rm -f $@ ;\
- set -e; \
- rm -f objlist ;\
- touch objlist ;\
- for i in $(SUBDIRS) ;\
- do \
- (cd $$i && $(MAKE) $(FLAGS_TO_PASS) objlist) ;\
- done ;\
- objs="`cat objlist`" ;\
- for i in $(F2CEXT); do objs="$$objs libE77/L$$i.lo"; done ;\
- echo -n $$objs > objlist
$(LIBTOOL) --mode=link $(CC) -o $@ \
-version-info $(VERSION_MAJOR):$(VERSION_MINOR):$(VERSION_SUB) \
- -rpath $(prefix)/lib `cat objlist` -lc -lm
+ -rpath $(glibcpp_toolexeclibdir) \
+ -objectlist s-libe77 \
+ -objectlist s-libf77 \
+ -objectlist s-libi77 \
+ -objectlist s-libu77 \
+ -lm
i77:
cd libI77; $(MAKE) $(FLAGS_TO_PASS) all
s-libe77: f2cext.c
if [ -d libE77 ]; then rm -f libE77/*.o libE77/*.lo; else mkdir libE77; fi
+ -rm -f $@.T $@
for name in $(F2CEXT); \
do \
echo $${name}; \
$(LIBTOOL) --mode=compile $(CC) -c -I. -I$(srcdir) -I../../include \
- $(CPPFLAGS) $(CFLAGS) -DL$${name} $(srcdir)/f2cext.c \
- -o libE77/L$${name}.o ; \
+ $(CPPFLAGS) $(WARN_CFLAGS) $(CFLAGS) -DL$${name} $(srcdir)/f2cext.c \
+ -o libE77/L$${name}.lo ; \
if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ echo libE77/L$${name}.lo >> $@.T; \
done
- echo timestamp >s-libe77
+ mv $@.T $@
f2cext.c: g2c.h
cd libU77; $(MAKE) G77DIR=../../../gcc/ check
install: all
- $(LIBTOOL) --mode=install $(INSTALL_DATA) $(LIBG2C) $(libsubdir)/$(MULTISUBDIR)
- (cd $(libsubdir)/$(MULTISUBDIR) ; \
- if [ -f $(LIBG2C_BASE).so ]; then \
- mv $(LIBG2C_BASE).so* $(prefix)/lib ;\
- fi)
- $(INSTALL_DATA) frtbegin.o $(libsubdir)
- $(INSTALL_DATA) g2c.h $(libsubdir)/include/g2c.h
- @if [ -f f2c-install-ok -o -f $(srcdir)/f2c-install-ok ]; then \
- echo ''; \
- echo 'Warning: g77 no longer installs libf2c.a or f2c.h.'; \
- echo ' You must do so yourself. For more information,'; \
- echo ' read "Distributing Binaries" in the g77 docs.'; \
- echo ' (To turn off this warning, delete the file'; \
- echo ' f2c-install-ok in the source or build directory.)'; \
- echo ''; \
- else true; fi
+ $(SHELL) $(toplevel_srcdir)/mkinstalldirs $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(LIBTOOL) --mode=install $(INSTALL) $(LIBG2C) $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(INSTALL_DATA) libfrtbegin.a $(DESTDIR)$(glibcpp_toolexeclibdir)
+ $(RANLIB) $(DESTDIR)$(glibcpp_toolexeclibdir)/libfrtbegin.a
+ $(INSTALL_DATA) g2c.h $(DESTDIR)$(libsubdir)/include/g2c.h
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
- @-$(LIBTOOL) --mode=finish $(prefix)/lib
+ @-$(LIBTOOL) --mode=finish $(DESTDIR)$(glibcpp_toolexeclibdir)
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
uninstall:
- rm -f $(libsubdir)/$(MULTISUBDIR)/include/g2c.h $(libsubdir)/$(MULTISUBDIR)/$(LIBG2C_BASE).*
- rm -f $(prefix)/lib/$(LIBG2C_BASE).so*
+ rm -f $(DESTDIR)$(libsubdir)/include/g2c.h
+ rm -f $(DESTDIR)$(glibcpp_toolexeclibdir)/libfrtbegin.a
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(glibcpp_toolexeclibdir)$(LIBG2C_BASE).la
$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO="$@"
mostlyclean:
installcheck installdirs all-unilib
subdir_do:
- @rootpre=`pwd`/; export rootpre; \
- srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
+ @rootpre=`${PWD_COMMAND}`/; export rootpre; \
+ srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \
for i in .. $(DODIRS); do \
if [ x$$i != x.. ]; then \
if [ -f ./$$i/Makefile ]; then \