home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
gnu
/
gmake362.lzh
/
DIFFS
< prev
next >
Wrap
Text File
|
1993-07-30
|
13KB
|
579 lines
--- 1.1.1.2.1.1 1991/12/29 16:09:12
+++ arscan.c 1992/01/24 20:00:48
@@ -25,7 +25,11 @@
#define PORTAR 1
#endif
+#ifdef atarist
+#include <gnu-ar.h>
+#else
#include <ar.h>
+#endif
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
--- 1.1.1.2.1.1 1991/12/29 16:09:12
+++ commands.c 1992/01/24 20:00:48
@@ -342,6 +342,7 @@
int sig;
{
signal (sig, SIG_DFL);
+#ifndef atarist
#ifndef USG
(void) sigsetmask (0);
#endif
@@ -387,6 +388,7 @@
wait_for_children (0, 1);
/* Delete any non-precious intermediate files that were made. */
+#endif /* atarist */
remove_intermediates (1);
--- 1.3.1.1 1991/12/29 16:09:12
+++ default.c 1992/01/24 20:00:48
@@ -28,9 +28,14 @@
`.s' must come last, so that a `.o' file will be made from
a `.c' or `.p' or ... file rather than from a .s file. */
+#ifdef atarist
static char default_suffixes[]
+ = ".out .a .o .c .cc .y .l .s .S .h .info .dvi .tex .texinfo .sh .elc .el";
+#else
+static char default_suffixes[]
= ".out .a .ln .o .c .cc .C .p .f .F .r .y .l .s .S \
.mod .sym .def .h .info .dvi .tex .texinfo .texi .cweb .web .sh .elc .el";
+#endif
static struct pspec default_pattern_rules[] =
{
@@ -48,6 +53,13 @@
static struct pspec default_terminal_rules[] =
{
+#ifdef atarist
+ /* RCS. */
+ "%", "RCS/%", /* This is for RCS 5.6 */
+ "test -f $@ || $(CO) $(COFLAGS) $< $@",
+ "%", "RCS/%,v",
+ "test -f $@ || $(CO) $(COFLAGS) $< $@",
+#else
/* RCS. */
"%", "%,v",
"test -f $@ || $(CO) $(COFLAGS) $< $@",
@@ -59,6 +71,7 @@
"$(GET) $(GFLAGS) $<",
"%", "SCCS/s.%",
"$(GET) $(GFLAGS) $<",
+#endif
0, 0, 0
};
--- 1.1.1.3 1991/12/29 16:09:12
+++ dir.c 1992/06/10 20:54:58
@@ -50,6 +50,12 @@
#define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
#endif /* POSIX */
+#ifdef atarist
+#define HASH_LIMIT 8 /* only consider this many characters of file names */
+static short _limit = 0;
+#endif
+
+
/* Hash table of directories. */
struct directory
@@ -97,12 +103,20 @@
register char *p;
register struct directory *dir;
+#ifdef atarist
+ for (p = name, _limit = HASH_LIMIT; *p != '\0' && _limit-- > 0; ++p)
+#else
for (p = name; *p != '\0'; ++p)
+#endif
HASH (hash, *p);
hash %= DIRECTORY_BUCKETS;
for (dir = directories[hash]; dir != 0; dir = dir->next)
+#ifdef atarist
+ if (DOS_streq (dir->name, name))
+#else
if (streq (dir->name, name))
+#endif
break;
if (dir == 0)
@@ -164,7 +178,11 @@
/* Checking if the directory exists. */
return 1;
+#ifdef atarist
+ for (p = filename,_limit = HASH_LIMIT; *p != '\0' && _limit-- > 0; ++p)
+#else
for (p = filename; *p != '\0'; ++p)
+#endif
HASH (hash, *p);
hash %= DIRFILE_BUCKETS;
@@ -171,7 +189,11 @@
/* Search the list of hashed files. */
for (df = dir->files[hash]; df != 0; df = df->next)
+#ifdef atarist
+ if (DOS_streq (df->name, filename))
+#else
if (streq (df->name, filename))
+#endif
return !df->impossible;
}
@@ -191,10 +213,13 @@
if (!REAL_DIR_ENTRY (d))
continue;
+#ifdef atarist
+ for (i = 0, _limit = HASH_LIMIT; i < D_NAMLEN(d) && _limit-- > 0; ++i)
+#else
for (i = 0; i < D_NAMLEN(d); ++i)
+#endif
HASH (newhash, d->d_name[i]);
newhash %= DIRFILE_BUCKETS;
-
df = (struct dirfile *) xmalloc (sizeof (struct dirfile));
df->next = dir->files[newhash];
dir->files[newhash] = df;
@@ -202,8 +227,13 @@
df->impossible = 0;
/* Check if the name matches the one we're searching for. */
- if (filename != 0
- && newhash == hash && streq (d->d_name, filename))
+ if (filename != 0 && newhash == hash
+#ifdef atarist
+ && DOS_streq (d->d_name, filename)
+#else
+ && streq (d->d_name, filename)
+#endif
+ )
return 1;
}
@@ -269,7 +299,12 @@
filename = p = dirend + 1;
}
+#ifdef atarist
+ _limit = HASH_LIMIT;
+ for (hash = 0; *p != '\0' && _limit-- > 0; ++p)
+#else
for (hash = 0; *p != '\0'; ++p)
+#endif
HASH (hash, *p);
hash %= DIRFILE_BUCKETS;
@@ -318,12 +353,21 @@
/* There are no files entered for this directory. */
return 0;
+#ifdef atarist
+ _limit = HASH_LIMIT;
+ for (hash = 0; *p != '\0' && _limit-- > 0; ++p)
+#else
for (hash = 0; *p != '\0'; ++p)
+#endif
HASH (hash, *p);
hash %= DIRFILE_BUCKETS;
for (next = dir->files[hash]; next != 0; next = next->next)
+#ifdef atarist
+ if (DOS_streq (filename, next->name))
+#else
if (streq (filename, next->name))
+#endif
return next->impossible;
return 0;
@@ -399,3 +443,44 @@
printf ("%u", impossible);
printf (" impossibilities in %u directories.\n", dirs);
}
+
+#ifdef atarist
+/* checks to see if two names refer to the same file */
+int DOS_streq(name1, name2)
+char *name1, *name2;
+{
+ static char _name1[64], _name2[64];
+ char *lastslash;
+ extern char *rindex();
+ int i;
+
+ if (!strcmp(name1, name2)) return 1;
+
+ unx2dos(name1, _name1);
+ unx2dos(name2, _name2);
+
+ name1 = rindex(_name1, '\\'); if (!name1) name1 = _name1;
+ name2 = rindex(_name2, '\\'); if (!name2) name2 = _name2;
+ for(i = 8; i>0; i--) {
+ if (*name1 != *name2) return 0;
+ if (*name1 == 0)
+ return 1;
+ if (*name1 == '.')
+ goto doext;
+ name1++; name2++;
+ }
+
+/* now look for extension */
+ while (*name1 && *name1 != '.') name1++;
+ while (*name2 && *name2 != '.') name2++;
+ if (*name1 != *name2) return 0;
+doext:
+ name1++; name2++;
+ for (i = 3; i > 0; i--) {
+ if (*name1 != *name2) return 0;
+ if (!*name1) return 1;
+ name1++; name2++;
+ }
+ return 1;
+}
+#endif /* atarist */
--- 1.1.1.1.1.1 1991/12/29 16:09:12
+++ function.c 1992/01/24 20:00:50
@@ -351,6 +351,9 @@
else
error_prefix = "";
+#ifdef atarist
+ perror_with_name (error_prefix, "function not allowed under TOS");
+#else
if (pipe (pipedes) < 0)
{
perror_with_name (error_prefix, "pipe");
@@ -444,6 +447,7 @@
pop_signals_blocked_p ();
+#endif /* atarist */
free (text);
break;
}
--- 1.1.1.2.1.1 1991/12/29 16:09:12
+++ job.c 1992/01/25 18:06:16
@@ -24,7 +24,11 @@
#include <errno.h>
/* Default path to search for executables. */
+#ifdef atarist
+static char default_path[] = ";/bin";
+#else
static char default_path[] = ":/bin:/usr/bin";
+#endif
/* Default shell to use. */
char default_shell[] = "/bin/sh";
@@ -87,10 +91,20 @@
#else /* WTERMSIG not defined and have <sys/wait.h> or not USG. */
+#ifdef atarist
+# define WAIT_T int
+# define WTERMSIG(x) 0
+# define WCOREDUMP(x) 0
+# define WEXITSTATUS(x) x
+# define WIFSIGNALED(x) (WTERMSIG (x) != 0)
+# define WIFEXITED(x) (WTERMSIG (x) == 0)
+# undef WAIT_NOHANG
+#else
#define WAIT_T union wait
#define WTERMSIG(x) ((x).w_termsig)
#define WCOREDUMP(x) ((x).w_coredump)
#define WEXITSTATUS(x) ((x).w_retcode)
+#endif /* atarist */
#ifndef WIFSIGNALED
#define WIFSIGNALED(x) (WTERMSIG(x) != 0)
#endif
@@ -205,7 +219,9 @@
#else /* Not USG. */
/* Block the signals. */
+#ifndef atarist
(void) sigblock (fatal_signal_mask | sigmask (SIGCHLD));
+#endif /* atarist */
#endif
@@ -226,7 +242,9 @@
#else /* Not USG. */
/* Unblock the signals. */
+#ifndef atarist
(void) sigsetmask (sigblock (0) & ~(fatal_signal_mask | sigmask (SIGCHLD)));
+#endif
#endif
@@ -654,6 +672,7 @@
/* Set up a bad standard input that reads from a broken pipe. */
+#ifndef atarist
if (bad_stdin == -1)
{
/* Make a file descriptor that is the read end of a broken pipe.
@@ -667,6 +686,7 @@
bad_stdin = pd[0];
}
}
+#endif
/* Decide whether to give this child the `good' standard input
(one that points to the terminal or whatever), or the `bad' one
@@ -827,6 +847,7 @@
if (stdout_fd != 1)
(void) dup2 (stdout_fd, 1);
+#ifndef atarist
/* Free up file descriptors. */
{
register int d;
@@ -834,6 +855,7 @@
for (d = 3; d < max; ++d)
(void) close (d);
}
+#endif /* atarist */
/* Don't block signals for the new process. */
unblock_signals ();
@@ -850,6 +872,60 @@
search_path (file, path, program)
char *file, *path, *program;
{
+#ifdef atarist
+ static char **_extensions = 0, *suff;
+ char *p, *q;
+ int i;
+
+ if (path == 0 || path[0] == '\0')
+ path = default_path;
+
+ if ((index (file, '/') != 0) || (index (file, '\\') != 0))
+ {
+ strcpy (program, file);
+ return 1;
+ }
+ else
+ {
+ if (_extensions == 0)
+ {
+ if ((p == (char *) getenv ("SUFF")) != 0 && *p)
+ {
+ suff = (char *) xmalloc (strlen (p) + 1);
+ strcpy (suff, p);
+ for (i = 1, q = suff; *q; q++)
+ if (*q == ',' || *q == ';')
+ i++;
+ _extensions = (char **) xmalloc (i * sizeof (char *));
+ _extensions[0] = suff;
+ for (i = 0, q = suff; *q; q++)
+ if (*q == ',' || *q == ';')
+ {
+ *q = '\0';
+ _extensions[++i] = q + 1;
+ }
+ _extensions[++i] = 0;
+ }
+ else
+ {
+ _extensions = (char **) xmalloc (5 * sizeof (char *));
+ _extensions[0] = "ttp";
+ _extensions[1] = "tos";
+ _extensions[2] = "prg";
+ _extensions[3] = "app";
+ _extensions[4] = 0;
+ }
+ }
+ p = (char *) findfile (file, path, _extensions);
+ if (p == NULL)
+ return 0;
+ else
+ {
+ strcpy (program, p);
+ return 1;
+ }
+ }
+#else
if (path == 0 || path[0] == '\0')
path = default_path;
@@ -933,6 +1009,7 @@
}
return 0;
+#endif /* atarist */
}
/* Replace the current process with one running the command in ARGV,
@@ -1001,7 +1078,6 @@
new_argv[1 + argc] = argv[argc];
--argc;
}
-
execve (shell_path, new_argv, envp);
perror_with_name ("execve: ", shell_path);
}
@@ -1030,7 +1106,11 @@
char *line, **restp;
char *shell, *ifs;
{
+#ifdef atarist
+ static char sh_chars[] = "#;\"*?[]&|<>(){}$`";
+#else
static char sh_chars[] = "#;\"*?[]&|<>(){}=$`";
+#endif
static char *sh_cmds[] = { "cd", "eval", "exec", "exit", "login",
"logout", "set", "umask", "wait", "while", "for",
"case", "if", ":", ".", "break", "continue",
@@ -1079,6 +1159,7 @@
instring = 0;
else
*ap++ = *p;
+ /* Backslash-newline combinations are eaten. */
}
else if (index (sh_chars, *p) != 0)
/* Not inside a string, but it's a special char. */
@@ -1087,8 +1168,11 @@
/* Not a special char. */
switch (*p)
{
+#ifdef atarist
+ case '@':
+#else
case '\\':
- /* Backslash-newline combinations are eaten. */
+#endif
if (p[1] != '\0' && p[1] != '\n')
/* Copy and skip the following char. */
*ap++ = *++p;
@@ -1202,7 +1286,11 @@
if (*p == '\\' || *p == '\''
|| isspace (*p)
|| index (sh_chars, *p) != 0)
+#ifdef atarist
+ *ap++ = '@';
+#else
*ap++ = '\\';
+#endif
*ap++ = *p;
}
*ap = '\0';
--- 1.1.1.2.1.1 1991/12/29 16:09:12
+++ main.c 1992/01/24 20:00:50
@@ -291,6 +291,10 @@
struct dep *read_makefiles;
PATH_VAR (current_directory);
+#ifdef atarist
+ _binmode( 0 );
+#endif /* atarist */
+
default_goal_file = 0;
reading_filename = 0;
reading_lineno_ptr = 0;
--- 1.1.1.2.1.1 1991/12/29 16:09:12
+++ misc.c 1992/01/24 20:00:50
@@ -498,6 +498,7 @@
static void
init_access ()
{
+#ifndef atarist
user_uid = getuid ();
user_gid = getgid ();
@@ -507,6 +508,7 @@
/* Do these ever fail? */
if (user_uid == -1 || user_gid == -1 || make_uid == -1 || make_gid == -1)
pfatal_with_name ("get{e}[gu]id");
+#endif /* atarist */
current_access = make;
}
@@ -513,9 +515,16 @@
/* Give the process appropriate permissions for access to
user data (i.e., to stat files, or to spawn a child process). */
+#ifdef atarist
void
user_access ()
{
+ current_access = user;
+}
+#else
+void
+user_access ()
+{
if (!access_inited)
init_access ();
@@ -554,6 +563,7 @@
current_access = user;
}
+#endif /* atarist */
/* Give the process appropriate permissions for access to
make data (i.e., the load average). */
@@ -560,6 +570,7 @@
void
make_access ()
{
+#ifndef atarist
if (!access_inited)
init_access ();
@@ -579,6 +590,7 @@
if (setregid (user_gid, make_gid) < 0)
pfatal_with_name ("setregid");
#endif
+#endif /* atarist */
current_access = make;
}
@@ -591,8 +603,10 @@
/* Set both the real and effective UID and GID to the user's.
They cannot be changed back to make's. */
+#ifndef atarist
if (setuid (user_uid) < 0)
pfatal_with_name ("setuid");
if (setgid (user_gid) < 0)
pfatal_with_name ("setgid");
+#endif
}
--- 1.4 1991/12/29 16:09:12
+++ version.c 1992/01/24 20:00:52
@@ -1,4 +1,4 @@
-char *version_string = "3.62";
+char *version_string = "3.62 atariST";
/*
Local variables:
--- 1.1.1.3 1991/12/29 16:09:12
+++ make.h 1992/01/24 20:00:50
@@ -219,8 +219,13 @@
#else
#ifndef USG
+#ifdef __MINT__
+extern long sigsetmask ();
+extern long sigblock ();
+#else
extern int sigsetmask ();
extern int sigblock ();
+#endif
#endif
extern int kill ();
extern void abort (), exit ();