]> gcc.gnu.org Git - gcc.git/commitdiff
genfixes (machname.h): Move the functionality from gen-machine.h into this file.
authorBruce Korb <bkorb@gnu.org>
Fri, 4 Feb 2000 21:42:00 +0000 (21:42 +0000)
committerBruce Korb <korbb@gcc.gnu.org>
Fri, 4 Feb 2000 21:42:00 +0000 (21:42 +0000)
2000-02-04  Bruce Korb  <bkorb@gnu.org>

* fixinc/genfixes(machname.h):
Move the functionality from gen-machine.h into this file.
UNdef MN_NAME_PAT if there are no names to change.
Also, be a little kinder when AutoGen is not present.

* fixinc/Makefile.in(machname.h):
Change the generation rule to use genfixes.

* fixinc/fixfixes.c(machine_name):
machine_name_fix's functionality now dependent upon whether
MN_NAME_PAT is defined.

* fixinc/fixtests.c(machine_name):
ditto.

* fixinc/fixlib.c(mn_get_regexps): conditional on definition
of MN_NAME_PAT.

* fixinc/fixlib.h(mn_get_regexps):
ditto

* fixinc/gen-machine.h: DELETED

From-SVN: r31793

gcc/ChangeLog
gcc/fixinc/Makefile.in
gcc/fixinc/fixfixes.c
gcc/fixinc/fixlib.c
gcc/fixinc/fixlib.h
gcc/fixinc/fixtests.c
gcc/fixinc/gen-machname.h [deleted file]
gcc/fixinc/genfixes

index 1162cc1167baec54de38114211493ab2e70cf2c2..7f88e0e9ab60bd68aa1cbcc98549508713b2ecb3 100644 (file)
@@ -1,3 +1,28 @@
+2000-02-04  Bruce Korb  <bkorb@gnu.org>
+
+       * fixinc/genfixes(machname.h):
+       Move the functionality from gen-machine.h into this file.
+       UNdef MN_NAME_PAT if there are no names to change.
+       Also, be a little kinder when AutoGen is not present.
+
+       * fixinc/Makefile.in(machname.h):
+       Change the generation rule to use genfixes.
+
+       * fixinc/fixfixes.c(machine_name):
+       machine_name_fix's functionality now dependent upon whether
+       MN_NAME_PAT is defined.
+
+       * fixinc/fixtests.c(machine_name):
+       ditto.
+
+       * fixinc/fixlib.c(mn_get_regexps): conditional on definition
+       of MN_NAME_PAT.
+
+       * fixinc/fixlib.h(mn_get_regexps):
+       ditto
+
+       * fixinc/gen-machine.h: DELETED
+
 2000-02-04  Jan Hubicka  <jh@suse.cz>
            Richard Henderson  <rth@cygnus.com>
 
index af78996e7308630d4bb389212a1b3b821040c99d..cb0f70c46765f320369ad939677303e58a31599e 100644 (file)
@@ -139,5 +139,4 @@ Makefile: Makefile.in ../config.status
          && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
 machname.h: ../specs
-       $(SHELL) $(srcdir)/gen-machname.h < ../specs > machname.T
-       mv -f machname.T machname.h
+       $(SHELL) $(srcdir)/genfixes $@
index c665b755abd1f80ee6444b5998bd995ace2dd792..7f481ebead32c9a77825b7da61c1467f789679f6 100644 (file)
@@ -560,16 +560,16 @@ FIX_PROC_HEAD( CTRL_defn_fix )
 
 FIX_PROC_HEAD( machine_name_fix )
 {
+#ifndef MN_NAME_PAT
+  fputs( "The target machine has no needed machine name fixes\n", stderr );
+#else
   regmatch_t match[2];
   char *line, *base, *limit, *p, *q;
   regex_t *label_re, *name_re;
   char scratch[SCRATCHSZ];
   size_t len;
 
-  if (mn_get_regexps (&label_re, &name_re, "machine_name_fix"))
-    /* This platform doesn't need this fix.  We can only get here if
-       someone is running fixfixes by hand, but let's be polite.  */
-    goto done;
+  mn_get_regexps (&label_re, &name_re, "machine_name_fix");
 
   scratch[0] = '_';
   scratch[1] = '_';
@@ -647,6 +647,7 @@ FIX_PROC_HEAD( machine_name_fix )
        }
     }
  done:
+#endif
   fputs (text, stdout);
 }
 
index 6ca564638fa9a2bb51df2c91e3feca1524b12367..9c8e53408ee29bd944b5e3b865c7481aa6abafef 100644 (file)
@@ -181,7 +181,7 @@ compile_re( pat, re, match, e1, e2 )
    Helper routine and data for the machine_name test and fix.
    machname.h is created by black magic in the Makefile.  */
 
-#include "machname.h"
+#ifdef MN_NAME_PAT
 
 tSCC mn_label_pat[] = "^[ \t]*#[ \t]*(if|ifdef|ifndef)[ \t]+";
 static regex_t mn_label_re;
