Create demac.sh, demac.sed, uniqify.sed to automatically fix up bin/adb stuff
authorNick Downing <downing.nick@gmail.com>
Wed, 25 Jan 2017 05:18:56 +0000 (16:18 +1100)
committerNick Downing <downing.nick@gmail.com>
Wed, 25 Jan 2017 10:16:34 +0000 (21:16 +1100)
18 files changed:
bin/adb/Makefile
bin/adb/defs.h
bin/adb/demac.sed [new file with mode: 0644]
bin/adb/demac.sh [new file with mode: 0755]
bin/adb/mac.h [deleted file]
bin/adb/mode.h
bin/adb/uniqify.sed [new file with mode: 0644]
cproto-4.6/curly.patch [new file with mode: 0644]
cproto-4.6/grammar.y
cproto-4.6/lex.l
env.sh [new file with mode: 0644]
lib/libc/ansify.sh
n.sh
scripts/alluses.sh [new file with mode: 0755]
scripts/ansify.sh
scripts/make.sh
scripts/nouses.sh [new file with mode: 0755]
xify/xify.sh

index d81fb97..ad580ac 100644 (file)
@@ -17,7 +17,7 @@ AS =  ../as
 adb:   ${OFILES}
        ${CC} -o adb ${OFILES}
 
-defs.h:                mac.h mode.h
+defs.h:                mode.h
 mode.h:                machine.h
 
 access.o:      defs.h access.c
@@ -26,7 +26,7 @@ expr.o:               defs.h expr.c
 format.o:      defs.h format.c
 input.o:       defs.h input.c
 main.o:                defs.h main.c
-message.o:     mac.h mode.h message.c
+message.o:     mode.h message.c
        ${CC} -c -R message.c
 pcs.o:         defs.h pcs.c
 print.o:       defs.h print.c
index d0f1964..4c6b92c 100644 (file)
 #define MAXOFF 255
 #define MAXPOS 80
 #define MAXLIN 128
