/* Specific flags and argument handling of the Fortran front-end.
- Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GCC.
#define MATH_LIBRARY "-lm"
#endif
-#ifndef FORTRAN_INIT
-#define FORTRAN_INIT "-lgfortranbegin"
-#endif
-
#ifndef FORTRAN_LIBRARY
#define FORTRAN_LIBRARY "-lgfortran"
#endif
opt = OPTION_v, skip = 0;
else if (text[1] == 'x')
opt = OPTION_x, arg = text + 2;
+ else if (text[1] == 'J')
+ ;
else
{
if ((skip = WORD_SWITCH_TAKES_ARG (text + 1)) != 0) /* See gcc.c. */
opt = OPTION_syntax_only;
else if (!strcmp (text, "-static-libgfortran"))
opt = OPTION_static_libgfortran;
- else if (!strcmp (text, "-dumpversion"))
- opt = OPTION_version;
+ else if (!strcmp (text, "-static"))
+ opt = OPTION_static;
else if (!strcmp (text, "-fversion")) /* Really --version!! */
opt = OPTION_version;
else if (!strcmp (text, "-Xlinker") || !strcmp (text, "-specs"))
2 => last two args were -l<library> -lm. */
int saw_library = 0;
- /* 0 => initial/reset state
- 1 => FORTRAN_INIT linked in */
- int use_init = 0;
-
/* By default, we throw on the math library if we have one. */
int need_math = (MATH_LIBRARY[0] != '\0');
- /* Whether we should link a static libgfortran. */
- int static_lib = 0;
+#ifdef HAVE_LD_STATIC_DYNAMIC
+ /* Whether we should link a static libgfortran. */
+ int static_lib = 0;
/* Whether we need to link statically. */
int static_linking = 0;
+#endif
/* The number of input and output files in the incoming arg list. */
int n_infiles = 0;
g77_xargc = argc;
g77_xargv = argv;
g77_newargc = 0;
- g77_newargv = (const char **) CONST_CAST (argv);
+ g77_newargv = CONST_CAST2 (const char **, const char *const *, argv);
/* First pass through arglist.
break;
case OPTION_static_libgfortran:
+#ifdef HAVE_LD_STATIC_DYNAMIC
static_lib = 1;
+#endif
break;
case OPTION_static:
+#ifdef HAVE_LD_STATIC_DYNAMIC
static_linking = 1;
+#endif
+ /* Fall through, count OPTION_static as an item included in
+ the rewritten command line. */
case OPTION_l:
++n_infiles;
break;
case OPTION_version:
- printf ("GNU Fortran (GCC) %s\n", version_string);
- printf ("Copyright %s 2007 Free Software Foundation, Inc.\n\n",
+ printf ("GNU Fortran %s%s\n", pkgversion_string, version_string);
+ printf ("Copyright %s 2010 Free Software Foundation, Inc.\n\n",
_("(C)"));
printf (_("GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n\
You may redistribute copies of GNU Fortran\n\
{
char *p;
+ fprintf (stderr, _("Warning: Using -M <directory> is deprecated, "
+ "use -J instead\n"));
if (argv[i][2] == '\0')
{
- p = XNEWVEC (char, strlen (argv[i + 1]) + 2);
- p[0] = '-';
- p[1] = 'J';
- strcpy (&p[2], argv[i + 1]);
- i++;
+ if (i+1 < argc)
+ {
+ p = XNEWVEC (char, strlen (argv[i + 1]) + 3);
+ p[0] = '-';
+ p[1] = 'J';
+ strcpy (&p[2], argv[i + 1]);
+ i++;
+ }
+ else
+ fatal ("argument to '%s' missing", argv[i]);
}
else
{
p = XNEWVEC (char, strlen (argv[i]) + 1);
- strcpy (p, argv[i]);
+ p[0] = '-';
+ p[1] = 'J';
+ strcpy (&p[2], argv[i] + 2);
}
append_arg (p);
continue;
saw_library = 2; /* -l<library> -lm. */
else
{
- if (0 == use_init)
- {
- append_arg (FORTRAN_INIT);
- use_init = 1;
- }
-
ADD_ARG_LIBGFORTRAN (FORTRAN_LIBRARY);
}
}
switch (saw_library)
{
case 0:
- if (0 == use_init)
- {
- append_arg (FORTRAN_INIT);
- use_init = 1;
- }
ADD_ARG_LIBGFORTRAN (library);
/* Fall through. */