home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume20
/
dmake
/
patch02i
< prev
next >
Wrap
Text File
|
1991-06-29
|
39KB
|
1,278 lines
Newsgroups: comp.sources.misc
From: Dennis Vadura <dvadura@watdragon.waterloo.edu>
Subject: v20i084: dmake - dmake version 3.7, Patch02i/12
Message-ID: <1991Jun29.222731.4579@sparky.IMD.Sterling.COM>
X-Md4-Signature: 8ae0c4a5af6b62edcaa78aaf87e7f3c8
Date: Sat, 29 Jun 1991 22:27:31 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: Dennis Vadura <dvadura@watdragon.waterloo.edu>
Posting-number: Volume 20, Issue 84
Archive-name: dmake/patch02i
Patch-To: dmake: Volume 19, Issue 22-58
#!/bin/sh
# this is dp2.08 (part 8 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file dm37p2 continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 8; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping dm37p2'
else
echo 'x - continuing file dm37p2'
sed 's/^X//' << 'SHAR_EOF' >> 'dm37p2' &&
Xint Usage ANSI((int));
Xint Version ANSI(());
Xchar * Get_suffix ANSI((char *));
Xchar * Build_path ANSI((char *, char *));
Xvoid Make_rules ANSI(());
Xvoid Create_macro_vars ANSI(());
Xtime_t Do_stat ANSI((char *, char *, char **));
Xint Do_touch ANSI((char *, char *, char **));
Xvoid Void_lib_cache ANSI((char *, char *));
Xtime_t Do_time ANSI(());
Xint Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
Xchar ** Pack_argv ANSI((int, int, char *));
Xchar * Read_env_string ANSI((char *));
Xint Write_env_string ANSI((char *, char *));
Xvoid ReadEnvironment ANSI(());
Xvoid Catch_signals ANSI((void (*)()));
Xvoid Clear_signals ANSI(());
Xvoid Prolog ANSI((int, char* []));
Xvoid Epilog ANSI((int));
Xchar * Get_current_dir ANSI(());
Xint Set_dir ANSI((char*));
Xchar Get_switch_char ANSI(());
XFILE* Get_temp ANSI((char **, char *, int));
XFILE * Start_temp ANSI((char *, CELLPTR, char **));
Xvoid Open_temp_error ANSI((char *, char *));
Xvoid Link_temp ANSI((CELLPTR, FILE *, char *));
Xvoid Close_temp ANSI((CELLPTR, FILE *));
Xvoid Unlink_temp_files ANSI((CELLPTR));
Xvoid Handle_result ANSI((int, int, int, CELLPTR));
Xvoid Update_time_stamp ANSI((CELLPTR));
Xvoid Parse ANSI((FILE *));
Xint Get_line ANSI((char *, FILE *));
Xchar * Do_comment ANSI((char *, char **, int));
Xchar * Get_token ANSI((TKSTRPTR, char *, int));
Xvoid Quit ANSI(());
Xvoid Read_state ANSI(());
Xvoid Write_state ANSI(());
Xint Check_state ANSI((CELLPTR, STRINGPTR *, int));
Xchar* basename ANSI((char *));
Xvoid Dump ANSI(());
Xvoid Dump_recipe ANSI((STRINGPTR));
Xint Parse_macro ANSI((char *, int));
Xint Macro_op ANSI((char *));
Xint Parse_rule_def ANSI((int *));
Xint Rule_op ANSI((char *));
Xvoid Add_recipe_to_list ANSI((char *, int, int));
Xvoid Bind_rules_to_targets ANSI((int));
Xint Set_group_attributes ANSI((char *));
XDFALINKPTR Match_dfa ANSI((char *));
Xvoid Check_circle_dfa ANSI(());
Xvoid Add_nfa ANSI((char *));
Xchar * Exec_function ANSI((char *));
Xint If_root_path ANSI((char *));
Xint runargv ANSI((CELLPTR, int, int, int, int, char *));
Xvoid Clean_up_processes ANSI(());
Xint Wait_for_child ANSI((int, int));
Xtime_t seek_arch ANSI((char*, char*));
Xint touch_arch ANSI((char*, char*));
Xint _chdir ANSI((char *));
Xvoid Remove_prq ANSI((CELLPTR));
Xvoid Hook_std_writes ANSI((char *));
XX
X#endif
XSHAR_EOF
Xchmod 0640 msdos/ztcdos/public.h ||
Xecho 'restore of msdos/ztcdos/public.h failed'
XWc_c="`wc -c < 'msdos/ztcdos/public.h'`"
Xtest 5417 -eq "$Wc_c" ||
X echo 'msdos/ztcdos/public.h: original size 5417, current size' "$Wc_c"
Xfi
X# ============= msdos/ztcdos/startup.mk ==============
Xif test -f 'msdos/ztcdos/startup.mk' -a X"$1" != X"-c"; then
X echo 'x - skipping msdos/ztcdos/startup.mk (File already exists)'
Xelse
Xecho 'x - extracting msdos/ztcdos/startup.mk (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/startup.mk' &&
X# MSDOS DMAKE startup file. Customize to suit your needs.
X# Assumes MKS toolkit for the tool commands, and Zortech C. Change as req'd.
X# See the documentation for a description of internally defined macros.
X#
X# Disable warnings for macros redefined here that were given
X# on the command line.
X__.SILENT := $(.SILENT)
X.SILENT := yes
XX
X# Configuration parameters for DMAKE startup.mk file
X# Set these to NON-NULL if you wish to turn the parameter on.
X_HAVE_RCS := yes # yes => RCS is installed.
X_HAVE_SCCS := # yes => SCCS is installed.
XX
X# Applicable suffix definitions
XA := .lib # Libraries
XE := .exe # Executables
XF := .for # Fortran
XO := .obj # Objects
XP := .pas # Pascal
XS := .asm # Assembler sources
XV := # RCS suffix
XX
X# See if these are defined
XTMPDIR := $(ROOTDIR)/tmp
X.IMPORT .IGNORE : TMPDIR SHELL COMSPEC
XX
X# Recipe execution configurations
X# First set SHELL, If it is not defined, use COMSPEC, otherwise
X# it is assumed to be MKS Korn SHELL.
X.IF $(SHELL) == $(NULL)
X.IF $(COMSPEC) == $(NULL)
XX SHELL := $(ROOTDIR)/bin/sh$E
X.ELSE
XX SHELL := $(COMSPEC)
X.END
X.END
XGROUPSHELL := $(SHELL)
XX
X# Now set remaining arguments depending on which SHELL we
X# are going to use. COMSPEC (assumed to be command.com) or
X# MKS Korn Shell.
X.IF $(SHELL)==$(COMSPEC)
XX SHELLFLAGS := $(SWITCHAR)c
XX GROUPFLAGS := $(SHELLFLAGS)
XX SHELLMETAS := *"?<>
XX GROUPSUFFIX := .bat
XX DIRSEPSTR := \\
XX DIVFILE = $(TMPFILE:s,/,\)
X.ELSE
XX SHELLFLAGS := -c
XX GROUPFLAGS :=
XX SHELLMETAS := *"?<>|()&][$$\#`'
XX GROUPSUFFIX := .ksh
XX .MKSARGS := yes
XX DIVFILE = $(TMPFILE:s,/,${DIVSEP_shell_${USESHELL}})
XX DIVSEP_shell_yes := \\\
XX DIVSEP_shell_no := \\
X.END
XX
X# Standard C-language command names and flags
XX CC := ztc # C-compiler and flags
XX CFLAGS +=
XX
XX AS := masm # Assembler and flags
XX ASFLAGS +=
XX
XX LD = blink # Loader and flags
XX LDFLAGS +=
XX LDLIBS =
XX
X# Definition of $(MAKE) macro for recursive makes.
XX MAKE = $(MAKECMD) $(MFLAGS)
XX
X# Language and Parser generation Tools and their flags
XX YACC := yacc # standard yacc
XX YFLAGS +=
XX YTAB := ytab # yacc output files name stem.
XX
XX LEX := lex # standard lex
XX LFLAGS +=
XX LEXYY := lex_yy # lex output file
XX
X# Other Compilers, Tools and their flags
XX PC := any_pc # pascal compiler
XX RC := anyf77 # ratfor compiler
XX FC := anyf77 # fortran compiler
XX
XX CO := co # check out for RCS
XX COFLAGS += -q
XX
XX AR := ar # archiver
XX ARFLAGS+= ruv
XX
XX RM := rm # remove a file command
XX RMFLAGS +=
XX
X# Implicit generation rules for making inferences.
X# We don't provide .yr or .ye rules here. They're obsolete.
X# Rules for making *$O
XX %$O : %.c ; $(CC) $(CFLAGS) -c $<
XX %$O : %.cpp ; $(CC) $(CFLAGS) -c $<
XX %$O : %$P ; $(PC) $(PFLAGS) -c $<
XX %$O : %$S ; $(AS) $(ASFLAGS) $(<:s,/,\);
XX %$O : %.cl ; class -c $<
XX %$O : %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
XX
X# Executables
XX %$E : %$O ; $(CC) $(LDFLAGS) -o$@ $< $(LDLIBS)
XX
X# lex and yacc rules
XX %.c : %.y ; $(YACC) $(YFLAGS) $<; mv $(YTAB).c $@
XX %.c : %.l ; $(LEX) $(LFLAGS) $<; mv $(LEXYY).c $@
XX
X# RCS support
X.IF $(_HAVE_RCS)
XX % : $$(@:d)RCS$$(DIRSEPSTR)$$(@:f)$V;- $(CO) $(COFLAGS) $@
XX .NOINFER : $$(@:d)RCS$$(DIRSEPSTR)$$(@:f)$V
X.END
XX
X# SCCS support
X.IF $(_HAVE_SCCS)
XX % : s.% ; get $@
XX .NOINFER : s.%
X.END
XX
X# Recipe to make archive files.
X%$A :
X[
XX $(AR) $(ARFLAGS) $@ $?
XX $(RM) $(RMFLAGS) $?
X]
XX
X# DMAKE uses this recipe to remove intermediate targets
X.REMOVE :; $(RM) -f $<
XX
X# AUGMAKE extensions for SYSV compatibility
X@B = $(@:b)
X@D = $(@:d)
X@F = $(@:f)
X*B = $(*:b)
X*D = $(*:d)
X*F = $(*:f)
X<B = $(<:b)
X<D = $(<:d)
X<F = $(<:f)
X?B = $(?:b)
X?F = $(?:f)
X?D = $(?:d)
XX
X# Turn warnings back to previous setting.
X.SILENT := $(__.SILENT)
XX
X# Local init file if any, gets parsed before user makefile
X.INCLUDE .IGNORE: "_startup.mk"
XSHAR_EOF
Xchmod 0640 msdos/ztcdos/startup.mk ||
Xecho 'restore of msdos/ztcdos/startup.mk failed'
XWc_c="`wc -c < 'msdos/ztcdos/startup.mk'`"
Xtest 3861 -eq "$Wc_c" ||
X echo 'msdos/ztcdos/startup.mk: original size 3861, current size' "$Wc_c"
Xfi
X# ============= msdos/ztcdos/tempnam.c ==============
Xif test -f 'msdos/ztcdos/tempnam.c' -a X"$1" != X"-c"; then
X echo 'x - skipping msdos/ztcdos/tempnam.c (File already exists)'
Xelse
Xecho 'x - extracting msdos/ztcdos/tempnam.c (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'msdos/ztcdos/tempnam.c' &&
X/*LINTLIBRARY*/
X#include <stdio.h>
X#include <string.h>
X#include <stdlib.h>
X#include <dos.h>
XX
X#if defined(max)
X# undef max
X#endif
X#define max(A,B) (((A)<(B))?(B):(A))
XX
Xextern char *mktemp();
Xextern int access();
Xint _access();
XX
X/* Zortech C stdio.h doesn't define P_tmpdir, so let's do it here */
X/* Under DOS leave the default tmpdir pointing here! */
Xstatic char *P_tmpdir = "";
XX
Xchar *
Xtempnam(dir, prefix)
Xconst char *dir; /* use this directory please (if non-NULL) */
Xconst char *prefix; /* use this (if non-NULL) as filename prefix */
X{
XX static int count = 0;
XX register char *p, *q, *tmpdir;
XX int tl=0, dl=0, pl;
XX char buf[30];
XX
XX pl = strlen(P_tmpdir);
XX
XX if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
XX if( dir != NULL ) dl = strlen(dir);
XX
XX if( (p = malloc((unsigned)(max(max(dl,tl),pl)+13))) == NULL )
XX return(NULL);
XX
XX *p = '\0';
XX
XX if( (tl == 0) || (_access( strcpy(p, tmpdir), 0) != 0) )
XX if( (dl == 0) || (_access( strcpy(p, dir), 0) != 0) )
XX if( _access( strcpy(p, P_tmpdir), 0) != 0 )
XX if( !prefix )
XX prefix = "tp";
XX
XX if(prefix)
XX {
XX *(p+strlen(p)+2) = '\0';
XX (void)strncat(p, prefix, 2);
XX }
XX
XX sprintf( buf, "%08x", _psp );
XX buf[6]='\0';
XX (void)strcat(p, buf );
XX sprintf( buf, "%04d", count++ );
XX q=p+strlen(p)-6;
XX *q++ = buf[0]; *q++ = buf[1];
XX *q++ = buf[2]; *q++ = buf[3];
XX
XX if( (q = strrchr(p,'.')) != NULL ) *q = '\0';
XX
XX return(p);
X}
XX
XX
XX
X_access( name, flag )
Xchar *name;
Xint flag;
X{
XX char *p;
XX int r;
XX
XX if( name == NULL || !*name ) return(1); /* NULL dir means current dir */
XX r = access( name, flag );
XX p = name+strlen(name)-1;
XX if(*p != '/' && *p != '\\') strcat( p, "/" );
XX
XX return( r );
X}
XSHAR_EOF
Xchmod 0440 msdos/ztcdos/tempnam.c ||
Xecho 'restore of msdos/ztcdos/tempnam.c failed'
XWc_c="`wc -c < 'msdos/ztcdos/tempnam.c'`"
Xtest 1738 -eq "$Wc_c" ||
X echo 'msdos/ztcdos/tempnam.c: original size 1738, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/config.h ==============
Xif test ! -d 'unix'; then
X echo 'x - creating directory unix'
X mkdir 'unix'
Xfi
Xif test ! -d 'unix/coherent'; then
X echo 'x - creating directory unix/coherent'
X mkdir 'unix/coherent'
Xfi
Xif test -f 'unix/coherent/config.h' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/config.h (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/config.h (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/config.h' &&
X/*
X-- COHERENT config.h
X-- SYNOPSIS -- Configurarion include file.
X--
X-- DESCRIPTION
X-- There is one of these for each specific machine configuration.
X-- It can be used to further tweek the machine specific sources
X-- so that they compile.
X--
X-- AUTHOR
X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca
X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada
X--
X-- COPYRIGHT
X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved.
X--
X-- This program is free software; you can redistribute it and/or
X-- modify it under the terms of the GNU General Public License
X-- (version 1), as published by the Free Software Foundation, and
X-- found in the file 'LICENSE' included with this distribution.
X--
X-- This program is distributed in the hope that it will be useful,
X-- but WITHOUT ANY WARRANTY; without even the implied warrant of
X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X-- GNU General Public License for more details.
X--
X-- You should have received a copy of the GNU General Public License
X-- along with this program; if not, write to the Free Software
X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X--
X-- LOG
X-- $Log: config.h,v $
XX * Revision 1.1 91/06/24 11:09:20 dvadura
XX * dmake release Version 3.7
XX *
XX * Revision 1.1 91/05/06 15:28:20 dvadura
XX * dmake Release Version 3.7
XX *
X*/
XX
X/* define this for configurations that don't have the coreleft function
XX * so that the code compiles. To my knowledge coreleft exists only on
XX * Turbo C, but it is needed here since the function is used in many debug
XX * macros. */
X#define coreleft() 0L
XX
Xextern char *getcwd ();
XX
X/* Define setvbuf, SysV doesn't have one */
X#define setvbuf(fp, bp, type, len) setbuf( fp, NULL );
X#define tzset settz
XX
X/* We don't care about CONST */
X#define CONST
X#define void int
Xtypedef paddr_t off_t;
XX
X/* options. . . */
X#define ASCARCH 0
XSHAR_EOF
Xchmod 0444 unix/coherent/config.h ||
Xecho 'restore of unix/coherent/config.h failed'
XWc_c="`wc -c < 'unix/coherent/config.h'`"
Xtest 1940 -eq "$Wc_c" ||
X echo 'unix/coherent/config.h: original size 1940, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/config.mk ==============
Xif test -f 'unix/coherent/config.mk' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/config.mk (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/config.mk (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/config.mk' &&
X# This is the COHERENT configuration file for DMAKE
X# It simply modifies the values of SRC, and checks to see if
X# OSENVIRONMENT is defined. If so it includes the appropriate
X# config.mk file.
X#
X# It also sets the values of .SOURCE.c and .SOURCE.h to include the local
X# directory.
X#
Xosrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
XX
X# The following are required sources
XOSDSRC := vfprintf.c getcwd.c
X.IF $(OSDSRC)
XX SRC += $(OSDSRC)
XX .SETDIR=$(osrdir) : $(OSDSRC)
X.END
XX
X.SOURCE.h : $(osrdir)
XX
X# Local configuration modifications for CFLAGS, there's local SysV includes
X# too.
XCFLAGS += -I$(osrdir)
XX
X# See if we modify anything in the lower levels.
X.IF $(OSENVIRONMENT) != $(NULL)
XX .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
X.END
XSHAR_EOF
Xchmod 0644 unix/coherent/config.mk ||
Xecho 'restore of unix/coherent/config.mk failed'
XWc_c="`wc -c < 'unix/coherent/config.mk'`"
Xtest 765 -eq "$Wc_c" ||
X echo 'unix/coherent/config.mk: original size 765, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/getcwd.c ==============
Xif test -f 'unix/coherent/getcwd.c' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/getcwd.c (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/getcwd.c (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/getcwd.c' &&
X#if __STDC__
Xchar *getcwd(char *buffer, int length)
X#else
Xchar *getcwd (buffer, length)
Xchar *buffer;
Xint length;
X#endif
X{
XX extern char *getwd();
XX
XX char *dir;
XX dir = getwd();
XX if (dir)
XX {
XX strncpy(buffer,dir,length);
XX return buffer;
XX }
XX else
XX {
XX *buffer = 0;
XX return (char *) 0;
XX }
X}
XX
XSHAR_EOF
Xchmod 0444 unix/coherent/getcwd.c ||
Xecho 'restore of unix/coherent/getcwd.c failed'
XWc_c="`wc -c < 'unix/coherent/getcwd.c'`"
Xtest 306 -eq "$Wc_c" ||
X echo 'unix/coherent/getcwd.c: original size 306, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/make.sh ==============
Xif test -f 'unix/coherent/make.sh' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/make.sh (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/make.sh (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/make.sh' &&
Xmkdir objects
Xcc -c -I. -Iunix -Iunix/coherent -O infer.c
Xmv infer.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O make.c
Xmv make.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O stat.c
Xmv stat.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O expand.c
Xmv expand.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O dmstring.c
Xmv dmstring.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O hash.c
Xmv hash.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O dag.c
Xmv dag.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O dmake.c
Xmv dmake.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O path.c
Xmv path.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O imacs.c
Xmv imacs.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O sysintf.c
Xmv sysintf.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O parse.c
Xmv parse.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O getinp.c
Xmv getinp.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O quit.c
Xmv quit.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O state.c
Xmv state.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O basename.c
Xmv basename.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O dmdump.c
Xmv dmdump.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O macparse.c
Xmv macparse.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O rulparse.c
Xmv rulparse.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O percent.c
Xmv percent.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O function.c
Xmv function.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/arlib.c
Xmv arlib.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/dirbrk.c
Xmv dirbrk.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/rmprq.c
Xmv rmprq.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/ruletab.c
Xmv ruletab.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/runargv.c
Xmv runargv.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/coherent/vfprintf.c
Xmv vfprintf.o objects
Xcc -c -I. -Iunix -Iunix/coherent -O unix/coherent/getcwd.c
Xmv getcwd.o objects
Xcc -o dmake objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/dmstring.o objects/hash.o objects/dag.o objects/dmake.o objects/path.o objects/imacs.o objects/sysintf.o objects/parse.o objects/getinp.o objects/quit.o objects/state.o objects/basename.o objects/dmdump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/function.o objects/arlib.o objects/dirbrk.o objects/rmprq.o objects/ruletab.o objects/runargv.o objects/vfprintf.o objects/getcwd.o
Xcp unix/coherent/startup.mk startup.mk
XSHAR_EOF
Xchmod 0644 unix/coherent/make.sh ||
Xecho 'restore of unix/coherent/make.sh failed'
XWc_c="`wc -c < 'unix/coherent/make.sh'`"
Xtest 2405 -eq "$Wc_c" ||
X echo 'unix/coherent/make.sh: original size 2405, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/public.h ==============
Xif test -f 'unix/coherent/public.h' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/public.h (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/public.h (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/public.h' &&
X/* RCS -- $Header$
X-- WARNING -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
X--
X-- SYNOPSIS -- Local functions exported to be visible by others.
X--
X-- DESCRIPTION
X-- This file is generated by 'genpub'. Function declarations
X-- that appear in this file are extracted by 'genpub' from
X-- source files. Any function in the source file whose definition
X-- appears like:
X--
X-- PUBLIC return_type
X-- function( arg_list );
X-- type_expr1 arg1;
X-- ...
X--
X-- has its definition extracted and a line of the form:
X--
X-- return_type function ANSI((type_expr1,type_expr2,...));
X--
X-- entered into the output file.
X--
X-- AUTHOR
X-- Dennis Vadura, dvadura@watdragon.uwaterloo.ca
X-- CS DEPT, University of Waterloo, Waterloo, Ont., Canada
X--
X-- COPYRIGHT
X-- Copyright (c) 1990 by Dennis Vadura. All rights reserved.
X--
X-- This program is free software; you can redistribute it and/or
X-- modify it under the terms of the GNU General Public License
X-- (version 1), as published by the Free Software Foundation, and
X-- found in the file 'LICENSE' included with this distribution.
X--
X-- This program is distributed in the hope that it will be useful,
X-- but WITHOUT ANY WARRANTY; without even the implied warrant of
X-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X-- GNU General Public License for more details.
X--
X-- You should have received a copy of the GNU General Public License
X-- along with this program; if not, write to the Free Software
X-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X--
X-- LOG
X-- $Log$
X*/
XX
X#ifndef _DMAKE_PUBLIC_h
X#define _DMAKE_PUBLIC_h
XX
Xvoid Infer_recipe ANSI((CELLPTR, CELLPTR));
Xint Make_targets ANSI(());
Xint Exec_commands ANSI((CELLPTR));
Xvoid Pop_dir ANSI((int));
Xvoid Append_line ANSI((char *, int, FILE *, char *, int, int));
Xvoid Stat_target ANSI((CELLPTR, int));
Xchar * Expand ANSI((char *));
Xchar * Apply_edit ANSI((char *, char *, char *, int, int));
Xvoid Map_esc ANSI((char *));
Xchar* Apply_modifiers ANSI((int, char *));
Xchar* Tokenize ANSI((char *, char *));
Xchar * _strjoin ANSI((char *, char *, int, int));
Xchar * _stradd ANSI((char *, char *, int));
Xchar * _strapp ANSI((char *, char *));
Xchar * _strdup ANSI((char *));
Xchar * _strpbrk ANSI((char *, char *));
Xchar * _strspn ANSI((char *, char *));
Xchar * _strstr ANSI((char *, char *));
Xchar * _substr ANSI((char *, char *));
Xuint16 Hash ANSI((char *, uint32 *));
XHASHPTR Get_name ANSI((char *, HASHPTR *, int));
XHASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
XHASHPTR Def_macro ANSI((char *, char *, int));
XCELLPTR Def_cell ANSI((char *));
XLINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
Xvoid Clear_prerequisites ANSI((CELLPTR));
Xint Test_circle ANSI((CELLPTR, int));
XSTRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
Xt_attr Rcp_attribute ANSI((char *));
Xint main ANSI((int, char **));
XFILE * Openfile ANSI((char *, int, int));
XFILE * Closefile ANSI(());
XFILE * Search_file ANSI((char *, char **));
Xchar * Filename ANSI(());
Xvoid No_ram ANSI(());
Xint Usage ANSI((int));
Xint Version ANSI(());
Xchar * Get_suffix ANSI((char *));
Xchar * Build_path ANSI((char *, char *));
Xvoid Make_rules ANSI(());
Xvoid Create_macro_vars ANSI(());
Xtime_t Do_stat ANSI((char *, char *, char **));
Xint Do_touch ANSI((char *, char *, char **));
Xvoid Void_lib_cache ANSI((char *, char *));
Xtime_t Do_time ANSI(());
Xint Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
Xchar ** Pack_argv ANSI((int, int, char *));
Xchar * Read_env_string ANSI((char *));
Xint Write_env_string ANSI((char *, char *));
Xvoid ReadEnvironment ANSI(());
Xvoid Catch_signals ANSI((void (*)()));
Xvoid Clear_signals ANSI(());
Xvoid Prolog ANSI((int, char* []));
Xvoid Epilog ANSI((int));
Xchar * Get_current_dir ANSI(());
Xint Set_dir ANSI((char*));
Xchar Get_switch_char ANSI(());
XFILE* Get_temp ANSI((char **, char *, int));
XFILE * Start_temp ANSI((char *, CELLPTR, char **));
Xvoid Open_temp_error ANSI((char *, char *));
Xvoid Link_temp ANSI((CELLPTR, FILE *, char *));
Xvoid Close_temp ANSI((CELLPTR, FILE *));
Xvoid Unlink_temp_files ANSI((CELLPTR));
Xvoid Handle_result ANSI((int, int, int, CELLPTR));
Xvoid Update_time_stamp ANSI((CELLPTR));
Xvoid Parse ANSI((FILE *));
Xint Get_line ANSI((char *, FILE *));
Xchar * Do_comment ANSI((char *, char **, int));
Xchar * Get_token ANSI((TKSTRPTR, char *, int));
Xvoid Quit ANSI(());
Xvoid Read_state ANSI(());
Xvoid Write_state ANSI(());
Xint Check_state ANSI((CELLPTR, STRINGPTR *, int));
Xchar* basename ANSI((char *));
Xvoid Dump ANSI(());
Xvoid Dump_recipe ANSI((STRINGPTR));
Xint Parse_macro ANSI((char *, int));
Xint Macro_op ANSI((char *));
Xint Parse_rule_def ANSI((int *));
Xint Rule_op ANSI((char *));
Xvoid Add_recipe_to_list ANSI((char *, int, int));
Xvoid Bind_rules_to_targets ANSI((int));
Xint Set_group_attributes ANSI((char *));
XDFALINKPTR Match_dfa ANSI((char *));
Xvoid Check_circle_dfa ANSI(());
Xvoid Add_nfa ANSI((char *));
Xchar * Exec_function ANSI((char *));
Xtime_t seek_arch ANSI((char *, char *));
Xint If_root_path ANSI((char *));
Xvoid Remove_prq ANSI((CELLPTR));
Xint runargv ANSI((CELLPTR, int, int, int, int, char *));
Xint Wait_for_child ANSI((int, int));
Xvoid Clean_up_processes ANSI(());
XX
X#endif
XSHAR_EOF
Xchmod 0640 unix/coherent/public.h ||
Xecho 'restore of unix/coherent/public.h failed'
XWc_c="`wc -c < 'unix/coherent/public.h'`"
Xtest 5318 -eq "$Wc_c" ||
X echo 'unix/coherent/public.h: original size 5318, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/startup.mk ==============
Xif test -f 'unix/coherent/startup.mk' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/startup.mk (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/startup.mk (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/startup.mk' &&
X# Generic UNIX DMAKE startup file. Customize to suit your needs.
X# Should work for both SYSV, and BSD 4.3
X# See the documentation for a description of internally defined macros.
X#
X# Disable warnings for macros redefined here that were given
X# on the command line.
X__.SILENT := $(.SILENT)
X.SILENT := yes
XX
X# Configuration parameters for DMAKE startup.mk file
X# Set these to NON-NULL if you wish to turn the parameter on.
X_HAVE_RCS := yes # yes => RCS is installed.
X_HAVE_SCCS := yes # yes => SCCS is installed.
XX
X# Applicable suffix definitions
XA := .a # Libraries
XE := # Executables
XF := .f # Fortran
XO := .o # Objects
XP := .p # Pascal
XS := .s # Assembler sources
XV := ,v # RCS suffix
XX
X# Recipe execution configurations
XSHELL := /bin/sh
XSHELLFLAGS := -ce
XGROUPSHELL := $(SHELL)
XGROUPFLAGS :=
XSHELLMETAS := |();&<>?*][$$:\\#`'"
XGROUPSUFFIX :=
XDIVFILE = $(TMPFILE)
XX
X# Standard C-language command names and flags
XX CPP := /lib/cpp # C-preprocessor
XX CC := cc # C-compiler and flags
XX CFLAGS +=
XX
XX AS := as # Assembler and flags
XX ASFLAGS +=
XX
XX LD = $(CC) # Loader and flags
XX LDFLAGS +=
XX LDLIBS =
XX
X# Definition of $(MAKE) macro for recursive makes.
XX MAKE = $(MAKECMD) $(MFLAGS)
XX
X# Definition of Print command for this system.
XX PRINT = lpr
XX
X# Language and Parser generation Tools and their flags
XX YACC := yacc # standard yacc
XX YFLAGS +=
XX YTAB := y.tab # yacc output files name stem.
XX
XX LEX := lex # standard lex
XX LFLAGS +=
XX LEXYY := lex.yy # lex output file
XX
X# Other Compilers, Tools and their flags
XX PC := pc # pascal compiler
XX RC := f77 # ratfor compiler
XX FC := f77 # fortran compiler
XX
XX CO := co # check out for RCS
XX COFLAGS += -q
XX
XX AR := ar # archiver
XX ARFLAGS+= ruv
XX
XX RM := /bin/rm # remove a file command
XX RMFLAGS +=
XX
X# Implicit generation rules for making inferences.
X# We don't provide .yr or .ye rules here. They're obsolete.
X# Rules for making *$O
XX %$O : %.c ; $(CC) $(CFLAGS) -c $<
XX %$O : %$P ; $(PC) $(PFLAGS) -c $<
XX %$O : %$S ; $(AS) $(ASFLAGS) $<
XX %$O : %.cl ; class -c $<
XX %$O : %.e %.r %.F %$F
XX $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
XX
X# Executables
XX %$E : %$O ; $(LD) $(LDFLAGS) -o $@ $< $(LDLIBES)
XX
X# lex and yacc rules
XX %.c : %.y ; $(YACC) $(YFLAGS) $<; mv $(YTAB).c $@
XX %.c : %.l ; $(LEX) $(LFLAGS) $<; mv $(LEXYY).c $@
XX
X# This rule tells how to make *.out from it's immediate list of prerequisites
X# UNIX only.
XX %.out :; $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
XX
X# RCS support
X.IF $(_HAVE_RCS)
XX % : %$V $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
XX .NOINFER : %$V $$(@:d)RCS/$$(@:f)$V
X.END
XX
X# SCCS support
X.IF $(_HAVE_SCCS)
XX % : s.% ; get $@
XX .NOINFER : s.%
X.END
XX
X# Recipe to make archive files.
X%$A :
X[
XX $(AR) $(ARFLAGS) $@ $?
XX $(RM) $(RMFLAGS) $?
XX ranlib $@
X]
XX
X# DMAKE uses this recipe to remove intermediate targets
X.REMOVE :; $(RM) -f $<
XX
X# AUGMAKE extensions for SYSV compatibility
X@B = $(@:b)
X@D = $(@:d)
X@F = $(@:f)
X*B = $(*:b)
X*D = $(*:d)
X*F = $(*:f)
X<B = $(<:b)
X<D = $(<:d)
X<F = $(<:f)
X?B = $(?:b)
X?F = $(?:f)
X?D = $(?:d)
XX
X# Turn warnings back to previous setting.
X.SILENT := $(__.SILENT)
XX
X# Local startup file if any
X.INCLUDE .IGNORE: "_startup.mk"
XSHAR_EOF
Xchmod 0644 unix/coherent/startup.mk ||
Xecho 'restore of unix/coherent/startup.mk failed'
XWc_c="`wc -c < 'unix/coherent/startup.mk'`"
Xtest 3221 -eq "$Wc_c" ||
X echo 'unix/coherent/startup.mk: original size 3221, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/stdarg.h ==============
Xif test -f 'unix/coherent/stdarg.h' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/stdarg.h (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/stdarg.h (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/stdarg.h' &&
X/*
XX * stdarg.h
XX *
XX * defines ANSI style macros for accessing arguments of a function which takes
XX * a variable number of arguments
XX *
XX */
XX
X#if !defined(__STDARG_H__)
X#define __STDARG_H__
XX
X#if !defined(_VA_LIST_) && !defined(_VA_LIST)
X#define _VA_LIST_
X#define _VA_LIST
Xtypedef char *va_list;
X#endif
XX
X#define va_dcl int va_alist
X#define va_start(ap,v) ap = (va_list)&va_alist
X#define va_arg(ap,t) ((t*)(ap += sizeof(t)))[-1]
X#define va_end(ap) ap = NULL
X#endif
XSHAR_EOF
Xchmod 0444 unix/coherent/stdarg.h ||
Xecho 'restore of unix/coherent/stdarg.h failed'
XWc_c="`wc -c < 'unix/coherent/stdarg.h'`"
Xtest 469 -eq "$Wc_c" ||
X echo 'unix/coherent/stdarg.h: original size 469, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/stdlib.h ==============
Xif test -f 'unix/coherent/stdlib.h' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/stdlib.h (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/stdlib.h (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/stdlib.h' &&
X#ifndef _STDLIB_INCLUDED_
X#define _STDLIB_INCLUDED_
XX
Xextern /*GOTO*/ _exit();
Xextern /*GOTO*/ exit();
Xextern /*GOTO*/ abort();
Xextern int system();
Xextern char *getenv();
Xextern char *calloc();
Xextern char *malloc();
Xextern char *realloc();
Xextern free();
Xextern int errno;
XX
X#ifndef EIO
X# include <errno.h>
X#endif
XX
X#endif /* _STDLIB_INCLUDED_ */
XSHAR_EOF
Xchmod 0444 unix/coherent/stdlib.h ||
Xecho 'restore of unix/coherent/stdlib.h failed'
XWc_c="`wc -c < 'unix/coherent/stdlib.h'`"
Xtest 346 -eq "$Wc_c" ||
X echo 'unix/coherent/stdlib.h: original size 346, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/time.h ==============
Xif test -f 'unix/coherent/time.h' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/time.h (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/time.h (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/time.h' &&
X/*
X** Berkeley get this wrong!
X*/
X#ifndef TIME_h
X#define TIME_h
XX
Xtypedef long time_t; /* this is the thing we use */
XX
X#endif TIME_h
XX
XSHAR_EOF
Xchmod 0444 unix/coherent/time.h ||
Xecho 'restore of unix/coherent/time.h failed'
XWc_c="`wc -c < 'unix/coherent/time.h'`"
Xtest 133 -eq "$Wc_c" ||
X echo 'unix/coherent/time.h: original size 133, current size' "$Wc_c"
Xfi
X# ============= unix/coherent/vfprintf.c ==============
Xif test -f 'unix/coherent/vfprintf.c' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/coherent/vfprintf.c (File already exists)'
Xelse
Xecho 'x - extracting unix/coherent/vfprintf.c (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/coherent/vfprintf.c' &&
X/* Portable vfprintf and vprintf by Robert A. Larson <blarson@skat.usc.edu> */
XX
X/* Copyright 1989 Robert A. Larson.
XX * Distribution in any form is allowed as long as the author
XX * retains credit, changes are noted by their author and the
XX * copyright message remains intact. This program comes as-is
XX * with no warentee of fitness for any purpouse.
XX *
XX * Thanks to Doug Gwen, Chris Torek, and others who helped clarify
XX * the ansi printf specs.
XX *
XX * Please send any bug fixes and improvments to blarson@skat.usc.edu .
XX * The use of goto is NOT a bug.
XX */
XX
X/* Feb 9, 1989 blarson First usenet release */
XX
X/* This code implements the vfprintf function, without relying on
XX * the existance of _doprint or other system specific code.
XX *
XX * Define NOVOID if void * is not a supported type.
XX *
XX * Two compile options are available for efficency:
XX * INTSPRINTF should be defined if sprintf is int and returns
XX * the number of chacters formated.
XX * LONGINT should be defined if sizeof(long) == sizeof(int)
XX *
XX * They only make the code smaller and faster, they need not be
XX * defined.
XX *
XX * UNSIGNEDSPECIAL should be defined if unsigned is treated differently
XX * than int in argument passing. If this is definded, and LONGINT is not,
XX * the compiler must support the type unsingned long.
XX *
XX * Most quirks and bugs of the available fprintf fuction are duplicated,
XX * however * in the width and precision fields will work correctly
XX * even if fprintf does not support this. The %n format and the return
XX * count will only work if fprintf returns the number of characters
XX * formatted.
XX *
XX * Bad format strings, or those with very long width and precision
XX * fields (including expanded * fields) will cause undesired results.
XX */
XX
X#ifdef OSK /* os9/68k can take advantage of both */
X#define INTSPRINTF
X#define LONGINT
X#endif
X#define NOVOID 1
XX
X/* This must be a typedef not a #define! */
X#ifdef NOVOID
Xtypedef char *pointer;
X#else
Xtypedef void *pointer;
X#endif
XX
X#include <stdio.h>
XX
X#ifdef INTSPRINTF
X#define Sprintf(string,format,arg) (sprintf((string),(format),(arg)))
X#else
X#define Sprintf(string,format,arg) (\
XX sprintf((string),(format),(arg)),\
XX strlen(string)\
X)
X#endif
XX
X#include <stdarg.h>
XX
Xtypedef int *intp;
XX
Xint vfprintf(dest, format, args)
XFILE *dest;
Xregister char *format;
Xva_list args;
X{
XX register char c;
XX register char *tp;
XX register int count = 0;
XX char tempfmt[64];
X#ifndef LONGINT
XX int longflag;
X#endif
XX
XX tempfmt[0] = '%';
XX while(c = *format++) {
XX if(c=='%') {
XX tp = &tempfmt[1];
X#ifndef LONGINT
XX longflag = 0;
X#endif
Xcontinue_format:
XX switch(c = *format++) {
XX case 's':
XX *tp++ = c;
XX *tp = '\0';
XX count += fprintf(dest, tempfmt, va_arg(args, char *));
XX break;
XX case 'u':
XX case 'x':
XX case 'o':
XX case 'X':
X#ifdef UNSIGNEDSPECIAL
XX *tp++ = c;
XX *tp = '\0';
X#ifndef LONGINT
XX if(longflag)
XX count += fprintf(dest, tempfmt, va_arg(args, unsigned long));
XX else
X#endif
XX count += fprintf(dest, tempfmt, va_arg(args, unsigned));
XX break;
X#endif
XX case 'd':
XX case 'c':
XX case 'i':
XX *tp++ = c;
XX *tp = '\0';
X#ifndef LONGINT
XX if(longflag)
XX count += fprintf(dest, tempfmt, va_arg(args, long));
XX else
X#endif
XX count += fprintf(dest, tempfmt, va_arg(args, int));
XX break;
XX case 'f':
XX case 'e':
XX case 'E':
XX case 'g':
XX case 'G':
XX *tp++ = c;
XX *tp = '\0';
XX count += fprintf(dest, tempfmt, va_arg(args, double));
XX break;
XX case 'p':
XX *tp++ = c;
XX *tp = '\0';
XX count += fprintf(dest, tempfmt, va_arg(args, pointer));
XX break;
XX case '-':
XX case '+':
XX case '0':
XX case '1':
XX case '2':
XX case '3':
XX case '4':
XX case '5':
XX case '6':
XX case '7':
XX case '8':
XX case '9':
XX case '.':
XX case ' ':
XX case '#':
XX case 'h':
XX *tp++ = c;
XX goto continue_format;
XX case 'l':
X#ifndef LONGINT
XX longflag = 1;
XX *tp++ = c;
X#endif
XX goto continue_format;
XX case '*':
XX tp += Sprintf(tp, "%d", va_arg(args, int));
XX goto continue_format;
XX case 'n':
XX *va_arg(args, intp) = count;
XX break;
XX case '%':
XX default:
XX putc(c, dest);
XX count++;
XX break;
XX }
XX } else {
XX putc(c, dest);
XX count++;
XX }
XX }
XX return count;
X}
XX
Xvprintf(format, args)
Xchar *format;
Xva_list args;
X{
XX return vfprintf(stdout, format, args);
X}
XSHAR_EOF
Xchmod 0444 unix/coherent/vfprintf.c ||
Xecho 'restore of unix/coherent/vfprintf.c failed'
XWc_c="`wc -c < 'unix/coherent/vfprintf.c'`"
Xtest 4312 -eq "$Wc_c" ||
X echo 'unix/coherent/vfprintf.c: original size 4312, current size' "$Wc_c"
Xfi
X# ============= unix/sysvr3/pwd/config.mk ==============
Xif test ! -d 'unix/sysvr3'; then
X echo 'x - creating directory unix/sysvr3'
X mkdir 'unix/sysvr3'
Xfi
Xif test ! -d 'unix/sysvr3/pwd'; then
X echo 'x - creating directory unix/sysvr3/pwd'
X mkdir 'unix/sysvr3/pwd'
Xfi
Xif test -f 'unix/sysvr3/pwd/config.mk' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/sysvr3/pwd/config.mk (File already exists)'
Xelse
Xecho 'x - extracting unix/sysvr3/pwd/config.mk (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/config.mk' &&
X# This is the Sys VR3 PWD configuration file. It configures SysvR3 unix
X# versions of dmake to use a provided version of getcwd rather than the
X# standard library version that uses popen to capture the output of pwd.
X#
XX
Xosredir := $(OS)$(DIRSEPSTR)$(OSRELEASE)$(DIRSEPSTR)$(OSENVIRONMENT)
XX
X# The following are required sources
XOSRESRC := getcwd.c
XX
X.IF $(OSRESRC)
XX SRC += $(OSRESRC)
XX .SETDIR=$(osredir) : $(OSRESRC)
X.END
XX
X.SOURCE.h : $(osredir)
XX
X# Local configuration modifications for CFLAGS, there's local SysV includes
X# too.
XCFLAGS += -I$(osredir)
XSHAR_EOF
Xchmod 0640 unix/sysvr3/pwd/config.mk ||
Xecho 'restore of unix/sysvr3/pwd/config.mk failed'
XWc_c="`wc -c < 'unix/sysvr3/pwd/config.mk'`"
Xtest 559 -eq "$Wc_c" ||
X echo 'unix/sysvr3/pwd/config.mk: original size 559, current size' "$Wc_c"
Xfi
X# ============= unix/sysvr3/pwd/getcwd.c ==============
Xif test -f 'unix/sysvr3/pwd/getcwd.c' -a X"$1" != X"-c"; then
X echo 'x - skipping unix/sysvr3/pwd/getcwd.c (File already exists)'
Xelse
Xecho 'x - extracting unix/sysvr3/pwd/getcwd.c (Text)'
Xsed 's/^X//' << 'SHAR_EOF' > 'unix/sysvr3/pwd/getcwd.c' &&
X/*
XX getcwd -- get pathname of current working directory
XX
XX public-domain implementation
XX
XX last edit: 03-Nov-1990 Gwyn@BRL.MIL
XX
XX complies with the following standards:
XX IEEE Std 1003.1-1988
XX SVID Issue 3
XX X/Open Portability Guide Issue 2 (when "XPG2" is defined)
XX X/Open Portability Guide Issue 3
XX
XX This implementation of getcwd() can be used to replace the UNIX
XX System V library routine (which uses popen() to capture the output of
XX the "pwd" command). Once that is done, "pwd" can be reimplemented as
XX just puts(getcwd((char*)0,0)), assuming "XPG2" is defined below.
XX
XX This implementation depends on every directory having entries for
XX "." and "..". It also depends on the internals of the <dirent.h>
XX data structures to some degree.
SHAR_EOF
true || echo 'restore of dm37p2 failed'
fi
echo 'End of part 8'
echo 'File dm37p2 is continued in part 9'
echo 9 > _shar_seq_.tmp
exit 0
exit 0 # Just in case...
--
Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
Sterling Software, IMD UUCP: uunet!sparky!kent
Phone: (402) 291-8300 FAX: (402) 291-4362
Please send comp.sources.misc-related mail to kent@uunet.uu.net.