@@ -191,16 +191,12 @@ static regex_t mn_name_re;
 
 static int mn_compiled = 0;
 
-int
+void
 mn_get_regexps( label_re, name_re, who )
      regex_t **label_re;
      regex_t **name_re;
      tCC *who;
 {
-  /* Maybe we don't need to do this fix at all?  */
-  if (mn_name_pat[0] == '\0')
-    return 1;
-
   if (! mn_compiled)
     {
       compile_re (mn_label_pat, &mn_label_re, 1, "label pattern", who);
@@ -209,5 +205,5 @@ mn_get_regexps( label_re, name_re, who )
     }
   *label_re = &mn_label_re;
   *name_re = &mn_name_re;
-  return 0;
 }
+#endif
index bc43977922c397af0d1c5d1ca14230e8880b5489..7794c9c4e1379027730e8d0e5bb4667533878747 100644 (file)
@@ -30,6 +30,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 
 #include "gnu-regex.h"
+#include "machname.h"
 
 #ifndef STDIN_FILENO
 # define STDIN_FILENO   0
@@ -99,6 +100,8 @@ char * load_file_data _P_(( FILE* fp ));
 t_bool is_cxx_header  _P_(( tCC* filename, tCC* filetext ));
 void   compile_re     _P_(( tCC* pat, regex_t* re, int match,
                            tCC *e1, tCC *e2 ));
-int    mn_get_regexps _P_(( regex_t** label_re, regex_t** name_re,
+#ifdef MN_NAME_PAT
+void   mn_get_regexps _P_(( regex_t** label_re, regex_t** name_re,
                            tCC *who ));
+#endif
 #endif /* FIXINCLUDES_FIXLIB_H */
index ef821e1db11ac90766550f14986fead0657f93fe..445fa2aeb02a88776ce4eab497106c1328a724f9 100644 (file)
@@ -271,12 +271,14 @@ TEST_FOR_FIX_PROC_HEAD( else_endif_label_test )
 
 TEST_FOR_FIX_PROC_HEAD( machine_name_test )
 {
+#ifndef MN_NAME_PAT
+  return SKIP_FIX;
+#else
   regex_t *label_re, *name_re;
   regmatch_t match[2];
   tCC *base, *limit;
 
-  if (mn_get_regexps(&label_re, &name_re, "machine_name_test"))
-    return SKIP_FIX;
+  mn_get_regexps(&label_re, &name_re, "machine_name_test");
 
   for (base = text;
        regexec (label_re, base, 2, match, 0) == 0;
@@ -314,6 +316,7 @@ TEST_FOR_FIX_PROC_HEAD( machine_name_test )
       /* Otherwise, keep looking... */
     }
   return SKIP_FIX;
+#endif
 }
 
 
diff --git a/gcc/fixinc/gen-machname.h b/gcc/fixinc/gen-machname.h
deleted file mode 100644 (file)
index 361b3af..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#! /bin/sh
-
-# Copyright (C) 2000 Free Software Foundation, Inc.
-# This file is part of GNU CC.
-
-# GNU CC 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 CC 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 CC; see the file COPYING.  If not, write to
-# the Free Software Foundation, 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# This script extracts from the specs file all the predefined macros
-# that are not in the C89 reserved namespace (the reserved namespace
-# is all identifiers beginnning with two underscores or one underscore
-# followed by a capital letter).  The specs file is on standard input.
-# A #define for a regular expression to find any of those macros in a
-# header file is written to standard output.
-
-# Note dependency on ASCII. \040 = space, \011 = tab, \012 = newline.
-# tr ' ' '\n' is, alas, not portable.
-
-tr -s '\040\011' '\012\012' |
-    sed -n 's/^.*-D\([a-zA-Z_][a-zA-Z0-9_]*\).*$/\1/p' |
-    sort -u > mn.T
-
-if grep -v '^_[_A-Z]' mn.T > mn.U
-then
-    echo "Forbidden identifiers: `tr '\012' ' ' <mn.U`" >&2
-    sed 's/^/\\\\</; s/$/\\\\>/' <mn.U | tr '\012' '|' > mn.V
-    echo '' >>mn.V
-    sed 's/^/#define MN_NAME_PAT "/; s/|$/"/' < mn.V
-else
-    echo "No forbidden identifiers defined by this target" >&2
-    echo '#define MN_NAME_PAT ""'
-fi
-rm -f mn.[TUV]
-exit 0
index dbee8918f5651ee78aae42a34fc303be1b6a0679..ae67610af5cb3c35727e5f8b654398b9d7df42dc 100755 (executable)
@@ -1,15 +1,25 @@
 #! /bin/sh
 
-if (autogen --help > /dev/null 2>&1) ; then : ; else
-  echo "AutoGen does not appear to be correctly installed."
-  echo "Please download and install:"
-  echo "   ftp://sourceware.cygnus.com/pub/egcs/infrastructure/autogen.tar.gz"
-  exit 1
-fi
+# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+# This file is part of GNU CC.
+
+# GNU CC 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 CC 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 CC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
 
 SHELL=/bin/sh
 export SHELL
-AG="autogen"
 if [ $# -eq 0 ] ; then
   not_done=false
 else
@@ -37,8 +47,9 @@ do
   '-?' )
     echo "USAGE: gendefs [ -D<def-name> ... ] [ <output-name> ]"
     echo "WHERE: '<def-name>' specifies a #define test name from inclhack.def"
-    echo "  and  '<output-name>' is one of:  inclhack.sh fixincl.x fixincl.sh"
-    echo "The default is to produce all three outputs."
+    echo "  and  '<output-name>' is one of:"
+    echo "       inclhack.sh fixincl.x fixincl.sh machine.h"
+    echo "The default is to produce the first three outputs."
     exit 0
     ;;
 
@@ -49,33 +60,82 @@ do
 done
 
 if [ $# -eq 0 ] ; then
-  echo AutoGen-ing inclhack.sh
-  $AG inclhack.def
-
-  echo AutoGen-ing fixincl.x
-  $AG -T fixincl.tpl -b fixincl inclhack.def
-
-  echo AutoGen-ing fixincl.sh
-  $AG -DPROGRAM=1 -b fixincl inclhack.def
+  ${SHELL} $0 $AG inclhack.sh || exit 1
+  ${SHELL} $0 $AG fixincl.x   || exit 1
+  ${SHELL} $0 $AG fixincl.sh  || exit 1
   exit 0
 fi
 
+AG="autogen $AG"
 set -e
 
 case "$1" in
 inclhack.sh )
-  echo AutoGen-ing inclhack.sh
-  $AG inclhack.def
+  if (autogen --help > /dev/null 2>&1)
+  then
+    echo AutoGen-ing inclhack.sh
+    $AG inclhack.def
+  else
+    echo "AutoGen does not appear to be correctly installed."
+    echo "Please download and install:"
+    echo "   ftp://sourceware.cygnus.com/pub/egcs/infrastructure/autogen.tar.gz"
+    touch inclhack.sh
+  fi
   ;;
 
 fixincl.x )
-  echo AutoGen-ing fixincl.x
-  $AG -T fixincl.tpl -b fixincl inclhack.def
+  if (autogen --help > /dev/null 2>&1)
+  then
+    echo AutoGen-ing fixincl.x
+    $AG -T fixincl.tpl -b fixincl inclhack.def
+  else
+    echo "AutoGen does not appear to be correctly installed."
+    echo "Please download and install:"
+    echo "   ftp://sourceware.cygnus.com/pub/egcs/infrastructure/autogen.tar.gz"
+    touch fixincl.x
+  fi
   ;;
 
 fixincl.sh )
