summaryrefslogtreecommitdiff
path: root/dmake/unix/bsd43
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/unix/bsd43')
-rw-r--r--dmake/unix/bsd43/config.mk27
-rw-r--r--dmake/unix/bsd43/dirent.h28
-rw-r--r--dmake/unix/bsd43/limits.h32
-rw-r--r--dmake/unix/bsd43/make.sh69
-rw-r--r--dmake/unix/bsd43/public.h167
-rw-r--r--dmake/unix/bsd43/putenv.c78
-rw-r--r--dmake/unix/bsd43/setvbuf.c40
-rw-r--r--dmake/unix/bsd43/stdlib.h44
-rw-r--r--dmake/unix/bsd43/string.h43
-rw-r--r--dmake/unix/bsd43/template.mk7
-rw-r--r--dmake/unix/bsd43/tempnam.c103
-rw-r--r--dmake/unix/bsd43/utime.c70
-rw-r--r--dmake/unix/bsd43/uw/config.mk17
-rw-r--r--dmake/unix/bsd43/uw/make.sh69
-rw-r--r--dmake/unix/bsd43/uw/public.h167
-rw-r--r--dmake/unix/bsd43/uw/template.mk7
-rw-r--r--dmake/unix/bsd43/vf/config.mk11
-rw-r--r--dmake/unix/bsd43/vf/ctype.h51
-rw-r--r--dmake/unix/bsd43/vf/make.sh73
-rw-r--r--dmake/unix/bsd43/vf/memcpy.c36
-rw-r--r--dmake/unix/bsd43/vf/public.h167
-rw-r--r--dmake/unix/bsd43/vf/template.mk7
-rw-r--r--dmake/unix/bsd43/vf/vfprintf.c48
23 files changed, 1361 insertions, 0 deletions
diff --git a/dmake/unix/bsd43/config.mk b/dmake/unix/bsd43/config.mk
new file mode 100644
index 000000000000..e99937342e68
--- /dev/null
+++ b/dmake/unix/bsd43/config.mk
@@ -0,0 +1,27 @@
+# This is the BSD 4.3 UNIX configuration file for DMAKE
+# It simply modifies the values of SRC, and checks to see if
+# OSENVIRONMENT is defined. If so it includes the appropriate
+# config.mk file.
+#
+# It also sets the values of .SOURCE.c and .SOURCE.h to include the local
+# directory.
+#
+osrdir := $(OS)$(DIRSEPSTR)$(OSRELEASE)
+
+# The following sources are required for BSD4.3
+OSDSRC := putenv.c tempnam.c utime.c setvbuf.c
+.IF $(OSDSRC)
+ SRC += $(OSDSRC)
+ .SETDIR=$(osrdir) : $(OSDSRC)
+.END
+
+.SOURCE.h : $(osrdir)
+
+# Local configuration modifications for CFLAGS, there's local BSD includes
+# too.
+CFLAGS += -I$(osrdir)
+
+# See if we modify anything in the lower levels.
+.IF $(OSENVIRONMENT) != $(NULL)
+ .INCLUDE .IGNORE : $(osrdir)$(DIRSEPSTR)$(OSENVIRONMENT)$(DIRSEPSTR)config.mk
+.END
diff --git a/dmake/unix/bsd43/dirent.h b/dmake/unix/bsd43/dirent.h
new file mode 100644
index 000000000000..82f910ed3a7d
--- /dev/null
+++ b/dmake/unix/bsd43/dirent.h
@@ -0,0 +1,28 @@
+/* RCS $Id: dirent.h,v 1.1.1.1 2000-09-22 15:33:33 hr Exp $
+--
+-- SYNOPSIS
+-- dirent
+--
+-- DESCRIPTION
+-- Deal with sysV'ish dirent.h on BSD4.3 systems, which have the stuff
+-- in sys/dir.h
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#include <sys/dir.h>
+#define dirent direct
diff --git a/dmake/unix/bsd43/limits.h b/dmake/unix/bsd43/limits.h
new file mode 100644
index 000000000000..a08805d00d66
--- /dev/null
+++ b/dmake/unix/bsd43/limits.h
@@ -0,0 +1,32 @@
+/* RCS $Id: limits.h,v 1.1.1.1 2000-09-22 15:33:33 hr Exp $
+--
+-- SYNOPSIS
+-- limits
+--
+-- DESCRIPTION
+-- Compensate for systems that don't have a limits.h header file.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#include <sys/types.h>
+#include <sys/dirent.h>
+#include <sys/param.h>
+
+#define NAME_MAX MAXNAMLEN
+#define PATH_MAX MAXPATHLEN
+#define CHILD_MAX 20
diff --git a/dmake/unix/bsd43/make.sh b/dmake/unix/bsd43/make.sh
new file mode 100644
index 000000000000..e45d01952f46
--- /dev/null
+++ b/dmake/unix/bsd43/make.sh
@@ -0,0 +1,69 @@
+mkdir objects
+cc -c -I. -Iunix -Iunix/bsd43 -O infer.c
+mv infer.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O make.c
+mv make.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O stat.c
+mv stat.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O expand.c
+mv expand.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O dmstring.c
+mv dmstring.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O hash.c
+mv hash.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O dag.c
+mv dag.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O dmake.c
+mv dmake.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O path.c
+mv path.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O imacs.c
+mv imacs.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O sysintf.c
+mv sysintf.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O parse.c
+mv parse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O getinp.c
+mv getinp.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O quit.c
+mv quit.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O state.c
+mv state.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O dmdump.c
+mv dmdump.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O macparse.c
+mv macparse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O rulparse.c
+mv rulparse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O percent.c
+mv percent.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O function.c
+mv function.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/arlib.c
+mv arlib.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/dirbrk.c
+mv dirbrk.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/rmprq.c
+mv rmprq.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/ruletab.c
+mv ruletab.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/runargv.c
+mv runargv.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/dcache.c
+mv dcache.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/bsd43/putenv.c
+mv putenv.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/bsd43/tempnam.c
+mv tempnam.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/bsd43/utime.c
+mv utime.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -O unix/bsd43/setvbuf.c
+mv setvbuf.o objects
+cc -O -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/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/dcache.o objects/putenv.o objects/tempnam.o objects/utime.o objects/setvbuf.o
+cp unix/bsd43/template.mk startup/config.mk
diff --git a/dmake/unix/bsd43/public.h b/dmake/unix/bsd43/public.h
new file mode 100644
index 000000000000..1a08478125b6
--- /dev/null
+++ b/dmake/unix/bsd43/public.h
@@ -0,0 +1,167 @@
+/* RCS $Id: public.h,v 1.9 2007-10-15 15:54:02 ihi Exp $
+-- WARNING -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
+--
+--
+-- SYNOPSIS
+-- Local functions exported to be visible by others.
+--
+-- DESCRIPTION
+-- This file is generated by 'genpub'. Function declarations
+-- that appear in this file are extracted by 'genpub' from
+-- source files. Any function in the source file whose definition
+-- appears like:
+--
+-- PUBLIC return_type
+-- function( arg_list );
+-- type_expr1 arg1;
+-- ...
+--
+-- has its definition extracted and a line of the form:
+--
+-- return_type function ANSI((type_expr1,type_expr2,...));
+--
+-- entered into the output file.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#ifndef _DMAKE_PUBLIC_h
+#define _DMAKE_PUBLIC_h
+
+#ifdef EXTERN
+#undef EXTERN
+#endif
+#if defined(DEFINE_DMAKE_VARIABLES)
+#define EXTERN
+#else
+#define EXTERN extern
+#endif
+
+/***** genpub: Begin list of generated function headers */
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char **, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char **));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char **));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+
+#endif
diff --git a/dmake/unix/bsd43/putenv.c b/dmake/unix/bsd43/putenv.c
new file mode 100644
index 000000000000..d0ed998158e0
--- /dev/null
+++ b/dmake/unix/bsd43/putenv.c
@@ -0,0 +1,78 @@
+/* RCS $Id: putenv.c,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- My own putenv for BSD like systems.
+--
+-- DESCRIPTION
+-- This originally came from MKS, but I rewrote it to fix a bug with
+-- replacing existing strings, probably never happened but the code
+-- was wrong nonetheless.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#include <stdio.h>
+#include <string.h>
+
+int
+putenv( str )/*
+===============
+ Take a string of the form NAME=value and stick it into the environment.
+ We do this by allocating a new set of pointers if we have to add a new
+ string and by replacing an existing pointer if the value replaces the value
+ of an existing string. */
+char *str;
+{
+ extern char **environ; /* The current environment. */
+ static char **ourenv = NULL; /* A new environment */
+ register char **p;
+ register char *q;
+ int size;
+
+ /* First search the current environment and see if we can replace a
+ * string. */
+ for( p=environ; *p; p++ ) {
+ register char *s = str;
+
+ for( q = *p; *q && *s && *s == *q; q++, s++ )
+ if( *s == '=' ) {
+ *p = str;
+ return(0); /* replaced it so go away */
+ }
+ }
+
+ /* Ok, can't replace a string so need to grow the environment. */
+ size = p - environ + 2; /* size of new environment */
+ /* size of old is size-1 */
+
+ /* It's the first time, so allocate a new environment since we don't know
+ * where the old one is comming from. */
+ if( ourenv == NULL ) {
+ if( (ourenv = (char **) malloc( sizeof(char *)*size )) == NULL )
+ return(1);
+
+ memcpy( (char *)ourenv, (char *)environ, (size-2)*sizeof(char *) );
+ }
+ else if( (ourenv = (char **)realloc( ourenv, size*sizeof(char *))) == NULL )
+ return(1);
+
+ ourenv[--size] = NULL;
+ ourenv[--size] = str;
+
+ environ = ourenv;
+ return(0);
+}
diff --git a/dmake/unix/bsd43/setvbuf.c b/dmake/unix/bsd43/setvbuf.c
new file mode 100644
index 000000000000..ce5d193fbe89
--- /dev/null
+++ b/dmake/unix/bsd43/setvbuf.c
@@ -0,0 +1,40 @@
+/* RCS $Id: setvbuf.c,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- Setvbuf for BSD
+--
+-- DESCRIPTION
+-- A sysv call, standard BSD doesn't have this.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#include <stdio.h>
+
+setvbuf(fp, bp, type, len_unused)
+FILE* fp;
+char* bp;
+int type;
+int len_unused;
+{
+ switch (type) {
+ case _IOLBF: setlinebuf(fp); return;
+ case _IONBF: setbuf(fp, NULL); return;
+ default: setbuf(fp, bp); return;
+ }
+}
+
diff --git a/dmake/unix/bsd43/stdlib.h b/dmake/unix/bsd43/stdlib.h
new file mode 100644
index 000000000000..82ab9627cd65
--- /dev/null
+++ b/dmake/unix/bsd43/stdlib.h
@@ -0,0 +1,44 @@
+/* RCS $Id: stdlib.h,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- stdlib interface
+--
+-- DESCRIPTION
+-- Specially needed pieces of interface to the standard C lib.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#ifndef _STDLIB_INCLUDED_
+#define _STDLIB_INCLUDED_
+
+extern /*GOTO*/ _exit();
+extern /*GOTO*/ exit();
+extern /*GOTO*/ abort();
+extern int system();
+extern char *getenv();
+extern char *calloc();
+extern char *malloc();
+extern char *realloc();
+extern free();
+extern int errno;
+
+#ifndef EIO
+# include <errno.h>
+#endif
+
+#endif /* _STDLIB_INCLUDED_ */
diff --git a/dmake/unix/bsd43/string.h b/dmake/unix/bsd43/string.h
new file mode 100644
index 000000000000..862c17960a0b
--- /dev/null
+++ b/dmake/unix/bsd43/string.h
@@ -0,0 +1,43 @@
+/* RCS $Id: string.h,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- string function headers
+--
+-- DESCRIPTION
+-- Supply correct definitions for certain string functions.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+#ifndef STRING_h
+#define STRING_h
+
+/*
+** BSD does this wrong
+*/
+#include <strings.h>
+
+#include "stdmacs.h"
+extern char* strpbrk ANSI((char* src, char* any));
+
+#ifndef DBUG
+#define strchr(str,c) index(str,c)
+#define strrchr(str,c) rindex(str,c)
+#else
+char *strchr ANSI((char*, char));
+char *strrchr ANSI((char*, char));
+#endif
+#endif
diff --git a/dmake/unix/bsd43/template.mk b/dmake/unix/bsd43/template.mk
new file mode 100644
index 000000000000..14a7cab8ed4b
--- /dev/null
+++ b/dmake/unix/bsd43/template.mk
@@ -0,0 +1,7 @@
+# ** Default build configuration for dmake.
+# ** DO NOT PLACE LOCAL DEFINITIONS INTO THIS FILE IT IS AUTO GENERATED
+# ** USE "startup/local.mk" for those.
+
+ OS *:= unix
+ OSRELEASE *:= bsd43
+ OSENVIRONMENT *:=
diff --git a/dmake/unix/bsd43/tempnam.c b/dmake/unix/bsd43/tempnam.c
new file mode 100644
index 000000000000..12512ec9cb8b
--- /dev/null
+++ b/dmake/unix/bsd43/tempnam.c
@@ -0,0 +1,103 @@
+/* RCS $Id: tempnam.c,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- tempnam
+--
+-- DESCRIPTION
+-- temp file name generation routines.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+/*LINTLIBRARY*/
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define max(A,B) (((A)<(B))?(B):(A))
+
+extern char *mktemp();
+extern int access();
+
+static char *cpdir();
+static char seed[4]="AAA";
+
+/* BSD stdio.h doesn't define P_tmpdir, so let's do it here */
+#ifndef P_tmpdir
+static char *P_tmpdir = "/tmp";
+#endif
+
+char *
+tempnam(dir, prefix)
+char *dir; /* use this directory please (if non-NULL) */
+char *prefix; /* use this (if non-NULL) as filename prefix */
+{
+ register char *p, *q, *tmpdir;
+ int tl=0, dl=0, pl;
+
+ pl = strlen(P_tmpdir);
+
+ if( (tmpdir = getenv("TMPDIR")) != NULL ) tl = strlen(tmpdir);
+ if( dir != NULL ) dl = strlen(dir);
+
+ if( (p = malloc((unsigned)(max(max(dl,tl),pl)+16))) == NULL )
+ return(NULL);
+
+ *p = '\0';
+
+ if( (tl == 0) || (access( cpdir(p, tmpdir), 3) != 0) )
+ if( (dl == 0) || (access( cpdir(p, dir), 3) != 0) )
+ if( access( cpdir(p, P_tmpdir), 3) != 0 )
+ if( access( cpdir(p, "/tmp"), 3) != 0 )
+ return(NULL);
+
+ (void) strcat(p, "/");
+ if(prefix)
+ {
+ *(p+strlen(p)+5) = '\0';
+ (void)strncat(p, prefix, 5);
+ }
+
+ (void)strcat(p, seed);
+ (void)strcat(p, "XXXXXX");
+
+ q = seed;
+ while(*q == 'Z') *q++ = 'A';
+ ++*q;
+
+ if(*mktemp(p) == '\0') return(NULL);
+ return(p);
+}
+
+
+
+static char *
+cpdir(buf, str)
+char *buf;
+char *str;
+{
+ char *p;
+
+ if(str != NULL)
+ {
+ (void) strcpy(buf, str);
+ p = buf - 1 + strlen(buf);
+ if(*p == '/') *p = '\0';
+ }
+
+ return(buf);
+}
diff --git a/dmake/unix/bsd43/utime.c b/dmake/unix/bsd43/utime.c
new file mode 100644
index 000000000000..9d26700d8006
--- /dev/null
+++ b/dmake/unix/bsd43/utime.c
@@ -0,0 +1,70 @@
+/* RCS $Id: utime.c,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- utime
+--
+-- DESCRIPTION
+-- Provide our own utime function.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+
+int
+utime(name, timep)
+char* name;
+time_t timep[2];
+{
+ struct timeval tv[2], *tvp;
+ struct stat buf;
+ int fil;
+ char data;
+
+ if (timep!=0)
+ {
+ tvp = tv, tv[0].tv_sec = timep[0], tv[1].tv_sec = timep[1];
+ if (utimes(name, tvp)==0)
+ return (0);
+ }
+
+ if (stat(name, &buf) != 0)
+ return (-1);
+ if (buf.st_size != 0) {
+ if ((fil = open(name, O_RDWR, 0666)) < 0)
+ return (-1);
+ if (read(fil, &data, 1) < 1) {
+ close(fil);
+ return (-1);
+ }
+ lseek(fil, 0L, 0);
+ if (write(fil, &data, 1) < 1) {
+ close(fil);
+ return (-1);
+ }
+ close(fil);
+ return (0);
+ } else if ((fil = creat(name, 0666)) < 0) {
+ return (-1);
+ } else {
+ close(fil);
+ return (0);
+ }
+}
diff --git a/dmake/unix/bsd43/uw/config.mk b/dmake/unix/bsd43/uw/config.mk
new file mode 100644
index 000000000000..1f94136f6d6e
--- /dev/null
+++ b/dmake/unix/bsd43/uw/config.mk
@@ -0,0 +1,17 @@
+# This is the BSD 4.3 University of Waterloo (uw) UNIX configuration file
+# for DMAKE
+# It simply modifies the values of LDLIBS to include libuw.a
+# so that vfprintf can be found.
+#
+
+LDLIBS += -luw
+osredir := $(OS)$(DIRSEPSTR)$(OSRELEASE)$(DIRSEPSTR)$(OSENVIRONMENT)
+CFLAGS += -I$(osredir)
+
+# install script for UW's /usr/software hierarchy...
+install:
+ mkdir ../bin; strip ./dmake; mv ./dmake ../bin
+ chmod a+rx ../bin/dmake ../bin
+ mkdir ../lib; chmod a+rx ../lib
+ cp $(STARTUPFILE) ../lib
+ chmod a+r ../lib/startup.mk
diff --git a/dmake/unix/bsd43/uw/make.sh b/dmake/unix/bsd43/uw/make.sh
new file mode 100644
index 000000000000..f23ecbb8ec44
--- /dev/null
+++ b/dmake/unix/bsd43/uw/make.sh
@@ -0,0 +1,69 @@
+mkdir objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O infer.c
+mv infer.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O make.c
+mv make.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O stat.c
+mv stat.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O expand.c
+mv expand.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O dmstring.c
+mv dmstring.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O hash.c
+mv hash.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O dag.c
+mv dag.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O dmake.c
+mv dmake.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O path.c
+mv path.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O imacs.c
+mv imacs.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O sysintf.c
+mv sysintf.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O parse.c
+mv parse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O getinp.c
+mv getinp.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O quit.c
+mv quit.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O state.c
+mv state.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O dmdump.c
+mv dmdump.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O macparse.c
+mv macparse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O rulparse.c
+mv rulparse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O percent.c
+mv percent.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O function.c
+mv function.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/arlib.c
+mv arlib.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/dirbrk.c
+mv dirbrk.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/rmprq.c
+mv rmprq.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/ruletab.c
+mv ruletab.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/runargv.c
+mv runargv.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/dcache.c
+mv dcache.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/bsd43/putenv.c
+mv putenv.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/bsd43/tempnam.c
+mv tempnam.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/bsd43/utime.c
+mv utime.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/uw -O unix/bsd43/setvbuf.c
+mv setvbuf.o objects
+cc -O -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/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/dcache.o objects/putenv.o objects/tempnam.o objects/utime.o objects/setvbuf.o -luw
+cp unix/bsd43/uw/template.mk startup/config.mk
diff --git a/dmake/unix/bsd43/uw/public.h b/dmake/unix/bsd43/uw/public.h
new file mode 100644
index 000000000000..fe2709c60023
--- /dev/null
+++ b/dmake/unix/bsd43/uw/public.h
@@ -0,0 +1,167 @@
+/* RCS $Id: public.h,v 1.9 2007-10-15 15:54:14 ihi Exp $
+-- WARNING -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
+--
+--
+-- SYNOPSIS
+-- Local functions exported to be visible by others.
+--
+-- DESCRIPTION
+-- This file is generated by 'genpub'. Function declarations
+-- that appear in this file are extracted by 'genpub' from
+-- source files. Any function in the source file whose definition
+-- appears like:
+--
+-- PUBLIC return_type
+-- function( arg_list );
+-- type_expr1 arg1;
+-- ...
+--
+-- has its definition extracted and a line of the form:
+--
+-- return_type function ANSI((type_expr1,type_expr2,...));
+--
+-- entered into the output file.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#ifndef _DMAKE_PUBLIC_h
+#define _DMAKE_PUBLIC_h
+
+#ifdef EXTERN
+#undef EXTERN
+#endif
+#if defined(DEFINE_DMAKE_VARIABLES)
+#define EXTERN
+#else
+#define EXTERN extern
+#endif
+
+/***** genpub: Begin list of generated function headers */
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char **, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char **));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char **));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+
+#endif
diff --git a/dmake/unix/bsd43/uw/template.mk b/dmake/unix/bsd43/uw/template.mk
new file mode 100644
index 000000000000..6afe91c1fc7a
--- /dev/null
+++ b/dmake/unix/bsd43/uw/template.mk
@@ -0,0 +1,7 @@
+# ** Default build configuration for dmake.
+# ** DO NOT PLACE LOCAL DEFINITIONS INTO THIS FILE IT IS AUTO GENERATED
+# ** USE "startup/local.mk" for those.
+
+ OS *:= unix
+ OSRELEASE *:= bsd43
+ OSENVIRONMENT *:= uw
diff --git a/dmake/unix/bsd43/vf/config.mk b/dmake/unix/bsd43/vf/config.mk
new file mode 100644
index 000000000000..bf4e64808d6c
--- /dev/null
+++ b/dmake/unix/bsd43/vf/config.mk
@@ -0,0 +1,11 @@
+# This config file adds vfprintf.c and memcpy.c for those systems that
+# do not have it.
+#
+
+osredir := $(OS)$(DIRSEPSTR)$(OSRELEASE)$(DIRSEPSTR)$(OSENVIRONMENT)
+CFLAGS += -I$(osredir)
+
+# The following sources are required for BSD4.3
+OSDESRC := memcpy.c vfprintf.c
+SRC += $(OSDESRC)
+.SETDIR=$(osredir) : $(OSDESRC)
diff --git a/dmake/unix/bsd43/vf/ctype.h b/dmake/unix/bsd43/vf/ctype.h
new file mode 100644
index 000000000000..f229a9ab3967
--- /dev/null
+++ b/dmake/unix/bsd43/vf/ctype.h
@@ -0,0 +1,51 @@
+/* RCS $Id: ctype.h,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- ctype
+--
+-- DESCRIPTION
+-- ctype.h 4.2 85/09/04
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#define _U 01
+#define _L 02
+#define _N 04
+#define _S 010
+#define _P 020
+#define _C 040
+#define _X 0100
+#define _B 0200
+
+extern char _ctype_[];
+
+#define isalpha(c) ((_ctype_+1)[c]&(_U|_L))
+#define isupper(c) ((_ctype_+1)[c]&_U)
+#define islower(c) ((_ctype_+1)[c]&_L)
+#define isdigit(c) ((_ctype_+1)[c]&_N)
+#define isxdigit(c) ((_ctype_+1)[c]&(_N|_X))
+#define isspace(c) ((_ctype_+1)[c]&_S)
+#define ispunct(c) ((_ctype_+1)[c]&_P)
+#define isalnum(c) ((_ctype_+1)[c]&(_U|_L|_N))
+#define isprint(c) ((_ctype_+1)[c]&(_P|_U|_L|_N|_B))
+#define isgraph(c) ((_ctype_+1)[c]&(_P|_U|_L|_N))
+#define iscntrl(c) ((_ctype_+1)[c]&_C)
+#define isascii(c) ((unsigned)(c)<=0177)
+#define toupper(c) ((c)-'a'+'A')
+#define tolower(c) ((c)-'A'+'a')
+#define toascii(c) ((c)&0177)
diff --git a/dmake/unix/bsd43/vf/make.sh b/dmake/unix/bsd43/vf/make.sh
new file mode 100644
index 000000000000..231b683a80e6
--- /dev/null
+++ b/dmake/unix/bsd43/vf/make.sh
@@ -0,0 +1,73 @@
+mkdir objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O infer.c
+mv infer.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O make.c
+mv make.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O stat.c
+mv stat.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O expand.c
+mv expand.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O dmstring.c
+mv dmstring.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O hash.c
+mv hash.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O dag.c
+mv dag.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O dmake.c
+mv dmake.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O path.c
+mv path.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O imacs.c
+mv imacs.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O sysintf.c
+mv sysintf.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O parse.c
+mv parse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O getinp.c
+mv getinp.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O quit.c
+mv quit.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O state.c
+mv state.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O dmdump.c
+mv dmdump.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O macparse.c
+mv macparse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O rulparse.c
+mv rulparse.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O percent.c
+mv percent.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O function.c
+mv function.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/arlib.c
+mv arlib.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/dirbrk.c
+mv dirbrk.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/rmprq.c
+mv rmprq.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/ruletab.c
+mv ruletab.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/runargv.c
+mv runargv.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/dcache.c
+mv dcache.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/bsd43/putenv.c
+mv putenv.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/bsd43/tempnam.c
+mv tempnam.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/bsd43/utime.c
+mv utime.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/bsd43/setvbuf.c
+mv setvbuf.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/bsd43/vf/memcpy.c
+mv memcpy.o objects
+cc -c -I. -Iunix -Iunix/bsd43 -Iunix/bsd43/vf -O unix/bsd43/vf/vfprintf.c
+mv vfprintf.o objects
+cc -O -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/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/dcache.o objects/putenv.o objects/tempnam.o objects/utime.o objects/setvbuf.o objects/memcpy.o objects/vfprintf.o
+cp unix/bsd43/vf/template.mk startup/config.mk
diff --git a/dmake/unix/bsd43/vf/memcpy.c b/dmake/unix/bsd43/vf/memcpy.c
new file mode 100644
index 000000000000..4ae47722e851
--- /dev/null
+++ b/dmake/unix/bsd43/vf/memcpy.c
@@ -0,0 +1,36 @@
+/* RCS $Id: memcpy.c,v 1.1.1.1 2000-09-22 15:33:34 hr Exp $
+--
+-- SYNOPSIS
+-- memcpy
+--
+-- DESCRIPTION
+-- BSD didn't have this in the library many moons ago.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+char *
+memcpy(t, f, n)
+register char *t, *f;
+register n;
+{
+ register char *p = t;
+
+ while( --n >= 0 ) *t++ = *f++;
+
+ return (p);
+}
diff --git a/dmake/unix/bsd43/vf/public.h b/dmake/unix/bsd43/vf/public.h
new file mode 100644
index 000000000000..4483a04fe534
--- /dev/null
+++ b/dmake/unix/bsd43/vf/public.h
@@ -0,0 +1,167 @@
+/* RCS $Id: public.h,v 1.9 2007-10-15 15:54:25 ihi Exp $
+-- WARNING -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
+--
+--
+-- SYNOPSIS
+-- Local functions exported to be visible by others.
+--
+-- DESCRIPTION
+-- This file is generated by 'genpub'. Function declarations
+-- that appear in this file are extracted by 'genpub' from
+-- source files. Any function in the source file whose definition
+-- appears like:
+--
+-- PUBLIC return_type
+-- function( arg_list );
+-- type_expr1 arg1;
+-- ...
+--
+-- has its definition extracted and a line of the form:
+--
+-- return_type function ANSI((type_expr1,type_expr2,...));
+--
+-- entered into the output file.
+--
+-- AUTHOR
+-- Dennis Vadura, dvadura@dmake.wticorp.com
+--
+-- WWW
+-- http://dmake.wticorp.com/
+--
+-- COPYRIGHT
+-- Copyright (c) 1996,1997 by WTI Corp. All rights reserved.
+--
+-- This program is NOT free software; you can redistribute it and/or
+-- modify it under the terms of the Software License Agreement Provided
+-- in the file <distribution-root>/readme/license.txt.
+--
+-- LOG
+-- Use cvs log to obtain detailed change logs.
+*/
+
+#ifndef _DMAKE_PUBLIC_h
+#define _DMAKE_PUBLIC_h
+
+#ifdef EXTERN
+#undef EXTERN
+#endif
+#if defined(DEFINE_DMAKE_VARIABLES)
+#define EXTERN
+#else
+#define EXTERN extern
+#endif
+
+/***** genpub: Begin list of generated function headers */
+void Infer_recipe ANSI((CELLPTR, CELLPTR));
+int Make_targets ANSI(());
+int Make ANSI((CELLPTR, CELLPTR));
+int Exec_commands ANSI((CELLPTR));
+void Print_cmnd ANSI((char *, int, int));
+int Push_dir ANSI((char *, char *, int));
+void Pop_dir ANSI((int));
+void Append_line ANSI((char *, int, FILE *, char *, int, int));
+void Stat_target ANSI((CELLPTR, int, int));
+char *Expand ANSI((char *));
+char *Apply_edit ANSI((char *, char *, char *, int, int));
+void Map_esc ANSI((char *));
+char* Apply_modifiers ANSI((int, char *));
+char* Tokenize ANSI((char *, char *, char, int));
+char* ScanToken ANSI((char *, char **, int));
+char *DmStrJoin ANSI((char *, char *, int, int));
+char *DmStrAdd ANSI((char *, char *, int));
+char *DmStrApp ANSI((char *, char *));
+char *DmStrDup ANSI((char *));
+char *DmStrDup2 ANSI((char *));
+char *DmStrPbrk ANSI((char *, char *));
+char *DmStrSpn ANSI((char *, char *));
+char *DmStrStr ANSI((char *, char *));
+char *DmSubStr ANSI((char *, char *));
+uint16 Hash ANSI((char *, uint32 *));
+HASHPTR Get_name ANSI((char *, HASHPTR *, int));
+HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
+HASHPTR Push_macro ANSI((HASHPTR));
+HASHPTR Pop_macro ANSI((HASHPTR));
+HASHPTR Def_macro ANSI((char *, char *, int));
+CELLPTR Def_cell ANSI((char *));
+LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
+void Clear_prerequisites ANSI((CELLPTR));
+int Test_circle ANSI((CELLPTR, int));
+STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
+t_attr Rcp_attribute ANSI((char *));
+int main ANSI((int, char **));
+FILE *Openfile ANSI((char *, int, int));
+FILE *Closefile ANSI(());
+FILE *Search_file ANSI((char *, char **));
+char *Filename ANSI(());
+int Nestlevel ANSI(());
+FILE *TryFiles ANSI((LINKPTR));
+void Fatal ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Error ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void Warning ANSI((ARG (char *,fmt),ARG (va_alist_type, va_alist)));
+void No_ram ANSI(());
+void Usage ANSI((int));
+void Version ANSI(());
+char *Get_suffix ANSI((char *));
+char *Basename ANSI((char *));
+char *Filedir ANSI((char *));
+char *Build_path ANSI((char *, char *));
+void Make_rules ANSI(());
+void Create_macro_vars ANSI(());
+time_t Do_stat ANSI((char *, char *, char **, int));
+int Do_touch ANSI((char *, char *, char **));
+void Void_lib_cache ANSI((char *, char *));
+time_t Do_time ANSI(());
+void Do_profile_output ANSI((char *, uint16, CELLPTR));
+int Do_cmnd ANSI((char **, int, int, CELLPTR, t_attr, int));
+char ** Pack_argv ANSI((int, int, char **));
+char *Read_env_string ANSI((char *));
+int Write_env_string ANSI((char *, char *));
+void ReadEnvironment ANSI(());
+void Catch_signals ANSI((void (*)(int)));
+void Clear_signals ANSI(());
+void Prolog ANSI((int, char* []));
+void Epilog ANSI((int));
+char *Get_current_dir ANSI(());
+int Set_dir ANSI((char*));
+char Get_switch_char ANSI(());
+FILE* Get_temp ANSI((char **, char *));
+FILE *Start_temp ANSI((char *, CELLPTR, char **));
+void Open_temp_error ANSI((char *, char *));
+void Link_temp ANSI((CELLPTR, FILE *, char *));
+void Close_temp ANSI((CELLPTR, FILE *));
+void Unlink_temp_files ANSI((CELLPTR));
+void Handle_result ANSI((int, int, int, CELLPTR));
+void Update_time_stamp ANSI((CELLPTR));
+int Remove_file ANSI((char *));
+void Parse ANSI((FILE *));
+int Get_line ANSI((char *, FILE *));
+char *Do_comment ANSI((char *, char **, int));
+char *Get_token ANSI((TKSTRPTR, char *, int));
+void Quit ANSI((int));
+void Read_state ANSI(());
+void Write_state ANSI(());
+int Check_state ANSI((CELLPTR, STRINGPTR *, int));
+void Dump ANSI(());
+void Dump_recipe ANSI((STRINGPTR));
+int Parse_macro ANSI((char *, int));
+int Macro_op ANSI((char *));
+int Parse_rule_def ANSI((int *));
+int Rule_op ANSI((char *));
+void Add_recipe_to_list ANSI((char *, int, int));
+void Bind_rules_to_targets ANSI((int));
+int Set_group_attributes ANSI((char *));
+DFALINKPTR Match_dfa ANSI((char *));
+void Check_circle_dfa ANSI(());
+void Add_nfa ANSI((char *));
+char *Exec_function ANSI((char *));
+time_t seek_arch ANSI((char *, char *));
+int touch_arch ANSI(( char *, char *));
+void void_lcache ANSI(( char *, char *));
+int If_root_path ANSI((char *));
+void Remove_prq ANSI((CELLPTR));
+int runargv ANSI((CELLPTR, int, int, t_attr, char **));
+int Wait_for_child ANSI((int, int));
+void Clean_up_processes ANSI(());
+time_t CacheStat ANSI((char *, int));
+
+#endif
diff --git a/dmake/unix/bsd43/vf/template.mk b/dmake/unix/bsd43/vf/template.mk
new file mode 100644
index 000000000000..395cd4718fa0
--- /dev/null
+++ b/dmake/unix/bsd43/vf/template.mk
@@ -0,0 +1,7 @@
+# ** Default build configuration for dmake.
+# ** DO NOT PLACE LOCAL DEFINITIONS INTO THIS FILE IT IS AUTO GENERATED
+# ** USE "startup/local.mk" for those.
+
+ OS *:= unix
+ OSRELEASE *:= bsd43
+ OSENVIRONMENT *:= vf
diff --git a/dmake/unix/bsd43/vf/vfprintf.c b/dmake/unix/bsd43/vf/vfprintf.c
new file mode 100644
index 000000000000..675e2e83e5ab
--- /dev/null
+++ b/dmake/unix/bsd43/vf/vfprintf.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 1988 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char sccsid[] = "@(#)vfprintf.c 5.2 (Berkeley) 6/27/88";
+#endif /* LIBC_SCCS and not lint */
+
+#include <stdio.h>
+#include <varargs.h>
+
+int
+vfprintf(iop, fmt, ap)
+ FILE *iop;
+ char *fmt;
+ va_list ap;
+{
+ int len;
+ char localbuf[BUFSIZ];
+
+ if (iop->_flag & _IONBF) {
+ iop->_flag &= ~_IONBF;
+ iop->_ptr = iop->_base = localbuf;
+ len = _doprnt(fmt, ap, iop);
+ (void) fflush(iop);
+ iop->_flag |= _IONBF;
+ iop->_base = NULL;
+ iop->_bufsiz = 0;
+ iop->_cnt = 0;
+ } else
+ len = _doprnt(fmt, ap, iop);
+
+ return (ferror(iop) ? EOF : len);
+}
+