2004-05-13 08:41:07 +02:00
|
|
|
|
# -*- makefile -*-
|
|
|
|
|
# Top level makefile fragment for GNU gfortran, the GNU Fortran 95 compiler.
|
2005-05-03 20:40:36 +02:00
|
|
|
|
# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
2004-05-13 08:41:07 +02:00
|
|
|
|
# Contributed by Paul Brook <paul@nowt.org
|
|
|
|
|
# and Steven Bosscher <s.bosscher@student.tudelft.nl>
|
|
|
|
|
|
Make-lang.in, [...]: Update copyright years and boilerplate.
* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
trans-array.c, trans-array.h, trans-common.c, trans-const.c,
trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
trans-types.h, trans.c, trans.h: Update copyright years and
boilerplate.
* data.c: Likewise, also removed two whitespace-only lines.
* gfortranspec.c, lang.opt: Update copyright years.
From-SVN: r81839
2004-05-14 15:00:04 +02:00
|
|
|
|
#This file is part of GCC.
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
Make-lang.in, [...]: Update copyright years and boilerplate.
* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
trans-array.c, trans-array.h, trans-common.c, trans-const.c,
trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
trans-types.h, trans.c, trans.h: Update copyright years and
boilerplate.
* data.c: Likewise, also removed two whitespace-only lines.
* gfortranspec.c, lang.opt: Update copyright years.
From-SVN: r81839
2004-05-14 15:00:04 +02:00
|
|
|
|
#GCC is free software; you can redistribute it and/or modify
|
2004-05-13 08:41:07 +02:00
|
|
|
|
#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.
|
|
|
|
|
|
Make-lang.in, [...]: Update copyright years and boilerplate.
* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
trans-array.c, trans-array.h, trans-common.c, trans-const.c,
trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
trans-types.h, trans.c, trans.h: Update copyright years and
boilerplate.
* data.c: Likewise, also removed two whitespace-only lines.
* gfortranspec.c, lang.opt: Update copyright years.
From-SVN: r81839
2004-05-14 15:00:04 +02:00
|
|
|
|
#GCC is distributed in the hope that it will be useful,
|
2004-05-13 08:41:07 +02:00
|
|
|
|
#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
|
Make-lang.in, [...]: Update copyright years and boilerplate.
* Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
trans-array.c, trans-array.h, trans-common.c, trans-const.c,
trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
trans-types.h, trans.c, trans.h: Update copyright years and
boilerplate.
* data.c: Likewise, also removed two whitespace-only lines.
* gfortranspec.c, lang.opt: Update copyright years.
From-SVN: r81839
2004-05-14 15:00:04 +02:00
|
|
|
|
#along with GCC; see the file COPYING. If not, write to
|
2005-06-25 02:40:37 +02:00
|
|
|
|
#the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
|
|
|
|
#Boston, MA 02110-1301, USA.
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
# This file provides the language dependent support in the main Makefile.
|
|
|
|
|
# Each language makefile fragment must provide the following targets:
|
|
|
|
|
#
|
|
|
|
|
# foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap,
|
2004-11-13 08:35:55 +01:00
|
|
|
|
# foo.info
|
2004-05-13 08:41:07 +02:00
|
|
|
|
# foo.install-normal, foo.install-common, foo.install-info, foo.install-man,
|
|
|
|
|
# foo.uninstall, foo.distdir,
|
|
|
|
|
# foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean,
|
|
|
|
|
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
|
|
|
|
#
|
|
|
|
|
# where `foo' is the name of the language.
|
|
|
|
|
#
|
|
|
|
|
# It should also provide rules for:
|
|
|
|
|
#
|
|
|
|
|
# - making any compiler driver (eg: gfortran)
|
|
|
|
|
# - the compiler proper (eg: f951)
|
|
|
|
|
# - define the names for selecting the language in LANGUAGES.
|
|
|
|
|
# $(srcdir) must be set to the gcc/ source directory (*not* gcc/fortran/).
|
|
|
|
|
|
|
|
|
|
# Actual name to use when installing a native compiler.
|
2004-07-04 11:01:40 +02:00
|
|
|
|
GFORTRAN_INSTALL_NAME := $(shell echo gfortran|sed '$(program_transform_name)')
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
# Actual name to use when installing a cross-compiler.
|
2004-07-04 11:01:40 +02:00
|
|
|
|
GFORTRAN_CROSS_NAME := $(shell echo gfortran|sed '$(program_transform_cross_name)')
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
#^L
|
|
|
|
|
|
2005-03-12 03:06:20 +01:00
|
|
|
|
# Use strict warnings for this front end.
|
2005-03-19 02:48:22 +01:00
|
|
|
|
fortran-warn = $(STRICT_WARN)
|
|
|
|
|
|
|
|
|
|
# These files get warnings from an inline function in GMP saying:
|
|
|
|
|
# "control may reach end of non-void function '__gmpz_get_ui' being inlined"
|
|
|
|
|
fortran/expr.o-warn = -Wno-error
|
|
|
|
|
fortran/resolve.o-warn = -Wno-error
|
|
|
|
|
fortran/simplify.o-warn = -Wno-error
|
|
|
|
|
fortran/trans-common.o-warn = -Wno-error
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
# These are the groups of object files we have. The F95_PARSER_OBJS are
|
|
|
|
|
# all the front end files, the F95_OBJS are the files for the translation
|
2004-10-17 19:13:38 +02:00
|
|
|
|
# from the parse tree to GENERIC
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2004-06-12 21:48:41 +02:00
|
|
|
|
F95_PARSER_OBJS = fortran/arith.o fortran/array.o fortran/bbt.o \
|
|
|
|
|
fortran/check.o fortran/data.o fortran/decl.o fortran/dump-parse-tree.o \
|
|
|
|
|
fortran/error.o fortran/expr.o fortran/interface.o \
|
|
|
|
|
fortran/intrinsic.o fortran/io.o fortran/iresolve.o \
|
|
|
|
|
fortran/match.o fortran/matchexp.o fortran/misc.o fortran/module.o \
|
|
|
|
|
fortran/options.o fortran/parse.o fortran/primary.o fortran/resolve.o \
|
|
|
|
|
fortran/scanner.o fortran/simplify.o fortran/st.o fortran/symbol.o
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
F95_OBJS = $(F95_PARSER_OBJS) \
|
2004-06-12 21:48:41 +02:00
|
|
|
|
fortran/convert.o fortran/dependency.o fortran/f95-lang.o \
|
|
|
|
|
fortran/trans.o fortran/trans-array.o fortran/trans-common.o \
|
|
|
|
|
fortran/trans-const.o fortran/trans-decl.o fortran/trans-expr.o \
|
|
|
|
|
fortran/trans-intrinsic.o fortran/trans-io.o fortran/trans-stmt.o \
|
|
|
|
|
fortran/trans-types.o
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
# GFORTRAN uses GMP for its internal arithmetics.
|
|
|
|
|
F95_LIBS = $(GMPLIBS) $(LIBS)
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Define the names for selecting gfortran in LANGUAGES.
|
2005-09-13 08:24:18 +02:00
|
|
|
|
FORTRAN fortran: f951$(exeext)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
# Tell GNU make to ignore files by these names if they exist.
|
|
|
|
|
.PHONY: F95 f95
|
|
|
|
|
|
|
|
|
|
gfortranspec.o: $(srcdir)/fortran/gfortranspec.c $(SYSTEM_H) $(TM_H) $(GCC_H) $(CONFIG_H)
|
|
|
|
|
(SHLIB_LINK='$(SHLIB_LINK)' \
|
|
|
|
|
SHLIB_MULTILIB='$(SHLIB_MULTILIB)'; \
|
|
|
|
|
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \
|
|
|
|
|
$(INCLUDES) $(srcdir)/fortran/gfortranspec.c)
|
|
|
|
|
|
|
|
|
|
# Create the compiler driver gfortran.
|
|
|
|
|
GFORTRAN_D_OBJS = gcc.o gfortranspec.o version.o prefix.o intl.o
|
|
|
|
|
gfortran$(exeext): $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS)
|
|
|
|
|
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
|
|
|
|
|
$(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBS)
|
|
|
|
|
|
|
|
|
|
# Create a version of the gfortran driver which calls the cross-compiler.
|
|
|
|
|
gfortran-cross$(exeext): gfortran$(exeext)
|
|
|
|
|
-rm -f gfortran-cross$(exeext)
|
|
|
|
|
cp gfortran$(exeext) gfortran-cross$(exeext)
|
|
|
|
|
|
|
|
|
|
# The compiler itself is called f951.
|
2004-10-17 19:13:38 +02:00
|
|
|
|
f951$(exeext): $(F95_OBJS) \
|
2004-05-13 08:41:07 +02:00
|
|
|
|
$(BACKEND) $(LIBDEPS)
|
|
|
|
|
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
|
2004-10-17 19:13:38 +02:00
|
|
|
|
$(F95_OBJS) $(BACKEND) $(F95_LIBS)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
gt-fortran-f95-lang.h gtype-fortran.h : s-gtype; @true
|
|
|
|
|
gt-fortran-trans-decl.h gt-fortran-trans.h : s-gtype; @true
|
|
|
|
|
gt-fortran-trans-io.h gt-fortran-trans-types.h: s-gtype; @true
|
|
|
|
|
gt-fortran-trans-intrinsic.h : s-gtype; @true
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Build hooks:
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.all.build: gfortran$(exeext)
|
|
|
|
|
fortran.all.cross: gfortran-cross$(exeext)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.start.encap: gfortran$(exeext)
|
|
|
|
|
fortran.rest.encap:
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.srcinfo: doc/gfortran.info
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-cp -p $^ $(srcdir)/fortran
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.tags: force
|
2004-05-13 08:41:07 +02:00
|
|
|
|
cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \
|
|
|
|
|
etags --include TAGS.sub --include ../TAGS.sub
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.info: doc/gfortran.info
|
2004-05-15 21:02:24 +02:00
|
|
|
|
dvi:: doc/gfortran.dvi
|
2004-11-13 08:35:55 +01:00
|
|
|
|
html:: $(htmldir)/gfortran/index.html
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2004-07-04 11:01:40 +02:00
|
|
|
|
F95_MANFILES = doc/gfortran.1
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.man: $(F95_MANFILES)
|
2004-07-04 11:01:40 +02:00
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.srcman: $(F95_MANFILES)
|
2004-07-04 11:01:40 +02:00
|
|
|
|
-cp -p $^ $(srcdir)/doc
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.srcextra:
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
check-f95 : check-gfortran
|
|
|
|
|
lang_checks += check-gfortran
|
|
|
|
|
|
|
|
|
|
# GFORTRAN documentation.
|
|
|
|
|
GFORTRAN_TEXI = \
|
|
|
|
|
$(srcdir)/fortran/gfortran.texi \
|
|
|
|
|
$(srcdir)/fortran/invoke.texi \
|
|
|
|
|
$(srcdir)/doc/include/fdl.texi \
|
|
|
|
|
$(srcdir)/doc/include/gpl.texi \
|
|
|
|
|
$(srcdir)/doc/include/funding.texi \
|
gcc-version.m4: Delete.
config:
* gcc-version.m4: Delete.
fastjar:
* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
(BASEVER, DEVPHASE): New variables.
(POD2MAN): Adjust setting of --release option.
(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
* Makefile.in: Regenerate.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
* aclocal.m4, configure: Regenerate.
gcc:
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
gcc/ada:
* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
to dependencies.
gcc/fortran:
* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
subdirectory. Generate #define of __GLIBCXX__ from contents of
that file.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
* README: Update.
* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
of gcc/version.c.
* update_version: Handle updating gcc/DATESTAMP.
* update_web_docs: Generate gcc-vers.texi first.
From-SVN: r96549
2005-03-16 07:04:10 +01:00
|
|
|
|
$(srcdir)/doc/include/gcc-common.texi \
|
|
|
|
|
gcc-vers.texi
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2004-05-15 21:02:24 +02:00
|
|
|
|
doc/gfortran.info: $(GFORTRAN_TEXI)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
if [ x$(BUILD_INFO) = xinfo ]; then \
|
2004-05-15 21:02:24 +02:00
|
|
|
|
rm -f doc/gfortran.info-*; \
|
2004-11-13 08:35:55 +01:00
|
|
|
|
$(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
|
|
|
|
|
-o $@ $<; \
|
2004-05-13 08:41:07 +02:00
|
|
|
|
else true; fi
|
|
|
|
|
|
2004-05-15 21:02:24 +02:00
|
|
|
|
doc/gfortran.dvi: $(GFORTRAN_TEXI)
|
|
|
|
|
$(TEXI2DVI) -I $(srcdir)/fortran -I $(abs_docdir)/include -o $@ $<
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2004-11-13 08:35:55 +01:00
|
|
|
|
$(htmldir)/gfortran/index.html: $(GFORTRAN_TEXI)
|
|
|
|
|
$(mkinstalldirs) $(@D)
|
|
|
|
|
rm -f $(@D)/*
|
|
|
|
|
$(TEXI2HTML) -I $(docdir)/include -I $(srcdir)/fortran -o $(@D) $<
|
|
|
|
|
|
2004-07-04 11:01:40 +02:00
|
|
|
|
.INTERMEDIATE: gfortran.pod
|
|
|
|
|
|
|
|
|
|
gfortran.pod: $(GFORTRAN_TEXI)
|
|
|
|
|
-$(TEXI2POD) < $(srcdir)/fortran/invoke.texi > $@
|
|
|
|
|
|
2004-05-13 08:41:07 +02:00
|
|
|
|
#
|
|
|
|
|
# Install hooks:
|
|
|
|
|
# f951 is installed elsewhere as part of $(COMPILERS).
|
|
|
|
|
|
|
|
|
|
# Nothing to do here.
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.install-normal:
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
# Install the driver program as $(target)-gfortran
|
|
|
|
|
# and also as either gfortran (if native) or $(tooldir)/bin/gfortran.
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.install-common: installdirs
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-if [ -f f951$(exeext) ] ; then \
|
|
|
|
|
if [ -f gfortran-cross$(exeext) ] ; then \
|
|
|
|
|
rm -f $(DESTDIR)$(bindir)/$(GFORTRAN_CROSS_NAME)$(exeext); \
|
|
|
|
|
$(INSTALL_PROGRAM) gfortran-cross$(exeext) $(DESTDIR)$(bindir)/$(GFORTRAN_CROSS_NAME)$(exeext); \
|
|
|
|
|
chmod a+x $(DESTDIR)$(bindir)/$(GFORTRAN_CROSS_NAME)$(exeext); \
|
|
|
|
|
if [ -d $(DESTDIR)$(gcc_tooldir)/bin/. ] ; then \
|
|
|
|
|
rm -f $(DESTDIR)$(gcc_tooldir)/bin/gfortran$(exeext); \
|
|
|
|
|
$(INSTALL_PROGRAM) gfortran-cross$(exeext) $(DESTDIR)$(gcc_tooldir)/bin/gfortran$(exeext); \
|
|
|
|
|
else true; fi; \
|
|
|
|
|
else \
|
|
|
|
|
rm -f $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
|
|
|
|
|
$(INSTALL_PROGRAM) gfortran$(exeext) $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
|
|
|
|
|
chmod a+x $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
|
|
|
|
|
rm -f $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
|
|
|
|
|
$(LN) $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext) $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
|
|
|
|
|
fi ; \
|
|
|
|
|
fi
|
|
|
|
|
|
2004-05-15 21:02:24 +02:00
|
|
|
|
install-info:: $(DESTDIR)$(infodir)/gfortran.info
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
|
2004-07-04 11:01:40 +02:00
|
|
|
|
|
2005-06-14 11:03:46 +02:00
|
|
|
|
$(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext): doc/gfortran.1 \
|
|
|
|
|
installdirs
|
2004-07-04 11:01:40 +02:00
|
|
|
|
-rm -f $@
|
|
|
|
|
-$(INSTALL_DATA) $< $@
|
|
|
|
|
-chmod a-x $@
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.uninstall:
|
2004-05-13 08:41:07 +02:00
|
|
|
|
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
|
|
|
|
|
echo " install-info --delete --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/gfortran.info"; \
|
|
|
|
|
install-info --delete --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/gfortran.info || : ; \
|
|
|
|
|
else : ; fi; \
|
|
|
|
|
rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
|
2004-07-04 11:01:40 +02:00
|
|
|
|
rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \
|
2004-05-13 08:41:07 +02:00
|
|
|
|
rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_CROSS_NAME)$(exeext); \
|
|
|
|
|
rm -rf $(DESTDIR)$(infodir)/gfortran.info*
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Clean hooks:
|
|
|
|
|
# A lot of the ancillary files are deleted by the main makefile.
|
|
|
|
|
# We just have to delete files specific to us.
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.mostlyclean:
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-rm -f f951$(exeext)
|
|
|
|
|
-rm -f fortran/*.o
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.clean:
|
|
|
|
|
fortran.distclean:
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-rm -f fortran/config.status fortran/Makefile
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.extraclean:
|
|
|
|
|
fortran.maintainer-clean:
|
2004-05-15 21:02:24 +02:00
|
|
|
|
-rm -f doc/gfortran.info* fortran/gfortran.*aux
|
2004-07-04 11:01:40 +02:00
|
|
|
|
-rm -f $(docobjdir)/gfortran.1
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Stage hooks:
|
|
|
|
|
# The toplevel makefile has already created stage?/fortran at this point.
|
|
|
|
|
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.stage1: stage1-start
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-mv fortran/*$(objext) stage1/fortran
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.stage2: stage2-start
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-mv fortran/*$(objext) stage2/fortran
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.stage3: stage3-start
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-mv fortran/*$(objext) stage3/fortran
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.stage4: stage4-start
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-mv fortran/*$(objext) stage4/fortran
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.stageprofile: stageprofile-start
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-mv fortran/*$(objext) stageprofile/fortran
|
2005-09-13 08:24:18 +02:00
|
|
|
|
fortran.stagefeedback: stageprofile-start
|
2004-05-13 08:41:07 +02:00
|
|
|
|
-mv fortran/*$(objext) stagefeedback/fortran
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# .o: .h dependencies.
|
|
|
|
|
|
|
|
|
|
# Everything depends on gfortran.h, but only a few files depend on
|
|
|
|
|
# the other headers. So at some point we'll have to split out
|
|
|
|
|
# which objects depend on what. FIXME
|
|
|
|
|
# TODO: Add dependencies on the backend/tree header files
|
|
|
|
|
|
|
|
|
|
$(F95_PARSER_OBJS): fortran/gfortran.h fortran/intrinsic.h fortran/match.h \
|
|
|
|
|
fortran/parse.h \
|
|
|
|
|
$(CONFIG_H) $(SYSTEM_H) $(TM_H) $(TM_P_H) coretypes.h \
|
|
|
|
|
$(RTL_H) $(TREE_H) $(TREE_DUMP_H) $(GGC_H) $(EXPR_H) \
|
|
|
|
|
flags.h output.h diagnostic.h errors.h function.h
|
|
|
|
|
|
|
|
|
|
GFORTRAN_TRANS_DEPS = fortran/gfortran.h fortran/intrinsic.h fortran/trans-array.h \
|
|
|
|
|
fortran/trans-const.h fortran/trans-const.h fortran/trans.h \
|
|
|
|
|
fortran/trans-stmt.h fortran/trans-types.h \
|
Make-lang.in (fortran/f95-lang.o): Update dependencies.
* Make-lang.in (fortran/f95-lang.o): Update dependencies.
(fortran/trans-decl.o, fortran/trans-types.o): Likewise.
* gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
c_long, c_long_long.
(gfc_logical_info): Add c_bool.
(gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
* trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
rather than gfc_int[48]_type_node for allocate choice.
* trans-decl.c (gfc_build_intrinsic_function_decls): Cache
local copies of some kind type nodes.
(gfc_build_builtin_function_decls): Likewise.
* trans-expr.c (gfc_conv_power_op): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_index,
gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
* trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
gfc_trans_character_select, gfc_trans_allocate): Likewise.
* trans-io.c (gfc_pint4_type_node): Move into ...
(gfc_build_io_library_fndecls): ... here. Cache local copies of
some kind type nodes.
* trans-types.c (gfc_type_nodes): Remove.
(gfc_character1_type_node, gfc_strlen_type_node): New.
(gfc_integer_types, gfc_logical_types): New.
(gfc_real_types, gfc_complex_types): New.
(gfc_init_kinds): Fill in real mode_precision.
(gfc_build_int_type, gfc_build_real_type): New.
(gfc_build_complex_type, gfc_build_logical_type): New.
(c_size_t_size): New.
(gfc_init_types): Loop over kinds.
(gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
(gfc_get_complex_type, gfc_get_logical_type): Likewise.
(gfc_get_character_type_len): Likewise.
(gfc_type_for_size): Loop over kinds; use a reduced set of
unsigned type nodes.
(gfc_type_for_mode): Loop over kinds.
(gfc_signed_or_unsigned_type): Use gfc_type_for_size.
(gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
* trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
gfc_complex8_type_node, gfc_complex16_type_node,
gfc_logical1_type_node, gfc_logical2_type_node,
gfc_logical4_type_node, gfc_logical8_type_node,
gfc_logical16_type_node, gfc_strlen_kind): Remove.
(gfc_character1_type_node): Turn in to a variable.
(gfc_strlen_type_node): Likewise.
From-SVN: r86806
2004-08-30 23:59:08 +02:00
|
|
|
|
$(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_H) coretypes.h $(GGC_H)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|
|
|
|
|
fortran/f95-lang.o: $(GFORTRAN_TRANS_DEPS) fortran/mathbuiltins.def \
|
Make-lang.in (fortran/f95-lang.o): Update dependencies.
* Make-lang.in (fortran/f95-lang.o): Update dependencies.
(fortran/trans-decl.o, fortran/trans-types.o): Likewise.
* gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
c_long, c_long_long.
(gfc_logical_info): Add c_bool.
(gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
* trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
rather than gfc_int[48]_type_node for allocate choice.
* trans-decl.c (gfc_build_intrinsic_function_decls): Cache
local copies of some kind type nodes.
(gfc_build_builtin_function_decls): Likewise.
* trans-expr.c (gfc_conv_power_op): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_index,
gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
* trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
gfc_trans_character_select, gfc_trans_allocate): Likewise.
* trans-io.c (gfc_pint4_type_node): Move into ...
(gfc_build_io_library_fndecls): ... here. Cache local copies of
some kind type nodes.
* trans-types.c (gfc_type_nodes): Remove.
(gfc_character1_type_node, gfc_strlen_type_node): New.
(gfc_integer_types, gfc_logical_types): New.
(gfc_real_types, gfc_complex_types): New.
(gfc_init_kinds): Fill in real mode_precision.
(gfc_build_int_type, gfc_build_real_type): New.
(gfc_build_complex_type, gfc_build_logical_type): New.
(c_size_t_size): New.
(gfc_init_types): Loop over kinds.
(gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
(gfc_get_complex_type, gfc_get_logical_type): Likewise.
(gfc_get_character_type_len): Likewise.
(gfc_type_for_size): Loop over kinds; use a reduced set of
unsigned type nodes.
(gfc_type_for_mode): Loop over kinds.
(gfc_signed_or_unsigned_type): Use gfc_type_for_size.
(gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
* trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
gfc_complex8_type_node, gfc_complex16_type_node,
gfc_logical1_type_node, gfc_logical2_type_node,
gfc_logical4_type_node, gfc_logical8_type_node,
gfc_logical16_type_node, gfc_strlen_kind): Remove.
(gfc_character1_type_node): Turn in to a variable.
(gfc_strlen_type_node): Likewise.
From-SVN: r86806
2004-08-30 23:59:08 +02:00
|
|
|
|
gt-fortran-f95-lang.h gtype-fortran.h cgraph.h $(TARGET_H)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
fortran/convert.o: $(GFORTRAN_TRANS_DEPS)
|
|
|
|
|
fortran/trans.o: $(GFORTRAN_TRANS_DEPS)
|
Make-lang.in (fortran/f95-lang.o): Update dependencies.
* Make-lang.in (fortran/f95-lang.o): Update dependencies.
(fortran/trans-decl.o, fortran/trans-types.o): Likewise.
* gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
c_long, c_long_long.
(gfc_logical_info): Add c_bool.
(gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
* trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
rather than gfc_int[48]_type_node for allocate choice.
* trans-decl.c (gfc_build_intrinsic_function_decls): Cache
local copies of some kind type nodes.
(gfc_build_builtin_function_decls): Likewise.
* trans-expr.c (gfc_conv_power_op): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_index,
gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
* trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
gfc_trans_character_select, gfc_trans_allocate): Likewise.
* trans-io.c (gfc_pint4_type_node): Move into ...
(gfc_build_io_library_fndecls): ... here. Cache local copies of
some kind type nodes.
* trans-types.c (gfc_type_nodes): Remove.
(gfc_character1_type_node, gfc_strlen_type_node): New.
(gfc_integer_types, gfc_logical_types): New.
(gfc_real_types, gfc_complex_types): New.
(gfc_init_kinds): Fill in real mode_precision.
(gfc_build_int_type, gfc_build_real_type): New.
(gfc_build_complex_type, gfc_build_logical_type): New.
(c_size_t_size): New.
(gfc_init_types): Loop over kinds.
(gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
(gfc_get_complex_type, gfc_get_logical_type): Likewise.
(gfc_get_character_type_len): Likewise.
(gfc_type_for_size): Loop over kinds; use a reduced set of
unsigned type nodes.
(gfc_type_for_mode): Loop over kinds.
(gfc_signed_or_unsigned_type): Use gfc_type_for_size.
(gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
* trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
gfc_complex8_type_node, gfc_complex16_type_node,
gfc_logical1_type_node, gfc_logical2_type_node,
gfc_logical4_type_node, gfc_logical8_type_node,
gfc_logical16_type_node, gfc_strlen_kind): Remove.
(gfc_character1_type_node): Turn in to a variable.
(gfc_strlen_type_node): Likewise.
From-SVN: r86806
2004-08-30 23:59:08 +02:00
|
|
|
|
fortran/trans-decl.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-decl.h \
|
basic-block.h, [...]: Don't include errors.h and include toplev.h if necessary.
* basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
errors.h and include toplev.h if necessary.
* rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
errors.h otherwise include toplev.h.
* Makefile.in: Update dependencies.
ada:
* misc.c: Don't include errors.h.
fortran:
* fortran/trans-decl.c: Don't include errors.h.
* fortran/Make-lang.in: Updates dependencies.
java:
* java/verify-glue.c: Don't include errors.h and include toplev.h.
* java/Make-lang.in: Updates dependencies.
treelang:
* treelang/lex.l, treelang/parse.y: Don't include errors.h and
include toplev.h.
* treelang/Make-lang.in: Updates dependencies.
From-SVN: r100420
2005-06-01 04:51:18 +02:00
|
|
|
|
cgraph.h $(TARGET_H) function.h $(FLAGS_H) tree-gimple.h \
|
Make-lang.in (fortran/f95-lang.o): Update dependencies.
* Make-lang.in (fortran/f95-lang.o): Update dependencies.
(fortran/trans-decl.o, fortran/trans-types.o): Likewise.
* gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
c_long, c_long_long.
(gfc_logical_info): Add c_bool.
(gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
* trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
rather than gfc_int[48]_type_node for allocate choice.
* trans-decl.c (gfc_build_intrinsic_function_decls): Cache
local copies of some kind type nodes.
(gfc_build_builtin_function_decls): Likewise.
* trans-expr.c (gfc_conv_power_op): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_index,
gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
* trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
gfc_trans_character_select, gfc_trans_allocate): Likewise.
* trans-io.c (gfc_pint4_type_node): Move into ...
(gfc_build_io_library_fndecls): ... here. Cache local copies of
some kind type nodes.
* trans-types.c (gfc_type_nodes): Remove.
(gfc_character1_type_node, gfc_strlen_type_node): New.
(gfc_integer_types, gfc_logical_types): New.
(gfc_real_types, gfc_complex_types): New.
(gfc_init_kinds): Fill in real mode_precision.
(gfc_build_int_type, gfc_build_real_type): New.
(gfc_build_complex_type, gfc_build_logical_type): New.
(c_size_t_size): New.
(gfc_init_types): Loop over kinds.
(gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
(gfc_get_complex_type, gfc_get_logical_type): Likewise.
(gfc_get_character_type_len): Likewise.
(gfc_type_for_size): Loop over kinds; use a reduced set of
unsigned type nodes.
(gfc_type_for_mode): Loop over kinds.
(gfc_signed_or_unsigned_type): Use gfc_type_for_size.
(gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
* trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
gfc_complex8_type_node, gfc_complex16_type_node,
gfc_logical1_type_node, gfc_logical2_type_node,
gfc_logical4_type_node, gfc_logical8_type_node,
gfc_logical16_type_node, gfc_strlen_kind): Remove.
(gfc_character1_type_node): Turn in to a variable.
(gfc_strlen_type_node): Likewise.
From-SVN: r86806
2004-08-30 23:59:08 +02:00
|
|
|
|
tree-dump.h
|
|
|
|
|
fortran/trans-types.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-types.h \
|
|
|
|
|
real.h toplev.h $(TARGET_H)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
fortran/trans-const.o: $(GFORTRAN_TRANS_DEPS)
|
re PR fortran/19239 ([4.0 only] gfortran ICE on vector subscript expressions)
PR fortran/19239
* Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
* dependency.h (gfc_ref_needs_temporary_p): Declare.
* dependency.c (gfc_ref_needs_temporary_p): New function.
(gfc_check_fncall_dependency): Use it instead of inlined check.
By so doing, take advantage of the fact that character substrings
within an array reference also need a temporary.
* trans.h (GFC_SS_VECTOR): Adjust comment.
* trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
(gfc_set_vector_loop_bounds): New function.
(gfc_add_loop_ss_code): Call it after evaluating the subscripts of
a GFC_SS_SECTION. Deal with the GFC_SS_VECTOR case by evaluating
the vector expression and caching its descriptor for use within
the loop.
(gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
(gfc_conv_array_index_offset): Handle scalar, vector and range
dimensions as separate cases of a switch statement. In the vector
case, use the loop variable to calculate a vector index and use the
referenced element as the dimension's index. Perform bounds checking
on this final index.
(gfc_conv_section_upper_bound): Return null for vector indexes.
(gfc_conv_section_startstride): Give vector indexes a start value
of 0 and a stride of 1.
(gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
(gfc_conv_expr_descriptor): Expand comments. Generalize the
handling of the !want_pointer && !direct_byref case. Use
gfc_ref_needs_temporary_p to decide whether the variable case
needs a temporary.
(gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
GFC_SS_VECTOR index.
* trans-expr.c: Include dependency.h.
(gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
2005-09-09 Richard Sandiford <richard@codesourcery.com>
PR fortran/21104
* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
from trans-expr.c.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_add_interface_mapping, gfc_finish_interface_mapping)
(gfc_apply_interface_mapping): Declare.
* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
(gfc_trans_allocate_temp_array): Add pre and post block arguments.
* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
(gfc_trans_allocate_array_storage): Replace loop argument with
separate pre and post blocks.
(gfc_trans_allocate_temp_array): Add pre and post block arguments.
Update call to gfc_trans_allocate_array_storage.
(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
interface to gfc_trans_allocate_temp_array.
* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
Moved to trans.h.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_add_interface_mapping, gfc_finish_interface_mapping)
(gfc_apply_interface_mapping): Make extern.
(gfc_conv_function_call): Build an interface mapping for array
return values too. Call gfc_set_loop_bounds_from_array_spec.
Adjust call to gfc_trans_allocate_temp_array so that code is
added to SE rather than LOOP.
From-SVN: r104077
2005-09-09 08:34:08 +02:00
|
|
|
|
fortran/trans-expr.o: $(GFORTRAN_TRANS_DEPS) fortran/dependency.h
|
2004-05-13 08:41:07 +02:00
|
|
|
|
fortran/trans-stmt.o: $(GFORTRAN_TRANS_DEPS)
|
|
|
|
|
fortran/trans-io.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-io.h
|
|
|
|
|
fortran/trans-array.o: $(GFORTRAN_TRANS_DEPS)
|
|
|
|
|
fortran/trans-intrinsic.o: $(GFORTRAN_TRANS_DEPS) fortran/mathbuiltins.def \
|
|
|
|
|
gt-fortran-trans-intrinsic.h
|
2005-07-13 15:33:31 +02:00
|
|
|
|
fortran/dependency.o: $(GFORTRAN_TRANS_DEPS) fortran/dependency.h
|
2004-05-15 19:08:04 +02:00
|
|
|
|
fortran/trans-common.o: $(GFORTRAN_TRANS_DEPS)
|
2004-05-13 08:41:07 +02:00
|
|
|
|
|