-  echo AutoGen-ing fixincl.sh
-  $AG -DPROGRAM=1 -b fixincl inclhack.def
+  if (autogen --help > /dev/null 2>&1)
+  then
+    echo AutoGen-ing fixincl.sh
+    $AG -DPROGRAM=1 -b fixincl inclhack.def
+  else
+    echo "AutoGen does not appear to be correctly installed."
+    echo "Please download and install:"
+    echo "   ftp://sourceware.cygnus.com/pub/egcs/infrastructure/autogen.tar.gz"
+    touch fixincl.sh
+  fi
+  ;;
+
+machname.h )
+  # This script extracts from the specs file all the predefined macros
+  # that are not in the C89 reserved namespace (the reserved namespace
+  # is all identifiers beginnning with two underscores or one underscore
+  # followed by a capital letter).  The specs file is on standard input.
+  # A #define for a regular expression to find any of those macros in a
+  # header file is written to standard output.
+
+  # Note dependency on ASCII. \040 = space, \011 = tab, \012 = newline.
+  # tr ' ' '\n' is, alas, not portable.
+
+  tr -s '\040\011' '\012\012' < ../specs |
+    sed -n 's/^.*-D\([a-zA-Z_][a-zA-Z0-9_]*\).*$/\1/p' |
+    sort -u > mn.T
+
+  if grep -v '^_[_A-Z]' mn.T > mn.U
+  then
+    echo "Forbidden identifiers: `tr '\012' ' ' <mn.U`" >&2
+    sed 's/^/\\\\</; s/$/\\\\>/' <mn.U | tr '\012' '|' > mn.V
+    echo '' >>mn.V
+    sed 's/^/#define MN_NAME_PAT "/; s/|$/"/' < mn.V > machname.T
+  else
+    echo "No forbidden identifiers defined by this target" >&2
+    echo '#undef MN_NAME_PAT' > machname.T
+  fi
+  rm -f mn.[TUV]
+  mv -f machname.T machname.h
   ;;
 
 * )
This page took 0.09087 seconds and 5 git commands to generate.