-#define EOR    '\n'
-#define SP     ' '
-#define TB     '\t'
-#define QUOTE  0200
-#define STRIP  0177
-#define LOBYTE 0377
-#define EVEN   -2
 
 /* long to ints and back (puns) */
 union {
diff --git a/bin/adb/demac.sed b/bin/adb/demac.sed
new file mode 100644 (file)
index 0000000..2629ac5
--- /dev/null
@@ -0,0 +1,98 @@
+s/@/ATSIGN/g
+s/^/@/
+s/$/@/
+s/[^A-Za-z0-9_]\+/@&@/g
+
+# mac.h
+s/@TYPE@/@typedef@/g
+s/@STRUCT@/@struct@/g
+s/@UNION@/@union@/g
+s/@REG@/@register@/g
+
+s/@BEGIN@/@{NEWLINE     @/g
+s/@END@/@}@/g
+
+s/@IF@/@if (NOWHITE@/g
+s/@THEN@/@NOWHITE) {NEWLINE    @/g
+s/@ELSE@/@}NEWLINEelse {NEWLINE    @/g
+s/@ELIF@/@}NEWLINEelse if (NOWHITE@/g
+s/@FI@/@}@/g
+
+s/@FOR@/@for (NOWHITE@/g
+s/@WHILE@/@while (NOWHITE@/g
+s/@DO@/@NOWHITE) {NEWLINE  @/g
+s/@OD@/@}@/g
+s/@REP@/@do {NEWLINE   @/g
+s/@PER@/@} while (NOWHITE@/g
+s/@DONE@/@NOWHITE);@/g
+s/@LOOP@/@for(;;) {NEWLINE    @/g
+s/@POOL@/@}@/g
+
+s/@SKIP@/@;@/g
+s/@DIV@/@\/@/g
+s/@REM@/@%@/g
+s/@NEQ@/@^@/g
+s/@ANDF@/@\&\&@/g
+s/@ORF@/@||@/g
+
+s/@TRUE@/@-1@/g
+s/@FALSE@/@0@/g
+s/@LOBYTE@/@0377@/g
+s/@HIBYTE@/@0177400@/g
+s/@STRIP@/@0177@/g
+s/@HEXMSK@/@017@/g
+
+s/@SP@/@' '@/g
+s/@TB@/@'\\t'@/g
+s/@NL@/@'\\n'@/g
+
+# mode.h
+s/@ADDR@/@intptr_t@/g
+s/@INT@/@short@/g
+s/@VOID@/@void@/g
+s/@L_INT@/@long@/g
+s/@REAL@/@float@/g
+s/@L_REAL@/@double@/g
+s/@POS@/@unsigned@/g
+s/@BOOL@/@bool@/g
+s/@CHAR@/@char@/g
+s/@STRING@/@char*CHECKME@/g
+s/@MSG@/@char[]CHECKME@/g
+s/@MAP@/@struct map@/g
+s/@MAPPTR@/@struct map*CHECKME@/g
+s/@BKPT@/@struct bkpt@/g
+s/@BKPTR@/@struct bkpt*CHECKME@/g
+
+s/@REGLIST@/@struct reglist@/g
+s/@REGPTR@/@struct reglist*CHECKME@/g
+
+# defs.h
+s/@EOR@/@'\\n'@/g
+s/@SP@/@' '@/g
+s/@TB@/@'\\t'@/g
+s/@QUOTE@/@0200@/g
+s/@STRIP@/@0177@/g
+s/@LOBYTE@/@0377@/g
+s/@EVEN@/@-2@/g
+
+s/@//g
+s/ATSIGN/@/g
+
+s/{NEWLINE[     ]*\([^{}]*}\)/{ \1/g
+s/^\([  ]*\)\([^        {}][^{}]*\)\?\([{}]\)NEWLINE/\1\2\3\n\1/g
+s/\n\([         ]*\)\([^        {}][^{}]*\)\?\([{}]\)NEWLINE/\n\1\2\3\n\1/g
+s/\[\]CHECKME\([        ]*[A-Za-z_][0-9A-Za-z_]*\)\([   ]*;\)/\1[]\2/g
+s/\*CHECKME\([  ]*\)\([A-Za-z_][0-9A-Za-z_]*[   ]*;\)/\1*\2/g
+
+# nonessential normalization of whitespace:
+s/^\([ ]*\)        /\1 /
+s/\n\([        ]*\)        /\n\1       /
+s/^\([ ]*\)        /\1 /
+s/\n\([        ]*\)        /\n\1       /
+s/             /               /g
+s/             /               /g
+s/             /               /g
+s/             /               /g
+s/             /               /g
+s/             /               /g
+s/             /               /g
diff --git a/bin/adb/demac.sh b/bin/adb/demac.sh
new file mode 100755 (executable)
index 0000000..6f101bc
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+for i in *.c *.h
+do
+  sed -f demac.sed $i |\
+  sed -e 's/@/ATSIGN/g' |\
+  tr '\n' '@' |\
+  sed -e 's/[   @]*NOWHITE[     @]*//g' |\
+  tr '@' '\n' |\
+  sed -e 's/ATSIGN/@/g' >a
+  mv a $i
+done
diff --git a/bin/adb/mac.h b/bin/adb/mac.h
deleted file mode 100644 (file)
index 09fc0a5..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*     mac.h   4.2     85/09/09        */
-
-/*
- *     UNIX debugger
- */
-
-#define TYPE   typedef
-#define STRUCT struct
-#define UNION  union
-#define REG    register
-
-#define BEGIN  {
-#define END    }
-
-#define IF     if(
-#define THEN   ){
-#define ELSE   } else {
-#define ELIF   } else if (
-#define FI     }
-
-#define FOR    for(
-#define WHILE  while(
-#define DO     ){
-#define OD     }
-#define REP    do{
-#define PER    }while(
-#define DONE   );
-#define LOOP   for(;;){
-#define POOL   }
-
-#define SKIP   ;
-#define DIV    /
-#define REM    %
-#define NEQ    ^
-#define ANDF   &&
-#define ORF    ||
-
-#define TRUE    (-1)
-#define FALSE  0
-#define LOBYTE 0377
-#define HIBYTE 0177400
-#define STRIP  0177
-#define HEXMSK 017
-
-#define SP     ' '
-#define TB     '\t'
-#define NL     '\n'
index 7ac35d2..6c27b64 100644 (file)
@@ -8,22 +8,13 @@
 #define MAXCOM 64
 #define MAXARG 32
 #define LINSIZ 512
-TYPE   long    ADDR;
-TYPE   short   INT;
-TYPE   int             VOID;
-TYPE   long int        L_INT;
-TYPE   float           REAL;
-TYPE   double          L_REAL;
-TYPE   unsigned        POS;
-TYPE   char            BOOL;
-TYPE   char            CHAR;
-TYPE   char            *STRING;
-TYPE   char            MSG[];
-TYPE   struct map      MAP;
-TYPE   MAP             *MAPPTR;
-TYPE   struct bkpt     BKPT;
-TYPE   BKPT            *BKPTR;
 
+#ifdef __STDC__
+#include <stdint.h>
+#else
+typedef long intptr_t
+#endif
+typedef char bool;
 
 /* file address maps */
 struct map {
@@ -46,8 +37,6 @@ struct bkpt {
        BKPT    *nxtbkpt;
 };
 
-TYPE   struct reglist  REGLIST;
-TYPE   REGLIST         *REGPTR;
 struct reglist {
        STRING  rname;
        INT     roffs;
diff --git a/bin/adb/uniqify.sed b/bin/adb/uniqify.sed
new file mode 100644 (file)
index 0000000..2a478ed
--- /dev/null
@@ -0,0 +1,35 @@
+s/@/ATSIGN/g
+s/^/@/
+s/$/@/
+s/[^A-Za-z0-9_]\+/@&@/g
+
+s/@printf@/@_printf@/g
+s/@access@/@_access@/g
+s/@ISP@/@_ISP@/g
+s/@KSP@/@_KSP@/g
+s/@ESP@/@_ESP@/g
+s/@SSP@/@_SSP@/g
+s/@USP@/@_USP@/g
+s/@R0@/@_R0@/g
+s/@R1@/@_R1@/g
+s/@R2@/@_R2@/g
+s/@R3@/@_R3@/g
+s/@R4@/@_R4@/g
+s/@R5@/@_R5@/g
+s/@R6@/@_R6@/g
+s/@R7@/@_R7@/g
+s/@R8@/@_R8@/g
+s/@R9@/@_R9@/g
+s/@R10@/@_R10@/g
+s/@R11@/@_R11@/g
+s/@AP@/@_AP@/g
+s/@FP@/@_FP@/g
+s/@PC@/@_PC@/g
+s/@PSL@/@_PSL@/g
+s/@P0BR@/@_P0BR@/g
+s/@P0LR@/@_P0LR@/g
+s/@P1BR@/@_P1BR@/g
+s/@P1LR@/@_P1LR@/g
+
+s/@//g
+s/ATSIGN/@/g
diff --git a/cproto-4.6/curly.patch b/cproto-4.6/curly.patch
new file mode 100644 (file)
index 0000000..c203bf4
--- /dev/null
@@ -0,0 +1,35 @@
+diff --git a/cproto-4.6/lex.l b/cproto-4.6/lex.l
+index eee99ab..ec019bf 100644
+--- a/cproto-4.6/lex.l
++++ b/cproto-4.6/lex.l
+@@ -315,25 +315,28 @@ QUOTE            [\"\']
+ <INITIAL>"{"          {
+                           save_text();
+                           curly = 1;
++ fprintf(stderr, "\n\n\n{curly=1");
+                           return_val =
+                           returned_at = FALSE;
+                           BEGIN CURLY;
+                           return T_LBRACE;
+                       }
+-<CURLY>"{"            { save_text(); ++curly; }
++<CURLY>"{"            { save_text(); ++curly; fprintf(stderr, "\n{curly=%d", curly); }
+ <CURLY>"}"            {
+                           save_text();
+                           if (--curly == 0) {
++ fprintf(stderr, "\n}curly=0", curly);
+                               BEGIN INITIAL;
+                               return T_MATCHRBRACE;
+                           }
++ fprintf(stderr, "\n}curly=%d", curly);
+                       }
+ <CURLY>{QUOTE}                get_quoted();
+ <CURLY>"return"               { save_text(); returned_at = TRUE; }
+ <CURLY>";"            { save_text(); returned_at = FALSE; }
+ <CURLY>#{WS}*                 { save_text(); startCpp(1); }
+ <CURLY>"??="{WS}*     { save_text(); startCpp(1); }
+-<CURLY>.              { save_text(); return_val |= returned_at; }
++<CURLY>.              { save_text(); return_val |= returned_at; fputc(yytext[0], stderr); }
+ [ \r\t\f]+            save_text();
+ .                     {
index f4511d2..acc3f67 100644 (file)
@@ -1,3 +1,7 @@
+/* Nick */
+%define parse.error verbose
+%define parse.lac full
+
 /* $Id: grammar.y,v 4.7 1998/01/21 00:55:55 cthuang Exp $
  *
  * yacc grammar for C function prototype generator
@@ -900,7 +904,8 @@ char *name;
        put_string(stdout, cur_file_name());
        put_string(stdout, " */\n");
     }
-    yyparse();
+    if (yyparse())
+       fprintf(stderr, "warning: yyparse() aborted\n");
     free_symbol_table(define_names);
     free_symbol_table(typedef_names);
     free_symbol_table(included_files);
index 8840601..eee99ab 100644 (file)
@@ -991,6 +991,8 @@ char *file_spec;    /* path surrounded by "" or <> */
  char *stack[MAX_TEXT_SIZE/2];
  int level = 0;
  char *p = path, *q = path;
+ if (*p == '/')
+  *q++ = *p++;
  stack[level++] = q;
  while ((*q++ = *p++) != 0)
   if (q[-1] == '/') {
diff --git a/env.sh b/env.sh
new file mode 100644 (file)
index 0000000..7af5aed
--- /dev/null
+++ b/env.sh
@@ -0,0 +1,4 @@
+export ROOT=`pwd`
+export INCLUDE=$ROOT/cross/usr/include
+export SCRIPTS=$ROOT/scripts
+export PATH=$SCRIPTS:$PATH
index 754f9c5..cd4e602 100755 (executable)
@@ -2,6 +2,8 @@
 
 #ROOT=`dirname $0`/..
 ROOT=../..
+ROOT=`cd $ROOT && pwd`
+INCLUDE=$ROOT/cross/usr/include
 
 #all_c=`echo *.c`
 #if test "$all_c" = "*.c"
@@ -32,14 +34,14 @@ then
   rm -f `find . -name '*.[ch].uses' -print`
   rm -rf `find . -name .xify -print`
 
-  rm -f `find $ROOT/cross/usr/include -name '*.h.allprotos' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.nocomm' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.oldprotos' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.protos' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.protos.nocomm' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.usedby' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.uses' -print`
-  rm -rf `find $ROOT/cross/usr/include -name .xify -print`
+  rm -f `find $INCLUDE/g -name '*.h.allprotos' -print`
+  rm -f `find $INCLUDE/g -name '*.h.nocomm' -print`
+  rm -f `find $INCLUDE/g -name '*.h.oldprotos' -print`
+  rm -f `find $INCLUDE/g -name '*.h.protos' -print`
+  rm -f `find $INCLUDE/g -name '*.h.protos.nocomm' -print`
+  rm -f `find $INCLUDE/g -name '*.h.usedby' -print`
+  rm -f `find $INCLUDE/g -name '*.h.uses' -print`
+  rm -rf `find $INCLUDE/g -name .xify -print`
 
   rm -f a b conflicts.temp oldprotos.txt oldprotos.temp xx*
 
@@ -48,8 +50,8 @@ then
     #git checkout *.c *.h
     rm -rf $ROOT/include $ROOT/sys
     git checkout $ROOT/include $ROOT/sys $all_c
-    rm -rf $ROOT/cross/usr/include
-    mkdir -p $ROOT/cross/usr/include
+    rm -rf $INCLUDE/g
+    mkdir -p $INCLUDE/g
     (cd $ROOT/include && ../scripts/make.sh SHARED=copies install)
   fi
 fi
@@ -68,9 +70,9 @@ all_c=`find . -type f -name '*.c' -print |sed -e 's:^\./::' |grep -v '^vax/' |LC
 #  all_h=
 #fi
 #all_h=`find . -type f -name '*.h' -print |sed -e 's:^\./::' |LC_ALL=C sort`
-all_h=`find $ROOT/cross/usr/include -type f -name '*.h' -print |LC_ALL=C sort`
+all_h=`find $INCLUDE/g -type f -name '*.h' -print |LC_ALL=C sort`
 
-#std_h=`find $ROOT/cross/usr/include -type f -name '*.h' -print |grep -v "^$ROOT/cross/usr/include/stand/" |LC_ALL=C sort`
+#std_h=`find $INCLUDE/g -type f -name '*.h' -print |grep -v "^$ROOT/cross/usr/include/\(stand\|vaxif\|vaxmba\|vaxuba\)/" |LC_ALL=C sort`
 std_h=
 
 if test -z "$1" || test $1 -eq 1
@@ -126,22 +128,22 @@ then
   grep '\.h:' oldprotos.txt >oldprotos.temp
 
   sed -e 's/^[A-Za-z_].*__P.*;$/\/\*AAA&\*\//' -i $std_h
-  mv $ROOT/cross/usr/include/varargs.h $ROOT/cross/usr/include/varargs.h.save
-  echo "#define va_list char *" >$ROOT/cross/usr/include/varargs.h
-  echo "#define va_list char *" >$ROOT/cross/usr/include/stdarg.h
+  mv $INCLUDE/g/varargs.h $ROOT/cross/usr/include/varargs.h.save
+  echo "#define va_list char *" >$INCLUDE/g/varargs.h
+  echo "#define va_list char *" >$INCLUDE/g/stdarg.h
   for i in $all_c
   do
     echo "i=$i"
 
     #group=
-    group=$ROOT/cross/usr/include/`dirname $i`.h
+    group=$INCLUDE/g/`dirname $i`.h
     touch $group
     if test -f groups.txt
     then
       j=`sed -ne "s:^$i \\(.*\\):\\1:p" groups.txt`
       if test -n "$j"
       then
-        j=$ROOT/cross/usr/include/$j
+        j=$INCLUDE/g/$j
         echo $j >>$group.uses
         group=$j
         touch $group
@@ -149,7 +151,7 @@ then
     fi
     echo "group=$group"
 
-    $ROOT/cproto-4.6/cproto -i$ROOT/cross/usr/include -Dvax -t -H -s $i |sed -ne '2,$p' >$i.allprotos
+    $ROOT/cproto-4.6/cproto -i$INCLUDE/g -Dvax -t -H -s $i |sed -ne '2,$p' >$i.allprotos
     if ! grep -qv '^int main __P((' $i.allprotos
     then
       echo -n >$i.allprotos
@@ -197,8 +199,8 @@ EOF
       fi
     fi
   done
-  rm $ROOT/cross/usr/include/stdarg.h
-  mv $ROOT/cross/usr/include/varargs.h.save $ROOT/cross/usr/include/varargs.h
+  rm $INCLUDE/g/stdarg.h
+  mv $INCLUDE/g/varargs.h.save $ROOT/cross/usr/include/varargs.h
   sed -e 's/^\/\*AAA\(.*\)\*\/$/\1/' -i $std_h
 fi
 
@@ -208,7 +210,7 @@ fi
 #  all_h=
 #fi
 #all_h=`find . -type f -name '*.h' -print |sed -e 's:^\./::' |LC_ALL=C sort`
-all_h=`find $ROOT/cross/usr/include -type f -name '*.h' -print |LC_ALL=C sort`
+all_h=`find $INCLUDE/g -type f -name '*.h' -print |LC_ALL=C sort`
 
 if test -z "$1" || test $1 -eq 2
 then
@@ -255,7 +257,7 @@ then
   for i in $all_h $std_h
   do
     echo "i=$i"
-    h=`echo $i |sed -e "s:^$ROOT/cross/usr/include/::"`
+    h=`echo $i |sed -e "s:^$INCLUDE/g/::"`
     echo "h=$h"
 
     macros="`sed -ne 's/^#[     ]*define[       ]\+\([A-Za-z_][0-9A-Za-z_]*\).*/\1/p' $i.nocomm |grep -v '^\(NULL\|__P\)$'`"
@@ -333,7 +335,7 @@ then
         for j in `sed -e 's/\.protos\.nocomm:.*//; s/\.nocomm:.*//' <a |sort |uniq`
         do
           echo "j=$j"
-          k=`echo $j |sed -e "s:^$ROOT/cross/usr/include/::"`
+          k=`echo $j |sed -e "s:^$INCLUDE/g/::"`
           echo "k=$k"
           if ! grep -q ":$h:.*:$k\\|:$k:.*:$h:" conflicts.temp
           then
@@ -409,7 +411,7 @@ then
         for j in `sed -e 's/\.nocomm:.*//' <a |sort |uniq`
         do
           echo "j=$j"
-          k=`echo $j |sed -e "s:^$ROOT/cross/usr/include/::"`
+          k=`echo $j |sed -e "s:^$INCLUDE/g/::"`
           echo "k=$k"
           if ! grep -q ":$h:.*:$k\\|:$k:.*:$h:" conflicts.temp
           then
@@ -520,7 +522,7 @@ EOF
 
       pattern=
       prefix=
-      for j in `sed -e "s:^$ROOT/cross/usr/include/::" a`
+      for j in `sed -e "s:^$INCLUDE/g/::" a`
       do
         pattern="$pattern$prefix$j"
         prefix='\|'
@@ -534,7 +536,7 @@ EOF
     (
       if test -s a
       then
-        sed -e "s:.*:#include \"&\":; s:\"$ROOT/cross/usr/include/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#define _va_start(argp, arg) va_start(argp, arg)\\n#else\\n#include <varargs.h>\\n#define _va_start(argp, arg) va_start(argp)\\n#endif:" a
+        sed -e "s:.*:#include \"&\":; s:\"$INCLUDE/g/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#define _va_start(argp, arg) va_start(argp, arg)\\n#else\\n#include <varargs.h>\\n#define _va_start(argp, arg) va_start(argp)\\n#endif:" a
         echo
       fi
       sed -e 's/\([^0-9A-Za-z_]\)va_start(argp);/\1_va_start(argp, fmt);/' $i
@@ -545,7 +547,7 @@ EOF
   for i in $all_h
   do
     echo "i=$i"
-    h=`echo $i |sed -e "s:^$ROOT/cross/usr/include/::"`
+    h=`echo $i |sed -e "s:^$INCLUDE/g/::"`
     echo "h=$h"
 
     rm -f a
@@ -555,7 +557,7 @@ EOF
 
       pattern=
       prefix=
-      for j in `sed -e "s:^$ROOT/cross/usr/include/::" a`
+      for j in `sed -e "s:^$INCLUDE/g/::" a`
       do
         pattern="$pattern$prefix$j"
         prefix='\|'
@@ -576,7 +578,7 @@ EOF
 EOF
       if test -s a
       then
-        sed -e "s:.*:#include \"&\":; s:\"$ROOT/cross/usr/include/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#endif:" a
+        sed -e "s:.*:#include \"&\":; s:\"$INCLUDE/g/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#endif:" a
         echo
       fi
       cat $i
@@ -624,22 +626,22 @@ then
   fi
 
   # removing useless extra header inclusions that are pulled in anyway
-  touch $ROOT/cross/usr/include/stdarg.h
+  touch $INCLUDE/g/stdarg.h
   rm -f a
   for i in $all_h $std_h
   do
     echo "i=$i"
-    h=`echo $i |sed -e "s:^$ROOT/cross/usr/include/::"`
+    h=`echo $i |sed -e "s:^$INCLUDE/g/::"`
     echo "h=$h"
 
     pattern=
     prefix=
     cp $i temp.c
-    for j in `cpp -nostdinc -I$ROOT/cross/usr/include -Dvax -DNCMD=1 -DNRSP=1 -M temp.c`
+    for j in `cpp -nostdinc -I$INCLUDE/g -Dvax -DNCMD=1 -DNRSP=1 -M temp.c`
     do
       echo "j=$j"
       case $j in
-      $ROOT/cross/usr/include/stdarg.h)
+      $INCLUDE/g/stdarg.h)
         # system header files are not supposed to define stdarg.h, even if
         # (like vfprintf etc) they have va_list paramters, it is silly and
         # we ignore this restriction, but clients shouldn't rely on this
@@ -647,7 +649,7 @@ then
         # up any dependency on varargs.h, hence let's keep it symmetrical)
         ;;
       *.h)
-        k=`echo $j |sed -e "s:^$ROOT/cross/usr/include/::"`
+        k=`echo $j |sed -e "s:^$INCLUDE/g/::"`
         echo "k=$k"
         echo "$h $k" >>a
         pattern="$pattern$prefix$k"
@@ -662,7 +664,7 @@ then
       sed -e "s:^#include <\\($pattern\\)>$:/\\*& $h\\*/:" -i `grep -H "^#include <$h>$" $all_c $all_h |sed -e 's/:.*//'`
     fi
   done
-  rm -f $ROOT/cross/usr/include/stdarg.h temp.c
+  rm -f $INCLUDE/g/stdarg.h temp.c
   tsort <a >b
 fi
 
@@ -675,13 +677,13 @@ then
     for j in $ROOT/include/$i/*.h
     do
       echo "j=$j"
-      cp $ROOT/cross/usr/include/$i/`basename $j` $ROOT/include/$i
+      cp $INCLUDE/g/$i/`basename $j` $ROOT/include/$i
     done
   done
   for i in compat-4.1 compat-sys5 gen inet net ns stdio sys
   do
     echo "i=$i"
-    cp $ROOT/cross/usr/include/$i.h $ROOT/include
+    cp $INCLUDE/g/$i.h $ROOT/include
   done
   for i in net netimp netinet netns vax vaxif vaxmba vaxuba
   do
@@ -689,12 +691,12 @@ then
     for j in $ROOT/sys/$i/*.h
     do
       echo "j=$j"
-      cp $ROOT/cross/usr/include/$i/`basename $j` $ROOT/sys/$i
+      cp $INCLUDE/g/$i/`basename $j` $ROOT/sys/$i
     done
   done
   for i in $ROOT/sys/h/*.h
   do
     echo "i=$i"
-    cp $ROOT/cross/usr/include/sys/`basename $i` $ROOT/sys/h
+    cp $INCLUDE/g/sys/`basename $i` $ROOT/sys/h
   done
 fi
diff --git a/n.sh b/n.sh
index 8537426..70546a7 100755 (executable)
--- a/n.sh
+++ b/n.sh
@@ -1,7 +1,7 @@
 #!/bin/sh -e
 
 ROOT=`pwd`
-MAKE=$ROOT/scripts/make.sh
+PATH=$ROOT/scripts:$PATH
 
 rm -rf cross
 mkdir -p cross/bin
@@ -10,7 +10,7 @@ mkdir -p cross/usr/include
 mkdir -p cross/usr/lib
 
 (cd xify && make clean && make && make install)
-(cd include && $MAKE SHARED=copies install)
+(cd include && make.sh SHARED=copies install)
 
 mkdir -p lib/libc/compat-4.1/profiled
 mkdir -p lib/libc/compat-sys5/profiled
@@ -25,7 +25,7 @@ mkdir -p lib/libc/net/profiled
 mkdir -p lib/libc/ns/profiled
 mkdir -p lib/libc/stdio/profiled
 mkdir -p lib/libc/sys/profiled
-(cd lib/libc && $MAKE clean && $MAKE && $MAKE install)
-(cd bin && $MAKE clean && $MAKE SUBDIR= NSTD= KMEM= && $MAKE SUBDIR= NSTD= KMEM= install)
+(cd lib/libc && make.sh clean && make.sh && make.sh install)
+(cd bin && make.sh clean && make.sh SUBDIR= NSTD= KMEM= && make.sh SUBDIR= NSTD= KMEM= install)
 
 #(cd test && make clean && make)
diff --git a/scripts/alluses.sh b/scripts/alluses.sh
new file mode 100755 (executable)
index 0000000..c600e35
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+cat *.uses |sort |uniq
index 14b2ab5..ac70449 100755 (executable)
@@ -2,6 +2,8 @@
 
 ROOT=`dirname $0`/..
 #ROOT=../..
+ROOT=`cd $ROOT && pwd`
+INCLUDE=$ROOT/cross/usr/include
 
 all_c=`echo *.c`
 if test "$all_c" = "*.c"
@@ -32,14 +34,14 @@ then
   #rm -f `find . -name '*.[ch].uses' -print`
   #rm -rf `find . -name .xify -print`
 
-  #rm -f `find $ROOT/cross/usr/include -name '*.h.allprotos' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.nocomm' -print`
-  #rm -f `find $ROOT/cross/usr/include -name '*.h.oldprotos' -print`
-  #rm -f `find $ROOT/cross/usr/include -name '*.h.protos' -print`
-  #rm -f `find $ROOT/cross/usr/include -name '*.h.protos.nocomm' -print`
-  rm -f `find $ROOT/cross/usr/include -name '*.h.usedby' -print`
-  #rm -f `find $ROOT/cross/usr/include -name '*.h.uses' -print`
-  rm -rf `find $ROOT/cross/usr/include -name .xify -print`
+  #rm -f `find $INCLUDE -name '*.h.allprotos' -print`
+  rm -f `find $INCLUDE -name '*.h.nocomm' -print`
+  #rm -f `find $INCLUDE -name '*.h.oldprotos' -print`
+  #rm -f `find $INCLUDE -name '*.h.protos' -print`
+  #rm -f `find $INCLUDE -name '*.h.protos.nocomm' -print`
+  rm -f `find $INCLUDE -name '*.h.usedby' -print`
+  #rm -f `find $INCLUDE -name '*.h.uses' -print`
+  rm -rf `find $INCLUDE -name .xify -print`
 
   rm -f a b conflicts.temp oldprotos.txt oldprotos.temp xx*
 
@@ -48,8 +50,8 @@ then
     git checkout *.c *.h
     #rm -rf $ROOT/include $ROOT/sys
     #git checkout $ROOT/include $ROOT/sys $all_c
-    #rm -rf $ROOT/cross/usr/include
-    #mkdir -p $ROOT/cross/usr/include
+    #rm -rf $INCLUDE
+    #mkdir -p $INCLUDE
     #(cd $ROOT/include && ../scripts/make.sh SHARED=copies install)
   fi
 fi
@@ -68,9 +70,9 @@ then
   all_h=
 fi
 #all_h=`find . -type f -name '*.h' -print |sed -e 's:^\./::' |LC_ALL=C sort`
-#all_h=`find $ROOT/cross/usr/include -type f -name '*.h' -print |LC_ALL=C sort`
+#all_h=`find $INCLUDE -type f -name '*.h' -print |LC_ALL=C sort`
 
-std_h=`find $ROOT/cross/usr/include -type f -name '*.h' -print |grep -v "^$ROOT/cross/usr/include/stand/" |LC_ALL=C sort`
+std_h=`find $INCLUDE -type f -name '*.h' -print |grep -v "^$INCLUDE/\(stand\|vaxif\|vaxmba\|vaxuba\)/" |LC_ALL=C sort`
 #std_h=
 
 if test -z "$1" || test $1 -eq 1
@@ -105,20 +107,15 @@ then
  
     rm -f xx*
     csplit -b '%05d' -q $i '/^[         ]*{[    ]*$/' '{*}'
+    prev=
     for j in xx*
     do
-      :
-    done
-    for k in xx*
-    do
-      if test $k != xx00000
-      then
-        sed -ne '2,$p' -i $k
-      fi
-      if test $k != $j
+      if test -n "$prev" && ! sed -ne '$p' $prev |grep -q '^#'
       then
-        sed -e '$s/$/ {/' -i $k
+        sed -e '$s/$/ {/' -i $prev
+        sed -ne '2,$p' -i $j
       fi
+      prev=$j
     done
     cat xx* >$i
   done
@@ -126,22 +123,23 @@ then
   grep '\.h:' oldprotos.txt >oldprotos.temp
 
   sed -e 's/^[A-Za-z_].*__P.*;$/\/\*AAA&\*\//' -i $std_h
-  mv $ROOT/cross/usr/include/varargs.h $ROOT/cross/usr/include/varargs.h.save
-  echo "#define va_list char *" >$ROOT/cross/usr/include/varargs.h
-  echo "#define va_list char *" >$ROOT/cross/usr/include/stdarg.h
+  mv $INCLUDE/varargs.h $INCLUDE/varargs.h.save
+  echo "#define va_list char *" >$INCLUDE/varargs.h
+  echo "#define va_list char *" >$INCLUDE/stdarg.h
+  touch $INCLUDE/stdint.h
   for i in $all_c
   do
     echo "i=$i"
 
     group=
-    #group=$ROOT/cross/usr/include/`dirname $i`.h
+    #group=$INCLUDE/`dirname $i`.h
     #touch $group
     if test -f groups.txt
     then
       j=`sed -ne "s:^$i \\(.*\\):\\1:p" groups.txt`
       if test -n "$j"
       then
-        #j=$ROOT/cross/usr/include/$j
+        #j=$INCLUDE/$j
         #echo $j >>$group.uses
         group=$j
         touch $group
@@ -149,7 +147,7 @@ then
     fi
     echo "group=$group"
 
-    $ROOT/cproto-4.6/cproto -i$ROOT/cross/usr/include -Dvax -t -H -s $i |sed -ne '2,$p' >$i.allprotos
+    $ROOT/cproto-4.6/cproto -i$INCLUDE -Dvax -t -H -s $i |sed -ne '2,$p' >$i.allprotos
     if ! grep -qv '^int main __P((' $i.allprotos
     then
       echo -n >$i.allprotos
@@ -197,8 +195,8 @@ EOF
       fi
     fi
   done
-  rm $ROOT/cross/usr/include/stdarg.h
-  mv $ROOT/cross/usr/include/varargs.h.save $ROOT/cross/usr/include/varargs.h
+  rm $INCLUDE/stdint.h $INCLUDE/stdarg.h
+  mv $INCLUDE/varargs.h.save $INCLUDE/varargs.h
   sed -e 's/^\/\*AAA\(.*\)\*\/$/\1/' -i $std_h
 fi
 
@@ -208,7 +206,7 @@ then
   all_h=
 fi
 #all_h=`find . -type f -name '*.h' -print |sed -e 's:^\./::' |LC_ALL=C sort`
-#all_h=`find $ROOT/cross/usr/include -type f -name '*.h' -print |LC_ALL=C sort`
+#all_h=`find $INCLUDE -type f -name '*.h' -print |LC_ALL=C sort`
 
 if test -z "$1" || test $1 -eq 2
 then
@@ -255,7 +253,7 @@ then
   for i in $all_h $std_h
   do
     echo "i=$i"
-    h=`echo $i |sed -e "s:^$ROOT/cross/usr/include/::"`
+    h=`echo $i |sed -e "s:^$INCLUDE/::"`
     echo "h=$h"
 
     macros="`sed -ne 's/^#[     ]*define[       ]\+\([A-Za-z_][0-9A-Za-z_]*\).*/\1/p' $i.nocomm |grep -v '^\(NULL\|__P\)$'`"
@@ -333,7 +331,7 @@ then
         for j in `sed -e 's/\.protos\.nocomm:.*//; s/\.nocomm:.*//' <a |sort |uniq`
         do
           echo "j=$j"
-          k=`echo $j |sed -e "s:^$ROOT/cross/usr/include/::"`
+          k=`echo $j |sed -e "s:^$INCLUDE/::"`
           echo "k=$k"
           if ! grep -q ":$h:.*:$k\\|:$k:.*:$h:" conflicts.temp
           then
@@ -409,7 +407,7 @@ then
         for j in `sed -e 's/\.nocomm:.*//' <a |sort |uniq`
         do
           echo "j=$j"
-          k=`echo $j |sed -e "s:^$ROOT/cross/usr/include/::"`
+          k=`echo $j |sed -e "s:^$INCLUDE/::"`
           echo "k=$k"
           if ! grep -q ":$h:.*:$k\\|:$k:.*:$h:" conflicts.temp
           then
@@ -520,7 +518,7 @@ EOF
 
       pattern=
       prefix=
-      for j in `sed -e "s:^$ROOT/cross/usr/include/::" a`
+      for j in `sed -e "s:^$INCLUDE/::" a`
       do
         pattern="$pattern$prefix$j"
         prefix='\|'
@@ -534,7 +532,7 @@ EOF
     (
       if test -s a
       then
-        sed -e "s:.*:#include \"&\":; s:\"$ROOT/cross/usr/include/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#define _va_start(argp, arg) va_start(argp, arg)\\n#else\\n#include <varargs.h>\\n#define _va_start(argp, arg) va_start(argp)\\n#endif:" a
+        sed -e "s:.*:#include \"&\":; s:\"$INCLUDE/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#define _va_start(argp, arg) va_start(argp, arg)\\n#else\\n#include <varargs.h>\\n#define _va_start(argp, arg) va_start(argp)\\n#endif:" a
         echo
       fi
       sed -e 's/\([^0-9A-Za-z_]\)va_start(argp);/\1_va_start(argp, fmt);/' $i
@@ -545,7 +543,7 @@ EOF
   for i in $all_h
   do
     echo "i=$i"
-    h=`echo $i |sed -e "s:^$ROOT/cross/usr/include/::"`
+    h=`echo $i |sed -e "s:^$INCLUDE/::"`
     echo "h=$h"
 
     rm -f a
@@ -555,7 +553,7 @@ EOF
 
       pattern=
       prefix=
-      for j in `sed -e "s:^$ROOT/cross/usr/include/::" a`
+      for j in `sed -e "s:^$INCLUDE/::" a`
       do
         pattern="$pattern$prefix$j"
         prefix='\|'
@@ -576,7 +574,7 @@ EOF
 EOF
       if test -s a
       then
-        sed -e "s:.*:#include \"&\":; s:\"$ROOT/cross/usr/include/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#endif:" a
+        sed -e "s:.*:#include \"&\":; s:\"$INCLUDE/\\(.*\\)\":<\\1>:; s:^#include <varargs.h>$:#ifdef __STDC__\\n#include <stdarg.h>\\n#endif:" a
         echo
       fi
       cat $i
@@ -624,22 +622,22 @@ then
   fi
 
   # removing useless extra header inclusions that are pulled in anyway
-  touch $ROOT/cross/usr/include/stdarg.h
+  touch $INCLUDE/stdarg.h
   rm -f a
   for i in $all_h $std_h
   do
     echo "i=$i"
-    h=`echo $i |sed -e "s:^$ROOT/cross/usr/include/::"`
+    h=`echo $i |sed -e "s:^$INCLUDE/::"`
     echo "h=$h"
 
     pattern=
     prefix=
     cp $i temp.c
-    for j in `cpp -nostdinc -I$ROOT/cross/usr/include -Dvax -DNCMD=1 -DNRSP=1 -M temp.c`
+    for j in `cpp -nostdinc -I$INCLUDE -Dvax -DNCMD=1 -DNRSP=1 -M temp.c`
     do
       echo "j=$j"
       case $j in
-      $ROOT/cross/usr/include/stdarg.h)
+      $INCLUDE/stdarg.h)
         # system header files are not supposed to define stdarg.h, even if
         # (like vfprintf etc) they have va_list paramters, it is silly and
         # we ignore this restriction, but clients shouldn't rely on this
@@ -647,7 +645,7 @@ then
         # up any dependency on varargs.h, hence let's keep it symmetrical)
         ;;
       *.h)
-        k=`echo $j |sed -e "s:^$ROOT/cross/usr/include/::"`
+        k=`echo $j |sed -e "s:^$INCLUDE/::"`
         echo "k=$k"
         echo "$h $k" >>a
         pattern="$pattern$prefix$k"
@@ -662,7 +660,7 @@ then
       #sed -e "s:^#include <\\($pattern\\)>$:/\\*& $h\\*/:" -i `grep -H "^#include <$h>$" $all_c $all_h |sed -e 's/:.*//'`
     fi
   done
-  rm -f $ROOT/cross/usr/include/stdarg.h temp.c
+  rm -f $INCLUDE/stdarg.h temp.c
   tsort <a >b
 fi
 
@@ -675,13 +673,13 @@ fi
 #    for j in $ROOT/include/$i/*.h
 #    do
 #      echo "j=$j"
-#      cp $ROOT/cross/usr/include/$i/`basename $j` $ROOT/include/$i
+#      cp $INCLUDE/$i/`basename $j` $ROOT/include/$i
 #    done
 #  done
 #  for i in compat-4.1 compat-sys5 gen inet net ns stdio sys
 #  do
 #    echo "i=$i"
-#    cp $ROOT/cross/usr/include/$i.h $ROOT/include
+#    cp $INCLUDE/$i.h $ROOT/include
 #  done
 #  for i in net netimp netinet netns vax vaxif vaxmba vaxuba
 #  do
@@ -689,12 +687,12 @@ fi
 #    for j in $ROOT/sys/$i/*.h
 #    do
 #      echo "j=$j"
-#      cp $ROOT/cross/usr/include/$i/`basename $j` $ROOT/sys/$i
+#      cp $INCLUDE/$i/`basename $j` $ROOT/sys/$i
 #    done
 #  done
 #  for i in $ROOT/sys/h/*.h
 #  do
 #    echo "i=$i"
-#    cp $ROOT/cross/usr/include/sys/`basename $i` $ROOT/sys/h
+#    cp $INCLUDE/sys/`basename $i` $ROOT/sys/h
 #  done
 #fi
index 8a18c77..37f0da4 100755 (executable)
@@ -1,7 +1,4 @@
 #!/bin/sh
 ROOT=`dirname $0`/..
-if false # check whether ROOT is relative somehow
-then
-  ROOT=`pwd`/$ROOT
-fi
+ROOT=`cd $ROOT && pwd`
 make CC="$ROOT/cross/bin/hostcc -Dvax" LD="$ROOT/cross/bin/hostld" DESTDIR="$ROOT/cross" $@
diff --git a/scripts/nouses.sh b/scripts/nouses.sh
new file mode 100755 (executable)
index 0000000..c16f51f
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+ROOT=`dirname $0`/..
+ROOT=`cd $ROOT && pwd`
+INCLUDE=$ROOT/cross/usr/include
+grep -H "^$INCLUDE/$1$" *.uses |sed -e "s:\.uses\:.*: $1:" >>conflicts.txt
+LC_ALL=C sort <conflicts.txt |uniq >a
+mv a conflicts.txt
index a2b33a4..2833400 100755 (executable)
@@ -22,5 +22,5 @@ typedef uint32_t x_unsigned_long;
 
 #endif
 EOF
-  "`dirname "$0"`/xifyfilt" <$1 2>$3 |sed -e 's/\(extern\|register\|static\) x_int x_\(caddr_t\|datum\|off_t\|time_t\|u_int\|u_short\|u_long\)/\1 x_\2/g; s/va_arg(x_argp, x_\(unsigned_\)\?\(short\|int\|long\))/_va_arg_\1\2(x_argp)/g'
+  "`dirname "$0"`/xifyfilt" <$1 2>$3 |sed -e 's/\(extern\|register\|static\) x_int\([   ]\+x_\)\(Bignum\|bool\|caddr_t\|datum\|off_t\|time_t\|u_char\|u_int\|u_short\|u_long\)/\1\2\3/g; s/va_arg(x_argp, x_\(unsigned_\)\?\(short\|int\|long\))/_va_arg_\1\2(x_argp)/g'
 ) >$2