[OpenAFS-devel] Windows - New build scripts - SnapShot -2003-20-25

James Peterson james@abrakus.com
Tue, 11 Mar 2003 00:43:20 -0800


This is a multi-part message in MIME format.

------=_NextPart_000_0258_01C2E767.368AA9A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Enclosed are the changes to SnapShot-2003-02-25 that support building
OpenAFS for Windows.

There numerous changes that correct problems with SnapShot-2003-02-25,
support for V6.0 and .Net complier, compile from either NT4.0 or XP (W2000
should be the same) and an added new feature.

It does not contain Windows 9x or the changes to the installation scripts.

*********** NEW FEATURE ***************
Source and object are separated into different directories.  The directory
tree would look as follows:

Base from %AFSROOT% environment variable
%AFSROOT%\src\... - all source and generated source
%AFSROOT%\obj\checked\... objects from a checked build
%AFSROOT%\obj\free\...    objects from a free build
%AFSROOT%\obj\dest\checked\...  DEST folder from a checked build
%AFSROOT%\obj\dest\free\....    DEST folder from a free build

Before you start the build, you must build an object tree by issuing the
following:

nmake -f NTMAKEFILE mkdir

Otherwise the build process is the same as before, either build from the
root or the individual subfolders.

You may optionally set environment variable AFS_OBJDIR to a relative or full
path for an alternate location of the object folders.  E.g.  to build into
the d:\temp directory, enter the following commands from the AFSROOT
directory:

SET AFS_OBJDIR=D:\TEMP
nmake -f NTMAKEFILE mkdir
nmake -f NTMAKEFILE install

This will build the objects into the following tree
d:\temp\obj\checked\... objects from a checked build
d:\temp\obj\free\...    objects from a free build
d:\temp\obj\dest\checked\...  DEST folder from a checked build
d:\temp\obj\dest\free\....    DEST folder from a free build

You can also build into a relative location.  E.g. to build into
%AFSROOT%\test\obj, enter the following commands from the AFSROOT directory:

SET AFS_OBJDIR=test\obj
nmake -f NTMAKEFILE mkdir
nmake -f NTMAKEFILE install

This will build the objects into the following tree
%AFSROOT%\test\obj\checked\... objects from a checked build
%AFSROOT%\test\obj\free\...    objects from a free build
%AFSROOT%\test\obj\dest\checked\...  DEST folder from a checked build
%AFSROOT%\test\obj\dest\free\....    DEST folder from a free build

Of course, any feedback is welcome!

James Peterson
"Integrity is the Base of Excellence"

P.S. the zip file is also included.

------=_NextPart_000_0258_01C2E767.368AA9A0
Content-Type: text/plain;
	name="Patch-BuldScripts-based-2003-02-25.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="Patch-BuldScripts-based-2003-02-25.txt"

diff -NurEB --exclude-from=3Dexclude bas/src/NTMakefile =
upd/src/NTMakefile=0A=
--- bas/src/NTMakefile	2002-01-08 12:44:32.000000000 -0800=0A=
+++ upd/src/NTMakefile	2003-03-10 16:20:04.000000000 -0800=0A=
@@ -16,485 +16,555 @@=0A=
 # appropriately; if the new directory is the last in the chain, then=0A=
 # update the 'finale' dependency to be the new directory.=0A=
 =0A=
+# These three macros define the source, object, and destination folders=0A=
+=0A=
+SRC=3Dsrc=0A=
+#If AFS_OBJDIR is not defined then use obj as relative obj folder=0A=
+!IFDEF AFS_OBJDIR=0A=
+DESTDIR=3D$(AFS_OBJDIR)\dest=0A=
+!ELSE=0A=
+DESTDIR=3Dobj\dest=0A=
+AFS_OBJDIR=3Dobj=0A=
+!ENDIF=0A=
 =0A=
 CD =3D cd=0A=
 NTMAKE =3D nmake /nologo /f ntmakefile install=0A=
-NTMAKELANG =3D nmake /nologo /f ntmakefile en_US=0A=
-NTMAKE_HEADERS =3D nmake /nologo /f ntmakefile install_headers=0A=
+NTMAKELANG =3D nmake /nologo  /f ntmakefile en_US=0A=
+NTMAKE_HEADERS =3D nmake /nologo  /f ntmakefile install_headers=0A=
 NTMAKE_OBJS =3D nmake /nologo /f ntmakefile install_objs=0A=
 MKDIR =3D mkdir=0A=
-OBJ =3D src=0A=
-=0A=
-# Standard install directory.=0A=
-!IFDEF AFSDEV_DESTDIR=0A=
-DESTDIR =3D $(AFSDEV_DESTDIR)=0A=
-!ELSE=0A=
-DESTDIR =3D $(AFSROOT)\DEST=0A=
-!ENDIF=0A=
 =0A=
-=0A=
-start:=0A=
-!	IF (!EXIST(src))=0A=
-!	ERROR Execute nmake from directory above src, e.g., afs\3.5.=0A=
-!	ENDIF=0A=
-!	IF (!EXIST($(DESTDIR)))=0A=
-    $(MKDIR) $(DESTDIR)=0A=
-!	ENDIF=0A=
+SDEBUG=3Decho cd $(SRC)\$@ >d:\dev\bat\gc.bat=0A=
+WDEBUG=3Decho cd $(SRC)\WINNT\$@ >d:\dev\bat\gc.bat=0A=
+LDEBUG=3Decho cd $(SRC)\libadmin\$@ >d:\dev\bat\gc.bat=0A=
+TDEBUG=3Decho cd $(SRC)\WINNT\talocale >d:\dev\bat\gc.bat=0A=
+WADEBUG=3Decho cd $(SRC)\WINNT\afs_setup_utils >d:\dev\bat\gc.bat=0A=
+WIDEBUG=3Decho cd $(SRC)\WINNT\install\$@ >d:\dev\bat\gc.bat=0A=
+RIDEBUG=3Decho cd $(SRC)\WINNT\afsreg >d:\dev\bat\gc.bat=0A=
 =0A=
 config:=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(CD) $(SRC)\config=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
-procmgmt_headers: config=0A=
+procmgmt_headers:config=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\procmgmt=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\procmgmt=0A=
 	$(NTMAKE_HEADERS)=0A=
 	$(CD) ..\..=0A=
 =0A=
-afsreg_headers: config=0A=
+afsreg_headers:=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\afsreg=0A=
+	$(RIDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\afsreg=0A=
 	$(NTMAKE_HEADERS)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 util: procmgmt_headers afsreg_headers=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 comerr: util=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 cmd: comerr=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 afsreg: cmd=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 eventlog: afsreg=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 lwp: eventlog=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 rxgen: lwp=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 des: rxgen=0A=
      echo ***** $@=0A=
-!	IF (EXIST($(OBJ)\des\NTMakefile))=0A=
-		$(CD) $(OBJ)\des=0A=
+	$(SDEBUG)=0A=
+!	IF (EXIST($(SRC)\des\NTMakefile))=0A=
+		$(CD) $(SRC)\des=0A=
 		$(NTMAKE)=0A=
 		$(CD) ..\..=0A=
 !	ELSE=0A=
-		$(CD) $(OBJ)\des_stub=0A=
+		$(CD) $(SRC)\des_stub=0A=
 		$(NTMAKE)=0A=
 		$(CD) ..\..=0A=
 !	ENDIF=0A=
 =0A=
 rx: des=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 rxstat: rx=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 rxkad: rxstat=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 pthread: rxkad=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 procmgmt: pthread=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 fsint: procmgmt=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 audit: fsint=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 osi_headers: audit=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\client_osi=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\client_osi=0A=
 	$(NTMAKE_HEADERS)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 libacl_headers: osi_headers=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libacl=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\libacl=0A=
 	$(NTMAKE_HEADERS)=0A=
 	$(CD) ..\..=0A=
 =0A=
 cm_headers: libacl_headers=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\afsd=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\afsd=0A=
 	$(NTMAKE_HEADERS)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 sys: cm_headers=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 afsdobjs: sys=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\afsd=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\afsd=0A=
 	$(NTMAKE_OBJS)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 auth: afsdobjs=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 ubik: auth=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..	=0A=
 =0A=
 ptserver: ubik=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..	=0A=
 =0A=
 libacl: ptserver=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 kauth: libacl=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 vlserver: kauth=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 usd: vlserver=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 bubasics: usd=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 budb:	bubasics=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 butm:  budb=0A=
      echo ***** $@=0A=
-        $(CD) $(OBJ)\$@=0A=
-        $(NTMAKE)=0A=
-        $(CD) ..\..=0A=
+	$(SDEBUG)=0A=
+     $(CD) $(SRC)\$@=0A=
+     $(NTMAKE)=0A=
+     $(CD) ..\..=0A=
 =0A=
 dir: butm=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 vol: dir=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 volser: vol=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 viced: volser=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 update: viced=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 bucoord: update=0A=
      echo ***** $@=0A=
-        $(CD) $(OBJ)\$@=0A=
-        $(NTMAKE)=0A=
-        $(CD) ..\..=0A=
+	$(SDEBUG)=0A=
+     $(CD) $(SRC)\$@=0A=
+     $(NTMAKE)=0A=
+     $(CD) ..\..=0A=
 =0A=
 butc:   bucoord=0A=
      echo ***** $@=0A=
-        $(CD) $(OBJ)\$@=0A=
-        $(NTMAKE)=0A=
-        $(CD) ..\..=0A=
+	$(SDEBUG)=0A=
+     $(CD) $(SRC)\$@=0A=
+     $(NTMAKE)=0A=
+     $(CD) ..\..=0A=
 =0A=
 bozo: butc=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 bosctlsvc: bozo=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 bu_utils: bosctlsvc=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 libafsrpc: bu_utils=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 libafsauthent: libafsrpc=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 tviced: libafsauthent=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 tbutc:  tviced=0A=
      echo ***** $@=0A=
-        $(CD) $(OBJ)\$@=0A=
-        $(NTMAKE)=0A=
-        $(CD) ..\..=0A=
+	$(SDEBUG)=0A=
+     $(CD) $(SRC)\$@=0A=
+     $(NTMAKE)=0A=
+     $(CD) ..\..=0A=
 =0A=
 libadmin: tbutc=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..=0A=
 =0A=
 adminutil: libadmin=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 vos: adminutil=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client: vos=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 kas: client=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 pts: kas=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 bos: pts=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 cfg: bos=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\$@=0A=
+	$(LDEBUG)=0A=
+	$(CD) $(SRC)\libadmin\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 admintest: cfg=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\libadmin\test=0A=
+	$(CD) $(SRC)\libadmin\test=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 talocale: admintest=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 license: talocale=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 afsadmsvr: license=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 afsusrmgr: afsadmsvr=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 afssvrmgr: afsusrmgr=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 afssvrcfg: afssvrmgr=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 afssvrcpa: afssvrcfg=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client_talocale: afssvrcpa=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\talocale=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\talocale=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client_osi: client_talocale=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(TDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 afsd: client_osi=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client_cpa: afsd=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client_config: client_cpa=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client_exp: client_config=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 client_creds: client_exp=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\WINNT\$@=0A=
+	$(WDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
 finale: client_creds=0A=
      echo ***** $@=0A=
-	$(CD) $(OBJ)\$@=0A=
+	$(SDEBUG)=0A=
+	$(CD) $(SRC)\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..	=0A=
 	echo Build Finished Successfully=0A=
 =0A=
-install: start finale=0A=
+install: finale=0A=
 =0A=
 # InstallShield dependencies=0A=
 =0A=
 InstallShield5:=0A=
 	echo ***** afs_setup_utils=0A=
-	$(CD) $(OBJ)\WINNT\afs_setup_utils=0A=
+	$(WADEBUG)=0A=
+	$(CD) $(SRC)\WINNT\afs_setup_utils=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..=0A=
 =0A=
-	$(CD) $(OBJ)\WINNT\install\$@=0A=
+	$(WIDEBUG)=0A=
+	$(CD) $(SRC)\WINNT\install\$@=0A=
 	$(NTMAKE)=0A=
 	$(CD) ..\..\..\..=0A=
 =0A=
 media: InstallShield5=0A=
-	echo Install Script Finished Successfully=0A=
-=0A=
 =0A=
 # Clean target for obj tree=0A=
-clean: start=0A=
+clean:=0A=
 	nmake /nologo /f ntmakefile "NTMAKE =3D nmake /nologo /f ntmakefile =
clean" "NTMAKE_HEADERS =3D nmake /nologo /f ntmakefile clean" =
"NTMAKE_OBJS =3D nmake /nologo /f ntmakefile clean" install=0A=
-	$(CD) $(OBJ)\config=0A=
+	nmake /nologo /f ntmakefile "NTMAKE =3D nmake /nologo /f ntmakefile =
clean" "NTMAKE_HEADERS =3D nmake /nologo /f ntmakefile clean" =
"NTMAKE_OBJS =3D nmake /nologo /f ntmakefile clean" media=0A=
+	$(CD) $(SRC)\config=0A=
 	nmake /nologo /f ntmakefile clean_version=0A=
 	$(CD) ..\..=0A=
 =0A=
@@ -498,7 +568,16 @@=0A=
 	nmake /nologo /f ntmakefile clean_version=0A=
 	$(CD) ..\..=0A=
 =0A=
-=0A=
 # Language-only build target=0A=
 lang:=0A=
-        nmake /nologo /f ntmakefile "NTMAKE =3D nmake /nologo /f =
ntmakefile lang" "NTMAKE_HEADERS =3D nmake /nologo /f ntmakefile lang" =
install=0A=
+    nmake /nologo /f ntmakefile "NTMAKE =3D nmake /nologo /f ntmakefile =
lang" "NTMAKE_HEADERS =3D nmake /nologo /f ntmakefile lang" install=0A=
+=0A=
+mkdir:=0A=
+	-xcopy /q /t /e $(SRC)\*.* $(AFS_OBJDIR)\checked\ =0A=
+	-xcopy /q /t /e $(SRC)\*.* $(AFS_OBJDIR)\free\ =0A=
+    -mkdir $(DESTDIR)\checked=0A=
+	-mkdir $(DESTDIR)\free=0A=
+    -mkdir $(DESTDIR)\checked\bin=0A=
+	-mkdir $(DESTDIR)\free\bin=0A=
+	-@copy $(SRC)\config\NTLANG.BAT .=0A=
+=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afs_setup_utils/GetWebDll/ntmakefile =
upd/src/WINNT/afs_setup_utils/GetWebDll/ntmakefile=0A=
--- bas/src/WINNT/afs_setup_utils/GetWebDll/ntmakefile	2001-09-06 =
20:55:00.000000000 -0700=0A=
+++ upd/src/WINNT/afs_setup_utils/GetWebDll/ntmakefile	2003-03-10 =
16:20:04.000000000 -0800=0A=
@@ -1,32 +1,31 @@=0A=
 # Microsoft Developer Studio Generated NMAKE File, Based on =
GetWebDll.dsp=0A=
+=0A=
+!INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)=0A=
+!INCLUDE ..\..\..\config\NTMakefile.version=0A=
+=0A=
 !IF "$(OS)" =3D=3D "Windows_NT"=0A=
 NULL=3D=0A=
 !ELSE =0A=
 NULL=3Dnul=0A=
 !ENDIF =0A=
 =0A=
-OUTDIR=3D.=0A=
-INTDIR=3D.=0A=
+OUTDIR=3D$(OJT)=0A=
+INTDIR=3D$(OJT)=0A=
 # Begin Custom Macros=0A=
 OutDir=3D.=0A=
 # End Custom Macros=0A=
 =0A=
-INSTALL : "$(OUTDIR)\GetWebDll.dll"=0A=
+INSTALL : "$(DESTDIR)\WinInstall\Config\GetWebDll.dll"=0A=
 =0A=
 =0A=
-CLEAN :=0A=
-	-@erase "$(INTDIR)\GetWebDll.pch"=0A=
+CLEAN ::=0A=
 	-@erase "$(INTDIR)\*.obj"=0A=
-	-@erase "$(INTDIR)\vc60.idb"=0A=
 	-@erase "$(OUTDIR)\GetWebDll.dll"=0A=
 	-@erase "$(OUTDIR)\GetWebDll.exp"=0A=
 	-@erase "$(OUTDIR)\GetWebDll.lib"=0A=
 	-@erase "$(OUTDIR)\GetWebDll.sbl"=0A=
 	-@erase "$(OUTDIR)\GetWebDll.pjt"=0A=
 =0A=
-"$(OUTDIR)" :=0A=
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"=0A=
-=0A=
 CPP=3Dcl.exe=0A=
 CPP_PROJ=3D/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" =
/D "_WINDLL" /D "_MBCS" /D "_USRDLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" =
/FD /c=0A=
 =0A=
@@ -69,14 +68,14 @@=0A=
 BSC32_SBRS=3D \=0A=
 =0A=
 LINK32=3Dlink.exe=0A=
-LINK32_FLAGS=3D/nologo /subsystem:windows /dll /incremental:no =
/pdb:"$(OUTDIR)\GetWebDll.pdb" /machine:I386 /def:".\GetWebDll.def" =
/out:"$(OUTDIR)\GetWebDll.dll" /implib:"$(OUTDIR)\GetWebDll.lib" =0A=
+LINK32_FLAGS=3D/nologo /subsystem:windows /dll /incremental:no =
/pdb:"$(OUTDIR)\GetWebDll.pdb" /machine:I386 /def:".\GetWebDll.def" =
/out:"$(DESTDIR)\WinInstall\Config\GetWebDll.dll" =
/implib:"$(DESTDIR)\WinInstall\Config\GetWebDll.lib" =0A=
 DEF_FILE=3D \=0A=
 	".\GetWebDll.def"=0A=
 LINK32_OBJS=3D \=0A=
 	"$(INTDIR)\GetWebDll.obj" \=0A=
 	"$(INTDIR)\GetWebDll.res"=0A=
 =0A=
-"$(OUTDIR)\GetWebDll.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)=0A=
+"$(DESTDIR)\WinInstall\Config\GetWebDll.dll" : $(DEF_FILE) =
$(LINK32_OBJS)=0A=
     $(LINK32) @<<=0A=
   $(LINK32_FLAGS) $(LINK32_OBJS)=0A=
 <<=0A=
@@ -93,11 +92,11 @@=0A=
 =0A=
 SOURCE=3D.\GetWebDll.cpp=0A=
 =0A=
-"$(INTDIR)\GetWebDll.obj" : $(SOURCE) "$(INTDIR)"=0A=
+"$(INTDIR)\GetWebDll.obj" : $(SOURCE)=0A=
 =0A=
 =0A=
 SOURCE=3D.\GetWebDll.rc=0A=
 =0A=
-"$(INTDIR)\GetWebDll.res" : $(SOURCE) "$(INTDIR)"=0A=
+"$(INTDIR)\GetWebDll.res" : $(SOURCE)=0A=
 	$(RSC) $(RSC_PROJ) $(SOURCE)=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afs_setup_utils/NTMakefile =
upd/src/WINNT/afs_setup_utils/NTMakefile=0A=
--- bas/src/WINNT/afs_setup_utils/NTMakefile	2001-11-10 =
14:31:08.000000000 -0800=0A=
+++ upd/src/WINNT/afs_setup_utils/NTMakefile	2003-03-10 =
16:20:04.000000000 -0800=0A=
@@ -35,15 +35,15 @@=0A=
 # Source files and libraries that are shared by all of the targets.=0A=
 =0A=
 AFSAPPLIBOBJS =3D \=0A=
-    subclass.obj=0A=
+    $(OJT)\subclass.obj=0A=
 =0A=
 DLLOBJS =3D \=0A=
     $(AFSAPPLIBOBJS)    \=0A=
-    progress_dlg.obj    \=0A=
-    animate_icon.obj    \=0A=
-    sutil.obj           \=0A=
-    forceremove.obj     \=0A=
-    afs_setup_utils_stub.res=0A=
+    $(OJT)\progress_dlg.obj    \=0A=
+    $(OJT)\animate_icon.obj    \=0A=
+    $(OJT)\sutil.obj           \=0A=
+    $(OJT)\forceremove.obj     \=0A=
+    $(OJT)\afs_setup_utils_stub.res=0A=
 =0A=
 VCLIBS =3D \=0A=
 	comctl32.lib \=0A=
@@ -60,7 +60,7 @@=0A=
 =0A=
 AFSAPPLIBDIR =3D ..\..\WINNT\afsapplib=0A=
 =0A=
-subclass.obj: $(AFSAPPLIBDIR)\subclass.cpp=0A=
+$(OJT)\subclass.obj: $(AFSAPPLIBDIR)\subclass.cpp=0A=
     $(C2OBJ) -I$(AFSAPPLIBDIR) $(AFSAPPLIBDIR)\subclass.cpp=0A=
 =0A=
 =0A=
@@ -70,10 +70,10 @@=0A=
 AFSRM_EXEFILE =3D $(DESTDIR)\bin\afsrm.exe=0A=
 =0A=
 AFSRM_EXEOBJS =3D\=0A=
-    afsrm.obj \=0A=
-    forceremove.obj \=0A=
-    sutil.obj \=0A=
-    AFS_component_version_number.obj=0A=
+    $(OJT)\afsrm.obj \=0A=
+    $(OJT)\forceremove.obj \=0A=
+    $(OJT)\sutil.obj \=0A=
+    $(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 AFSRM_EXELIBS =3D\=0A=
     $(DESTDIR)\lib\afs\afsreg.lib \=0A=
@@ -108,55 +108,57 @@=0A=
 =
#########################################################################=
###=0A=
 # How to build the shared source file for each uninstall dll=0A=
 =0A=
-s_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
-        $(C2OBJ) afs_setup_utils.cpp -DSERVER_UNINST =
/Fos_afs_setup_utils.obj=0A=
+C2OBJ =3D $(C2OBJ) -DSERVER_UNINST=0A=
 =0A=
-c_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
-        $(C2OBJ) afs_setup_utils.cpp -DCLIENT_UNINST =
/Foc_afs_setup_utils.obj=0A=
+$(OJT)\s_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-cc_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
-        $(C2OBJ) afs_setup_utils.cpp -DCC_UNINST =
/Focc_afs_setup_utils.obj=0A=
+$(OJT)\c_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-lc_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
-        $(C2OBJ) afs_setup_utils.cpp -DLIGHT_CLIENT_UNINST =
/Folc_afs_setup_utils.obj=0A=
+$(OJT)\cc_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-d_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
-        $(C2OBJ) afs_setup_utils.cpp -DDOCS_UNINST =
/Fod_afs_setup_utils.obj=0A=
+$(OJT)\lc_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
+	$(C2OBJ) $**=0A=
+=0A=
+$(OJT)\d_afs_setup_utils.obj: afs_setup_utils.cpp=0A=
+	$(C2OBJ) $**=0A=
 =0A=
 =0A=
 =
#########################################################################=
###=0A=
 =0A=
-$(INSTALL_UTILS_DLLFILE) : afs_setup_utils.obj $(DLLOBJS) $(DLLLIBS)=0A=
+$(INSTALL_UTILS_DLLFILE) : $(OJT)\afs_setup_utils.obj $(DLLOBJS) =
$(DLLLIBS)=0A=
     $(DLLGUILINK) -entry:DllEntryPoint /DEF:install_utils.def $(VCLIBS)=0A=
     $(DLLPREP)=0A=
     $(COPY) $*.lib $(ILIBDIR)=0A=
     $(DEL) $*.lib $*.exp=0A=
 =0A=
-$(SERVER_UNINST_DLLFILE) : s_afs_setup_utils.obj $(DLLOBJS) $(DLLLIBS)=0A=
+$(SERVER_UNINST_DLLFILE) : $(OJT)\s_afs_setup_utils.obj $(DLLOBJS) =
$(DLLLIBS)=0A=
     $(DLLGUILINK) -entry:DllEntryPoint /DEF:server_uninst.def $(VCLIBS)=0A=
     $(DLLPREP)=0A=
     $(COPY) $*.lib $(ILIBDIR)=0A=
     $(DEL) $*.lib $*.exp=0A=
 =0A=
-$(CLIENT_UNINST_DLLFILE) : c_afs_setup_utils.obj $(DLLOBJS) $(DLLLIBS)=0A=
+$(CLIENT_UNINST_DLLFILE) : $(OJT)\c_afs_setup_utils.obj $(DLLOBJS) =
$(DLLLIBS)=0A=
     $(DLLGUILINK) -entry:DllEntryPoint /DEF:client_uninst.def $(VCLIBS)=0A=
     $(DLLPREP)=0A=
     $(COPY) $*.lib $(ILIBDIR)=0A=
     $(DEL) $*.lib $*.exp=0A=
 =0A=
-$(CC_UNINST_DLLFILE) : cc_afs_setup_utils.obj $(DLLOBJS) $(DLLLIBS)=0A=
+$(CC_UNINST_DLLFILE) : $(OJT)\cc_afs_setup_utils.obj $(DLLOBJS) =
$(DLLLIBS)=0A=
     $(DLLGUILINK) -entry:DllEntryPoint /DEF:cc_uninst.def $(VCLIBS)=0A=
     $(DLLPREP)=0A=
     $(COPY) $*.lib $(ILIBDIR)=0A=
     $(DEL) $*.lib $*.exp=0A=
 =0A=
-$(LIGHT_CLIENT_UNINST_DLLFILE) : lc_afs_setup_utils.obj $(DLLOBJS) =
$(DLLLIBS)=0A=
+$(LIGHT_CLIENT_UNINST_DLLFILE) : $(OJT)\lc_afs_setup_utils.obj =
$(DLLOBJS) $(DLLLIBS)=0A=
     $(DLLGUILINK) -entry:DllEntryPoint /DEF:light_client_uninst.def =
$(VCLIBS)=0A=
     $(DLLPREP)=0A=
     $(COPY) $*.lib $(ILIBDIR)=0A=
     $(DEL) $*.lib $*.exp=0A=
 =0A=
-$(DOCS_UNINST_DLLFILE) : d_afs_setup_utils.obj $(DLLOBJS) $(DLLLIBS)=0A=
+$(DOCS_UNINST_DLLFILE) : $(OJT)\d_afs_setup_utils.obj $(DLLOBJS) =
$(DLLLIBS)=0A=
     $(DLLGUILINK) -entry:DllEntryPoint /DEF:docs_uninst.def $(VCLIBS)=0A=
     $(DLLPREP)=0A=
     $(COPY) $*.lib $(ILIBDIR)=0A=
@@ -186,5 +188,10 @@=0A=
 # Dependencies=0A=
 #=0A=
 =0A=
-afs_setup_utils_stub.res : afs_setup_utils_stub.rc =
AFS_component_version_number.h=0A=
+$(OJT)\afs_setup_utils_stub.res : afs_setup_utils_stub.rc =
AFS_component_version_number.h=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afs_setup_utils/_isuser/ntmakefile =
upd/src/WINNT/afs_setup_utils/_isuser/ntmakefile=0A=
--- bas/src/WINNT/afs_setup_utils/_isuser/ntmakefile	2002-01-08 =
12:44:36.000000000 -0800=0A=
+++ upd/src/WINNT/afs_setup_utils/_isuser/ntmakefile	2003-03-10 =
16:20:04.000000000 -0800=0A=
@@ -9,13 +9,10 @@=0A=
 NULL=3Dnul=0A=
 !ENDIF =0A=
 =0A=
-OUTDIR=3D.=0A=
-INTDIR=3D.=0A=
-# Begin Custom Macros=0A=
-OutDir=3D.=0A=
-# End Custom Macros=0A=
+OUTDIR=3D$(OJT) =0A=
+INTDIR=3D$(OJT) =0A=
 =0A=
-INSTALL : "$(OUTDIR)\_IsUser.dll"=0A=
+INSTALL : "$(DESTDIR)\WinInstall\Config\_IsUser.dll"=0A=
 	$(DEL) *.PCH =0A=
 	$(DEL) *.IDB=0A=
 =0A=
@@ -27,38 +24,35 @@=0A=
 	-@erase "$(OUTDIR)\_IsUser.exp"=0A=
 	-@erase "$(OUTDIR)\_IsUser.lib"=0A=
 =0A=
-"$(OUTDIR)" ::=0A=
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"=0A=
-=0A=
 CPP=3Dcl.exe=0A=
 CPP_PROJ=3D/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" =
/D "_MBCS" /D "_USRDLL" /D "_ISUSER_EXPORTS" /YX /Fo"$(INTDIR)\\" =
/Fd"$(INTDIR)\\" /FD /c =0A=
 =0A=
-.c{$(INTDIR)}.obj::=0A=
+.c.{$(OJT)\}obj::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cpp{$(INTDIR)}.obj::=0A=
+.cpp.{$(OJT)\}obj::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cxx{$(INTDIR)}.obj::=0A=
+.cxx.{$(OJT)\}obj::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.c{$(INTDIR)}.sbr::=0A=
+.c.$(OJT)\sbr::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cpp{$(INTDIR)}.sbr::=0A=
+.cpp.$(OJT)\sbr::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cxx{$(INTDIR)}.sbr::=0A=
+.cxx.$(OJT)\sbr::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
@@ -72,21 +66,24 @@=0A=
 BSC32_SBRS=3D \=0A=
 =0A=
 LINK32=3Dlink.exe=0A=
-LINK32_FLAGS=3Dkernel32.lib user32.lib gdi32.lib winspool.lib =
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib =
odbc32.lib odbccp32.lib /nologo /dll /incremental:no =
/pdb:"$(OUTDIR)\_IsUser.pdb" /machine:I386 /out:"$(OUTDIR)\_IsUser.dll" =
/implib:"$(OUTDIR)\_IsUser.lib" =0A=
+LINK32_FLAGS=3Dkernel32.lib user32.lib gdi32.lib winspool.lib =
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib =
odbc32.lib odbccp32.lib /nologo /dll /incremental:no =
/pdb:"$(OUTDIR)\_IsUser.pdb" /machine:I386 =
/out:"$(DESTDIR)\WinInstall\Config\_IsUser.dll" =
/implib:"$(OUTDIR)\_IsUser.lib" =0A=
 LINK32_OBJS=3D \=0A=
 	"$(INTDIR)\_isuser.obj" \=0A=
 	"$(INTDIR)\_Isuser.res"=0A=
 =0A=
-"$(OUTDIR)\_IsUser.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)=0A=
+"$(DESTDIR)\WinInstall\Config\_IsUser.dll" : $(DEF_FILE) $(LINK32_OBJS)=0A=
     $(LINK32) @<<=0A=
   $(LINK32_FLAGS) $(LINK32_OBJS)=0A=
 <<=0A=
 =0A=
 SOURCE=3D.\_isuser.c=0A=
 =0A=
-"$(INTDIR)\_isuser.obj" : $(SOURCE) "$(INTDIR)"=0A=
+"$(INTDIR)\_isuser.obj" : $(SOURCE)=0A=
 =0A=
 SOURCE=3D.\_Isuser.RC=0A=
 =0A=
-"$(INTDIR)\_Isuser.res" : $(SOURCE) "$(INTDIR)"=0A=
+"$(INTDIR)\_Isuser.res" : $(SOURCE)=0A=
 	$(RSC) $(RSC_PROJ) $(SOURCE)=0A=
+=0A=
+=0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afs_setup_utils/afs_setup_utils.cpp =
upd/src/WINNT/afs_setup_utils/afs_setup_utils.cpp=0A=
--- bas/src/WINNT/afs_setup_utils/afs_setup_utils.cpp	2002-01-08 =
12:44:34.000000000 -0800=0A=
+++ upd/src/WINNT/afs_setup_utils/afs_setup_utils.cpp	2003-03-10 =
16:20:04.000000000 -0800=0A=
@@ -31,6 +31,7 @@=0A=
 #include <WINNT/afsreg.h>=0A=
 #include <WINNT/afssw.h>=0A=
 #include <WINNT/talocale.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 #include "resource.h"=0A=
 #include "progress_dlg.h"=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afs_setup_utils/lang/NTMakefile =
upd/src/WINNT/afs_setup_utils/lang/NTMakefile=0A=
--- bas/src/WINNT/afs_setup_utils/lang/NTMakefile	2000-11-04 =
02:01:12.000000000 -0800=0A=
+++ upd/src/WINNT/afs_setup_utils/lang/NTMakefile	2003-03-10 =
16:20:04.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afs_setup_utils.rc=0A=
 =0A=
-RESFILE =3D afs_setup_utils_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afs_setup_utils_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -60,3 +60,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsadmsvr/NTMakefile =
upd/src/WINNT/afsadmsvr/NTMakefile=0A=
--- bas/src/WINNT/afsadmsvr/NTMakefile	2001-09-17 13:35:10.000000000 =
-0700=0A=
+++ upd/src/WINNT/afsadmsvr/NTMakefile	2003-03-10 16:20:04.000000000 =
-0800=0A=
@@ -41,32 +41,37 @@=0A=
 	iTaAfsAdmSvrTypes.h=0A=
 =0A=
 LIBOBJS =3D \=0A=
-	TaAfsAdmSvrClient.obj \=0A=
-	TaAfsAdmSvrClientBind.obj \=0A=
-	TaAfsAdmSvrClientCache.obj \=0A=
-	TaAfsAdmSvrClientCell.obj \=0A=
-	TaAfsAdmSvrClientGroup.obj \=0A=
-	TaAfsAdmSvrClientInternal.obj \=0A=
-	TaAfsAdmSvrClientNotify.obj \=0A=
-	TaAfsAdmSvrClientPing.obj \=0A=
-	TaAfsAdmSvrClientUser.obj \=0A=
-	TaAfsAdmSvrCommon.obj \=0A=
-	iTaAfsAdmSvr_c.obj=0A=
+	$(OJT)\TaAfsAdmSvrClient.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientBind.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientCache.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientCell.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientGroup.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientInternal.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientNotify.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientPing.obj \=0A=
+	$(OJT)\TaAfsAdmSvrClientUser.obj \=0A=
+	$(OJT)\TaAfsAdmSvrCommon.obj \=0A=
+	$(OJT)\iTaAfsAdmSvr_c.obj=0A=
+=0A=
+EXERES =3D $(OJT)\AfsAdmSvr.res=0A=
+=0A=
+=0A=
+$(EXERES):$$(@B).rc=0A=
+	$(RC) $**=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	AfsAdmSvr.res \=0A=
-	TaAfsAdmSvr.obj \=0A=
-	TaAfsAdmSvrCallback.obj \=0A=
-	TaAfsAdmSvrCell.obj \=0A=
-	TaAfsAdmSvrCommon.obj \=0A=
-	TaAfsAdmSvrDebug.obj \=0A=
-	TaAfsAdmSvrGeneral.obj \=0A=
-	TaAfsAdmSvrGroup.obj \=0A=
-	TaAfsAdmSvrMain.obj \=0A=
-	TaAfsAdmSvrProperties.obj \=0A=
-	TaAfsAdmSvrSearch.obj \=0A=
-	TaAfsAdmSvrUser.obj \=0A=
-	iTaAfsAdmSvr_s.obj=0A=
+	$(OJT)\TaAfsAdmSvr.obj \=0A=
+	$(OJT)\TaAfsAdmSvrCallback.obj \=0A=
+	$(OJT)\TaAfsAdmSvrCell.obj \=0A=
+	$(OJT)\TaAfsAdmSvrCommon.obj \=0A=
+	$(OJT)\TaAfsAdmSvrDebug.obj \=0A=
+	$(OJT)\TaAfsAdmSvrGeneral.obj \=0A=
+	$(OJT)\TaAfsAdmSvrGroup.obj \=0A=
+	$(OJT)\TaAfsAdmSvrMain.obj \=0A=
+	$(OJT)\TaAfsAdmSvrProperties.obj \=0A=
+	$(OJT)\TaAfsAdmSvrSearch.obj \=0A=
+	$(OJT)\TaAfsAdmSvrUser.obj \=0A=
+	$(OJT)\iTaAfsAdmSvr_s.obj=0A=
 =0A=
 VCLIBS =3D\=0A=
  	gdi32.lib \=0A=
@@ -84,7 +89,7 @@=0A=
 	$(DESTDIR)\lib\afs\AfsVosAdmin.lib \=0A=
 	$(DESTDIR)\lib\afs\AfsBosAdmin.lib \=0A=
 	$(DESTDIR)\lib\afs\AfsAdminUtil.lib \=0A=
-	$(DESTDIR)\lib\afs\AfsClientAdmin.lib=0A=
+	$(DESTDIR)\lib\afs\AfsClientAdmin.lib \=0A=
 =0A=
 =
#########################################################################=
###=0A=
 #=0A=
@@ -106,7 +111,8 @@=0A=
 .SUFFIXES: .h .idl=0A=
 =0A=
 .idl.h:=0A=
-	midl $(MIDL_FLAGS) $<=0A=
+	echo [$<]=0A=
+	midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) $<=0A=
 =0A=
 =
#########################################################################=
###=0A=
 =0A=
@@ -161,5 +167,14 @@=0A=
 # Dependencies=0A=
 #=0A=
 =0A=
-AfsAdmSvr.res : AfsAdmSvr.rc AFS_component_version_number.h=0A=
+$(OJT)\AfsAdmSvr.res : AFS_component_version_number.h=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\..\afsapplib=0A=
+	cd ..\afsapplib=0A=
+	nmake /nologo /f ntmakefile mkdir=0A=
+	cd ..\afsadmsvr=0A=
+	-mkdir $(OJT)\..\afsclass=0A=
+	cd ..\afsclass=0A=
+	nmake /nologo /f ntmakefile mkdir=0A=
+	cd ..\afsadmsvr=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsapplib/NTMakefile =
upd/src/WINNT/afsapplib/NTMakefile=0A=
--- bas/src/WINNT/afsapplib/NTMakefile	2002-11-26 19:22:40.000000000 =
-0800=0A=
+++ upd/src/WINNT/afsapplib/NTMakefile	2003-03-10 16:20:06.000000000 =
-0800=0A=
@@ -43,34 +43,34 @@=0A=
 	$(INCFILEDIR)\subclass.h=0A=
 =0A=
 DLLOBJS =3D \=0A=
-	afsapplib_stub.res \=0A=
-	afsapplib.obj \=0A=
-	al_admsvr.obj \=0A=
-	al_browse.obj \=0A=
-	al_browseset.obj \=0A=
-	al_cover.obj \=0A=
-	al_creds.obj \=0A=
-	al_dynlink.obj \=0A=
-	al_error.obj \=0A=
-	al_help.obj \=0A=
-	al_misc.obj \=0A=
-	al_progress.obj \=0A=
-	al_pump.obj \=0A=
-	al_task.obj \=0A=
-	al_wizard.obj \=0A=
-	checklist.obj \=0A=
-	ctl_date.obj \=0A=
-	ctl_elapsed.obj \=0A=
-	ctl_sockaddr.obj \=0A=
-	ctl_spinner.obj \=0A=
-	ctl_time.obj \=0A=
-	dialog.obj \=0A=
-	fastlist.obj \=0A=
-	hashlist.obj \=0A=
-	regexp.obj \=0A=
-	resize.obj \=0A=
-	settings.obj \=0A=
-	subclass.obj=0A=
+	$(OJT)\afsapplib_stub.res \=0A=
+	$(OJT)\afsapplib.obj \=0A=
+	$(OJT)\al_admsvr.obj \=0A=
+	$(OJT)\al_browse.obj \=0A=
+	$(OJT)\al_browseset.obj \=0A=
+	$(OJT)\al_cover.obj \=0A=
+	$(OJT)\al_creds.obj \=0A=
+	$(OJT)\al_dynlink.obj \=0A=
+	$(OJT)\al_error.obj \=0A=
+	$(OJT)\al_help.obj \=0A=
+	$(OJT)\al_misc.obj \=0A=
+	$(OJT)\al_progress.obj \=0A=
+	$(OJT)\al_pump.obj \=0A=
+	$(OJT)\al_task.obj \=0A=
+	$(OJT)\al_wizard.obj \=0A=
+	$(OJT)\checklist.obj \=0A=
+	$(OJT)\ctl_date.obj \=0A=
+	$(OJT)\ctl_elapsed.obj \=0A=
+	$(OJT)\ctl_sockaddr.obj \=0A=
+	$(OJT)\ctl_spinner.obj \=0A=
+	$(OJT)\ctl_time.obj \=0A=
+	$(OJT)\dialog.obj \=0A=
+	$(OJT)\fastlist.obj \=0A=
+	$(OJT)\hashlist.obj \=0A=
+	$(OJT)\regexp.obj \=0A=
+	$(OJT)\resize.obj \=0A=
+	$(OJT)\settings.obj \=0A=
+	$(OJT)\subclass.obj=0A=
 =0A=
 VCLIBS =3D\=0A=
 	comctl32.lib \=0A=
@@ -132,5 +132,11 @@=0A=
 # Dependencies=0A=
 #=0A=
 =0A=
-AfsAppLib_stub.res : AfsAppLib_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\AfsAppLib_stub.res : AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afsapplib/hashlist.cpp upd/src/WINNT/afsapplib/hashlist.cpp=0A=
--- bas/src/WINNT/afsapplib/hashlist.cpp	2000-11-04 02:01:24.000000000 =
-0800=0A=
+++ upd/src/WINNT/afsapplib/hashlist.cpp	2003-03-10 16:20:06.000000000 =
-0800=0A=
@@ -13,6 +13,7 @@=0A=
 }=0A=
 =0A=
 #include <WINNT/TaLocale.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 =0A=
 /*=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afsapplib/lang/NTMakefile =
upd/src/WINNT/afsapplib/lang/NTMakefile=0A=
--- bas/src/WINNT/afsapplib/lang/NTMakefile	2000-11-04 =
02:01:26.000000000 -0800=0A=
+++ upd/src/WINNT/afsapplib/lang/NTMakefile	2003-03-10 =
16:20:06.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afsapplib.rc=0A=
 =0A=
-RESFILE =3D afsapplib_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afsapplib_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	@if exist *.res del *.res=0A=
+	@if exist $(OJT)\*.res del $(OJT)\*.res=0A=
 	@if exist RC*. del RC*.=0A=
 	@if exist RD*. del RD*.=0A=
 =0A=
@@ -60,3 +60,4 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afsapplib/subclass.cpp upd/src/WINNT/afsapplib/subclass.cpp=0A=
--- bas/src/WINNT/afsapplib/subclass.cpp	2000-11-04 02:01:26.000000000 =
-0800=0A=
+++ upd/src/WINNT/afsapplib/subclass.cpp	2003-03-10 16:20:06.000000000 =
-0800=0A=
@@ -14,6 +14,7 @@=0A=
 =0A=
 #include <windows.h>=0A=
 #include <WINNT/subclass.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 =0A=
 /*=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afsapplib/test/NTMakefile =
upd/src/WINNT/afsapplib/test/NTMakefile=0A=
--- bas/src/WINNT/afsapplib/test/NTMakefile	2000-11-04 =
02:01:28.000000000 -0800=0A=
+++ upd/src/WINNT/afsapplib/test/NTMakefile	2003-03-10 =
16:20:06.000000000 -0800=0A=
@@ -26,8 +26,8 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\WizTest.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	wiztest.res \=0A=
-	wiztest.obj=0A=
+	$(OJT)\wiztest.res \=0A=
+	$(OJT)\wiztest.obj=0A=
 =0A=
 EXELIBS =3D \=0A=
 	$(DESTDIR)\lib\afs\TaAfsAppLib.lib \=0A=
@@ -41,3 +41,6 @@=0A=
 =0A=
 test : $(EXEFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsclass/NTMakefile =
upd/src/WINNT/afsclass/NTMakefile=0A=
--- bas/src/WINNT/afsclass/NTMakefile	2001-09-10 13:54:20.000000000 -0700=0A=
+++ upd/src/WINNT/afsclass/NTMakefile	2003-03-10 16:20:06.000000000 -0800=0A=
@@ -16,20 +16,20 @@=0A=
 =
#########################################################################=
###=0A=
 =0A=
 LIBOBJS =3D \=0A=
-	c_debug.obj  \=0A=
-	c_ident.obj  \=0A=
-	c_identlist.obj  \=0A=
-	c_cell.obj   \=0A=
-	c_svr.obj    \=0A=
-	c_svc.obj    \=0A=
-	c_agg.obj    \=0A=
-	c_set.obj    \=0A=
-	c_usr.obj    \=0A=
-	c_grp.obj    \=0A=
-	c_notify.obj \=0A=
-	afsclassfn.obj \=0A=
-	internal.obj \=0A=
-	worker.obj=0A=
+	$(OJT)\c_debug.obj  \=0A=
+	$(OJT)\c_ident.obj  \=0A=
+	$(OJT)\c_identlist.obj  \=0A=
+	$(OJT)\c_cell.obj   \=0A=
+	$(OJT)\c_svr.obj    \=0A=
+	$(OJT)\c_svc.obj    \=0A=
+	$(OJT)\c_agg.obj    \=0A=
+	$(OJT)\c_set.obj    \=0A=
+	$(OJT)\c_usr.obj    \=0A=
+	$(OJT)\c_grp.obj    \=0A=
+	$(OJT)\c_notify.obj \=0A=
+	$(OJT)\afsclassfn.obj \=0A=
+	$(OJT)\internal.obj \=0A=
+	$(OJT)\worker.obj=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\winnt\afsclass.h \=0A=
@@ -63,3 +63,6 @@=0A=
 =0A=
 clean::=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/NTMakefile =
upd/src/WINNT/afsd/NTMakefile=0A=
--- bas/src/WINNT/afsd/NTMakefile	2002-01-08 12:44:38.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/NTMakefile	2003-03-10 17:29:26.000000000 -0800=0A=
@@ -27,6 +27,7 @@=0A=
 	$(INCFILEDIR)\cm_scache.h \=0A=
 	$(INCFILEDIR)\cm_server.h \=0A=
 	$(INCFILEDIR)\cm_user.h \=0A=
+	$(INCFILEDIR)\cm_dns.h \=0A=
 	$(INCFILEDIR)\cm_utils.h \=0A=
 	$(INCFILEDIR)\fs_utils.h \=0A=
 	$(INCFILEDIR)\krb.h \=0A=
@@ -39,46 +40,63 @@=0A=
 	$(INCFILEDIR)\afsmsg95.h \=0A=
 	$(INCFILEDIR)\afsrpc.h \=0A=
 	$(INCFILEDIR)\cm_dns.h \=0A=
+!IFDEF OSICRASH=0A=
+	$(INCFILEDIR)\afsdcrash.h \=0A=
+!ENDIF=0A=
 	$(INCFILEDIR)\cm_dns_private.h=0A=
 =0A=
 IDLFILES =3D\=0A=
-	afsrpc.h afsrpc_c.obj=0A=
+	afsrpc.h $(OJT)\afsrpc_c.c=0A=
+=0A=
+CONFOBJS=3D$(OJT)\cm_config.obj \=0A=
+         $(OJT)\cm_dns.obj=0A=
+=0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
+=0A=
+RX=3D ..\..\rx=0A=
+=0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
+=0A=
+$(IDLFILES):afsrpc.idl=0A=
+	midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) /app_config $?=0A=
 =0A=
-CONFOBJS=3Dcm_config.obj \=0A=
-         cm_dns.obj=0A=
 =0A=
 AFSDOBJS=3D\=0A=
-	afsd_init.obj \=0A=
-	cm_cell.obj \=0A=
-	cm_server.obj \=0A=
-	cm_volume.obj \=0A=
-	cm_conn.obj \=0A=
-	cm_user.obj \=0A=
-	cm_buf.obj \=0A=
-	cm_scache.obj \=0A=
-	cm_dcache.obj \=0A=
-	cm_access.obj \=0A=
-	cm_callback.obj \=0A=
-	cm_vnodeops.obj \=0A=
-	cm_dir.obj \=0A=
-	cm_utils.obj \=0A=
-	smb.obj \=0A=
-	smb3.obj \=0A=
-	smb_ioctl.obj \=0A=
-	cm_ioctl.obj \=0A=
-	cm_daemon.obj \=0A=
-	cm_aclent.obj \=0A=
-	cm_dnlc.obj \=0A=
-	cm_rpc.obj \=0A=
-	afsrpc_s.obj \=0A=
-     cm_freelance.obj=0A=
+	$(OJT)\afsd_init.obj \=0A=
+	$(OJT)\cm_cell.obj \=0A=
+	$(OJT)\cm_server.obj \=0A=
+	$(OJT)\cm_volume.obj \=0A=
+	$(OJT)\cm_conn.obj \=0A=
+	$(OJT)\cm_user.obj \=0A=
+	$(OJT)\cm_buf.obj \=0A=
+	$(OJT)\cm_scache.obj \=0A=
+	$(OJT)\cm_dcache.obj \=0A=
+	$(OJT)\cm_access.obj \=0A=
+	$(OJT)\cm_callback.obj \=0A=
+	$(OJT)\cm_vnodeops.obj \=0A=
+	$(OJT)\cm_dir.obj \=0A=
+	$(OJT)\cm_utils.obj \=0A=
+	$(OJT)\smb.obj \=0A=
+	$(OJT)\smb3.obj \=0A=
+	$(OJT)\smb_ioctl.obj \=0A=
+	$(OJT)\cm_ioctl.obj \=0A=
+	$(OJT)\cm_daemon.obj \=0A=
+	$(OJT)\cm_aclent.obj \=0A=
+	$(OJT)\cm_dnlc.obj \=0A=
+	$(OJT)\cm_rpc.obj \=0A=
+	$(OJT)\afsrpc_s.obj \=0A=
+!IFDEF OSICRASH=0A=
+	$(OJT)\afsdcrash.obj \=0A=
+!ENDIF=0A=
+     $(OJT)\cm_freelance.obj=0A=
 =0A=
-cm_conn.obj: cm_conn.c=0A=
+$(OJT)\cm_conn.obj: cm_conn.c=0A=
 	$(C2OBJ) -DAFS_PTHREAD_ENV $**=0A=
 =0A=
-FSOBJS=3Dfs.obj fs_utils.obj=0A=
+FSOBJS=3D$(OJT)\fs.obj $(OJT)\fs_utils.obj=0A=
 =0A=
-SLOBJS=3Dsymlink.obj fs_utils.obj=0A=
+SLOBJS=3D$(OJT)\symlink.obj $(OJT)\fs_utils.obj=0A=
 =0A=
 ILIBDIR =3D $(DESTDIR)\lib=0A=
 =0A=
@@ -87,7 +105,8 @@=0A=
 # Flags for linking LOGON DLL'S=0A=
 #=0A=
 =0A=
-LOGONLINKFLAGS =3D -entry:DllEntryPoint=0A=
+LOGONLINKFLAGS =3D -entry:DllEntryPoint /NODEFAULTLIB:msvcr70d.lib =
/NODEFAULTLIB:msvcrtd.lib  msvcrt.lib=0A=
+=0A=
 =0A=
 =
#########################################################################=
###=0A=
 #=0A=
@@ -103,7 +122,7 @@=0A=
 .SUFFIXES: .h .idl=0A=
 =0A=
 .idl.h:=0A=
-	midl $(MIDL_FLAGS) $<=0A=
+	midl $(MIDL_FLAGS) $(AFSDEV_AUXMIDLFLAGS) $<=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # libafsconf.dll=0A=
@@ -111,7 +130,7 @@=0A=
 CONF_DLLFILE =3D $(DESTDIR)\root.client\usr\vice\etc\libafsconf.dll=0A=
 =0A=
 =0A=
-$(CONF_DLLFILE): $(CONFOBJS) libafsconf.res=0A=
+$(CONF_DLLFILE): $(CONFOBJS) $(OJT)\libafsconf.res=0A=
 	$(DLLGUILINK) -def:libafsconf.def=0A=
 	$(DLLPREP)=0A=
 	$(COPY) $*.lib $(ILIBDIR)=0A=
@@ -123,8 +142,8 @@=0A=
 LOGON_DLLFILE =3D $(DESTDIR)\root.client\usr\vice\etc\afslogon.dll=0A=
 =0A=
 LOGON_DLLOBJS =3D\=0A=
-	afslogon.obj \=0A=
-	afslogon.res=0A=
+	$(OJT)\afslogon.obj \=0A=
+	$(OJT)\afslogon.res=0A=
 =0A=
 LOGON_DLLLIBS =3D\=0A=
 	$(DESTDIR)\lib\afsauthent.lib \=0A=
@@ -142,8 +161,8 @@=0A=
 LOG95_DLLFILE =3D $(DESTDIR)\root.client\usr\vice\etc\afslog95.dll=0A=
 =0A=
 LOG95_DLLOBJS =3D\=0A=
-	afslog95.obj \=0A=
-	afslog95.res=0A=
+	$(OJT)\afslog95.obj \=0A=
+	$(OJT)\afslog95.res=0A=
 =0A=
 LOG95_DLLLIBS =3D\=0A=
 	$(DESTDIR)\lib\afsauthent.lib \=0A=
@@ -158,9 +177,9 @@=0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
 =0A=
-install_objs: cm_dns.obj cm_config.obj=0A=
-     $(COPY) cm_dns.obj $(DESTDIR)\lib=0A=
-     $(COPY) cm_config.obj $(DESTDIR)\lib=0A=
+install_objs: $(OJT)\cm_dns.obj $(OJT)\cm_config.obj=0A=
+     $(COPY) $(OJT)\cm_dns.obj $(DESTDIR)\lib=0A=
+     $(COPY) $(OJT)\cm_config.obj $(DESTDIR)\lib=0A=
 =0A=
 install_headers: $(IDLFILES) $(INCFILES)=0A=
 =0A=
@@ -214,19 +233,18 @@=0A=
 	$(DESTDIR)\lib\libosi.lib \=0A=
 	$(DESTDIR)\lib\libafsconf.lib=0A=
 =0A=
-=0A=
 # klog.exe=0A=
-$(EXEDIR)\klog.exe: cklog.obj klog.res=0A=
+$(EXEDIR)\klog.exe: $(OJT)\cklog.obj $(OJT)\klog.res=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
 # tokens.exe=0A=
-$(EXEDIR)\tokens.exe: ctokens.obj tokens.res=0A=
+$(EXEDIR)\tokens.exe: $(OJT)\ctokens.obj $(OJT)\tokens.res=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
 # unlog.exe=0A=
-$(EXEDIR)\unlog.exe: cunlog.obj unlog.res=0A=
+$(EXEDIR)\unlog.exe: $(OJT)\cunlog.obj $(OJT)\unlog.res=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
@@ -244,30 +262,31 @@=0A=
 	$(DESTDIR)\lib\afs\mtafsint.lib \=0A=
 	$(DESTDIR)\lib\libafsconf.lib \=0A=
 	$(DESTDIR)\lib\afs\afsreg.lib \=0A=
+	$(DESTDIR)\lib\libosi.lib \=0A=
 	rpcrt4.lib \=0A=
 	user32.lib=0A=
 =0A=
-$(AFSD_EXEFILE): afsd.obj $(AFSDOBJS) afsd.res=0A=
+$(AFSD_EXEFILE): $(OJT)\afsd.obj $(AFSDOBJS) $(OJT)\afsd.res  $(RXOBJS)=0A=
 	$(EXEGUILINK) $(AFSD_EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
 # afsd_service.exe=0A=
-$(EXEDIR)\afsd_service.exe: afsd_service.obj $(AFSDOBJS) =
afsd_service.res=0A=
+$(EXEDIR)\afsd_service.exe: $(OJT)\afsd_service.obj $(AFSDOBJS) =
$(OJT)\afsd_service.res  $(RXOBJS)=0A=
 	$(EXECONLINK) $(AFSD_EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
 # fs.exe=0A=
-$(EXEDIR)\fs.exe: $(FSOBJS) fs.res=0A=
+$(EXEDIR)\fs.exe: $(FSOBJS) $(OJT)\fs.res=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
 # symlink.exe=0A=
-$(EXEDIR)\symlink.exe: $(SLOBJS) symlink.res=0A=
+$(EXEDIR)\symlink.exe: $(SLOBJS) $(OJT)\symlink.res=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 	$(EXEPREP)=0A=
 =0A=
 # afsshare.exe=0A=
-$(EXEDIR)\afsshare.exe: afsshare.obj afsshare.res=0A=
+$(EXEDIR)\afsshare.exe: $(OJT)\afsshare.obj $(OJT)\afsshare.res=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP)=0A=
 =0A=
@@ -281,10 +300,10 @@=0A=
 KAUTH =3D ..\..\kauth=0A=
 =0A=
 KPASSWD_OBJS =3D\=0A=
-	kpasswd.obj \=0A=
-	kkids.obj \=0A=
-	kautils.obj \=0A=
-	$(KAUTH)\kpasswd.res=0A=
+	$(OJT)\kpasswd.obj \=0A=
+	$(OJT)\kkids.obj \=0A=
+	$(OJT)\kautils.obj \=0A=
+	$(OJT)\$(KAUTH)\kpasswd.res=0A=
 =0A=
 KPASSWD_LIBS =3D\=0A=
 	$(DESTDIR)\lib\afsauthent.lib \=0A=
@@ -293,13 +312,13 @@=0A=
 	$(DESTDIR)\lib\afsdes.lib \=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib=0A=
 =0A=
-kpasswd.obj: $(KAUTH)/kpasswd.c=0A=
+$(OJT)\kpasswd.obj: $(KAUTH)/kpasswd.c=0A=
 	$(C2OBJ) -DAFS_PTHREAD_ENV $**=0A=
 =0A=
-kkids.obj: $(KAUTH)/kkids.c=0A=
+$(OJT)\kkids.obj: $(KAUTH)/kkids.c=0A=
 	$(C2OBJ) -DAFS_PTHREAD_ENV $**=0A=
 =0A=
-kautils.obj: $(KAUTH)/kautils.c=0A=
+$(OJT)\kautils.obj: $(KAUTH)/kautils.c=0A=
 	$(C2OBJ) -DAFS_PTHREAD_ENV $**=0A=
 =0A=
 $(DESTDIR)\bin\kpasswd.exe: $(KPASSWD_OBJS) $(KPASSWD_LIBS)=0A=
@@ -311,28 +330,33 @@=0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
 =0A=
-afsshare.res: afsshare.rc AFS_component_version_number.h=0A=
+$(OJT)\afsshare.res: AFS_component_version_number.h=0A=
 =0A=
-fs.res: fs.rc AFS_component_version_number.h=0A=
+$(OJT)\fs.res: AFS_component_version_number.h=0A=
 =0A=
-symlink.res: symlink.rc AFS_component_version_number.h=0A=
+$(OJT)\symlink.res: AFS_component_version_number.h=0A=
 =0A=
-klog.res: klog.rc AFS_component_version_number.h=0A=
+$(OJT)\klog.res: AFS_component_version_number.h=0A=
 =0A=
-tokens.res: tokens.rc AFS_component_version_number.h=0A=
+$(OJT)\tokens.res: AFS_component_version_number.h=0A=
 =0A=
-unlog.res: unlog.rc AFS_component_version_number.h=0A=
+$(OJT)\unlog.res: AFS_component_version_number.h=0A=
 =0A=
-afsd_service.res: afsd_service.rc AFS_component_version_number.h=0A=
+$(OJT)\afsd_service.res: AFS_component_version_number.h=0A=
 =0A=
-afslogon.res: afslogon.rc AFS_component_version_number.h=0A=
+$(OJT)\afslogon.res: AFS_component_version_number.h=0A=
 =0A=
-afslog95.res: afslog95.rc AFS_component_version_number.h=0A=
+$(OJT)\afslog95.res: AFS_component_version_number.h=0A=
 =0A=
-libafsconf.res: libafsconf.rc AFS_component_version_number.h=0A=
+$(OJT)\libafsconf.res: AFS_component_version_number.h=0A=
 =0A=
 clean::=0A=
-	$(DEL) *.res=0A=
+	$(DEL) $(OJT)\*.res=0A=
 	$(DEL) afsrpc.h=0A=
 	$(DEL) afsrpc_?.*=0A=
-	$(DEL) $(EXELIBS)=0A=
+	$(DEL) $(CONF_DLLFILE)=0A=
+	$(DEL) $(LOGON_DLLFILE)=0A=
+	$(DEL) $(LOG95_DLLFILE)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/afsd.c =
upd/src/WINNT/afsd/afsd.c=0A=
--- bas/src/WINNT/afsd/afsd.c	2000-11-04 02:01:34.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/afsd.c	2003-03-10 16:20:06.000000000 -0800=0A=
@@ -20,6 +20,7 @@=0A=
 #include <stdio.h>=0A=
 #include <stdlib.h>=0A=
 #include <winsock2.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 =0A=
 HANDLE main_inst;=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/afsd_service.c =
upd/src/WINNT/afsd/afsd_service.c=0A=
--- bas/src/WINNT/afsd/afsd_service.c	2002-11-04 12:43:50.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/afsd_service.c	2003-03-10 16:20:06.000000000 -0800=0A=
@@ -18,6 +18,7 @@=0A=
 #include <stdio.h>=0A=
 #include <stdlib.h>=0A=
 #include <winsock2.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 #include <osi.h>=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/afslogon.c =
upd/src/WINNT/afsd/afslogon.c=0A=
--- bas/src/WINNT/afsd/afslogon.c	2002-01-08 12:44:38.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/afslogon.c	2003-03-10 16:20:06.000000000 -0800=0A=
@@ -23,6 +23,7 @@=0A=
 #include <sys/stat.h>=0A=
 #include <sys/types.h>=0A=
 #include <fcntl.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 DWORD LogonOption,TraceOption;=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/cm_buf.c =
upd/src/WINNT/afsd/cm_buf.c=0A=
--- bas/src/WINNT/afsd/cm_buf.c	2001-04-30 00:48:02.000000000 -0700=0A=
+++ upd/src/WINNT/afsd/cm_buf.c	2003-03-10 16:20:06.000000000 -0800=0A=
@@ -19,6 +19,7 @@=0A=
 #include <malloc.h>=0A=
 #include <stdio.h>=0A=
 #include <assert.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 #include "afsd.h"=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/cm_callback.c =
upd/src/WINNT/afsd/cm_callback.c=0A=
--- bas/src/WINNT/afsd/cm_callback.c	2002-06-11 17:33:40.000000000 -0700=0A=
+++ upd/src/WINNT/afsd/cm_callback.c	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -856,3 +856,11 @@=0A=
         }=0A=
         lock_ReleaseWrite(&cm_scacheLock);=0A=
 }=0A=
+=0A=
+/* debug interface: not implemented */=0A=
+int SRXAFSCB_GetCellByNum(struct rx_call *a_call, afs_int32 a_cellnum,=0A=
+                          char **a_name, serverList *a_hosts)=0A=
+{=0A=
+    /* XXXX */=0A=
+    return RXGEN_OPCODE;=0A=
+}=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/cm_ioctl.c =
upd/src/WINNT/afsd/cm_ioctl.c=0A=
--- bas/src/WINNT/afsd/cm_ioctl.c	2001-11-20 22:44:28.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/cm_ioctl.c	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -1286,6 +1286,35 @@=0A=
 	return code;=0A=
 }=0A=
 =0A=
+long cm_IoctlIslink(struct smb_ioctl *ioctlp, struct cm_user *userp)=0A=
+{/*CHECK FOR VALID SYMLINK*/=0A=
+	long code;=0A=
+	cm_scache_t *dscp;=0A=
+	cm_scache_t *scp;=0A=
+	char *cp;=0A=
+	cm_space_t *spacep;=0A=
+	cm_scache_t *newRootScp;=0A=
+	cm_req_t req;=0A=
+=0A=
+	cm_InitReq(&req);=0A=
+=0A=
+	code =3D cm_ParseIoctlPath(ioctlp, userp, &req, &dscp);=0A=
+	if (code) return code;=0A=
+=0A=
+	cp =3D ioctlp->inDatap;=0A=
+	osi_LogEvent("cm_IoctlListlink",NULL," name[%s]",cp);=0A=
+=0A=
+	code =3D cm_Lookup(dscp, cp, CM_FLAG_NOMOUNTCHASE, userp, &req, &scp);=0A=
+	cm_ReleaseSCache(dscp);=0A=
+	if (code) return code;=0A=
+=0A=
+	/* Check that it's a real symlink */=0A=
+	if (scp->fileType !=3D CM_SCACHETYPE_SYMLINK)=0A=
+		code =3D CM_ERROR_INVAL;=0A=
+	cm_ReleaseSCache(scp);=0A=
+	return code;=0A=
+}=0A=
+=0A=
 long cm_IoctlDeletelink(struct smb_ioctl *ioctlp, struct cm_user *userp)=0A=
 {=0A=
 	long code;=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/cm_ioctl.h =
upd/src/WINNT/afsd/cm_ioctl.h=0A=
--- bas/src/WINNT/afsd/cm_ioctl.h	2001-10-05 15:40:48.000000000 -0700=0A=
+++ upd/src/WINNT/afsd/cm_ioctl.h	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -113,6 +113,8 @@=0A=
 =0A=
 extern long cm_IoctlSymlink(smb_ioctl_t *ioctlp, cm_user_t *userp);=0A=
 =0A=
+extern long cm_IoctlIslink(smb_ioctl_t *ioctlp, cm_user_t *userp);=0A=
+=0A=
 extern long cm_IoctlListlink(smb_ioctl_t *ioctlp, cm_user_t *userp);=0A=
 =0A=
 extern long cm_IoctlDeletelink(smb_ioctl_t *ioctlp, cm_user_t *userp);=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/fs_utils.c =
upd/src/WINNT/afsd/fs_utils.c=0A=
--- bas/src/WINNT/afsd/fs_utils.c	2000-11-04 02:01:42.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/fs_utils.c	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -7,8 +7,8 @@=0A=
  * directory or online at http://www.openafs.org/dl/license10.html=0A=
  */=0A=
 =0A=
-#include <afs/param.h>=0A=
-#include <afs/stds.h>=0A=
+#include <afs\param.h>=0A=
+#include <afs\stds.h>=0A=
 =0A=
 #include <windows.h>=0A=
 #include <stdlib.h>=0A=
@@ -24,7 +24,7 @@=0A=
 #include "afsd.h"=0A=
 #include "smb.h"=0A=
 #include "cmd.h"=0A=
-#include "fs_utils.h"=0A=
+#include <fs_utils.h>=0A=
 =0A=
 =0A=
 long fs_ExtractDriveLetter(char *inPathp, char *outPathp)=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/fs_utils.h =
upd/src/WINNT/afsd/fs_utils.h=0A=
--- bas/src/WINNT/afsd/fs_utils.h	2001-04-30 00:48:08.000000000 -0700=0A=
+++ upd/src/WINNT/afsd/fs_utils.h	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -25,9 +25,11 @@=0A=
 /* Fake error code since NT errno.h doesn't define it */=0A=
 #include <afs/errmap_nt.h>=0A=
 =0A=
-extern char *hostutil_GetNameByINet(long addr);=0A=
+//extern char *hostutil_GetNameByINet(long addr);=0A=
 =0A=
+#ifndef hostutil_GetHostByName=0A=
 extern struct hostent *hostutil_GetHostByName(char *namep);=0A=
+#endif=0A=
 =0A=
 extern long util_GetInt32(char *stringp, long *valuep);=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/smb.c =
upd/src/WINNT/afsd/smb.c=0A=
--- bas/src/WINNT/afsd/smb.c	2002-12-10 08:39:48.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/smb.c	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -32,6 +32,7 @@=0A=
 #include "afsd.h"=0A=
 =0A=
 #include "smb.h"=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 /* These characters are illegal in Windows filenames */=0A=
 static char *illegalChars =3D "\\/:*?\"<>|";=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/smb_iocons.h =
upd/src/WINNT/afsd/smb_iocons.h=0A=
--- bas/src/WINNT/afsd/smb_iocons.h	2001-04-30 00:48:12.000000000 -0700=0A=
+++ upd/src/WINNT/afsd/smb_iocons.h	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -82,7 +82,7 @@=0A=
 #define VIOCNEWGETTOK			0x1f=0A=
 #define VIOCDELTOK			0x20=0A=
 #define VIOCDELALLTOK			0x21=0A=
-=0A=
+#define VIOC_ISSYMLINK			0x22=0A=
 #define VIOC_SYMLINK			0x23=0A=
 #define VIOC_LISTSYMLINK		0x24=0A=
 #define VIOC_DELSYMLINK			0x25=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsd/smb_ioctl.c =
upd/src/WINNT/afsd/smb_ioctl.c=0A=
--- bas/src/WINNT/afsd/smb_ioctl.c	2001-11-10 14:31:10.000000000 -0800=0A=
+++ upd/src/WINNT/afsd/smb_ioctl.c	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -69,6 +69,7 @@=0A=
 	smb_ioctlProcsp[VIOC_MAKESUBMOUNT] =3D cm_IoctlMakeSubmount;=0A=
 	smb_ioctlProcsp[VIOC_GETRXKCRYPT] =3D cm_IoctlGetRxkcrypt;=0A=
 	smb_ioctlProcsp[VIOC_SETRXKCRYPT] =3D cm_IoctlSetRxkcrypt;=0A=
+	smb_ioctlProcsp[VIOC_ISSYMLINK] =3D cm_IoctlIslink;=0A=
 #ifdef DJGPP=0A=
 	smb_ioctlProcsp[VIOC_SHUTDOWN] =3D cm_IoctlShutdown;=0A=
 #endif=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afslegal/NTMakefile =
upd/src/WINNT/afslegal/NTMakefile=0A=
--- bas/src/WINNT/afslegal/NTMakefile	2000-11-04 02:01:46.000000000 -0800=0A=
+++ upd/src/WINNT/afslegal/NTMakefile	2003-03-10 16:20:08.000000000 -0800=0A=
@@ -18,8 +18,8 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\afslegal.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	afslegal_stub.res \=0A=
-	afslegal.obj=0A=
+	$(OJT)\afslegal_stub.res \=0A=
+	$(OJT)\afslegal.obj=0A=
 =0A=
 EXELIBS =3D \=0A=
 	$(DESTDIR)\lib\afs\talocale.lib \=0A=
@@ -40,4 +40,11 @@=0A=
 =
#########################################################################=
###=0A=
 # Dependencies=0A=
 =0A=
-afslegal_stub.res : afslegal_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\afslegal_stub.res : AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afslegal/lang/NTMakefile =
upd/src/WINNT/afslegal/lang/NTMakefile=0A=
--- bas/src/WINNT/afslegal/lang/NTMakefile	2000-11-04 02:01:46.000000000 =
-0800=0A=
+++ upd/src/WINNT/afslegal/lang/NTMakefile	2003-03-10 16:20:08.000000000 =
-0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afslegal.rc=0A=
 =0A=
-RESFILE =3D afslegal_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afslegal_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -60,3 +60,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsreg/NTMakefile =
upd/src/WINNT/afsreg/NTMakefile=0A=
--- bas/src/WINNT/afsreg/NTMakefile	2001-04-30 00:48:26.000000000 -0700=0A=
+++ upd/src/WINNT/afsreg/NTMakefile	2003-03-10 16:20:10.000000000 -0800=0A=
@@ -11,8 +11,10 @@=0A=
 	$(DESTDIR)\include\WINNT\afsreg.h \=0A=
 	$(DESTDIR)\include\WINNT\syscfg.h \=0A=
 	$(DESTDIR)\include\WINNT\afssw.h \=0A=
+	$(DESTDIR)\include\WINNT\osi_malloc.h \=0A=
 	$(DESTDIR)\include\WINNT\vptab.h=0A=
 =0A=
+=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsreg.lib=0A=
 =0A=
 LIBOBJS =3D \=0A=
@@ -16,10 +18,10 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsreg.lib=0A=
 =0A=
 LIBOBJS =3D \=0A=
-	afsreg.obj \=0A=
-	syscfg.obj \=0A=
-	afssw.obj \=0A=
-	vptab.obj=0A=
+	$(OJT)\afsreg.obj \=0A=
+	$(OJT)\syscfg.obj \=0A=
+	$(OJT)\afssw.obj \=0A=
+	$(OJT)\vptab.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsreg/osi_malloc.h =
upd/src/WINNT/afsreg/osi_malloc.h=0A=
--- bas/src/WINNT/afsreg/osi_malloc.h	1969-12-31 16:00:00.000000000 -0800=0A=
+++ upd/src/WINNT/afsreg/osi_malloc.h	2003-03-10 16:20:10.000000000 -0800=0A=
@@ -0,0 +1,13 @@=0A=
+#ifndef _OSI_ALLOC_123=0A=
+#define _OSI_ALLOC_123=0A=
+#include <malloc.h>=0A=
+/* AFS_NT40_ENV IS ALSO defined for win9x*/=0A=
+#if defined (_DEBUG) && defined (_CRTDBG_MAP_ALLOC)	&& =
defined(AFS_NT40_ENV)=0A=
+#include <crtdbg.h>=0A=
+#define GlobalAlloc(f,s) ((f=3D=3DGMEM_FIXED) ? malloc(s):calloc(1,s))=0A=
+#define GlobalFree(s) free(s)=0A=
+#else=0A=
+#define GlobalAlloc(f,s)  =
HeapAlloc(GetProcessHeap(),((f=3D=3DGMEM_FIXED)?0:HEAP_ZERO_MEMORY),s)=0A=
+#define GlobalFree(s)     HeapFree(GetProcessHeap(),0,s)=0A=
+#endif=0A=
+#endif=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afsreg/test/NTMakefile upd/src/WINNT/afsreg/test/NTMakefile=0A=
--- bas/src/WINNT/afsreg/test/NTMakefile	2000-11-04 02:01:48.000000000 =
-0800=0A=
+++ upd/src/WINNT/afsreg/test/NTMakefile	2003-03-10 16:20:10.000000000 =
-0800=0A=
@@ -7,12 +7,12 @@=0A=
 =0A=
 !INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)=0A=
 =0A=
-test tests: getifinfo.exe regman.exe dupkey.exe=0A=
+test tests: $(OJT)\getifinfo.exe $(OJT)\regman.exe $(OJT)\dupkey.exe=0A=
 =0A=
-getifinfo.exe: getifinfo.obj $(DESTDIR)\lib\afs\afsreg.lib =0A=
+$(OJT)\getifinfo.exe: $(OJT)\getifinfo.obj =
$(DESTDIR)\lib\afs\afsreg.lib =0A=
 	$(EXECONLINK)=0A=
 =0A=
-dupkey.exe: dupkey.obj $(DESTDIR)\lib\afs\afsreg.lib=0A=
+$(OJT)\dupkey.exe: $(OJT)\dupkey.obj $(DESTDIR)\lib\afs\afsreg.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
 REGMAN_EXELIBS =3D\=0A=
@@ -21,5 +21,8 @@=0A=
 	$(DESTDIR)\lib\afs\afscom_err.lib \=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib=0A=
 =0A=
-regman.exe: regman.obj $(REGMAN_EXELIBS)=0A=
+$(OJT)\regman.exe: $(OJT)\regman.obj $(REGMAN_EXELIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afssvrcfg/NTMakefile =
upd/src/WINNT/afssvrcfg/NTMakefile=0A=
--- bas/src/WINNT/afssvrcfg/NTMakefile	2000-11-04 02:01:50.000000000 =
-0800=0A=
+++ upd/src/WINNT/afssvrcfg/NTMakefile	2003-03-10 16:20:10.000000000 =
-0800=0A=
@@ -16,36 +16,36 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\afssvrcfg.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-    char_conv.obj             \=0A=
-	admin_info_dlg.obj        \=0A=
-	cfg_utils.obj             \=0A=
-	create_partition_dlg.obj  \=0A=
-	file_server_page.obj      \=0A=
-	graphics.obj              \=0A=
-	info_page.obj             \=0A=
-	intro_page.obj            \=0A=
-	partitions_page.obj       \=0A=
-	partition_page.obj        \=0A=
-	replicatition_page.obj    \=0A=
-	services_page.obj         \=0A=
-	toolbox.obj               \=0A=
-	afscfg.obj                \=0A=
-	backup_server_page.obj    \=0A=
-	config_server_page.obj    \=0A=
-	db_server_page.obj        \=0A=
-	get_cur_config.obj        \=0A=
-	help.obj                  \=0A=
-	info2_page.obj            \=0A=
-	logfile.obj               \=0A=
-	partition_utils.obj       \=0A=
-	root_afs_page.obj         \=0A=
-	sys_control_page.obj      \=0A=
-	volume_utils.obj          \=0A=
-	salvage_dlg.obj			  \=0A=
-    get_pw_dlg.obj            \=0A=
-    salvage_results_dlg.obj   \=0A=
-    validation.obj            \=0A=
-	afscfg_stub.res=0A=
+    $(OJT)\char_conv.obj             \=0A=
+	$(OJT)\admin_info_dlg.obj        \=0A=
+	$(OJT)\cfg_utils.obj             \=0A=
+	$(OJT)\create_partition_dlg.obj  \=0A=
+	$(OJT)\file_server_page.obj      \=0A=
+	$(OJT)\graphics.obj              \=0A=
+	$(OJT)\info_page.obj             \=0A=
+	$(OJT)\intro_page.obj            \=0A=
+	$(OJT)\partitions_page.obj       \=0A=
+	$(OJT)\partition_page.obj        \=0A=
+	$(OJT)\replicatition_page.obj    \=0A=
+	$(OJT)\services_page.obj         \=0A=
+	$(OJT)\toolbox.obj               \=0A=
+	$(OJT)\afscfg.obj                \=0A=
+	$(OJT)\backup_server_page.obj    \=0A=
+	$(OJT)\config_server_page.obj    \=0A=
+	$(OJT)\db_server_page.obj        \=0A=
+	$(OJT)\get_cur_config.obj        \=0A=
+	$(OJT)\help.obj                  \=0A=
+	$(OJT)\info2_page.obj            \=0A=
+	$(OJT)\logfile.obj               \=0A=
+	$(OJT)\partition_utils.obj       \=0A=
+	$(OJT)\root_afs_page.obj         \=0A=
+	$(OJT)\sys_control_page.obj      \=0A=
+	$(OJT)\volume_utils.obj          \=0A=
+	$(OJT)\salvage_dlg.obj			  \=0A=
+    $(OJT)\get_pw_dlg.obj            \=0A=
+    $(OJT)\salvage_results_dlg.obj   \=0A=
+    $(OJT)\validation.obj            \=0A=
+	$(OJT)\afscfg_stub.res=0A=
 =0A=
 VCLIBS =3D\=0A=
 	comctl32.lib \=0A=
@@ -69,9 +69,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resource via RC=0A=
 =0A=
-afscfg_stub.res: afscfg_stub.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-=0A=
+$(OJT)\afscfg_stub.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -93,3 +91,9 @@=0A=
 =0A=
 clean::=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afssvrcfg/lang/NTMakefile =
upd/src/WINNT/afssvrcfg/lang/NTMakefile=0A=
--- bas/src/WINNT/afssvrcfg/lang/NTMakefile	2000-11-04 =
02:01:56.000000000 -0800=0A=
+++ upd/src/WINNT/afssvrcfg/lang/NTMakefile	2003-03-10 =
16:20:10.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afscfg.rc=0A=
 =0A=
-RESFILE =3D afscfg_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afscfg_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	@if exist *.res del *.res=0A=
+	@if exist $(OJT)\*.res del $(OJT)\*.res=0A=
 	@if exist RC*. del RC*.=0A=
 	@if exist RD*. del RD*.=0A=
 =0A=
@@ -60,3 +60,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afssvrcpa/NTMakefile =
upd/src/WINNT/afssvrcpa/NTMakefile=0A=
--- bas/src/WINNT/afssvrcpa/NTMakefile	2000-11-04 02:01:58.000000000 =
-0800=0A=
+++ upd/src/WINNT/afssvrcpa/NTMakefile	2003-03-10 16:20:10.000000000 =
-0800=0A=
@@ -15,9 +15,9 @@=0A=
 DLLFILE =3D $(DESTDIR)\root.server\usr\afs\bin\afsserver.cpl=0A=
 =0A=
 DLLOBJS =3D\=0A=
-	afssvrcpa_stub.res \=0A=
-	cpl_interface.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\cpl_interface.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\afssvrcpa_stub.res =0A=
 =0A=
 DLLLIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsreg.lib \=0A=
@@ -34,9 +34,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resource via RC=0A=
 =0A=
-afssvrcpa_stub.res: afssvrcpa_stub.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-=0A=
+$(OJT)\afssvrcpa_stub.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -58,3 +56,10 @@=0A=
 =0A=
 clean::=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
+=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afssvrcpa/lang/NTMakefile =
upd/src/WINNT/afssvrcpa/lang/NTMakefile=0A=
--- bas/src/WINNT/afssvrcpa/lang/NTMakefile	2000-11-04 =
02:02:00.000000000 -0800=0A=
+++ upd/src/WINNT/afssvrcpa/lang/NTMakefile	2003-03-10 =
16:20:10.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afssvrcpa.rc=0A=
 =0A=
-RESFILE =3D afssvrcpa_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afssvrcpa_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	@if exist *.res del *.res=0A=
+	@if exist $(OJT)\*.res del $(OJT)\*.res=0A=
 	@if exist RC*. del RC*.=0A=
 	@if exist RD*. del RD*.=0A=
 =0A=
@@ -60,3 +60,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afssvrmgr/NTMakefile =
upd/src/WINNT/afssvrmgr/NTMakefile=0A=
--- bas/src/WINNT/afssvrmgr/NTMakefile	2000-11-04 02:02:00.000000000 =
-0800=0A=
+++ upd/src/WINNT/afssvrmgr/NTMakefile	2003-03-10 16:20:10.000000000 =
-0800=0A=
@@ -26,67 +26,67 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\TaAfsServerManager.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	svrmgr_stub.res \=0A=
-	action.obj \=0A=
-	agg_col.obj \=0A=
-	agg_general.obj \=0A=
-	agg_prop.obj \=0A=
-	agg_tab.obj \=0A=
-	alert.obj \=0A=
-	cmdline.obj \=0A=
-	columns.obj \=0A=
-	command.obj \=0A=
-	creds.obj \=0A=
-	dispatch.obj \=0A=
-	dispguts.obj \=0A=
-	display.obj \=0A=
-	general.obj \=0A=
-	helpfunc.obj \=0A=
-	options.obj \=0A=
-	prefs.obj \=0A=
-	problems.obj \=0A=
-	propcache.obj \=0A=
-	set_clone.obj \=0A=
-	set_col.obj \=0A=
-	set_create.obj \=0A=
-	set_createrep.obj \=0A=
-	set_delete.obj \=0A=
-	set_dump.obj \=0A=
-	set_general.obj \=0A=
-	set_move.obj \=0A=
-	set_prop.obj \=0A=
-	set_quota.obj \=0A=
-	set_release.obj \=0A=
-	set_rename.obj \=0A=
-	set_repprop.obj \=0A=
-	set_restore.obj \=0A=
-	set_tab.obj \=0A=
-	subset.obj \=0A=
-	svc_col.obj \=0A=
-	svc_create.obj \=0A=
-	svc_delete.obj \=0A=
-	svc_general.obj \=0A=
-	svc_prop.obj \=0A=
-	svc_startstop.obj \=0A=
-	svc_tab.obj \=0A=
-	svc_viewlog.obj \=0A=
-	svr_address.obj \=0A=
-	svr_col.obj \=0A=
-	svr_execute.obj \=0A=
-	svr_general.obj \=0A=
-	svr_getdates.obj \=0A=
-	svr_hosts.obj \=0A=
-	svr_install.obj \=0A=
-	svr_prop.obj \=0A=
-	svr_prune.obj \=0A=
-	svr_salvage.obj \=0A=
-	svr_security.obj \=0A=
-	svr_syncvldb.obj \=0A=
-	svr_uninstall.obj \=0A=
-	svr_window.obj \=0A=
-	svrmgr.obj \=0A=
-	task.obj \=0A=
-	window.obj=0A=
+	$(OJT)\svrmgr_stub.res \=0A=
+	$(OJT)\action.obj \=0A=
+	$(OJT)\agg_col.obj \=0A=
+	$(OJT)\agg_general.obj \=0A=
+	$(OJT)\agg_prop.obj \=0A=
+	$(OJT)\agg_tab.obj \=0A=
+	$(OJT)\alert.obj \=0A=
+	$(OJT)\cmdline.obj \=0A=
+	$(OJT)\columns.obj \=0A=
+	$(OJT)\command.obj \=0A=
+	$(OJT)\creds.obj \=0A=
+	$(OJT)\dispatch.obj \=0A=
+	$(OJT)\dispguts.obj \=0A=
+	$(OJT)\display.obj \=0A=
+	$(OJT)\general.obj \=0A=
+	$(OJT)\helpfunc.obj \=0A=
+	$(OJT)\options.obj \=0A=
+	$(OJT)\prefs.obj \=0A=
+	$(OJT)\problems.obj \=0A=
+	$(OJT)\propcache.obj \=0A=
+	$(OJT)\set_clone.obj \=0A=
+	$(OJT)\set_col.obj \=0A=
+	$(OJT)\set_create.obj \=0A=
+	$(OJT)\set_createrep.obj \=0A=
+	$(OJT)\set_delete.obj \=0A=
+	$(OJT)\set_dump.obj \=0A=
+	$(OJT)\set_general.obj \=0A=
+	$(OJT)\set_move.obj \=0A=
+	$(OJT)\set_prop.obj \=0A=
+	$(OJT)\set_quota.obj \=0A=
+	$(OJT)\set_release.obj \=0A=
+	$(OJT)\set_rename.obj \=0A=
+	$(OJT)\set_repprop.obj \=0A=
+	$(OJT)\set_restore.obj \=0A=
+	$(OJT)\set_tab.obj \=0A=
+	$(OJT)\subset.obj \=0A=
+	$(OJT)\svc_col.obj \=0A=
+	$(OJT)\svc_create.obj \=0A=
+	$(OJT)\svc_delete.obj \=0A=
+	$(OJT)\svc_general.obj \=0A=
+	$(OJT)\svc_prop.obj \=0A=
+	$(OJT)\svc_startstop.obj \=0A=
+	$(OJT)\svc_tab.obj \=0A=
+	$(OJT)\svc_viewlog.obj \=0A=
+	$(OJT)\svr_address.obj \=0A=
+	$(OJT)\svr_col.obj \=0A=
+	$(OJT)\svr_execute.obj \=0A=
+	$(OJT)\svr_general.obj \=0A=
+	$(OJT)\svr_getdates.obj \=0A=
+	$(OJT)\svr_hosts.obj \=0A=
+	$(OJT)\svr_install.obj \=0A=
+	$(OJT)\svr_prop.obj \=0A=
+	$(OJT)\svr_prune.obj \=0A=
+	$(OJT)\svr_salvage.obj \=0A=
+	$(OJT)\svr_security.obj \=0A=
+	$(OJT)\svr_syncvldb.obj \=0A=
+	$(OJT)\svr_uninstall.obj \=0A=
+	$(OJT)\svr_window.obj \=0A=
+	$(OJT)\svrmgr.obj \=0A=
+	$(OJT)\task.obj \=0A=
+	$(OJT)\window.obj=0A=
 =0A=
 VCLIBS =3D\=0A=
 	comctl32.lib \=0A=
@@ -114,5 +114,11 @@=0A=
 # Dependencies=0A=
 #=0A=
 =0A=
-svrmgr_stub.res : svrmgr_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\svrmgr_stub.res : AFS_component_version_number.h=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afssvrmgr/lang/NTMakefile =
upd/src/WINNT/afssvrmgr/lang/NTMakefile=0A=
--- bas/src/WINNT/afssvrmgr/lang/NTMakefile	2000-11-04 =
02:02:16.000000000 -0800=0A=
+++ upd/src/WINNT/afssvrmgr/lang/NTMakefile	2003-03-10 =
16:20:10.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\svrmgr.rc=0A=
 =0A=
-RESFILE =3D svrmgr_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\svrmgr_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	@if exist *.res del *.res=0A=
+	@if exist $(OJT)\*.res del $(OJT)\*.res=0A=
 	@if exist RC*. del RC*.=0A=
 	@if exist RD*. del RD*.=0A=
 =0A=
@@ -60,3 +60,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/afsusrmgr/NTMakefile =
upd/src/WINNT/afsusrmgr/NTMakefile=0A=
--- bas/src/WINNT/afsusrmgr/NTMakefile	2000-11-04 02:02:22.000000000 =
-0800=0A=
+++ upd/src/WINNT/afsusrmgr/NTMakefile	2003-03-10 16:20:10.000000000 =
-0800=0A=
@@ -30,40 +30,40 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\TaAfsAccountManager.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	AfsUsrMgr_stub.res \=0A=
-	action.obj \=0A=
-	browse.obj \=0A=
-	cell_prop.obj \=0A=
-	cmdline.obj \=0A=
-	columns.obj \=0A=
-	command.obj \=0A=
-	creds.obj \=0A=
-	display.obj \=0A=
-	errdata.obj \=0A=
-	general.obj \=0A=
-	grp_col.obj \=0A=
-	grp_create.obj \=0A=
-	grp_delete.obj \=0A=
-	grp_prop.obj \=0A=
-	grp_rename.obj \=0A=
-	grp_tab.obj \=0A=
-	helpfunc.obj \=0A=
-	main.obj \=0A=
-	mch_col.obj \=0A=
-	mch_create.obj \=0A=
-	mch_delete.obj \=0A=
-	mch_tab.obj \=0A=
-	options.obj \=0A=
-	task.obj \=0A=
-	usr_col.obj \=0A=
-	usr_cpw.obj \=0A=
-	usr_create.obj \=0A=
-	usr_delete.obj \=0A=
-	usr_prop.obj \=0A=
-	usr_search.obj \=0A=
-	usr_tab.obj \=0A=
-	window.obj \=0A=
-	winlist.obj=0A=
+	$(OJT)\AfsUsrMgr_stub.res \=0A=
+	$(OJT)\action.obj \=0A=
+	$(OJT)\browse.obj \=0A=
+	$(OJT)\cell_prop.obj \=0A=
+	$(OJT)\cmdline.obj \=0A=
+	$(OJT)\columns.obj \=0A=
+	$(OJT)\command.obj \=0A=
+	$(OJT)\creds.obj \=0A=
+	$(OJT)\display.obj \=0A=
+	$(OJT)\errdata.obj \=0A=
+	$(OJT)\general.obj \=0A=
+	$(OJT)\grp_col.obj \=0A=
+	$(OJT)\grp_create.obj \=0A=
+	$(OJT)\grp_delete.obj \=0A=
+	$(OJT)\grp_prop.obj \=0A=
+	$(OJT)\grp_rename.obj \=0A=
+	$(OJT)\grp_tab.obj \=0A=
+	$(OJT)\helpfunc.obj \=0A=
+	$(OJT)\main.obj \=0A=
+	$(OJT)\mch_col.obj \=0A=
+	$(OJT)\mch_create.obj \=0A=
+	$(OJT)\mch_delete.obj \=0A=
+	$(OJT)\mch_tab.obj \=0A=
+	$(OJT)\options.obj \=0A=
+	$(OJT)\task.obj \=0A=
+	$(OJT)\usr_col.obj \=0A=
+	$(OJT)\usr_cpw.obj \=0A=
+	$(OJT)\usr_create.obj \=0A=
+	$(OJT)\usr_delete.obj \=0A=
+	$(OJT)\usr_prop.obj \=0A=
+	$(OJT)\usr_search.obj \=0A=
+	$(OJT)\usr_tab.obj \=0A=
+	$(OJT)\window.obj \=0A=
+	$(OJT)\winlist.obj=0A=
 =0A=
 VCLIBS =3D\=0A=
 	comctl32.lib \=0A=
@@ -91,5 +91,11 @@=0A=
 # Dependencies=0A=
 #=0A=
 =0A=
-AfsUsrMgr_stub.res : AfsUsrMgr_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\AfsUsrMgr_stub.res : AFS_component_version_number.h=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/afsusrmgr/lang/NTMakefile =
upd/src/WINNT/afsusrmgr/lang/NTMakefile=0A=
--- bas/src/WINNT/afsusrmgr/lang/NTMakefile	2000-11-04 =
02:02:32.000000000 -0800=0A=
+++ upd/src/WINNT/afsusrmgr/lang/NTMakefile	2003-03-10 =
16:20:12.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\AfsUsrMgr.rc=0A=
 =0A=
-RESFILE =3D AfsUsrMgr_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\AfsUsrMgr_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	@if exist *.res del *.res=0A=
+	@if exist $(OJT)\*.res del $(OJT)\*.res=0A=
 	@if exist RC*. del RC*.=0A=
 	@if exist RD*. del RD*.=0A=
 =0A=
@@ -60,3 +60,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/bosctlsvc/NTMakefile =
upd/src/WINNT/bosctlsvc/NTMakefile=0A=
--- bas/src/WINNT/bosctlsvc/NTMakefile	2000-11-04 02:02:36.000000000 =
-0800=0A=
+++ upd/src/WINNT/bosctlsvc/NTMakefile	2003-03-10 16:20:12.000000000 =
-0800=0A=
@@ -14,8 +14,8 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\bosctlsvc.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	bosctlsvc.obj \=0A=
-	bosctlsvc.res=0A=
+	$(OJT)\bosctlsvc.obj \=0A=
+	$(OJT)\bosctlsvc.res=0A=
 =0A=
 EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib \=0A=
@@ -30,8 +30,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resource via RC=0A=
 =0A=
-bosctlsvc.res: bosctlsvc.rc AFS_component_version_number.h=0A=
-#	$(RC) $*.rc=0A=
+$(OJT)\bosctlsvc.res: AFS_component_version_number.h=0A=
 =0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -44,3 +43,5 @@=0A=
 # Local clean target; augments predefined clean target=0A=
 =0A=
 clean::=0A=
+=0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_config/NTMakefile =
upd/src/WINNT/client_config/NTMakefile=0A=
--- bas/src/WINNT/client_config/NTMakefile	2002-11-26 19:22:42.000000000 =
-0800=0A=
+++ upd/src/WINNT/client_config/NTMakefile	2003-03-10 16:20:12.000000000 =
-0800=0A=
@@ -22,32 +22,32 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.client\usr\vice\etc\afs_config.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	afs_config_stub.res \=0A=
-	cellservdb.obj \=0A=
-	checklist.obj \=0A=
-	config.obj \=0A=
-	ctl_sockaddr.obj \=0A=
-	ctl_spinner.obj \=0A=
-	dialog.obj \=0A=
-	drivemap.obj \=0A=
-	fastlist.obj \=0A=
-	fs_utils.obj \=0A=
-	hashlist.obj \=0A=
-	isadmin.obj \=0A=
-	main.obj \=0A=
-	misc.obj \=0A=
-	pagesize.obj \=0A=
-	resize.obj \=0A=
-	subclass.obj \=0A=
-	tab_advanced.obj \=0A=
-	tab_drives.obj \=0A=
-	tab_hosts.obj \=0A=
-	tab_general.obj \=0A=
-	tab_prefs.obj \=0A=
-	dlg_misc.obj \=0A=
-	dlg_logon.obj \=0A=
-	dlg_diag.obj \=0A=
-	dlg_automap.obj=0A=
+	$(OJT)\config.obj \=0A=
+	$(OJT)\drivemap.obj \=0A=
+	$(OJT)\main.obj \=0A=
+	$(OJT)\misc.obj \=0A=
+	$(OJT)\pagesize.obj \=0A=
+	$(OJT)\tab_advanced.obj \=0A=
+	$(OJT)\tab_drives.obj \=0A=
+	$(OJT)\tab_hosts.obj \=0A=
+	$(OJT)\tab_general.obj \=0A=
+	$(OJT)\tab_prefs.obj \=0A=
+	$(OJT)\dlg_logon.obj \=0A=
+	$(OJT)\dlg_diag.obj \=0A=
+	$(OJT)\dlg_misc.obj \=0A=
+	$(OJT)\isadmin.obj \=0A=
+	$(OJT)\dlg_automap.obj=0A=
+=0A=
+EXEOBJSc =3D \=0A=
+	$(OJT)\cellservdb.obj=0A=
+=0A=
+EXERES =3D \=0A=
+	$(OJT)\afs_config_stub.res =0A=
+=0A=
+AFSDOBJS =3D \=0A=
+	$(OJT)\fs_utils.obj=0A=
+	=0A=
+AFSD=3D ..\afsd=0A=
 =0A=
 VCLIBS =3D\=0A=
 	comctl32.lib \=0A=
@@ -58,6 +58,7 @@=0A=
 	$(DESTDIR)\lib\afs\TaLocale.lib \=0A=
 	$(DESTDIR)\lib\afsrpc.lib \=0A=
 	$(DESTDIR)\lib\afsauthent.lib \=0A=
+	$(DESTDIR)\lib\libosi.lib \=0A=
 	$(DESTDIR)\lib\libafsconf.lib=0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -80,46 +81,43 @@=0A=
 	$(DESTDIR)\include\WINNT\resize.h \=0A=
 	$(DESTDIR)\include\WINNT\subclass.h=0A=
 =0A=
-COPYSOURCES =3D \=0A=
-	.\checklist.cpp \=0A=
-	.\checklist.h \=0A=
-	.\ctl_sockaddr.cpp \=0A=
-	.\ctl_sockaddr.h \=0A=
-	.\ctl_spinner.cpp \=0A=
-	.\ctl_spinner.h \=0A=
-	.\dialog.cpp \=0A=
-	.\dialog.h \=0A=
-	.\fastlist.cpp \=0A=
-	.\fastlist.h \=0A=
-	.\fs_utils.c \=0A=
-	.\hashlist.cpp \=0A=
-	.\hashlist.h \=0A=
-	.\resize.cpp \=0A=
-	.\resize.h \=0A=
-	.\subclass.cpp \=0A=
-	.\subclass.h=0A=
+AFSAPPLIBOBJS=3D \=0A=
+	$(OJT)\hashlist.obj \=0A=
+	$(OJT)\resize.obj \=0A=
+	$(OJT)\subclass.obj \=0A=
+	$(OJT)\fastlist.obj \=0A=
+	$(OJT)\dialog.obj \=0A=
+	$(OJT)\ctl_sockaddr.obj \=0A=
+	$(OJT)\ctl_spinner.obj \=0A=
+	$(OJT)\checklist.obj=0A=
+=0A=
+AFSAPPLIB=3D..\afsapplib=0A=
+=0A=
+$(AFSAPPLIBOBJS): $(AFSAPPLIB)\$$(@B).cpp=0A=
+	$(C2OBJ) -I$(AFSAPPLIB) $**=0A=
+=0A=
+$(AFSDOBJS): $(AFSD)\$$(@B).c=0A=
+	$(C2OBJ) -I$(AFSD) $**=0A=
+=0A=
+$(EXEOBJS): $$(@B).cpp=0A=
+	$(C2OBJ) -I$(AFSAPPLIB) $**=0A=
+=0A=
+$(EXEOBJSc): $$(@B).c=0A=
+	$(CPP2OBJ) -I$(AFSAPPLIB) $**=0A=
 =0A=
 =
#########################################################################=
###=0A=
 =0A=
 {..\afsapplib}.h{$(DESTDIR)\include\WINNT}.h:=0A=
 	$(COPY) ..\afsapplib\$(*B).h $(DESTDIR)\include\WINNT=0A=
 =0A=
-{..\afsapplib}.h{.\}.h:=0A=
-	$(COPY) ..\afsapplib\$(*B).h .=0A=
-=0A=
-{..\afsapplib}.cpp{.\}.cpp:=0A=
-	$(COPY) ..\afsapplib\$(*B).cpp .=0A=
-=0A=
-{..\afsd}.c{.\}.c:=0A=
-	$(COPY) ..\afsd\$(*B).c .=0A=
 =0A=
 =
#########################################################################=
###=0A=
 =0A=
-$(EXEFILE) : $(EXEOBJS) $(EXELIBS)=0A=
+$(EXEFILE) : $(EXEOBJS) $(EXEOBJSc) $(EXERES) $(AFSAPPLIBOBJS) =
$(AFSDOBJS) $(EXELIBS)=0A=
 	$(EXEGUILINK) $(VCLIBS)=0A=
 	$(EXEPREP) =0A=
 =0A=
-install : $(COPYSOURCES) $(COPYHEADERS) $(EXEFILE) lang=0A=
+install : $(COPYHEADERS) $(EXEFILE) lang=0A=
 =0A=
 install9x: install=0A=
 =0A=
@@ -171,9 +169,10 @@=0A=
 	@$(NTLANG) $@ $(MAKECMD) /nologo /f NTMakefile install=0A=
     $(CD) ..=0A=
 =0A=
-afs_config_stub.res : afs_config_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\afs_config_stub.res : AFS_component_version_number.h=0A=
 =0A=
 clean::=0A=
+	$(DEL) $(COPYHEADERS)=0A=
 	$(CD) lang=0A=
 	if exist $(NTLANG) $(NTLANG) en_US $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
 	if exist $(NTLANG) $(NTLANG) ja_JP $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
@@ -184,3 +183,9 @@=0A=
 	if exist $(NTLANG) $(NTLANG) es_ES $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
 	if exist $(NTLANG) $(NTLANG) de_DE $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
     $(CD) ..=0A=
+=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_config/drivemap.cpp =
upd/src/WINNT/client_config/drivemap.cpp=0A=
--- bas/src/WINNT/client_config/drivemap.cpp	2002-01-08 =
12:44:40.000000000 -0800=0A=
+++ upd/src/WINNT/client_config/drivemap.cpp	2003-03-10 =
16:20:12.000000000 -0800=0A=
@@ -20,6 +20,7 @@=0A=
 #include <time.h>=0A=
 #include <adssts.h>=0A=
 #include <osilog.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 /*=0A=
  * REGISTRY =
___________________________________________________________________=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_config/lang/NTMakefile =
upd/src/WINNT/client_config/lang/NTMakefile=0A=
--- bas/src/WINNT/client_config/lang/NTMakefile	2001-04-30 =
00:48:50.000000000 -0700=0A=
+++ upd/src/WINNT/client_config/lang/NTMakefile	2003-03-10 =
16:20:12.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afs_config.rc=0A=
 =0A=
-RESFILE =3D afs_config_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afs_config_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	$(DEL) *.res RC* RD* $(DLLFILE) $(DEL) $(DLLFILE)=0A=
+	$(DEL) $(OJT)\*.res RC* RD* $(DLLFILE)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 #=0A=
@@ -58,3 +58,5 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/client_cpa/NTMakefile =
upd/src/WINNT/client_cpa/NTMakefile=0A=
--- bas/src/WINNT/client_cpa/NTMakefile	2001-04-30 00:48:58.000000000 =
-0700=0A=
+++ upd/src/WINNT/client_cpa/NTMakefile	2003-03-10 16:20:12.000000000 =
-0800=0A=
@@ -15,12 +15,13 @@=0A=
 DLLFILE =3D $(DESTDIR)\root.client\usr\vice\etc\afs_cpa.cpl=0A=
 =0A=
 DLLOBJS =3D\=0A=
-	afs_cpa_stub.res \=0A=
-	cpl_interface.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\cpl_interface.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\afs_cpa_stub.res=0A=
 =0A=
 DLLLIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\TaLocale.lib \=0A=
+	$(DESTDIR)\lib\libosi.lib \=0A=
 	comctl32.lib=0A=
 =0A=
 DEFFILE =3D afs_cpa.def=0A=
@@ -61,7 +62,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Dependencies=0A=
 =0A=
-afs_cpa_stub.res : afs_cpa_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\afs_cpa_stub.res : AFS_component_version_number.h=0A=
 =0A=
 en_US:=0A=
 	$(CD) lang=0A=
@@ -103,3 +104,8 @@=0A=
 	@$(NTLANG) $@ $(MAKECMD) /nologo /f NTMakefile install=0A=
     $(CD) ..=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_cpa/lang/NTMakefile =
upd/src/WINNT/client_cpa/lang/NTMakefile=0A=
--- bas/src/WINNT/client_cpa/lang/NTMakefile	2001-04-30 =
00:49:04.000000000 -0700=0A=
+++ upd/src/WINNT/client_cpa/lang/NTMakefile	2003-03-10 =
16:20:12.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afs_cpa.rc=0A=
 =0A=
-RESFILE =3D afs_cpa_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afs_cpa_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	$(DEL) *.res RC* RD* $(DLLFILE) $(DEL) $(DLLFILE)=0A=
+	$(DEL) *.res RC* RD* $(DLLFILE)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 #=0A=
@@ -58,3 +58,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_creds/NTMakefile =
upd/src/WINNT/client_creds/NTMakefile=0A=
--- bas/src/WINNT/client_creds/NTMakefile	2002-01-08 12:44:42.000000000 =
-0800=0A=
+++ upd/src/WINNT/client_creds/NTMakefile	2003-03-10 16:20:12.000000000 =
-0800=0A=
@@ -5,13 +5,9 @@=0A=
 # License.  For details, see the LICENSE file in the top-level source=0A=
 # directory or online at http://www.openafs.org/dl/license10.html=0A=
 =0A=
-# make compiler warnings fatal=0A=
-=0A=
-AFSDEV_AUXCDEFINES =3D $(AFSDEV_AUXCDEFINES) -WX=0A=
-=0A=
 # include the AFSD source tree on our inclusion path=0A=
 =0A=
-AFSDEV_AUXCDEFINES =3D $(AFSDEV_AUXCDEFINES) -I ..\afsd=0A=
+AFSDEV_AUXCDEFINES =3D $(AFSDEV_AUXCDEFINES) -I ..\afsd =
-I..\client_config=0A=
 =0A=
 # include the primary makefile=0A=
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
@@ -25,23 +21,31 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.client\usr\vice\etc\afscreds.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	afscreds_stub.res \=0A=
-	advtab.obj \=0A=
-	afswiz.obj \=0A=
-	al_wizard.obj \=0A=
-	checklist.obj \=0A=
-	creds.obj \=0A=
-	credstab.obj \=0A=
-	drivemap.obj \=0A=
-	fs_utils.obj \=0A=
-	main.obj \=0A=
-	misc.obj \=0A=
-	mounttab.obj \=0A=
-	settings.obj \=0A=
-	shortcut.obj \=0A=
-	subclass.obj \=0A=
-	trayicon.obj \=0A=
-	window.obj=0A=
+	$(OJT)\advtab.obj \=0A=
+	$(OJT)\afswiz.obj \=0A=
+	$(OJT)\creds.obj \=0A=
+	$(OJT)\main.obj \=0A=
+	$(OJT)\misc.obj \=0A=
+	$(OJT)\credstab.obj \=0A=
+	$(OJT)\mounttab.obj \=0A=
+	$(OJT)\settings.obj \=0A=
+	$(OJT)\shortcut.obj \=0A=
+	$(OJT)\trayicon.obj \=0A=
+	$(OJT)\window.obj=0A=
+=0A=
+EXERES =3D \=0A=
+	$(OJT)\afscreds_stub.res=0A=
+=0A=
+AFSDOBJS =3D \=0A=
+	$(OJT)\fs_utils.obj=0A=
+	=0A=
+AFSAPPLIBOBJS=3D \=0A=
+	$(OJT)\checklist.obj \=0A=
+	$(OJT)\al_wizard.obj \=0A=
+	$(OJT)\subclass.obj =0A=
+=0A=
+CLIENTOBJS =3D \=0A=
+	$(OJT)\drivemap.obj=0A=
 =0A=
 VCLIBS =3D\=0A=
 	comctl32.lib \=0A=
@@ -52,6 +56,7 @@=0A=
 =0A=
 EXELIBS =3D \=0A=
 	$(DESTDIR)\lib\afs\afspioctl.lib \=0A=
+	$(DESTDIR)\lib\libosi.lib \=0A=
 	$(DESTDIR)\lib\afs\TaLocale.lib=0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -68,42 +73,31 @@=0A=
 	$(DESTDIR)\include\WINNT\checklist.h \=0A=
 	$(DESTDIR)\include\WINNT\subclass.h=0A=
 =0A=
-COPYSOURCES =3D \=0A=
-	.\al_wizard.cpp \=0A=
-	.\al_wizard.h \=0A=
-	.\checklist.cpp \=0A=
-	.\checklist.h \=0A=
-	.\drivemap.cpp \=0A=
-	.\drivemap.h \=0A=
-	.\fs_utils.c \=0A=
-	.\subclass.cpp \=0A=
-	.\subclass.h=0A=
-=0A=
 =
#########################################################################=
###=0A=
 =0A=
-{..\afsd}.c{.\}.c:=0A=
-	$(COPY) ..\afsd\$(*B).c .=0A=
-=0A=
-{..\afsapplib}.h{.\}.h:=0A=
-	$(COPY) ..\afsapplib\$(*B).h .=0A=
+AFSD =3D ..\afsd=0A=
+AFSAPPLIB=3D..\afsapplib=0A=
+CLIENT=3D ..\client_config=0A=
 =0A=
-{..\afsapplib}.cpp{.\}.cpp:=0A=
-	$(COPY) ..\afsapplib\$(*B).cpp .=0A=
+$(CLIENTOBJS): $(CLIENT)\$$(@B).cpp=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
 =0A=
-{..\client_config}.h{.\}.h:=0A=
-	$(COPY) ..\client_config\$(*B).h .=0A=
+$(AFSAPPLIBOBJS): $(AFSAPPLIB)\$$(@B).cpp=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
 =0A=
-{..\client_config}.cpp{.\}.cpp:=0A=
-	$(COPY) ..\client_config\$(*B).cpp .=0A=
+$(AFSDOBJS): $(AFSD)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
 =0A=
+$(EXEOBJS): $$(@B).cpp=0A=
+	$(C2OBJ) -I$*(*D) -I$(AFSAPPLIB) $**=0A=
 =0A=
 =
#########################################################################=
###=0A=
 =0A=
-$(EXEFILE) : $(EXEOBJS) $(EXELIBS)=0A=
+$(EXEFILE) : $(EXEOBJS) $(EXERES) $(AFSAPPLIBOBJS) $(AFSDOBJS) =
$(CLIENTOBJS) $(EXELIBS) =0A=
 	$(EXEGUILINK) $(VCLIBS)=0A=
 	$(EXEPREP) =0A=
 =0A=
-install : $(COPYSOURCES) $(COPYHEADERS) $(EXEFILE) lang=0A=
+install : $(COPYHEADERS) $(EXEFILE) lang=0A=
 =0A=
 lang ::=0A=
 	$(CD) lang=0A=
@@ -115,5 +109,11 @@=0A=
 # Dependencies=0A=
 #=0A=
 =0A=
-afscreds_stub.res : afscreds_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\afscreds_stub.res : afscreds_stub.rc =
AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_creds/lang/NTMakefile =
upd/src/WINNT/client_creds/lang/NTMakefile=0A=
--- bas/src/WINNT/client_creds/lang/NTMakefile	2001-04-30 =
00:49:10.000000000 -0700=0A=
+++ upd/src/WINNT/client_creds/lang/NTMakefile	2003-03-10 =
16:20:14.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afscreds.rc=0A=
 =0A=
-RESFILE =3D afscreds_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afscreds_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	$(DEL) *.res RC* RD* $(DLLFILE) $(DEL) $(DLLFILE)=0A=
+	$(DEL) $(OJT)\*.res RC* RD* $(DLLFILE)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 #=0A=
@@ -58,3 +58,6 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_creds/shortcut.cpp =
upd/src/WINNT/client_creds/shortcut.cpp=0A=
--- bas/src/WINNT/client_creds/shortcut.cpp	2000-11-04 =
02:02:48.000000000 -0800=0A=
+++ upd/src/WINNT/client_creds/shortcut.cpp	2003-03-10 =
16:20:14.000000000 -0800=0A=
@@ -18,6 +18,8 @@=0A=
 #include <windowsx.h>=0A=
 #include <shlobj.h>=0A=
 #include <shellapi.h>=0A=
+#include <shobjidl.h>=0A=
+#include <shlguid.h>=0A=
 #include "shortcut.h"=0A=
 =0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/client_exp/NTMakefile =
upd/src/WINNT/client_exp/NTMakefile=0A=
--- bas/src/WINNT/client_exp/NTMakefile	2002-11-26 19:22:46.000000000 =
-0800=0A=
+++ upd/src/WINNT/client_exp/NTMakefile	2003-03-10 16:20:14.000000000 =
-0800=0A=
@@ -7,6 +7,7 @@=0A=
 =0A=
 AFSDEV_AUXCDEFINES =3D $(AFSDEV_AUXCDEFINES) -I..\afsd  /D"_WINDOWS" =
/D"_WINDLL" /D"_AFXDLL" /D"_USRDLL"=0A=
 =0A=
+NO_CRTDBG=3D1			#define this to disable any CRT_DBG flag=0A=
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 !include ..\..\config\NTMakefile.version=0A=
 =0A=
@@ -17,36 +18,37 @@=0A=
 DLLFILE =3D $(DESTDIR)\root.client\usr\vice\etc\afs_shl_ext.dll=0A=
 =0A=
 DLLOBJS =3D\=0A=
-	add_acl_entry_dlg.obj \=0A=
-	add_submount_dlg.obj \=0A=
-	afs_shl_ext.obj \=0A=
-	afs_shl_ext_stub.res \=0A=
-	auth_dlg.obj \=0A=
-	clear_acl_dlg.obj \=0A=
-	copy_acl_dlg.obj \=0A=
-	down_servers_dlg.obj \=0A=
-	fs_utils.obj \=0A=
-	gui2fs.obj \=0A=
-	help.obj \=0A=
-	klog_dlg.obj \=0A=
-	make_mount_point_dlg.obj \=0A=
-	mount_points_dlg.obj \=0A=
-	msgs.obj \=0A=
-	partition_info_dlg.obj \=0A=
-	results_dlg.obj \=0A=
-	server_status_dlg.obj \=0A=
-	set_afs_acl.obj \=0A=
-	shell_ext.obj \=0A=
-	stdafx.obj \=0A=
-	submount_info.obj \=0A=
-	submounts_dlg.obj \=0A=
-	unlog_dlg.obj \=0A=
-	volumeinfo.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\add_acl_entry_dlg.obj \=0A=
+	$(OJT)\add_submount_dlg.obj \=0A=
+	$(OJT)\afs_shl_ext.obj \=0A=
+	$(OJT)\afs_shl_ext_stub.res \=0A=
+	$(OJT)\auth_dlg.obj \=0A=
+	$(OJT)\clear_acl_dlg.obj \=0A=
+	$(OJT)\copy_acl_dlg.obj \=0A=
+	$(OJT)\down_servers_dlg.obj \=0A=
+	$(OJT)\fs_utils.obj \=0A=
+	$(OJT)\gui2fs.obj \=0A=
+	$(OJT)\help.obj \=0A=
+	$(OJT)\klog_dlg.obj \=0A=
+	$(OJT)\make_mount_point_dlg.obj \=0A=
+	$(OJT)\mount_points_dlg.obj \=0A=
+	$(OJT)\msgs.obj \=0A=
+	$(OJT)\partition_info_dlg.obj \=0A=
+	$(OJT)\results_dlg.obj \=0A=
+	$(OJT)\server_status_dlg.obj \=0A=
+	$(OJT)\set_afs_acl.obj \=0A=
+	$(OJT)\shell_ext.obj \=0A=
+	$(OJT)\stdafx.obj \=0A=
+	$(OJT)\submount_info.obj \=0A=
+	$(OJT)\submounts_dlg.obj \=0A=
+	$(OJT)\unlog_dlg.obj \=0A=
+	$(OJT)\volumeinfo.obj \=0A=
+#	$(OJT)\make_symbolic_link_dlg.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 AFSD =3D ..\afsd=0A=
 =0A=
-fs_utils.obj: $(AFSD)\fs_utils.c=0A=
+$(OJT)\fs_utils.obj: $(AFSD)\fs_utils.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
 DLLLIBS =3D\=0A=
@@ -54,16 +56,17 @@=0A=
 	$(DESTDIR)\lib\afsrpc.lib \=0A=
 	$(DESTDIR)\lib\afsauthent.lib \=0A=
 	$(DESTDIR)\lib\libafsconf.lib \=0A=
+	$(DESTDIR)\lib\libosi.lib \=0A=
 	$(DESTDIR)\lib\afs\TaLocale.lib=0A=
 =0A=
 $(DLLFILE): $(DLLOBJS)=0A=
-	$(DLLCONLINK) /def:afs_shl_ext.def $(DLLLIBS)=0A=
+	$(DLLCONLINK) /DEF:afs_shl_ext.def $(DLLLIBS)=0A=
 	$(DLLPREP)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-afs_shl_ext_stub.res: afs_shl_ext_stub.rc AFS_component_version_number.h=0A=
+$(OJT)\afs_shl_ext_stub.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -132,3 +135,9 @@=0A=
 	if exist $(NTLANG) $(NTLANG) es_ES $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
 	if exist $(NTLANG) $(NTLANG) de_DE $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
     $(CD) ..=0A=
+=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/client_exp/gui2fs.cpp =
upd/src/WINNT/client_exp/gui2fs.cpp=0A=
--- bas/src/WINNT/client_exp/gui2fs.cpp	2003-03-06 14:53:02.000000000 =
-0800=0A=
+++ upd/src/WINNT/client_exp/gui2fs.cpp	2003-03-10 16:20:14.000000000 =
-0800=0A=
@@ -1186,6 +1186,45 @@=0A=
 	return (pioctl(tbuffer, VIOC_DELSYMLINK, &blob, 0)=3D=3D0);=0A=
 }=0A=
 =0A=
+BOOL IsSymlink(const char * true_name)=0A=
+{=0A=
+    char parent_dir[MAXSIZE];		/*Parent directory of true name*/=0A=
+	char strip_name[MAXSIZE];=0A=
+    struct ViceIoctl blob;=0A=
+	char *last_component;=0A=
+    int code;=0A=
+	last_component =3D (char *) strrchr(true_name, '\\');=0A=
+	if (!last_component)=0A=
+	    last_component =3D (char *) strrchr(true_name, '/');=0A=
+	if (last_component) {=0A=
+	    /*=0A=
+	     * Found it.  Designate everything before it as the parent =
directory,=0A=
+	     * everything after it as the final component.=0A=
+	     */=0A=
+	    strncpy(parent_dir, true_name, last_component - true_name + 1);=0A=
+	    parent_dir[last_component - true_name + 1] =3D 0;=0A=
+	    last_component++;   /*Skip the slash*/=0A=
+	}=0A=
+	else {=0A=
+	    /*=0A=
+	     * No slash appears in the given file name.  Set parent_dir to the =
current=0A=
+	     * directory, and the last component as the given name.=0A=
+	     */=0A=
+	    fs_ExtractDriveLetter(true_name, parent_dir);=0A=
+	    strcat(parent_dir, ".");=0A=
+	    last_component =3D strip_name;=0A=
+        fs_StripDriveLetter(true_name, strip_name, sizeof(strip_name));=0A=
+	}=0A=
+=0A=
+	blob.in =3D last_component;=0A=
+	blob.in_size =3D strlen(last_component)+1;=0A=
+	blob.out_size =3D MAXSIZE;=0A=
+	blob.out =3D space;=0A=
+	memset(space, 0, MAXSIZE);=0A=
+	code =3D pioctl(parent_dir, VIOC_ISSYMLINK, &blob, 1);=0A=
+	return (code=3D=3D0);=0A=
+}=0A=
+=0A=
 =0A=
 /*=0A=
  * Delete AFS mount points.  Variables are used as follows:=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/client_exp/gui2fs.h =
upd/src/WINNT/client_exp/gui2fs.h=0A=
--- bas/src/WINNT/client_exp/gui2fs.h	2003-03-06 14:53:28.000000000 -0800=0A=
+++ upd/src/WINNT/client_exp/gui2fs.h	2003-03-10 16:20:14.000000000 -0800=0A=
@@ -38,6 +38,7 @@=0A=
 int GetCellName(char *baseNamep, struct afsconf_cell *infop);=0A=
 long fs_StripDriveLetter(const char *inPathp, char *outPathp, long =
outSize);=0A=
 long fs_ExtractDriveLetter(const char *inPathp, char *outPathp);=0A=
+BOOL IsSymlink(const char * true_name);=0A=
 UINT MakeSymbolicLink(const char *,const char *);=0A=
 void ListSymbolicLinkPath(const char *strName,char *strPath,UINT =
nlenPath);=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_exp/lang/NTMakefile =
upd/src/WINNT/client_exp/lang/NTMakefile=0A=
--- bas/src/WINNT/client_exp/lang/NTMakefile	2001-04-30 =
00:49:20.000000000 -0700=0A=
+++ upd/src/WINNT/client_exp/lang/NTMakefile	2003-03-10 =
16:20:14.000000000 -0800=0A=
@@ -35,7 +35,7 @@=0A=
 =0A=
 RCFILE =3D $(LANGNAME)\afs_shl_ext.rc=0A=
 =0A=
-RESFILE =3D afs_shl_ext_$(LANGID).res=0A=
+RESFILE =3D $(OJT)\afs_shl_ext_$(LANGID).res=0A=
 =0A=
 DLLOBJS =3D $(RESFILE)=0A=
 =0A=
@@ -48,7 +48,7 @@=0A=
 install : $(DLLFILE)=0A=
 =0A=
 clean ::=0A=
-	$(DEL) *.res RC* RD* $(DLLFILE) $(DEL) $(DLLFILE)=0A=
+	$(DEL) $(OJT)\*.res RC* RD* $(DLLFILE)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 #=0A=
@@ -58,3 +58,7 @@=0A=
 $(RESFILE) : $(RCFILE) AFS_component_version_number.h=0A=
 	$(RC) /fo$(RESFILE) /c$(LANGCP) $(RCFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/client_osi/NTMakefile =
upd/src/WINNT/client_osi/NTMakefile=0A=
--- bas/src/WINNT/client_osi/NTMakefile	2001-04-30 00:49:52.000000000 =
-0700=0A=
+++ upd/src/WINNT/client_osi/NTMakefile	2003-03-10 16:20:14.000000000 =
-0800=0A=
@@ -27,11 +27,23 @@=0A=
 	$(INCFILEDIR)\osilog.h \=0A=
 	$(INCFILEDIR)\osisleep.h \=0A=
 	$(INCFILEDIR)\perf.h \=0A=
-     $(INCFILEDIR)\osithrdnt.h=0A=
-=0A=
+!IFDEF OSIEVENT=0A=
+	$(INCFILEDIR)\osievent.h \=0A=
+!ENDIF=0A=
+    $(INCFILEDIR)\osithrdnt.h=0A=
 =0A=
 $(INCFILEDIR)\dbrpc.h: dbrpc.h=0A=
 =0A=
+EXEFILE =3D $(DESTDIR)\bin\osidebug.exe=0A=
+=0A=
+EXEOBJS =3D \=0A=
+	osidebug.obj=0A=
+=0A=
+EXELIBS =3D \=0A=
+        rpcndr.lib rpcrt4.lib rpcns4.lib \=0A=
+		Ws2_32.lib \=0A=
+	$(DESTDIR)\lib\libosi.lib=0A=
+=0A=
 =
#########################################################################=
###=0A=
 # Definitions for building a DLL.=0A=
 =0A=
@@ -40,17 +52,17 @@=0A=
 ILIBDIR =3D $(DESTDIR)\lib=0A=
 =0A=
 DLLOBJS =3D\=0A=
-	dbrpc_s.obj \=0A=
-	osistatl.obj \=0A=
-	osibasel.obj \=0A=
-	osisleep.obj \=0A=
-	osiqueue.obj \=0A=
-	osiltype.obj \=0A=
-	osidb.obj \=0A=
-	osifd.obj \=0A=
-	osilog.obj \=0A=
-	osiutils.obj \=0A=
-	libosi.res=0A=
+	$(OJT)\dbrpc_s.obj \=0A=
+	$(OJT)\osistatl.obj \=0A=
+	$(OJT)\osibasel.obj \=0A=
+	$(OJT)\osisleep.obj \=0A=
+	$(OJT)\osiqueue.obj \=0A=
+	$(OJT)\osiltype.obj \=0A=
+	$(OJT)\osidb.obj \=0A=
+	$(OJT)\osifd.obj \=0A=
+	$(OJT)\osilog.obj \=0A=
+	$(OJT)\osiutils.obj \=0A=
+	$(OJT)\libosi.res=0A=
 =0A=
 DLLLIBS =3D\=0A=
         rpcndr.lib \=0A=
@@ -66,22 +78,52 @@=0A=
 =0A=
 =0A=
 =
#########################################################################=
###=0A=
+# build osievent.dll=0A=
+OSIEVENTDLL =3D $(DESTDIR)\root.client\usr\vice\etc\osievent.dll=0A=
+=0A=
+osievent.rc: osievent.mc=0A=
+	mc $*.mc=0A=
+=0A=
+$(OJT)\osievent.res: osievent.rc=0A=
+=0A=
+$(OJT)\osievent.dll: $(OJT)\osievent.res=0A=
+	link -dll -noentry -out:$*.dll $*.res=0A=
+=0A=
+$(OSIEVENTDLL): $(OJT)\osievent.dll=0A=
+	$(COPY) osievent.dll $(DESTDIR)\root.client\usr\vice\etc\.=0A=
+=0A=
+########################################################################=
####=0A=
+# build osidebug too=0A=
+=0A=
+$(OJT)\osidebug.res: osidebug.rc=0A=
+=0A=
+$(EXEOBJS) : osidebug.c=0A=
+=0A=
+$(EXEFILE) : $(EXEOBJS)=0A=
+	$(EXEGUILINK) $(EXELIBS)=0A=
+=0A=
+########################################################################=
####=0A=
 # midl on dbrpc.idl=0A=
 =0A=
 dbrpc.h dbrpc_c.c dbrpc_s.c: dbrpc.idl=0A=
-	$(MIDL) -Zp4 -cpp_cmd $(cc) -cpp_opt "-E" dbrpc.idl=0A=
-=0A=
+	$(MIDL) $(AFSDEV_AUXMIDLFLAGS) -Zp4 -cpp_cmd $(cc) -cpp_opt "-E" $**=0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
 =0A=
-libosi.res: libosi.rc AFS_component_version_number.h=0A=
+$(OJT)\libosi.res: libosi.rc AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
 =0A=
 install_headers: $(INCFILES)=0A=
 =0A=
+!IFDEF OSIEVENT=0A=
+install: $(OSIEVENTDLL) install_headers $(DLLFILE)=0A=
+!ELSE=0A=
 install: install_headers $(DLLFILE)=0A=
+!ENDIF=0A=
+=0A=
+install_debug: $(OJT)\osidebug.res $(EXEFILE)=0A=
 =0A=
 install9x: install=0A=
 =0A=
@@ -89,5 +131,9 @@=0A=
 # Local clean target; augments predefined clean target=0A=
 =0A=
 clean::=0A=
-	$(DEL) dbrpc_s.c dbrpc_c.c dbrpc.h $(DLLFILE) $(INCFILES)=0A=
+	$(DEL) dbrpc_s.c dbrpc_c.c dbrpc.h $(DLLFILE) $(INCFILES) =
$(OSIEVENTDLL)=0A=
+	$(DEL) $(EXEOBJS) $(EXEFILE) $(OJT)\*.res $(OJT)\*.DLL=0A=
+=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/client_osi/NTMakefile-TestOSI =
upd/src/WINNT/client_osi/NTMakefile-TestOSI=0A=
--- bas/src/WINNT/client_osi/NTMakefile-TestOSI	1969-12-31 =
16:00:00.000000000 -0800=0A=
+++ upd/src/WINNT/client_osi/NTMakefile-TestOSI	2003-03-10 =
16:20:14.000000000 -0800=0A=
@@ -0,0 +1,39 @@=0A=
+# Copyright (C)  1998  Transarc Corporation.  All rights reserved.=0A=
+#=0A=
+=0A=
+!INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
+!INCLUDE ..\..\config\NTMakefile.version=0A=
+=0A=
+=0A=
+EXEFILE =3D $(DESTDIR)\root.client\usr\vice\etc\osidebug.exe=0A=
+=0A=
+EXEOBJS =3D \=0A=
+	osidebug.obj=0A=
+=0A=
+EXELIBS =3D \=0A=
+	$(DESTDIR)\lib\libosi.lib=0A=
+=0A=
+VCLIBS =3D\=0A=
+	$(DESTDIR)\lib\libosi.lib=0A=
+=0A=
+=0A=
+$(EXEFILE) : $(EXEOBJS)=0A=
+	$(EXEGUILINK) $(VCLIBS)=0A=
+=0A=
+########################################################################=
####=0A=
+# generate versioninfo resources=0A=
+=0A=
+osidebug.res: osidebug.rc=0A=
+=0A=
+########################################################################=
####=0A=
+# Install target; primary makefile target=0A=
+=0A=
+install: $(EXEFILE)=0A=
+=0A=
+########################################################################=
####=0A=
+# Local clean target; augments predefined clean target=0A=
+=0A=
+clean::=0A=
+	$(DEL) osidebug.obj osidebug.exe osidebug.res=0A=
+=0A=
+=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/eventlog/NTMakefile =
upd/src/WINNT/eventlog/NTMakefile=0A=
--- bas/src/WINNT/eventlog/NTMakefile	2001-04-30 00:50:08.000000000 -0700=0A=
+++ upd/src/WINNT/eventlog/NTMakefile	2003-03-10 16:20:14.000000000 -0800=0A=
@@ -12,7 +12,7 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afseventlog.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	logevent.obj=0A=
+	$(OJT)\logevent.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
@@ -78,4 +78,8 @@=0A=
 	if exist $(NTLANG) $(NTLANG) de_DE $(MAKECMD) /nologo /f NTMakefile =
clean=0A=
     $(CD) ..=0A=
 =0A=
-=0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/eventlog/lang/NTMakefile =
upd/src/WINNT/eventlog/lang/NTMakefile=0A=
--- bas/src/WINNT/eventlog/lang/NTMakefile	2002-11-26 19:22:46.000000000 =
-0800=0A=
+++ upd/src/WINNT/eventlog/lang/NTMakefile	2003-03-10 16:20:14.000000000 =
-0800=0A=
@@ -29,13 +29,13 @@=0A=
 =
#########################################################################=
###=0A=
 DLLFILE =3D $(DESTDIR)\root.server\usr\afs\bin\afseventmsg_$(LANGID).dll=0A=
 =0A=
-DLLRESFILE =3D afseventmsg_$(LANGID).res=0A=
+DLLRESFILE =3D $(OJT)\afseventmsg_$(LANGID).res=0A=
 =0A=
 DLLRCFILE =3D afseventmsg.rc=0A=
 =0A=
 EVENTRCFILE =3D $(LANGNAME)\event.rc=0A=
 =0A=
-EVENTRESFILE =3D $(LANGNAME)\event.res=0A=
+EVENTRESFILE =3D $(OJT)\$(LANGNAME)\event.res=0A=
 =0A=
 DLLOBJS =3D $(DLLRESFILE)=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/eventlog/test/NTMakefile =
upd/src/WINNT/eventlog/test/NTMakefile=0A=
--- bas/src/WINNT/eventlog/test/NTMakefile	2000-11-04 02:03:02.000000000 =
-0800=0A=
+++ upd/src/WINNT/eventlog/test/NTMakefile	2003-03-10 16:20:14.000000000 =
-0800=0A=
@@ -9,6 +9,9 @@=0A=
 =0A=
 test tests: elogtest.exe=0A=
 =0A=
-elogtest.exe: elogtest.obj \=0A=
+$(OJT)\elogtest.exe: $(OJT)\elogtest.obj \=0A=
 	$(DESTDIR)\lib\afs\afseventlog.lib $(DESTDIR)\lib\afs\afsreg.lib=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/install/InstallShield5/NTMakefile =
upd/src/WINNT/install/InstallShield5/NTMakefile=0A=
--- bas/src/WINNT/install/InstallShield5/NTMakefile	2001-11-10 =
14:31:14.000000000 -0800=0A=
+++ upd/src/WINNT/install/InstallShield5/NTMakefile	2003-03-10 =
16:20:14.000000000 -0800=0A=
@@ -18,34 +18,41 @@=0A=
 WELCOMEMESSAGE=3DDefault Configuration Information:\nBuild:*DatE* =
*TimE* =
Ver:$(AFSPRODUCT_VERSION)\nCellname:$(CELLNAME_DEFAULT)\nCellSrvDB:$(CELL=
SERVDB_INSTALL)=0A=
 AFSBUILDCOMMENTS=3DBuild:*DatE* *TimE* CellServDB:$(CELLSERVDB_INSTALL)=0A=
  =0A=
+#CHECK which OS we are using to avoid using the wrong options=0A=
+!IF	(([$(DESTDIR)\bin\util_cr.exe _ xp w2])=3D=3D1) =0A=
+XCOPY=3D xcopy /s/e/y=0A=
+!ELSE=0A=
+XCOPY=3D xcopy /s/e=0A=
+!ENDIF=0A=
+=0A=
 =
#########################################################################=
###=0A=
 =0A=
 prep: AFS_component_version_number.txt=0A=
-	$(DESTDIR)\bin\util_cr.exe } "$(AFSPRODUCT_VERSION)" =
".\lang\en_US\value.txt" ".\lang\en_US\value.shl"=0A=
+	$(DESTDIR)\bin\util_cr.exe } "$(AFSPRODUCT_VERSION)" =
".\lang\en_US\value.txt" "$(OJT)\lang\en_US\value.shl"=0A=
 	$(DESTDIR)\bin\util_cr.exe } "$(AFSPRODUCT_VERSION)" "default.txt" =
"default.rge"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\lang\en_US\value.shl" =
"[DATA] CELLSERVDB_CONFIGNAME=3D$(CELLSERVDB_CONFIGNAME)"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\lang\en_US\value.shl" =
"[DATA] CELLNAME_DEFAULT=3D$(CELLNAME_DEFAULT)"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\lang\en_US\value.shl" =
"[DATA] CELLSERVDB_INSTALL=3D$(CELLSERVDB_INSTALL)"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\lang\en_US\value.shl" =
"[DATA] CELLSERVDB_WEB=3D$(CELLSERVDB_WEB)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\lang\en_US\value.shl" "[DATA] =
CELLSERVDB_CONFIGNAME=3D$(CELLSERVDB_CONFIGNAME)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\lang\en_US\value.shl" "[DATA] =
CELLNAME_DEFAULT=3D$(CELLNAME_DEFAULT)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\lang\en_US\value.shl" "[DATA] =
CELLSERVDB_INSTALL=3D$(CELLSERVDB_INSTALL)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\lang\en_US\value.shl" "[DATA] =
CELLSERVDB_WEB=3D$(CELLSERVDB_WEB)"=0A=
 !IF "$(WELCOMEMESSAGE)" !=3D ""=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\lang\en_US\value.shl" =
"[DATA] WELCOME_MESSAGE=3D$(WELCOMEMESSAGE)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\lang\en_US\value.shl" "[DATA] =
WELCOME_MESSAGE=3D$(WELCOMEMESSAGE)"=0A=
 !ENDIF=0A=
 !     IF ((EXIST("$(ISWEB)")) &&("$(ISWEB)"!=3D""))=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] =
Version=3D$(AFSPRODUCT_VERSION)"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] =
Comments=3D$(AFSBUILDCOMMENTS)"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] =
ApplicationName=3DAFSforWindows"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] =
Company=3DOpen AFS"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] =
Title=3DOpen AFS for Windows"=0A=
-	$(DESTDIR)\bin\util_cr.exe @ =
"$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] =
OutputSpec=3D"$(DESTDIR)\WinInstall\PackageWeb\AFSforWindows.exe"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\packageweb.pfw" "[Options] =
Version=3D$(AFSPRODUCT_VERSION)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\packageweb.pfw" "[Options] =
Comments=3D$(AFSBUILDCOMMENTS)"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\packageweb.pfw" "[Options] =
ApplicationName=3DAFSforWindows"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\packageweb.pfw" "[Options] =
Company=3DOpen AFS"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\packageweb.pfw" "[Options] =
Title=3DOpen AFS for Windows"=0A=
+	$(DESTDIR)\bin\util_cr.exe @ "$(OJT)\packageweb.pfw" "[Options] =
OutputSpec=3D"$(DESTDIR)\WinInstall\PackageWeb\AFSforWindows.exe"=0A=
 !     ENDIF=0A=
     CreateISDirTree.bat=0A=
     ScatterFiles.bat=0A=
     CreateGeneratedFiles.bat=0A=
     CompileScript.bat=0A=
-	$(COPY) $(DESTDIR)\WinInstall\Config\wininet.dll ".\Setup =
Files\Compressed Files\0009-English\Intel 32\."=0A=
-	$(COPY) $(DESTDIR)\WinInstall\Config\shlwapi.dll ".\Setup =
Files\Compressed Files\0009-English\Intel 32\."=0A=
-	$(COPY) ..\..\afs_setup_utils\_isuser\_isuser.dll ".\Setup =
Files\Compressed Files\0009-English\Intel 32\."=0A=
-	$(COPY) ..\..\afs_setup_utils\getwebdll\getwebdll.dll ".\Setup =
Files\Compressed Files\0009-English\Intel 32\."=0A=
+	$(COPY) $(SYSTEMROOT)\SYSTEM32\wininet.dll ".\Setup Files\Compressed =
Files\0009-English\Intel 32\."=0A=
+	$(COPY) $(SYSTEMROOT)\SYSTEM32\shlwapi.dll ".\Setup Files\Compressed =
Files\0009-English\Intel 32\."=0A=
+	$(COPY) $(DESTDIR)\WinInstall\Config\_isuser.dll ".\Setup =
Files\Compressed Files\0009-English\Intel 32\."=0A=
+	$(COPY) $(DESTDIR)\WinInstall\Config\getwebdll.dll ".\Setup =
Files\Compressed Files\0009-English\Intel 32\."=0A=
 	$(COPY) $(DESTDIR)\WinInstall\Config\$(CELLSERVDB_INSTALL) ".\Setup =
Files\Compressed Files\0009-English\Intel 32\$(CELLSERVDB_CONFIGNAME)"=0A=
 	$(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed =
Files\0009-English\Intel 32\$(CELLSERVDB_CONFIGNAME)"=0A=
 	$(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed =
Files\0009-English\Intel 32\_ISUSER.DLL"=0A=
@@ -60,10 +67,11 @@=0A=
 		$(MKDIR) $(DESTDIR)\Wininstall\PackageWeb=0A=
 !	ENDIF=0A=
 	$(DEL) /q $(DESTDIR)\Wininstall\PackageWeb\*.*=0A=
-	$(ISWEB)\Pftwwiz.exe =
$(AFSROOT)\src\winnt\install\InstallShield5\PackageWeb.pfw -s -a =0A=
+	$(ISWEB)\Pftwwiz.exe $(SRT)PackageWeb.pfw -s -a =0A=
 !ENDIF=0A=
-	xcopy /s/e/y "Media\OpenAFS\Disk Images\disk1\*.*" =
$(DESTDIR)\WinInstall=0A=
+	$(XCOPY) Media\OpenAFS\DiskIm~1\disk1\*.* $(DESTDIR)\WinInstall	=0A=
 	copy AFS_component_version_number.txt $(DESTDIR)\WinInstall\Version.txt=0A=
 	$(DEL) /q "Media\OpenAFS\Disk Images\disk1\*.*"=0A=
-=0A=
 install: prep build=0A=
+=0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/install/Win9x/NTMakeFile =
upd/src/WINNT/install/Win9x/NTMakeFile=0A=
--- bas/src/WINNT/install/Win9x/NTMakeFile	2002-01-08 12:44:44.000000000 =
-0800=0A=
+++ upd/src/WINNT/install/Win9x/NTMakeFile	2003-03-10 16:20:16.000000000 =
-0800=0A=
@@ -61,3 +61,6 @@=0A=
 	$(DESTDIR)\bin\util_cr.exe ~ "$(DESTDIR)\WinInstall\sock.vxd"=0A=
 	$(DESTDIR)\bin\util_cr.exe ~ "$(DESTDIR)\WinInstall\MMAP.vxd"=0A=
 	$(DESTDIR)\bin\util_cr.exe ~ "$(DESTDIR)\WinInstall\AFSD.EXE"=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/license/NTMakefile =
upd/src/WINNT/license/NTMakefile=0A=
--- bas/src/WINNT/license/NTMakefile	2000-11-04 02:03:04.000000000 -0800=0A=
+++ upd/src/WINNT/license/NTMakefile	2003-03-10 16:20:16.000000000 -0800=0A=
@@ -17,8 +17,8 @@=0A=
 EXEFILE =3D $(DESTDIR)\bin\sgml2rtf.exe=0A=
 =0A=
 EXEOBJS =3D \=0A=
-	main.obj \=0A=
-	multistring.obj=0A=
+	$(OJT)\main.obj \=0A=
+	$(OJT)\multistring.obj=0A=
 =0A=
 EXELIBS =3D \=0A=
 	user32.lib=0A=
@@ -35,3 +35,8 @@=0A=
 	@$(MAKECMD) /nologo /f NTMakefile install=0A=
 	$(CD) ..=0A=
 =0A=
+mkdir:=0A=
+	-mkdir $(OJT)\lang=0A=
+	cd lang=0A=
+	nmake /nologo /f ntmakefile SRC=3D$(SRC) OBJ=3D$(OBJ) mkdir=0A=
+	cd ..=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/license/lang/NTMakefile =
upd/src/WINNT/license/lang/NTMakefile=0A=
--- bas/src/WINNT/license/lang/NTMakefile	2001-09-17 13:35:16.000000000 =
-0700=0A=
+++ upd/src/WINNT/license/lang/NTMakefile	2003-03-10 16:20:16.000000000 =
-0800=0A=
@@ -26,3 +26,5 @@=0A=
 =0A=
 clean :: =0A=
 	$(DEL) *.rtf=0A=
+=0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/pthread/NTMakefile =
upd/src/WINNT/pthread/NTMakefile=0A=
--- bas/src/WINNT/pthread/NTMakefile	2002-01-08 12:44:48.000000000 -0800=0A=
+++ upd/src/WINNT/pthread/NTMakefile	2003-03-10 16:20:16.000000000 -0800=0A=
@@ -21,8 +21,8 @@=0A=
 PTHR_DLLFILE =3D $(DESTDIR)\lib\afspthread.dll=0A=
 =0A=
 PTHR_DLLOBJS =3D \=0A=
-	pthread.obj \=0A=
-	pthread.res=0A=
+	$(OJT)\pthread.obj \=0A=
+	$(OJT)\pthread.res=0A=
 =0A=
 $(PTHR_DLLFILE): $(PTHR_DLLOBJS)=0A=
 	$(DLLCONLINK) /DEF:pthread.def=0A=
@@ -34,25 +34,25 @@=0A=
 PTHR95_DLLFILE =3D $(DESTDIR)\lib\win95\afspthread.dll=0A=
 =0A=
 PTHR95_DLLOBJS =3D \=0A=
-	pthread_95.obj \=0A=
-	pthread95.res=0A=
+   $(OJT)\pthread_95.obj \=0A=
+	$(OJT)\pthread95.res=0A=
 =0A=
 $(PTHR95_DLLFILE): $(PTHR95_DLLOBJS)=0A=
 	$(DLLCONLINK) /DEF:pthread.def=0A=
 	$(DLLPREP)=0A=
 =0A=
-pthread_95.obj: pthread.c=0A=
-	$(C2OBJ) pthread.c -DAFS_WIN95_ENV /Fopthread_95.obj=0A=
+$(OJT)\pthread_95.obj: pthread.c=0A=
+	$(C2OBJ) $** -DAFS_WIN95_ENV =0A=
 =0A=
 install: $(PTHR95_DLLFILE) $(PTHR_DLLFILE) $(LIBINCLUDES)=0A=
 =0A=
 install9x: install=0A=
 =0A=
-pthread.res: pthread.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-=0A=
-pthread95.res: pthread95.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\pthread95.res: pthread95.rc AFS_component_version_number.h=0A=
+	$(RC) /fo$*.res $(*F).rc =0A=
 =0A=
 clean::=0A=
 	$(DEL) /q $(DESTDIR)\lib\win95\*.*=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/pthread/test/NTMakefile =
upd/src/WINNT/pthread/test/NTMakefile=0A=
--- bas/src/WINNT/pthread/test/NTMakefile	2002-01-08 12:44:48.000000000 =
-0800=0A=
+++ upd/src/WINNT/pthread/test/NTMakefile	2003-03-10 16:20:16.000000000 =
-0800=0A=
@@ -10,12 +10,17 @@=0A=
 test tests: ptest.exe tsd.exe native.exe=0A=
 =0A=
 =0A=
-ptest.exe: ptest.obj $(DESTDIR)/lib/afspthread.lib =
$(DESTDIR)/lib/afs/afsutil.lib=0A=
+$(OJT)\ptest.exe: $(OJT)\ptest.obj $(DESTDIR)/lib/afspthread.lib =
$(DESTDIR)/lib/afs/afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
-tsd.exe: tsd.obj $(DESTDIR)/lib/afspthread.lib =
$(DESTDIR)/lib/afs/afsutil.lib=0A=
+$(OJT)\tsd.exe: $(OJT)\tsd.obj $(DESTDIR)/lib/afspthread.lib =
$(DESTDIR)/lib/afs/afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
-native.exe: native.obj $(DESTDIR)/lib/afspthread.lib =
$(DESTDIR)/lib/afs/afsutil.lib=0A=
+$(OJT)\native.exe: $(OJT)\native.obj $(DESTDIR)/lib/afspthread.lib =
$(DESTDIR)/lib/afs/afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
+clean::=0A=
+	$(DEL) $(DESTDIR)/lib/afspthread.lib=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/talocale/NTMakefile =
upd/src/WINNT/talocale/NTMakefile=0A=
--- bas/src/WINNT/talocale/NTMakefile	2001-04-30 00:51:04.000000000 -0700=0A=
+++ upd/src/WINNT/talocale/NTMakefile	2003-03-10 16:20:16.000000000 -0800=0A=
@@ -18,10 +18,10 @@=0A=
 INCFILEDIR =3D $(DESTDIR)\include\WINNT=0A=
 =0A=
 LIBOBJS =3D \=0A=
-	tal_alloc.obj \=0A=
-	tal_main.obj \=0A=
-	tal_string.obj \=0A=
-	tal_dialog.obj=0A=
+	$(OJT)\tal_alloc.obj \=0A=
+	$(OJT)\tal_main.obj \=0A=
+	$(OJT)\tal_string.obj \=0A=
+	$(OJT)\tal_dialog.obj=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(INCFILEDIR)\talocale.h \=0A=
@@ -43,3 +43,6 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) $(LIBINCLUDES)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/WINNT/talocale/tal_alloc.cpp upd/src/WINNT/talocale/tal_alloc.cpp=0A=
--- bas/src/WINNT/talocale/tal_alloc.cpp	2000-11-04 02:03:06.000000000 =
-0800=0A=
+++ upd/src/WINNT/talocale/tal_alloc.cpp	2003-03-10 16:20:16.000000000 =
-0800=0A=
@@ -17,6 +17,7 @@=0A=
 #include <windows.h>=0A=
 #include <commctrl.h>=0A=
 #include <WINNT/tal_alloc.h>=0A=
+#include <winnt/osi_malloc.h>=0A=
 =0A=
 =0A=
 /*=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/WINNT/win9xpanel/NTMakefile =
upd/src/WINNT/win9xpanel/NTMakefile=0A=
--- bas/src/WINNT/win9xpanel/NTMakefile	2001-08-19 08:44:46.000000000 =
-0700=0A=
+++ upd/src/WINNT/win9xpanel/NTMakefile	2003-03-10 16:20:18.000000000 =
-0800=0A=
@@ -53,7 +53,7 @@=0A=
 =0A=
 !IF  "$(AFSDEV_BUILDTYPE)" =3D=3D "FREE"=0A=
 =0A=
-INTDIR=3D.=0A=
+INTDIR=3D$(OJT)\=0A=
 HLP=3Dhcrtf.exe=0A=
 HLP_PROJ =3D /x=0A=
 # Begin Custom Macros=0A=
@@ -74,7 +74,7 @@=0A=
 CPP_PROJ=3D/nologo /MD /W3 /GX /O2 \=0A=
 	$(CPP_INCLUDE) /P \=0A=
 	/I "$(DESTDIR)\include\\" /I "$(DESTDIR)\include\rx" /I =
"$(DESTDIR)\include\afs" \=0A=
-	/D "NDEBUG" /D "_MFC" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_WINNT" =
/D "_AFXDLL" /D "ENCRIPT" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c =0A=
+	/D "NDEBUG" /D "_MFC" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_WINNT" =
/D "_AFXDLL" /D "ENCRIPT" /Fo"$(OJT)\\\" /Fd"$(INTDIR)\\" /FD /c =0A=
 =0A=
 MTL_PROJ=3D/nologo /D "NDEBUG" /mktyplib203 /win32 =0A=
 RSC_PROJ=3D/l 0x409 /fo"$(INTDIR)\WinAfsLoad.res" $(AFSD_INC_MFC) /d =
"AFSPRODUCT_VERSION=3D\"$(AFSPRODUCT_VERSION)\"" /d "NDEBUG" /d =
"_AFXDLL" =0A=
@@ -112,7 +112,7 @@=0A=
 =0A=
 !ELSEIF  "$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED"=0A=
 =0A=
-INTDIR=3D.=0A=
+INTDIR=3D$(OJT)\=0A=
 HLP=3Dhcrtf.exe=0A=
 HLP_PROJ =3D /x=0A=
 # Begin Custom Macros=0A=
@@ -186,27 +186,27 @@=0A=
 =0A=
 !ENDIF =0A=
 =0A=
-.c{$(INTDIR)}.obj::=0A=
+.c.${$(OJT)\}obj::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cxx{$(INTDIR)}.obj::=0A=
+.cxx.obj::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.c{$(INTDIR)}.sbr::=0A=
+.c.$(OJT)\sbr::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cpp{$(INTDIR)}.sbr::=0A=
+.cpp$.$(OJT)\sbr::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
 =0A=
-.cxx{$(INTDIR)}.sbr::=0A=
+.cxx.$(OJT)\sbr::=0A=
    $(CPP) @<<=0A=
    $(CPP_PROJ) $< =0A=
 <<=0A=
@@ -334,3 +334,6 @@=0A=
 =0A=
 install9x: install=0A=
 =0A=
+mkdir:=0A=
+=0A=
+=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/audit/NTMakefile =
upd/src/audit/NTMakefile=0A=
--- bas/src/audit/NTMakefile	2001-04-30 00:52:26.000000000 -0700=0A=
+++ upd/src/audit/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -1,3 +1,4 @@=0A=
+#=0A=
 # Copyright 2000, International Business Machines Corporation and =
others.=0A=
 # All Rights Reserved.=0A=
 # =0A=
@@ -19,7 +20,7 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsaudit.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	audit.obj=0A=
+	$(OJT)\audit.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS) =0A=
 	$(LIBARCH)  =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/auth/NTMakefile =
upd/src/auth/NTMakefile=0A=
--- bas/src/auth/NTMakefile	2001-10-05 15:40:48.000000000 -0700=0A=
+++ upd/src/auth/NTMakefile	2003-03-10 17:36:06.000000000 -0800=0A=
@@ -25,17 +25,22 @@=0A=
 AFSD =3D ..\WINNT\afsd=0A=
 =0A=
 AFSAUTH_LIBOBJS =3D\=0A=
-	cellconfig.obj \=0A=
-	userok.obj \=0A=
-	writeconfig.obj \=0A=
-	authcon.obj \=0A=
-	acfg_errors.obj \=0A=
-	ktc_errors.obj \=0A=
-	ktc_nt.obj \=0A=
-	$(AFSD)\afsrpc_c.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\cellconfig.obj \=0A=
+	$(OJT)\userok.obj \=0A=
+	$(OJT)\writeconfig.obj \=0A=
+	$(OJT)\authcon.obj \=0A=
+	$(OJT)\acfg_errors.obj \=0A=
+	$(OJT)\ktc_errors.obj \=0A=
+	$(OJT)\ktc_nt.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
-$(AFSAUTH_LIBFILE): $(AFSAUTH_LIBOBJS)  =0A=
+AFSDOBJS =3D\=0A=
+	$(OJT)\$(AFSD)\afsrpc_c.obj=0A=
+=0A=
+$(AFSDOBJS): $(AFSD)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(AFSAUTH_LIBFILE): $(AFSAUTH_LIBOBJS) $(AFSDOBJS) =0A=
 	$(LIBARCH) rpcrt4.lib=0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -44,14 +49,14 @@=0A=
 AFSAUTH_KRB_LIBFILE =3D $(DESTDIR)\lib\afs\afsauth.krb.lib=0A=
 =0A=
 AFSAUTH_KRB_LIBOBJS =3D\=0A=
-	cellconfig.obj \=0A=
-	userok.obj \=0A=
-	writeconfig.obj \=0A=
-	authcon.obj \=0A=
-	acfg_errors.obj \=0A=
-	ktc_errors.obj \=0A=
-	ktc_nt.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\cellconfig.obj \=0A=
+	$(OJT)\userok.obj \=0A=
+	$(OJT)\writeconfig.obj \=0A=
+	$(OJT)\authcon.obj \=0A=
+	$(OJT)\acfg_errors.obj \=0A=
+	$(OJT)\ktc_errors.obj \=0A=
+	$(OJT)\ktc_nt.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 	=0A=
 $(AFSAUTH_KRB_LIBFILE): $(AFSAUTH_KRB_LIBOBJS)  =0A=
 	$(LIBARCH) rpcrt4.lib=0A=
@@ -59,10 +64,10 @@=0A=
 =
#########################################################################=
###=0A=
 # build setkey=0A=
 =0A=
-SETKEY_EXEFILE =3D setkey.exe=0A=
+SETKEY_EXEFILE =3D $(OJT)\setkey.exe=0A=
 =0A=
 SETKEY_EXEOBJS =3D\=0A=
-	setkey.obj =0A=
+	$(OJT)\setkey.obj =0A=
 =0A=
 EXELIBDIR =3D $(DESTDIR)\lib=0A=
 =0A=
@@ -86,30 +91,33 @@=0A=
 COPYAUTH_EXEFILE =3D $(DESTDIR)\etc\copyauth.exe=0A=
 =0A=
 COPYAUTH_EXEOBJS =3D\=0A=
-	copyauth.obj=0A=
+	$(OJT)\copyauth.obj=0A=
 =0A=
 $(COPYAUTH_EXEFILE): $(COPYAUTH_EXEOBJS) $(EXELIBS) =0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP) =0A=
 =0A=
-acfg_errors.c $(INCFILEDIR)\cellconfig.h : acfg_errors.et cellconfig.p.h=0A=
-	$(DEL) $(INCFILEDIR)\cellconfig.h  acfg_errors.c=0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
+=0A=
+acfg_errors.c cellconfig.h : acfg_errors.et cellconfig.p.h=0A=
+	$(DEL) cellconfig.h  acfg_errors.c=0A=
 	$(COMPILE_ET) acfg_errors.et -h cellconfig=0A=
-	$(COPY) cellconfig.h $(INCFILEDIR)\cellconfig.h=0A=
 =0A=
-ktc_errors.c $(INCFILEDIR)\auth.h: ktc_errors.et auth.p.h=0A=
+ktc_errors.c auth.h: ktc_errors.et auth.p.h=0A=
 	$(DEL) auth.h ktc_errors.c=0A=
 	$(COMPILE_ET) ktc_errors.et -h auth=0A=
-      	$(COPY) auth.h $(INCFILEDIR)\auth.h=0A=
 =0A=
-install: $(INCFILES) $(AFSAUTH_LIBFILE) setkey.exe # =
$(COPYAUTH_EXEFILE) $(AFSAUTH_KRB_LIBFILE)=0A=
+install: $(INCFILES) $(AFSAUTH_LIBFILE) $(OJT)\setkey.exe # =
$(COPYAUTH_EXEFILE) $(AFSAUTH_KRB_LIBFILE)=0A=
 =0A=
 install9x: install=0A=
 =0A=
 clean::=0A=
 	$(DEL) acfg_errors.c ktc_errors.c=0A=
-	$(DEL) $(INCFILEDIR)\auth.h  $(INCFILEDIR)\cellconfig.h=0A=
+	$(DEL) $(INCFILES) $(AFSAUTH_LIBFILE)=0A=
 	$(DEL) auth.h  cellconfig.h=0A=
 =0A=
 setkey: $(SETKEY_EXEFILE)=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/auth/ktc_nt.c =
upd/src/auth/ktc_nt.c=0A=
--- bas/src/auth/ktc_nt.c	2002-10-15 21:58:30.000000000 -0700=0A=
+++ upd/src/auth/ktc_nt.c	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -25,7 +25,7 @@=0A=
 #include <rpc.h>=0A=
 #include <afs/smb_iocons.h>=0A=
 #include <afs/pioctl_nt.h>=0A=
-#include "WINNT/afsd/afsrpc.h"=0A=
+#include "afs/afsrpc.h"=0A=
 #include <afs/vice.h>=0A=
 #include "auth.h"=0A=
 #include <afs/afsutil.h>=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/auth/test/NTMakefile =
upd/src/auth/test/NTMakefile=0A=
--- bas/src/auth/test/NTMakefile	2000-11-04 02:03:58.000000000 -0800=0A=
+++ upd/src/auth/test/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -9,10 +9,10 @@=0A=
 !INCLUDE ..\..\config\NTMakefile.version=0A=
 =0A=
 =
#########################################################################=
###=0A=
-CELL_EXEFILE =3D testcellconf.exe=0A=
+CELL_EXEFILE =3D $(OJT)\testcellconf.exe=0A=
 =0A=
 CELL_EXEOBJS =3D\=0A=
-	testcellconf.obj=0A=
+	$(OJT)\testcellconf.obj=0A=
 =0A=
 CELL_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsauth.lib \=0A=
@@ -26,10 +26,10 @@=0A=
 	$(EXEPREP) =0A=
 =0A=
 =
#########################################################################=
###=0A=
-KTC_EXEFILE =3D ktctest.exe=0A=
+KTC_EXEFILE =3D $(OJT)\ktctest.exe=0A=
 =0A=
 KTC_EXEOBJS =3D\=0A=
-	ktctest.obj=0A=
+	$(OJT)\ktctest.obj=0A=
 =0A=
 KTC_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib \=0A=
@@ -44,3 +44,6 @@=0A=
 test tests: $(CELL_EXEFILE) $(KTC_EXEFILE)=0A=
 =0A=
 clean::=0A=
+=0A=
+mkdir: =0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/bozo/NTMakefile =
upd/src/bozo/NTMakefile=0A=
--- bas/src/bozo/NTMakefile	2001-10-31 19:40:30.000000000 -0800=0A=
+++ upd/src/bozo/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -22,10 +22,10 @@=0A=
 BOS_LIBFILE =3D $(DESTDIR)\lib\afs\afsbos.lib=0A=
 =0A=
 BOS_LIBOBJS =3D\=0A=
-	AFS_component_version_number.obj \=0A=
-	bosint.cs.obj \=0A=
-	bosint.xdr.obj \=0A=
-	boserr.obj=0A=
+	$(OJT)\bosint.cs.obj \=0A=
+	$(OJT)\bosint.xdr.obj \=0A=
+	$(OJT)\boserr.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(BOS_LIBFILE): $(BOS_LIBOBJS)=0A=
 	$(LIBARCH)=0A=
@@ -37,14 +37,14 @@=0A=
 BOSSERVER_EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\bosserver.exe=0A=
 =0A=
 BOSSERVER_EXEOBJS =3D\=0A=
-	bosserver.obj \=0A=
-	bnode.obj \=0A=
-	cronbnodeops.obj \=0A=
-	ezbnodeops.obj \=0A=
-	fsbnodeops.obj \=0A=
-	bosint.ss.obj \=0A=
-	bosoprocs.obj \=0A=
-	bosserver.res=0A=
+	$(OJT)\bosserver.obj \=0A=
+	$(OJT)\bnode.obj \=0A=
+	$(OJT)\cronbnodeops.obj \=0A=
+	$(OJT)\ezbnodeops.obj \=0A=
+	$(OJT)\fsbnodeops.obj \=0A=
+	$(OJT)\bosint.ss.obj \=0A=
+	$(OJT)\bosoprocs.obj \=0A=
+	$(OJT)\bosserver.res=0A=
 =0A=
 =0A=
 BOSSERVER_EXELIBS =3D\=0A=
@@ -81,8 +81,8 @@=0A=
 CL_BOS_EXEFILE =3D $(DESTDIR)\bin\bos.exe=0A=
 =0A=
 BOS_EXEOBJS =3D\=0A=
-	bos.obj \=0A=
-	bos.res=0A=
+	$(OJT)\bos.obj \=0A=
+	$(OJT)\bos.res=0A=
 =0A=
 BOS_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afsrx.lib \=0A=
@@ -130,11 +130,9 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-bosserver.res: bosserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\bosserver.res: AFS_component_version_number.h=0A=
 =0A=
-bos.res: bos.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\bos.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -147,3 +145,6 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) bnode.h boserr.c bosint.cs.c bosint.h bosint.ss.c bosint.xdr.c=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/bu_utils/NTMakefile =
upd/src/bu_utils/NTMakefile=0A=
--- bas/src/bu_utils/NTMakefile	2000-11-04 02:04:02.000000000 -0800=0A=
+++ upd/src/bu_utils/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -15,8 +15,8 @@=0A=
 EXEFILE =3D $(DESTDIR)\etc\fms.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	fms.obj \=0A=
-	fms.res=0A=
+	$(OJT)\fms.obj \=0A=
+	$(OJT)\fms.res=0A=
 =0A=
 EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afscmd.lib \=0A=
@@ -32,8 +32,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-fms.res: fms.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\fms.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -46,3 +45,5 @@=0A=
 =0A=
 clean::=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/bubasics/NTMakefile =
upd/src/bubasics/NTMakefile=0A=
--- bas/src/bubasics/NTMakefile	2000-11-04 02:04:02.000000000 -0800=0A=
+++ upd/src/bubasics/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -29,16 +29,16 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsbubasics.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	butc.ss.obj \=0A=
-	butc.cs.obj \=0A=
-	butc.xdr.obj \=0A=
-	bumon.ss.obj \=0A=
-	bumon.cs.obj \=0A=
-	bumon.xdr.obj \=0A=
-	butc_errs.obj \=0A=
-	butm_errs.obj \=0A=
-	butx_errs.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\butc.ss.obj \=0A=
+	$(OJT)\butc.cs.obj \=0A=
+	$(OJT)\butc.xdr.obj \=0A=
+	$(OJT)\bumon.ss.obj \=0A=
+	$(OJT)\bumon.cs.obj \=0A=
+	$(OJT)\bumon.xdr.obj \=0A=
+	$(OJT)\butc_errs.obj \=0A=
+	$(OJT)\butm_errs.obj \=0A=
+	$(OJT)\butx_errs.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS) =0A=
 	$(LIBARCH) =0A=
@@ -81,4 +81,5 @@=0A=
  	$(DEL) *.xdr.c *.ss.c *.cs.c butc.h bumon.h butm.h tcdata.h butx.h \=0A=
 		butc_errs.c butm_errs.c	butx_errs.c=0A=
 =0A=
-=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/bucoord/NTMakefile =
upd/src/bucoord/NTMakefile=0A=
--- bas/src/bucoord/NTMakefile	2001-10-31 19:40:30.000000000 -0800=0A=
+++ upd/src/bucoord/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -19,13 +19,13 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsbxdb.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	dsstub.obj \=0A=
-	ubik_db_if.obj \=0A=
-	status.obj \=0A=
-	dlq.obj \=0A=
-	bucoord_errs.obj \=0A=
-	volstub.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\dsstub.obj \=0A=
+	$(OJT)\ubik_db_if.obj \=0A=
+	$(OJT)\status.obj \=0A=
+	$(OJT)\dlq.obj \=0A=
+	$(OJT)\bucoord_errs.obj \=0A=
+	$(OJT)\volstub.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
@@ -37,25 +37,25 @@=0A=
 EXEFILE =3D $(DESTDIR)\etc\backup.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	main.obj \=0A=
-	config.obj \=0A=
-	dsstub.obj \=0A=
-	volstub.obj \=0A=
-	commands.obj \=0A=
-	regex.obj \=0A=
-	server.obj \=0A=
-	dsvs.obj \=0A=
-	dump.obj \=0A=
-	restore.obj \=0A=
-	ubik_db_if.obj \=0A=
-	dump_sched.obj \=0A=
-	vol_sets.obj \=0A=
-	tape_hosts.obj \=0A=
-	bucoord_errs.obj \=0A=
-	bc_status.obj \=0A=
-	status.obj \=0A=
-	dlq.obj \=0A=
-	backup.res=0A=
+	$(OJT)\main.obj \=0A=
+	$(OJT)\config.obj \=0A=
+	$(OJT)\dsstub.obj \=0A=
+	$(OJT)\volstub.obj \=0A=
+	$(OJT)\commands.obj \=0A=
+	$(OJT)\regex.obj \=0A=
+	$(OJT)\server.obj \=0A=
+	$(OJT)\dsvs.obj \=0A=
+	$(OJT)\dump.obj \=0A=
+	$(OJT)\restore.obj \=0A=
+	$(OJT)\ubik_db_if.obj \=0A=
+	$(OJT)\dump_sched.obj \=0A=
+	$(OJT)\vol_sets.obj \=0A=
+	$(OJT)\tape_hosts.obj \=0A=
+	$(OJT)\bucoord_errs.obj \=0A=
+	$(OJT)\bc_status.obj \=0A=
+	$(OJT)\status.obj \=0A=
+	$(OJT)\dlq.obj \=0A=
+	$(OJT)\backup.res=0A=
 =0A=
 EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsbudb.lib \=0A=
@@ -98,8 +98,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-backup.res: backup.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\backup.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install =0A=
@@ -113,3 +112,6 @@=0A=
 clean::=0A=
 	$(DEL) bc.h bucoord_errs.c=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/budb/NTMakefile =
upd/src/budb/NTMakefile=0A=
--- bas/src/budb/NTMakefile	2001-10-31 19:40:30.000000000 -0800=0A=
+++ upd/src/budb/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -26,11 +26,11 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsbudb.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	budb_errs.obj \=0A=
-	budb.cs.obj \=0A=
-	budb.xdr.obj \=0A=
-	struct_ops.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\budb_errs.obj \=0A=
+	$(OJT)\budb.cs.obj \=0A=
+	$(OJT)\budb.xdr.obj \=0A=
+	$(OJT)\struct_ops.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS) =0A=
 	$(LIBARCH) =0A=
@@ -42,21 +42,21 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\buserver.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	database.obj \=0A=
-	db_alloc.obj \=0A=
-	db_dump.obj \=0A=
-	db_hash.obj \=0A=
-	struct_ops.obj \=0A=
-	ol_verify.obj \=0A=
-	budb.ss.obj \=0A=
-	budb.xdr.obj \=0A=
-	dbs_dump.obj \=0A=
-	db_lock.obj \=0A=
-	db_text.obj \=0A=
-	procs.obj \=0A=
-	budb_errs.obj \=0A=
-	server.obj \=0A=
-	buserver.res=0A=
+	$(OJT)\database.obj \=0A=
+	$(OJT)\db_alloc.obj \=0A=
+	$(OJT)\db_dump.obj \=0A=
+	$(OJT)\db_hash.obj \=0A=
+	$(OJT)\struct_ops.obj \=0A=
+	$(OJT)\ol_verify.obj \=0A=
+	$(OJT)\budb.ss.obj \=0A=
+	$(OJT)\budb.xdr.obj \=0A=
+	$(OJT)\dbs_dump.obj \=0A=
+	$(OJT)\db_lock.obj \=0A=
+	$(OJT)\db_text.obj \=0A=
+	$(OJT)\procs.obj \=0A=
+	$(OJT)\budb_errs.obj \=0A=
+	$(OJT)\server.obj \=0A=
+	$(OJT)\buserver.res=0A=
 =0A=
 =0A=
 EXELIBS =3D\=0A=
@@ -86,8 +86,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-buserver.res: buserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\buserver.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # rxgen budb.rg=0A=
@@ -118,3 +117,6 @@=0A=
 clean::=0A=
 	$(DEL) budb_errs.c budb_errs.h budb.h budb_client.h	=0A=
 	$(DEL) budb.cs.c budb.ss.c budb.xdr.c=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/butc/NTMakefile =
upd/src/butc/NTMakefile=0A=
--- bas/src/butc/NTMakefile	2001-10-31 19:40:30.000000000 -0800=0A=
+++ upd/src/butc/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -15,16 +15,16 @@=0A=
 EXEFILE =3D $(DESTDIR)\etc\butc.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	dbentries.obj \=0A=
-	tcprocs.obj \=0A=
-	lwps.obj \=0A=
-	list.obj \=0A=
-	recoverDb.obj \=0A=
-	tcudbprocs.obj \=0A=
-	dump.obj \=0A=
-	tcstatus.obj \=0A=
-	tcmain.obj \=0A=
-	butc.res=0A=
+	$(OJT)\dbentries.obj \=0A=
+	$(OJT)\tcprocs.obj \=0A=
+	$(OJT)\lwps.obj \=0A=
+	$(OJT)\list.obj \=0A=
+	$(OJT)\recoverDb.obj \=0A=
+	$(OJT)\tcudbprocs.obj \=0A=
+	$(OJT)\dump.obj \=0A=
+	$(OJT)\tcstatus.obj \=0A=
+	$(OJT)\tcmain.obj  \=0A=
+	$(OJT)\butc.res=0A=
 =0A=
 EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsbudb.lib \=0A=
@@ -59,8 +59,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-butc.res: butc.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\butc.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -76,5 +75,8 @@=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Auxiliary build targets not built by default; e.g. test programs=0A=
-butc_test.exe: test.obj=0A=
+$(OJT)\butc_test.exe: $(OJT)\test.obj=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/butm/NTMakefile =
upd/src/butm/NTMakefile=0A=
--- bas/src/butm/NTMakefile	2000-11-04 02:04:16.000000000 -0800=0A=
+++ upd/src/butm/NTMakefile	2003-03-10 16:20:18.000000000 -0800=0A=
@@ -15,8 +15,8 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsbutm.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	file_tm.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\file_tm.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS) =0A=
 	$(LIBARCH) =0A=
@@ -25,7 +25,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
 =0A=
-install: $(LIBFILE) test_ftm.exe=0A=
+install: $(LIBFILE) $(OJT)\test_ftm.exe=0A=
 =0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -43,5 +43,8 @@=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib \=0A=
 	$(DESTDIR)\lib\afs\afsbubasics.lib=0A=
 =0A=
-test_ftm.exe: test_ftm.obj $(LIBFILE) $(TESTLIBS)=0A=
+$(OJT)\test_ftm.exe: $(OJT)\test_ftm.obj $(LIBFILE) $(TESTLIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/cmd/NTMakefile =
upd/src/cmd/NTMakefile=0A=
--- bas/src/cmd/NTMakefile	2001-09-17 13:35:20.000000000 -0700=0A=
+++ upd/src/cmd/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -20,26 +20,30 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afscmd.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	cmd_errors.obj \=0A=
-	cmd.obj \=0A=
-	AFS_component_version_number.obj=0A=
-=0A=
-$(LIBFILE): $(LIBOBJS) =0A=
+	$(OJT)\cmd_errors.obj \=0A=
+	$(OJT)\cmd.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
+	=0A=
+$(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH) =0A=
 =0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
 =0A=
 cmd_errors.c cmd.h: cmd_errors.et cmd.p.h=0A=
 	$(DEL) cmd_errors.c cmd.h=0A=
-	$(COMPILE_ET) cmd_errors -h cmd=0A=
-=0A=
+	$(COMPILE_ET) cmd_errors.et -h cmd=0A=
 =0A=
-install: $(LIBFILE) $(INCFILES)=0A=
+install: cmd.h $(LIBFILE) $(INCFILES)=0A=
 =0A=
 install9x: install=0A=
 =0A=
 clean::=0A=
-	$(DEL) cmd_errors.c cmd.h=0A=
+	$(DEL) cmd_errors.c cmd.h $(INCFILES)=0A=
 	$(DEL) $(LIBFILE)=0A=
+	$(DEL) *.PDB=0A=
 =0A=
 test tests:=0A=
+=0A=
+mkdir:=0A=
 	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/cmd/test/NTMakefile =
upd/src/cmd/test/NTMakefile=0A=
--- bas/src/cmd/test/NTMakefile	2000-11-04 02:04:18.000000000 -0800=0A=
+++ upd/src/cmd/test/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -17,9 +17,9 @@=0A=
 =0A=
 # build itest.exe=0A=
 ITEST_EXEOBJS =3D\=0A=
-	itest.obj=0A=
+	$(OJT)\itest.obj=0A=
 =0A=
-ITEST_EXEFILE =3D itest.exe=0A=
+ITEST_EXEFILE =3D $(OJT)\itest.exe=0A=
 =0A=
 $(ITEST_EXEFILE): $(ITEST_EXEOBJS) =0A=
 	$(EXECONLINK) $(EXELIBS)  =0A=
@@ -27,9 +27,9 @@=0A=
 =0A=
 #build ctest.exe=0A=
 CTEST_EXEOBJS =3D\=0A=
-	ctest.obj=0A=
+	$(OJT)\ctest.obj=0A=
 =0A=
-CTEST_EXEFILE =3D ctest.exe=0A=
+CTEST_EXEFILE =3D $(OJT)\ctest.exe=0A=
 =0A=
 $(CTEST_EXEFILE): $(CTEST_EXEOBJS) =0A=
 	$(EXECONLINK) $(EXELIBS)  =0A=
@@ -37,9 +37,9 @@=0A=
 =0A=
 # build dtest.exe=0A=
 DTEST_EXEOBJS =3D\=0A=
-	dtest.obj=0A=
+	$(OJT)\dtest.obj=0A=
 =0A=
-DTEST_EXEFILE =3D dtest.exe=0A=
+DTEST_EXEFILE =3D $(OJT)\dtest.exe=0A=
 =0A=
 $(DTEST_EXEFILE): $(DTEST_EXEOBJS) =0A=
 	$(EXECONLINK) $(EXELIBS)  =0A=
@@ -50,4 +50,7 @@=0A=
 test tests: $(CTEST_EXEFILE) $(ITEST_EXEFILE) $(DTEST_EXEFILE)=0A=
 =0A=
 clean::=0A=
-	$(DEL) ctest.exe dtest.exe itest.exe=0A=
+	$(DEL) $(OJT)\ctest.exe $(OJT)\dtest.exe $(OJT)\itest.exe=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/comerr/NTMakefile =
upd/src/comerr/NTMakefile=0A=
--- bas/src/comerr/NTMakefile	2001-04-30 00:53:42.000000000 -0700=0A=
+++ upd/src/comerr/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -4,7 +4,7 @@=0A=
 # This software has been released under the terms of the IBM Public=0A=
 # License.  For details, see the LICENSE file in the top-level source=0A=
 # directory or online at http://www.openafs.org/dl/license10.html=0A=
-=0A=
+!message=0A=
 !INCLUDE ..\config\NTMakefile.$(SYS_NAME)=0A=
 !INCLUDE ..\config\NTMakefile.version=0A=
 =0A=
@@ -21,11 +21,11 @@=0A=
 COMERR_LIBFILE =3D $(DESTDIR)\lib\afs\afscom_err.lib=0A=
 =0A=
 COMERR_LIBOBJS =3D\=0A=
-		error_msg.obj  \=0A=
-		et_name.obj  \=0A=
-		com_err.obj \=0A=
-		AFS_component_version_number.obj=0A=
-=0A=
+		$(OJT)\error_msg.obj  \=0A=
+		$(OJT)\et_name.obj  \=0A=
+		$(OJT)\com_err.obj \=0A=
+		$(OJT)\AFS_component_version_number.obj=0A=
+		=0A=
 $(COMERR_LIBFILE): $(COMERR_LIBOBJS)=0A=
 	$(LIBARCH)  =0A=
 =0A=
@@ -45,9 +45,9 @@=0A=
     $(YACC) -d -o $@ error_table.y=0A=
 =0A=
 COMPILE_ET_EXEOBJS =3D\=0A=
-		compile_et.obj \=0A=
-		error_table_nt.obj=0A=
-		=0A=
+		$(OJT)\compile_et.obj \=0A=
+		$(OJT)\error_table_nt.obj=0A=
+=0A=
 COMPILE_ET_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib=0A=
 =0A=
@@ -61,7 +61,7 @@=0A=
 install9x: install=0A=
 =0A=
 clean::=0A=
-	$(DEL) $(COMERR_LIBFILE)=0A=
+	$(DEL) $(COMERR_LIBFILE) $(OJT)\AFS_component_version_number.obj=0A=
 	$(DEL) $(COMPILE_ET_EXEFILE)=0A=
 	$(DEL) *~ *.bak \=0A=
                  *.otl *.aux *.toc *.PS *.dvi *.x9700 *.ps \=0A=
@@ -70,5 +70,4 @@=0A=
 =0A=
 test:=0A=
 =0A=
-=0A=
-	=0A=
+mkdir:=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/comerr/test/NTMakefile =
upd/src/comerr/test/NTMakefile=0A=
--- bas/src/comerr/test/NTMakefile	2000-11-03 18:25:22.000000000 -0800=0A=
+++ upd/src/comerr/test/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -6,12 +6,12 @@=0A=
 !INCLUDE ..\..\config\NTMakefile.version=0A=
 =0A=
 =0A=
-EXEFILE =3D comerr_test.exe=0A=
+EXEFILE =3D $(OJT)\comerr_test.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	test1.obj \=0A=
-	test2.obj \=0A=
-	test.obj=0A=
+	$(OJT)\test1.obj \=0A=
+	$(OJT)\test2.obj \=0A=
+	$(OJT)\test.obj=0A=
 =0A=
 EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib \=0A=
@@ -34,3 +34,6 @@=0A=
 clean::=0A=
 	$(DEL) test1.c test1.h test2.c test2.h=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/config/NTMakefile =
upd/src/config/NTMakefile=0A=
--- bas/src/config/NTMakefile	2001-11-10 14:31:14.000000000 -0800=0A=
+++ upd/src/config/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -9,17 +9,15 @@=0A=
 =0A=
 # Relative path to src directory depends on how we got to current =
directory.=0A=
 =0A=
-!IF (EXIST(..\..\src))=0A=
-SRCROOT =3D ..\..\src=0A=
-!ELSE IF (EXIST(..\..\..\src))=0A=
-SRCROOT =3D ..\..\..\src=0A=
-!ELSE=0A=
-!ERROR Can not find src directory from current directory.=0A=
-!ENDIF=0A=
-=0A=
 INCFILEDIR =3D $(DESTDIR)\include\afs=0A=
 =0A=
+=0A=
 INCFILES =3D\=0A=
+	$(INCFILEDIR)\debug.h \=0A=
+	$(INCFILEDIR)\afsconfig.h \=0A=
+	$(INCFILEDIR)\stds.h \=0A=
+	$(INCFILEDIR)\param.h \=0A=
+	$(INCFILEDIR)\afs_sysnames.h \=0A=
 	$(INCFILEDIR)\afs_args.h \=0A=
 	$(INCFILEDIR)\debug.h \=0A=
 	$(INCFILEDIR)\param.h \=0A=
@@ -102,24 +100,15 @@=0A=
 	$(COPY) AFSCONFIG-WINDOWS.H $(DESTDIR)\include\afs\afsconfig.h=0A=
 =0A=
 INCCOPY =3D \=0A=
-	$(DESTDIR)\bin\rmbat.bat \=0A=
-	$(DESTDIR)\bin\rmbat.rsp \=0A=
 	$(DESTDIR)\bin\NTBUILD.bat=0A=
 =0A=
-$(DESTDIR)\bin\rmbat.bat:..\rmbat.bat=0A=
-	$(COPY) $? $@=0A=
-	util_cr + $@=0A=
-=0A=
-$(DESTDIR)\bin\rmbat.rsp:..\rmbat.rsp=0A=
-	$(COPY) $? $@=0A=
-=0A=
 $(DESTDIR)\bin\NTBUILD.bat:..\NTBUILD.bat=0A=
 	$(COPY) $? $@=0A=
-	util_cr + $@=0A=
+	$(UTIL_CR) + $@=0A=
 =0A=
-$(DESTDIR)\bin\NTLang.bat: NTLang.bat util_cr.exe =0A=
+$(DESTDIR)\bin\NTLang.bat: NTLang.bat $(OJT)\util_cr.exe =0A=
 	$(COPY) NTLang.bat $(DESTDIR)\bin=0A=
-	util_cr + $(DESTDIR)\bin\NTLang.bat=0A=
+	$(UTIL_CR) + $(DESTDIR)\bin\NTLang.bat=0A=
 =0A=
 $(DESTDIR)\NTDllmap.txt:NTDllmap.txt=0A=
 	$(COPY) $? $@=0A=
@@ -149,20 +138,17 @@=0A=
 	$(DESTDIR)\bin\util_cr.exe \=0A=
 	$(DESTDIR)\bin\touch.exe=0A=
 =0A=
-#mkvers.exe : mkvers.obj=0A=
-#	$(EXECONLINK)=0A=
+$(INCTOOLS):$(OJT)\$$(@F)=0A=
+	$(COPY) $** $(DESTDIR)\bin\.=0A=
 =0A=
-$(DESTDIR)\bin\mkvers.exe:mkvers.exe=0A=
-	$(COPY) mkvers.exe $(DESTDIR)\bin\.=0A=
-=0A=
-$(DESTDIR)\bin\util_cr.exe:util_cr.exe=0A=
-	$(COPY) util_cr.exe $(DESTDIR)\bin\.=0A=
+$(OJT)\mkvers.exe : $(OJT)\mkvers.obj=0A=
+	$(EXECONLINK)=0A=
 =0A=
-util_cr.exe : util_cr.obj=0A=
+$(OJT)\touch.exe : $(OJT)\touch.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-$(DESTDIR)\bin\touch.exe:touch.exe=0A=
-	$(COPY) touch.exe $(DESTDIR)\bin\.=0A=
+$(OJT)\util_cr.exe : $(OJT)\util_cr.obj=0A=
+	$(EXECONLINK)=0A=
 =0A=
 langsetup: $(DESTDIR)\bin\NTLang.bat=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/config/NTMakefile.i386_nt40 =
upd/src/config/NTMakefile.i386_nt40=0A=
--- bas/src/config/NTMakefile.i386_nt40	2002-11-26 19:22:46.000000000 =
-0800=0A=
+++ upd/src/config/NTMakefile.i386_nt40	2003-03-10 16:20:20.000000000 =
-0800=0A=
@@ -9,103 +9,139 @@=0A=
 #=0A=
 # Required definitions:=0A=
 #     AFSDEV_BUILDTYPE =3D [ CHECKED | FREE ]=0A=
-#     AFSDEV_INCLUDE =3D <default include directories>=0A=
-#     AFSDEV_LIB =3D <default library directories>=0A=
 #=0A=
 # Optional definitions:=0A=
-#     AFSDEV_DESTDIR =3D <top-level install directory>  (default is =
$(AFSROOT)\DEST)=0A=
 #     AFSDEV_WARNLEVEL =3D [0 | 1 | 2 | 3 | 4]  (default is 3)=0A=
 #     AFSDEV_AUXCDEFINES =3D <auxiliary C preprocessor defs> (default =
is null)=0A=
 #     AFSDEV_AUXRCFLAGS =3D <auxiliary resource compiler flags> =
(default is null)=0A=
+#     AFSDEV_AUXMIDLFLAGS =3D auxiliary midl flags=0A=
 #     AFSDEV_TEXTMODE =3D <text mode is default if defined>  (default =
is null)=0A=
-#     AFSDEV_CRTDEBUG =3D <utilize debug C runtime if define> (default =
is null)=0A=
+#     DEBUG_VERBOSE =3D optional debug statements for testing=0A=
+#	  AFS_OBJDIR - Location of object directory, either absolute or =
relative=0A=
+#     AFSROOT - ROOT Directory so that $(AFSROOT)\scr is location of =
source=0A=
 #=0A=
 =
#########################################################################=
###=0A=
+#		Optional compliation flags=0A=
+#		NO_CRTDBG - used to disable some builds for CFTDBG allocate mapping=0A=
+#     	_CRTDBG_MAP_ALLOC =3D <utilize crt debug C runtime if define> =
(default is null)=0A=
+#		VADUMP - define VADUMP=3D1 if you are going to use the vadump =
utility and you are using V6.0=0A=
+#=0A=
+####### Special optional defines=0A=
 =0A=
+!IFNDEF NO_CRTDBG		#don't set _CRTDBG_MAP_ALLOC flag for some module =
compliations=0A=
+#_CRTDBG_MAP_ALLOC=3D1=0A=
+!ENDIF=0A=
 =0A=
-# Definitions provided here are based on WIN32.MAK, a common nmake=0A=
-# file included with the MS SDK and MS VC distributions.=0A=
-# WIN32.MAK, and this nmake file, are targeted to the MSVC compiler;=0A=
-# port this nmake file if additional compiler support is required.=0A=
+#######=0A=
 =0A=
-# Define default target-type macros required by WIN32.MAK.=0A=
-# Allow them to be overriden in an NTMakefile or via an environment =
variable.=0A=
+#sanity checks =0A=
 =0A=
-!IFNDEF APPVER=0A=
-APPVER =3D 4.0=0A=
+!IF EXISTS("TOOLS.INI")=0A=
+!MESSAGE ************CAUTION TOOLS.INI IN EFFECT**********=0A=
 !ENDIF=0A=
-=0A=
-#define used in WinNT/2000 installation and program version display=0A=
-AFSPRODUCT_VERSION=3D1.2.6 a=0A=
-CELLNAME_DEFAULT=3DYour Cell Name=0A=
-CELLSERVDB_INSTALL=3DCellServDB.GrandCentral=0A=
-CELLSERVDB_WEB=3Dhttp://grand.central.org/dl/cellservdb/CellServDB=0A=
-#NMAKE_DEFINES=3D-DDEBUG_VERBOSE=0A=
-=0A=
-!IFNDEF TARGETOS=0A=
-TARGETOS =3D WINNT=0A=
+!IF ("$(AFSROOT)"=3D=3D"")=0A=
+!ERROR AFSROOT is not set=0A=
 !ENDIF=0A=
-=0A=
-# Check that build type is correctly specified.=0A=
-=0A=
 !IF (DEFINED(PROFILE) || DEFINED(TUNE))=0A=
-#    Build type ignored when profiling or tuning.=0A=
 AFSDEV_BUILDTYPE =3D NONE=0A=
-=0A=
 !ELSE=0A=
-#    Build type must be checked or free.=0A=
 !IF ("$(AFSDEV_BUILDTYPE)" !=3D "CHECKED" && "$(AFSDEV_BUILDTYPE)" !=3D =
"FREE")=0A=
 !ERROR Must define AFSDEV_BUILDTYPE to be CHECKED or FREE.=0A=
 !ENDIF=0A=
-=0A=
+!ENDIF=0A=
+!IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "FREE")=0A=
+!UNDEF _CRTDBG_MAP_ALLOC=0A=
 !ENDIF=0A=
 =0A=
-# Limit default include and library directories to those specified for =
build.=0A=
-=0A=
-#!IFNDEF AFSDEV_INCLUDE=0A=
-#!ERROR Must define AFSDEV_INCLUDE to be the default include =
directories.=0A=
-#!ENDIF=0A=
+#define used in WinNT/2000 installation and program version display=0A=
+AFSPRODUCT_VERSION=3D1.2.8 a=0A=
+CELLNAME_DEFAULT=3DYour Cell Name=0A=
+CELLSERVDB_INSTALL=3DCellServDB.GrandCentral=0A=
+CELLSERVDB_WEB=3Dhttp://grand.central.org/dl/cellservdb/CellServDB=0A=
+TARGETOS =3D WINNT=0A=
 =0A=
-#!IF ((!DEFINED(INCLUDE)) && ([set INCLUDE=3D$(AFSDEV_INCLUDE)] !=3D 0))=0A=
-#    If env. var. INCLUDE not defined then macro assignment won't set =
it.=0A=
-#!ERROR Failed setting environment variable INCLUDE.=0A=
-#!ENDIF=0A=
-#INCLUDE =3D $(AFSDEV_INCLUDE)=0A=
+#		Define defaults folder locations=0A=
+DEST=3Ddest=0A=
+SRC=3Dsrc=0A=
+OBJ=3Dobj=0A=
+=0A=
+!IF ("$(AFS_OBJDIR)"=3D=3D"") =0A=
+#########  AFS_OBJDIR is NOT used use default locations=0A=
+!  IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED")=0A=
+DESTDIR=3D$(AFSROOT)\$(OBJ)\$(DEST)\checked=0A=
+OJT=3D$(MAKEDIR:src=3Dobj\checked)=0A=
+!  ELSE=0A=
+DESTDIR=3D$(AFSROOT)\$(OBJ)\$(DEST)\free=0A=
+OJT=3D$(MAKEDIR:src=3Dobj\free)=0A=
+!  ENDIF=0A=
+UTIL_CR =3D $(DESTDIR)\bin\util_cr.exe=0A=
+!ELSE=0A=
+#########  AFS_OBJDIR is defined, use specific locations for obj and =
dest=0A=
+# there is a special case for config because util_cr is not defined yet!=0A=
+!  IF (EXIST($(AFSROOT)\$(AFS_OBJDIR)))=0A=
+#  AFS_OBJDIR is relative path=0A=
+!    IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED")=0A=
+DESTDIR=3D$(AFSROOT)\$(AFS_OBJDIR)\$(DEST)\checked=0A=
+OJT=3D$(AFSROOT)\$(AFS_OBJDIR)\checked\config=0A=
+!    ELSE=0A=
+OJT=3D$(AFSROOT)\$(AFS_OBJDIR)\free\config=0A=
+DESTDIR=3D$(AFSROOT)\$(AFS_OBJDIR)\$(DEST)\free=0A=
+!    ENDIF=0A=
+!  ELSE=0A=
+!    IF (EXIST($(AFS_OBJDIR)))=0A=
+#   AFS_OBJDIR is full path=0A=
+!    IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED")=0A=
+DESTDIR=3D$(AFS_OBJDIR)\$(DEST)\checked=0A=
+OJT=3D$(AFS_OBJDIR)\checked\config=0A=
+!      ELSE=0A=
+DESTDIR=3D$(AFS_OBJDIR)\$(DEST)\free=0A=
+OJT=3D$(AFS_OBJDIR)\free\config=0A=
+!      ENDIF=0A=
+!    ELSE=0A=
+!ERROR Can't find location of DEST directory!=0A=
+!    ENDIF=0A=
+!  ENDIF=0A=
+UTIL_CR =3D $(DESTDIR)\bin\util_cr.exe=0A=
+=0A=
+!  IF ("$(MAKEDIR:\config=3D)"=3D=3D"$(MAKEDIR)") =0A=
+#    we are NOT doing a config make, use util_cr to generate object =
directory=0A=
+!    IF ( !EXIST($(UTIL_CR)) || (!EXIST($(TMP)\home) && =
!EXIST($(TEMP)\home)) || (([$(UTIL_CR) _dir =
"!$(AFSDEV_BUILDTYPE)!src!$(AFS_OBJDIR)!"])!=3D0))=0A=
+!ERROR Can't produce object paths, util_cr not working , TMP or TEMP =
environment variables not defined=0A=
+!    ENDIF=0A=
+=0A=
+!    IF EXIST($(TMP)\home)=0A=
+!INCLUDE $(TMP)\home=0A=
+!    ELSE=0A=
+!INCLUDE $(TEMP)\home=0A=
+!    ENDIF=0A=
+!  ENDIF=0A=
+!ENDIF	#AFS_OBJDIR=0A=
 =0A=
+!MESSAGE Directory assignments: OJT=3D[$(OJT)] DESTDIR=3D[$(DESTDIR)]=0A=
 =0A=
-#!IFNDEF AFSDEV_LIB=0A=
-#!ERROR Must define AFSDEV_LIB to be the default library directories.=0A=
-#!ENDIF=0A=
+# Definitions provided here are based on WIN32.MAK, a common nmake=0A=
+# file included with the MS SDK and MS VC distributions.=0A=
+# WIN32.MAK, and this nmake file, are targeted to the MSVC compiler;=0A=
+# port this nmake file if additional compiler support is required.=0A=
 =0A=
-#!IF ((!DEFINED(LIB)) && ([set LIB=3D$(AFSDEV_LIB)] !=3D 0))=0A=
-#    If env. var. LIB not defined then macro assignment won't set it.=0A=
-#!ERROR Failed setting environment variable LIB.=0A=
-#!ENDIF=0A=
-#LIB =3D $(AFSDEV_LIB)=0A=
+!IF ("$(AFSVER)"=3D=3D"1300")=0A=
+afslflags =3D $(afslflags) /DEBUG=0A=
+!ENDIF=0A=
 =0A=
-# Undefine WIN32.MAK NODEBUG macro.=0A=
-# Always generate full debug info, unless profiling or tuning (see =
below).=0A=
+!IF ("$(APPVER)" =3D=3D "")=0A=
+APPVER=3D4.0=0A=
+!ENDIF=0A=
 =0A=
 !UNDEF NODEBUG=0A=
 =0A=
-# Include WIN32.MAK nmake file=0A=
 !INCLUDE <WIN32.MAK>=0A=
 =0A=
-=0A=
 # Extend and/or supplement definitions in WIN32.MAK.=0A=
 =0A=
-# Standard install directory.=0A=
-!IFDEF AFSDEV_DESTDIR=0A=
-DESTDIR =3D $(AFSDEV_DESTDIR)=0A=
-!ELSE=0A=
-DESTDIR =3D $(AFSROOT)\DEST=0A=
-!ENDIF=0A=
-=0A=
 # Command macros.=0A=
-COPY =3D copy=0A=
+COPY =3D -copy=0A=
 DEL =3D -del=0A=
-#DEL =3D $(DESTDIR)\BIN\rmbat 	   # win 98 must use batch file=0A=
-MKDIR =3D mkdir=0A=
+MKDIR =3D -mkdir=0A=
 REN =3D ren=0A=
 ECHO =3D echo=0A=
 CD =3D cd=0A=
@@ -117,17 +153,15 @@=0A=
 MIDL  =3D midl=0A=
 =0A=
 # Common clean target.=0A=
-# Double colon (::) syntax allows supplemental clean target to be =
specified.=0A=
 clean::=0A=
-	$(DEL) /q *.obj *.lib *.dll *.exe=0A=
-	$(DEL) /q *_component_version_number.*=0A=
+	$(DEL) /q $(OJT)\*.obj $(OJT)\*.lib $(OJT)\*.dll $(OJT)\*.exe =
$(OJT)\*.pdb=0A=
+	$(DEL) /q $(OJT)\*_component_version_number.* =
*_component_version_number.*=0A=
 =0A=
 # Common lang target.=0A=
-# Double colon (::) syntax allows supplemental lang target to be =
specified.=0A=
 lang::=0A=
 =0A=
 =0A=
-# Compiler include paths and preprocessor defines=0A=
+#################### Compile optional build flags set ###########=0A=
 =0A=
 afscdefs =3D\=0A=
 	-I. \=0A=
@@ -138,9 +172,8 @@=0A=
 	-DSTRICT \=0A=
 	-D_WIN32_IE=3D0x0400 \=0A=
      -DAFS_AFSDB_ENV \=0A=
-     -DAFS_FREELANCE_CLIENT=0A=
-=0A=
-afscdefs =3D $(afscdefs) $(AFSDEV_AUXCDEFINES) $(NMAKE_DEFINES)=0A=
+     -DAFS_FREELANCE_CLIENT \=0A=
+	 $(AFSDEV_AUXCDEFINES)=0A=
 =0A=
 =0A=
 # Compiler switches (except include paths and preprocessor defines)=0A=
@@ -162,20 +195,27 @@=0A=
 	/GX \=0A=
 	/Os=0A=
 =0A=
-# Set optimization and debugging level based on build type.=0A=
+cdebug =3D $(cdebug:-Z7=3D-Zi)  # avoid annoying override warning =
(D4025)=0A=
+!IF ("APPSVER"=3D=3D"1300")=0A=
+cdebug =3D $(cdebug) -Zi=0A=
+!ENDIF=0A=
 =0A=
 !IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "FREE")=0A=
-#    Apply full optimization; generate full debug info in obj.=0A=
-afscflags =3D $(afscflags) /Ox /Zi=0A=
-# ldebug =3D $(ldebug) -debugtype:both=0A=
-ldebug =3D $(ldebug)=0A=
-cdebug =3D $(cdebug:-Od=3D)  # avoid annoying override warning (D4025)=0A=
+=0A=
+afscflags =3D $(afscflags) /Ox=0A=
+cdebug =3D $(cdebug:-Od=3D) # avoid annoying override warning (D4025)=0A=
 cvarsdll =3D $(cvarsdll:-MDd=3D-MD)=0A=
 =0A=
-!ELSEIF ("$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED")=0A=
-#    Disable optimization; generate full debug info in obj.=0A=
-afscflags =3D $(afscflags) /Od /Zi=0A=
-ldebug =3D $(ldebug) -debugtype:both=0A=
+!ELSE		# CHECKED BUILD=0A=
+=0A=
+!IF ("$(AFSVER_CL)"=3D=3D"1200")=0A=
+afscdefs =3D $(afscdefs) -DDEBUG=0A=
+!ENDIF=0A=
+=0A=
+!IFDEF _CRTDBG_MAP_ALLOC=0A=
+afscflags =3D $(afscflags) -D_DEBUG -D_CRTDBG_MAP_ALLOC=0A=
+!ENDIF=0A=
+=0A=
 !ENDIF=0A=
 =0A=
 # Set compiler warning level=0A=
@@ -194,41 +234,60 @@=0A=
 =0A=
 afscflags =3D $(afscflags) /W$(AFSDEV_WARNLEVEL)=0A=
 =0A=
+# C/C++ compilation macros=0A=
+C2OBJ   =3D $(cc) /Fo$@ /Fd$*.pdb $(cflags) $(cdebug) $(cvarsdll) =
$(afscflags) $(afscdefs) /c  =0A=
+CPP2OBJ =3D $(C2OBJ)=0A=
+# Inference rules for building and installing targets=0A=
+# Compile .c files, from current directory to defined by OJT=0A=
 =0A=
-# Linker switches=0A=
-#=0A=
-# /FIXED:NO   generates a relocation section in the executable=0A=
+.SUFFIXES: .c .rc =0A=
 =0A=
-afslflags =3D\=0A=
-	/FIXED:NO /VERBOSE:LIB /DEBUG=0A=
+.c{$(OJT)\}.obj:=0A=
+	$(C2OBJ) $<=0A=
 =0A=
+.cpp{$(OJT)\}.obj:=0A=
+	$(CPP2OBJ) $<=0A=
 =0A=
+.rc{$(OJT)\}.res:=0A=
+	$(RC) /fo$(OJT)\$(<B).res $<=0A=
 =0A=
-# For checked builds, define DEBUG (but not the MS control flag _DEBUG).=0A=
+# Compile .rc (resource) files=0A=
+#.rc.res:=0A=
+#	$(RC) $*.rc=0A=
 =0A=
-!IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED")=0A=
-#afscdefs =3D $(afscdefs) -DDEBUG=0A=
-!ENDIF=0A=
+.SUFFIXES: .h=0A=
 =0A=
-# Utilize the debug version of the MSVC runtime, if requested.=0A=
+.h.{$(DESTDIR)\include\afs}.h:=0A=
+	$(COPY) $< $(DESTDIR)\include\afs=0A=
 =0A=
-!IFDEF AFSDEV_CRTDEBUG=0A=
-afscdefs =3D $(afscdefs) -D_DEBUG=0A=
-conlibsdll =3D $(conlibsdll:msvcrt.lib=3Dmsvcrtd.lib)=0A=
-guilibsdll =3D $(guilibsdll:msvcrt.lib=3Dmsvcrtd.lib)=0A=
-!ENDIF=0A=
+.h.{$(DESTDIR)\include\rx}.h:=0A=
+	$(COPY) $< $(DESTDIR)\include\rx=0A=
 =0A=
-# Link with binmode.obj; files will be opened in binary mode by default.=0A=
+.h.{$(DESTDIR)\include}.h:=0A=
+	$(COPY) $< $(DESTDIR)\include=0A=
 =0A=
-!IFNDEF AFSDEV_TEXTMODE=0A=
-conlibsdll =3D $(conlibsdll) binmode.obj=0A=
-guilibsdll =3D $(guilibsdll) binmode.obj=0A=
-!ENDIF=0A=
+.h.{$(DESTDIR)\include\WINNT}.h:=0A=
+	$(COPY) $< $(DESTDIR)\include\WINNT=0A=
 =0A=
+.h.{$(DESTDIR)\include}.h:=0A=
+	$(COPY) $(*B).h $(DESTDIR)\include=0A=
 =0A=
-# Define MFC link and library macros=0A=
-#     Note that MFC seems to make extensive use of default libraries,=0A=
-#     thus we do not specify a general /NODEFAULTLIB.=0A=
+.h.{$(DESTDIR)\include\afs}.h:=0A=
+	$(COPY) $(*B).h $(DESTDIR)\include\afs=0A=
+=0A=
+.h.{$(DESTDIR)\include\rx}.h:=0A=
+	$(COPY) $(*B).h $(DESTDIR)\include\rx=0A=
+=0A=
+.h.{$(DESTDIR)\include\WINNT}.h:=0A=
+	$(COPY) $(*B).h $(DESTDIR)\include\WINNT=0A=
+=0A=
+# Resource compiler macro=0A=
+RC =3D $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS) /d =
"AFSPRODUCT_VERSION=3D\"$(AFSPRODUCT_VERSION)\""=0A=
+=0A=
+#################### Link optional build flags set ###########=0A=
+=0A=
+afslflags =3D\=0A=
+	/FIXED:NO /VERBOSE:LIB=0A=
 =0A=
 mfclflags =3D $(guilflags)=0A=
 mfclflags =3D $(mfclflags:/NODEFAULTLIB=3D)=0A=
@@ -240,34 +299,66 @@=0A=
 mfclibsdll =3D $(mfclibsdll:msvcrtd.lib=3D)=0A=
 mfclibsdll =3D $(mfclibsdll:msvcrt.lib=3D)=0A=
 =0A=
-!IFNDEF AFSDEV_CRTDEBUG=0A=
+# Link with binmode.obj; files will be opened in binary mode by default.=0A=
+!IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "FREE")=0A=
+=0A=
+ldebug=3D=0A=
+EXEPREP =3D rebase -b 0x00400000 -x $(@D) -q $@=0A=
+DLLPREP =3D rebase -i $(DESTDIR)\NTDllmap.txt -x $(@D) -q $@=0A=
+=0A=
+!ELSE	#CHECKED BUILD=0A=
+=0A=
+ldebug =3D /NODEFAULTLIB:LIBC =0A=
+=0A=
+#!IF ("AFSVER_CL"=3D=3D"1200")=0A=
+#ldebug =3D $(ldebug) -debugtype:cv =0A=
+#!ENDIF=0A=
+=0A=
+!IFDEF VADUMP=0A=
+ldebug =3D $(ldebug) -debugtype:both=0A=
+ldebug =3D $(ldebug:-debugtype:cv=3D)=0A=
+!ENDIF=0A=
+=0A=
+!IFNDEF _CRTDBG_MAP_ALLOC=0A=
 mfclflags =3D $(mfclflags) /NODEFAULTLIB:msvcrtd.lib=0A=
 mfcdlllflags =3D $(mfcdlllflags) /NODEFAULTLIB:msvcrtd.lib=0A=
+#v6.0 doesn't work using msvcrtd.lib unless _CRTDBG_MAP_ALLOC is =
defined, v7.0 requires it=0A=
+=0A=
+!IF ("$(AFSVER_CL)"=3D=3D"1200")=0A=
+EXEMFCLINK=3D$(EXEMFCLINK:/NODEFAULTLIB:msvcrtd.lib=3D)=0A=
+DLLMFCLINK=3D$(DLLMFCLINK:/NODEFAULTLIB:msvcrtd.lib=3D)=0A=
+!ENDIF=0A=
+=0A=
 !ELSE=0A=
 mfclflags =3D $(mfclflags) /NODEFAULTLIB:msvcrt.lib=0A=
 mfcdlllflags =3D $(mfcdlllflags) /NODEFAULTLIB:msvcrt.lib=0A=
+conlibsdll =3D $(conlibsdll:msvcrt.lib=3Dmsvcrtd.lib)=0A=
+guilibsdll =3D $(guilibsdll:msvcrt.lib=3Dmsvcrtd.lib)=0A=
 !ENDIF=0A=
 =0A=
+EXEPREP =3D rebase -b 0x00400000 -q $@=0A=
+DLLPREP =3D rebase -i $(DESTDIR)\NTDllmap.txt -q $@=0A=
+=0A=
+!ENDIF=0A=
 =0A=
-# Macros for creating/modifying binary targets=0A=
 =0A=
 # EXE link macro for console applications=0A=
-EXECONLINK =3D $(link) /OUT:$@ $(ldebug) $(conlflags) $(afslflags) =
$(conlibsdll) $**=0A=
+EXECONLINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(conlflags) =
$(afslflags) $(conlibsdll) Advapi32.lib user32.lib  version.lib $**=0A=
 =0A=
 # EXE link macro for GUI applications=0A=
-EXEGUILINK =3D $(link) /OUT:$@ $(ldebug) $(guilflags) $(afslflags) =
$(guilibsdll) $**=0A=
+EXEGUILINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(guilflags) =
$(afslflags) $(guilibsdll) $**=0A=
 =0A=
 # EXE link macro for MFC applications=0A=
-EXEMFCLINK =3D $(link) /OUT:$@ $(ldebug) $(mfclflags) $(afslflags) =
$(mfclibsdll) $**=0A=
+EXEMFCLINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(mfclflags) =
$(afslflags) $(mfclibsdll) $**=0A=
 =0A=
 # DLL link macro for console applications=0A=
-DLLCONLINK =3D $(link) /OUT:$@ $(ldebug) $(dlllflags) $(afslflags) =
$(conlibsdll) $**=0A=
+DLLCONLINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(dlllflags) =
$(afslflags) $(conlibsdll) $**=0A=
 =0A=
 # DLL link macro for GUI applications=0A=
-DLLGUILINK =3D $(link) /OUT:$@ $(ldebug) $(dlllflags) $(afslflags) =
$(guilibsdll) $**=0A=
+DLLGUILINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(dlllflags) =
$(afslflags) $(guilibsdll)  $**=0A=
+EXECONLINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(conlflags) =
$(afslflags) $(conlibsdll) Advapi32.lib user32.lib version.lib $**=0A=
+DLLMFCLINK =3D $(link) /OUT:$@ /PDB:$*.pdb $(ldebug) $(mfcdlllflags) =
$(afslflags) $(mfclibsdll) $**=0A=
 =0A=
-# DLL link macro for MFC applications=0A=
-DLLMFCLINK =3D $(link) /OUT:$@ $(ldebug) $(mfcdlllflags) $(afslflags) =
$(mfclibsdll) $**=0A=
 =0A=
 # DLL link macro for resource-only DLLs=0A=
 DLLRESLINK =3D $(link) /OUT:$@ =
$(dlllflags:-entry:_DllMainCRTStartup@12=3D-noentry) $(afslflags) $**=0A=
@@ -278,53 +369,13 @@=0A=
 # Language selection macro=0A=
 NTLANG =3D $(DESTDIR)\bin\NTLang.bat=0A=
 =0A=
+######### MIDL FLAGS=0A=
 =0A=
-# EXE\DLL preparation macros=0A=
-#     Rebase to avoid conflicts; strip symbols in free build.=0A=
-!IF ("$(AFSDEV_BUILDTYPE)" =3D=3D "FREE")=0A=
-EXEPREP =3D rebase -b 0x00400000 -x $(@D) -q $@=0A=
-DLLPREP =3D rebase -i $(DESTDIR)\NTDllmap.txt -x $(@D) -q $@=0A=
-!ELSEIF ("$(AFSDEV_BUILDTYPE)" =3D=3D "CHECKED")=0A=
-EXEPREP =3D rebase -b 0x00400000 -q $@=0A=
-DLLPREP =3D rebase -i $(DESTDIR)\NTDllmap.txt -q $@=0A=
+!IFDEF OSISXP=0A=
+AFSDEV_AUXMIDLFLAGS=3D/Oi=0A=
 !ENDIF=0A=
 =0A=
-# C/C++ compilation macros=0A=
-C2OBJ =3D $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) =
$(afscdefs) /c=0A=
-CPP2OBJ =3D $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) =
$(afscdefs) /c=0A=
-=0A=
-# Resource compiler macro=0A=
-RC =3D $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS) /d =
"AFSPRODUCT_VERSION=3D\"$(AFSPRODUCT_VERSION)\""=0A=
-=0A=
 # Lex/Yacc macros=0A=
 LEX =3D1.2.2 a=0A=
 YACC =3D bison=0A=
 =0A=
-# Inference rules for building and installing targets=0A=
-=0A=
-# Compile .c files=0A=
-.c.obj:=0A=
-	$(C2OBJ) $*.c=0A=
-=0A=
-# Compile .cpp files=0A=
-.cpp.obj:=0A=
-	$(CPP2OBJ) $*.cpp=0A=
-=0A=
-# Compile .rc (resource) files=0A=
-.rc.res:=0A=
-	$(RC) $*.rc=0A=
-=0A=
-# Install header files=0A=
-.SUFFIXES: .h=0A=
-=0A=
-.h.{$(DESTDIR)\include}.h:=0A=
-	$(COPY) $(*B).h $(DESTDIR)\include=0A=
-=0A=
-.h.{$(DESTDIR)\include\afs}.h:=0A=
-	$(COPY) $(*B).h $(DESTDIR)\include\afs=0A=
-=0A=
-.h.{$(DESTDIR)\include\rx}.h:=0A=
-	$(COPY) $(*B).h $(DESTDIR)\include\rx=0A=
-=0A=
-.h.{$(DESTDIR)\include\WINNT}.h:=0A=
-	$(COPY) $(*B).h $(DESTDIR)\include\WINNT=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/config/mkvers.c =
upd/src/config/mkvers.c=0A=
--- bas/src/config/mkvers.c	2003-02-12 23:00:08.000000000 -0800=0A=
+++ upd/src/config/mkvers.c	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -13,10 +13,12 @@=0A=
  */=0A=
 =0A=
 #include <stdio.h>=0A=
-#include <stdlib.h>=0A=
 #include <sys/types.h>=0A=
 #include <sys/stat.h>=0A=
 #include <errno.h>=0A=
+#ifndef __APPLE_CC__=0A=
+#include <malloc.h>=0A=
+#endif=0A=
 #include <assert.h>=0A=
 #include <string.h>=0A=
 =0A=
@@ -81,7 +83,7 @@=0A=
     exit(1);=0A=
 }=0A=
 =0A=
-int main(int argc, char **argv)=0A=
+main(int argc, char **argv)=0A=
 {=0A=
     char stampsFile[1024];=0A=
     char stateFile[1024];=0A=
@@ -104,7 +106,6 @@=0A=
     strcat(cmldir, "src/CML");=0A=
 =0A=
     baseDir =3D strstr(cmldir, CMLDIR_DFLT);=0A=
-    assert(baseDir);=0A=
 =0A=
     programName =3D argv[0];=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/config/util_cr.c =
upd/src/config/util_cr.c=0A=
--- bas/src/config/util_cr.c	2001-08-19 08:44:48.000000000 -0700=0A=
+++ upd/src/config/util_cr.c	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -6,8 +6,10 @@=0A=
 	This software has been released under the terms of the IBM Public=0A=
 	License.  For details, see the LICENSE file in the top-level source=0A=
 	directory or online at http://www.openafs.org/dl/license10.html=0A=
+=0A=
 */=0A=
 =0A=
+#undef _CRTDBG_MAP_ALLOC=0A=
 #include "stdio.h"=0A=
 #include "io.h"=0A=
 #include <assert.h>=0A=
@@ -16,6 +18,12 @@=0A=
 #include "windows.h"=0A=
 #include "malloc.h"=0A=
 #include "time.h"=0A=
+#include "stdlib.h"=0A=
+#include "windows.h"=0A=
+=0A=
+#ifndef  intptr_t=0A=
+#define intptr_t long=0A=
+#endif=0A=
 =0A=
 void usuage()=0A=
 {=0A=
@@ -29,10 +37,74 @@=0A=
 	OR util_cr * \"-[register key value]\" ; aremove register key value\n\=0A=
 	OR util_cr @ file.ini \"[SectionKey]variable=3Dvalue\" ; update =
ini-ipr-pwf file\n\=0A=
 	OR util_cr @ file.ini \"[SectionKey]variable=3Dvalue*DatE*\" ; update =
ini-ipr-pwf file, insert date\n\=0A=
-	OR util_cr ~  ;force error\n");=0A=
+	OR util_cr ~  ;force error\n\=0A=
+	OR util_cr _del  [/q=3Dquiet /s=3Drecurese] [*. *. *.] ;delete \n\=0A=
+	OR util_cr _cpy [/q=3Dquiet ] [*. *. *.] destinationFolder;\n\=0A=
+	OR util_cr _isOS [nt xp 98 9x w2] ;test for OS, return 1 if match else =
0\n\=0A=
+	OR util_cr _dir !build type!source!object! set current directory in =
file->home base is used for offset\n\=0A=
+	OR unil_cr _ver return compiler version\n" );=0A=
 	exit(0xc000);=0A=
 }=0A=
 =0A=
+struct TRANSLATION {=0A=
+		WORD langID;         // language ID=0A=
+		WORD charset;        // character set (code page)=0A=
+};=0A=
+=0A=
+int CheckVersion(int argc,char *argv[])=0A=
+{=0A=
+	OSVERSIONINFO VersionInfo;=0A=
+	int i;=0A=
+	memset(&VersionInfo,0,sizeof(VersionInfo));=0A=
+	VersionInfo.dwOSVersionInfoSize =3Dsizeof(OSVERSIONINFO);=0A=
+	if (!GetVersionEx(&VersionInfo))=0A=
+	{=0A=
+		return 0XC000;=0A=
+	}=0A=
+	for (i=3D2;i<argc;i++)=0A=
+	{=0A=
+		if (stricmp(argv[i],"nt")=3D=3D0)=0A=
+		{=0A=
+			if ((VersionInfo.dwPlatformId=3D=3DVER_PLATFORM_WIN32_NT) =0A=
+				&& (VersionInfo.dwMajorVersion=3D=3D4)=0A=
+				&& (VersionInfo.dwMinorVersion=3D=3D0))=0A=
+				return 1;=0A=
+		}=0A=
+		if (stricmp(argv[i],"xp")=3D=3D0)=0A=
+		{=0A=
+			if ((VersionInfo.dwPlatformId=3D=3DVER_PLATFORM_WIN32_NT) =0A=
+				&& (VersionInfo.dwMajorVersion=3D=3D5)=0A=
+				&& (VersionInfo.dwMinorVersion=3D=3D1))=0A=
+				return 1;=0A=
+		}=0A=
+		if (stricmp(argv[i],"w2")=3D=3D0)=0A=
+		{=0A=
+			if ((VersionInfo.dwPlatformId=3D=3DVER_PLATFORM_WIN32_NT) =0A=
+				&& (VersionInfo.dwMajorVersion=3D=3D5)=0A=
+				&& (VersionInfo.dwMinorVersion=3D=3D0))=0A=
+				return 1;=0A=
+		}=0A=
+		if (stricmp(argv[i],"98")=3D=3D0)=0A=
+		{=0A=
+			if ((VersionInfo.dwPlatformId=3D=3DVER_PLATFORM_WIN32_WINDOWS) && =
(VersionInfo.dwMinorVersion=3D=3D10))=0A=
+				return 1;=0A=
+		}=0A=
+		if (stricmp(argv[i],"95")=3D=3D0)=0A=
+		{=0A=
+			if ((VersionInfo.dwPlatformId=3D=3DVER_PLATFORM_WIN32_WINDOWS) && =
(VersionInfo.dwMinorVersion=3D=3D0))=0A=
+=0A=
+				return 1;=0A=
+		}=0A=
+		if (stricmp(argv[i],"9x")=3D=3D0)=0A=
+		{=0A=
+			if (VersionInfo.dwPlatformId=3D=3DVER_PLATFORM_WIN32_WINDOWS)=0A=
+				return 1;=0A=
+		}=0A=
+		if (stricmp(argv[i],"_")=3D=3D0)=0A=
+			return 0;=0A=
+	}=0A=
+	return 0;=0A=
+}=0A=
 =0A=
 void Addkey (const char *hkey,const char *subkey,const char *stag,const =
char *sval)=0A=
 {=0A=
@@ -96,17 +168,228 @@=0A=
 	}=0A=
 }=0A=
 =0A=
+void doremove(BOOL bRecurse,BOOL bQuiet,char* argv)=0A=
+{=0A=
+	char *pParm;=0A=
+	char parm[MAX_PATH+1];=0A=
+	char basdir[MAX_PATH+1];=0A=
+	strcpy(parm,argv);=0A=
+	pParm=3Dparm;=0A=
+	GetCurrentDirectory(sizeof(basdir),basdir);=0A=
+	if (strrchr(parm,'\\')!=3DNULL)=0A=
+	{/*jump to base directory*/=0A=
+		pParm=3Dstrrchr(parm,'\\');=0A=
+		*pParm=3D0;=0A=
+		if (!SetCurrentDirectory(parm))=0A=
+			return;=0A=
+		pParm++;=0A=
+	}=0A=
+	if (!bRecurse)=0A=
+	{=0A=
+		struct _finddata_t fileinfo;=0A=
+		intptr_t hfile;=0A=
+		BOOL bmore;=0A=
+		char basdir[MAX_PATH+1];=0A=
+		GetCurrentDirectory(sizeof(basdir),basdir);=0A=
+		hfile=3D_findfirst(pParm,&fileinfo);=0A=
+		bmore=3D(hfile!=3D-1);=0A=
+		while (bmore)=0A=
+		{=0A=
+			if ((DeleteFile(fileinfo.name)=3D=3D1) && (!bQuiet))=0A=
+				printf("Remove %s\\%s\n",basdir,fileinfo.name);=0A=
+			bmore=3D(_findnext(hfile,&fileinfo)=3D=3D0);=0A=
+		}=0A=
+		_findclose(hfile);=0A=
+	} else {=0A=
+	/*RECURSIVE LOOP - SCAN directories*/=0A=
+		struct _finddata_t fileinfo;=0A=
+		intptr_t hfile;=0A=
+		BOOL bmore;=0A=
+		doremove(FALSE,bQuiet,pParm);=0A=
+		hfile=3D_findfirst("*.*",&fileinfo);=0A=
+		bmore=3D(hfile!=3D-1);=0A=
+		while (bmore)=0A=
+		{=0A=
+			if (fileinfo.attrib & _A_SUBDIR)=0A=
+			{=0A=
+				if ((strcmp(fileinfo.name,".")!=3D0) && =
(strcmp(fileinfo.name,"..")!=3D0))=0A=
+				{=0A=
+					if (SetCurrentDirectory(fileinfo.name))=0A=
+						doremove(TRUE,bQuiet,pParm);=0A=
+					SetCurrentDirectory(basdir);=0A=
+				}=0A=
+			}=0A=
+			bmore=3D(_findnext(hfile,&fileinfo)=3D=3D0);=0A=
+		}=0A=
+		_findclose(hfile);=0A=
+	}=0A=
+	SetCurrentDirectory(basdir);=0A=
+}=0A=
+=0A=
+void gencurdir(char *val)=0A=
+{=0A=
+	char =
bld[MAX_PATH+1],parm[MAX_PATH+1],src[MAX_PATH+1],obj[MAX_PATH+1],dir[MAX_=
PATH+1],curdir[MAX_PATH+1];=0A=
+	char *p,*po;=0A=
+	FILE *f;=0A=
+	BOOL isObjAbs,isSrcAbs;	/* two flags to determine if either string is =
not relative*/=0A=
+	strcpy(bld,val+1);	/*it better be checked or free*/=0A=
+	strcpy(src,strchr(bld,'!')+1);=0A=
+	strcpy(obj,strchr(src,'!')+1);=0A=
+	*strchr(bld,'!')=3D0;=0A=
+	*strchr(obj,'!')=3D0;=0A=
+	*strchr(src,'!')=3D0;=0A=
+	isObjAbs=3D((*obj=3D=3D'\\')||(strstr(obj,":")));=0A=
+	isSrcAbs=3D((*src=3D=3D'\\')||(strstr(src,":")));=0A=
+	GetCurrentDirectory(MAX_PATH,dir);=0A=
+	strlwr(bld);=0A=
+	strlwr(dir);=0A=
+	strlwr(src);=0A=
+	strlwr(obj);=0A=
+	strcpy(curdir,dir);=0A=
+	strcat(curdir,"\\ \n");=0A=
+	if (GetTempPath(MAX_PATH,parm)=3D=3D0)=0A=
+		exit(0xc000);=0A=
+	strcat(parm,"home");=0A=
+	if ((f=3Dfopen(parm,"w"))=3D=3DNULL)=0A=
+		exit(0xc000);=0A=
+	__try {=0A=
+	__try {=0A=
+		if (obj[strlen(obj)-1]!=3D'\\')=0A=
+			strcat(obj,"\\");=0A=
+		if (src[strlen(src)-1]!=3D'\\')=0A=
+			strcat(src,"\\");=0A=
+		do {/* try to match src or obj*/=0A=
+			if ((p=3Dstrstr(dir,src)) && isSrcAbs)=0A=
+			{=0A=
+				po=3Dp;=0A=
+				p+=3Dstrlen(src);=0A=
+			} else if ((p=3Dstrstr(dir,src)) && !isSrcAbs && *(p-1)=3D=3D'\\')=0A=
+			{=0A=
+				po=3Dp;=0A=
+				p+=3Dstrlen(src);=0A=
+			} else if ( (p=3Dstrstr(dir,obj)) && isObjAbs)=0A=
+			{=0A=
+				po=3Dp;=0A=
+				p+=3Dstrlen(obj);=0A=
+			} else if ((p=3Dstrstr(dir,obj)) && !isObjAbs && *(p-1)=3D=3D'\\')=0A=
+			{=0A=
+				po=3Dp;=0A=
+				p+=3Dstrlen(obj);=0A=
+			}=0A=
+		} while (strstr(p,src)||strstr(p,obj));=0A=
+		if (isObjAbs) {=0A=
+			sprintf(parm,"OJT=3D%s%s\\%s \n",obj,bld,p);=0A=
+		} else {=0A=
+			*po=3D0;=0A=
+			sprintf(parm,"OJT=3D%s%s%s\\%s \n",dir,obj,bld,p);=0A=
+		}=0A=
+		if (strcmp(curdir,parm+4)=3D=3D0)	/* current directory is object*/=0A=
+			strcpy(parm,"OJT=3D \n");=0A=
+		fwrite(parm,strlen(parm),1,f);=0A=
+		if (isSrcAbs) {=0A=
+			sprintf(parm,"SRT=3D%s%s\\ \n",src,p);=0A=
+		} else {=0A=
+			*(p-strlen(src))=3D0;=0A=
+			sprintf(parm,"SRT=3D%s%s%s\\ \n",dir,src,p);=0A=
+		}=0A=
+		if (strcmp(curdir,parm+4)=3D=3D0)	/* current directory is object*/=0A=
+			strcpy(parm,"SRT=3D \n");=0A=
+		fwrite(parm,strlen(parm),1,f);=0A=
+		/* now lets set the AFS_LASTCMP environment variable */=0A=
+		sprintf(parm,"AFS_LASTCMP=3D%s\\%s",src,p);=0A=
+	}=0A=
+	__except(EXCEPTION_EXECUTE_HANDLER ){=0A=
+		exit(0xc000);=0A=
+	}=0A=
+	}=0A=
+	__finally {=0A=
+		fclose(f);=0A=
+	}   =0A=
+}=0A=
+=0A=
+int isequal(char *msg1,char *msg2,char *disp)=0A=
+{=0A=
+	int x;=0A=
+	strlwr(msg1);=0A=
+	strlwr(msg2);=0A=
+	if (strcmp(msg1,msg2)!=3D0)=0A=
+		return 0;=0A=
+	printf("ERROR -- %s \n",disp);=0A=
+	exit(0xc000);=0A=
+}=0A=
+=0A=
+int SetSysEnv(int argc,char * argv[])=0A=
+{=0A=
+	long ret;=0A=
+	DWORD dwResult;=0A=
+	printf("assignment %s %s\n",argv[2],argv[3]);=0A=
+	=
Addkey("HKEY_LOCAL_MACHINE","System\\CurrentControlSet\\Control\\Session =
Manager\\Environment"=0A=
+		,argv[2]=0A=
+		,argv[3]=0A=
+		);=0A=
+	=
SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE,0,(DWORD)"Environment"=
,SMTO_NORMAL,1,&dwResult);=0A=
+	return 0;=0A=
+}=0A=
+=0A=
 int main(int argc, char* argv[])=0A=
 {=0A=
+/*	typedef char * CHARP;*/=0A=
 	char fname[128];=0A=
 	FILE *file;=0A=
 	int l,i;=0A=
 	char **pvar,*ch;=0A=
 	long len;=0A=
-	typedef char * CHARP;=0A=
+	BOOL bRecurse=3DFALSE;=0A=
+	BOOL bQuiet=3DFALSE;=0A=
+	if (argc<2)=0A=
+ 		usuage();=0A=
+	if (strcmp(argv[1],"_sysvar")=3D=3D0)=0A=
+	{=0A=
+		if (argc<4)=0A=
+			usuage();=0A=
+		return (SetSysEnv(argc,argv));=0A=
 =0A=
-	if (argc<3)=0A=
+	}=0A=
+	if (strnicmp(argv[1],"_dir",4)=3D=3D0){ /*get current directory =
routine*/=0A=
+		gencurdir(argv[1]);=0A=
+		return 0;=0A=
+	}=0A=
+	if (strnicmp(argv[1],"_isequal",4)=3D=3D0){ /*get current directory =
routine*/=0A=
+		return isequal(argv[2],argv[3],argv[4]);=0A=
+	}=0A=
+	if (stricmp(argv[1],"_del")=3D=3D0) /*DELETE routine*/=0A=
+ 	{=0A=
+		int iargc=3D2;=0A=
+		if ((argc>iargc) && (stricmp(argv[iargc],"/s")=3D=3D0))=0A=
+		{=0A=
+			iargc++;=0A=
+			bRecurse=3DTRUE;=0A=
+		}=0A=
+		if ((argc>iargc) && (stricmp(argv[iargc],"/q")=3D=3D0))=0A=
+		{=0A=
+			iargc++;=0A=
+			bQuiet=3DTRUE;=0A=
+		}=0A=
+		if ((argc>iargc) && (stricmp(argv[iargc],"/s")=3D=3D0))=0A=
+		{=0A=
+			iargc++;=0A=
+			bRecurse=3DTRUE;=0A=
+		}=0A=
+		while (iargc<argc)=0A=
+		{=0A=
+			doremove(bRecurse,bQuiet,argv[iargc]);=0A=
+			iargc++;=0A=
+		}=0A=
+		return 0;=0A=
+	}=0A=
+	if (strcmp(argv[1],"_ver")=3D=3D0)=0A=
+ 	{=0A=
+		return _MSC_VER;=0A=
+	}=0A=
+	 if (argc<3)=0A=
 		usuage();=0A=
+	if (strcmp(argv[1],"_isOS")=3D=3D0)=0A=
+		return CheckVersion(argc,argv);=0A=
  	if (strcmp(argv[1],"}")=3D=3D0)=0A=
  	{=0A=
  		char v1[4],v2[4],v3[4],v4[4];=0A=
@@ -427,7 +710,7 @@=0A=
 		ch++;=0A=
 	}=0A=
 	fclose(file);=0A=
-	pvar=3D(CHARP *)malloc(argc*sizeof(CHARP));=0A=
+	pvar=3D(char **)malloc(argc*sizeof(char *));=0A=
 	for (i=3D1;i<argc-1;i++)=0A=
 		pvar[i]=3Dargv[i+1];=0A=
 	pvar[argc-1]=3DNULL;=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/des/NTMakefile =
upd/src/des/NTMakefile=0A=
--- bas/src/des/NTMakefile	2001-09-17 13:35:22.000000000 -0700=0A=
+++ upd/src/des/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -44,21 +44,21 @@=0A=
 # Library component lists.=0A=
 =0A=
 LIBOBJS =3D \=0A=
-	des.obj \=0A=
-	cbc_encrypt.obj \=0A=
-	pcbc_encrypt.obj \=0A=
-	cksum.obj \=0A=
-	new_rnd_key.obj \=0A=
-	key_sched.obj \=0A=
-	debug_decl.obj \=0A=
-	quad_cksum.obj \=0A=
-	key_parity.obj \=0A=
-	weak_key.obj \=0A=
-	read_pssword.obj \=0A=
-	strng_to_key.obj \=0A=
-	misc.obj \=0A=
-	util.obj \=0A=
-	crypt.obj=0A=
+	$(OJT)\des.obj \=0A=
+	$(OJT)\cbc_encrypt.obj \=0A=
+	$(OJT)\pcbc_encrypt.obj \=0A=
+	$(OJT)\cksum.obj \=0A=
+	$(OJT)\new_rnd_key.obj \=0A=
+	$(OJT)\key_sched.obj \=0A=
+	$(OJT)\debug_decl.obj \=0A=
+	$(OJT)\quad_cksum.obj \=0A=
+	$(OJT)\key_parity.obj \=0A=
+	$(OJT)\weak_key.obj \=0A=
+	$(OJT)\read_pssword.obj \=0A=
+	$(OJT)\strng_to_key.obj \=0A=
+	$(OJT)\misc.obj \=0A=
+	$(OJT)\util.obj \=0A=
+	$(OJT)\crypt.obj=0A=
 =0A=
 LIBFILE =3D $(DESTDIR)\lib\afsdes.lib=0A=
 =0A=
@@ -82,55 +82,55 @@=0A=
 # Make generated files.=0A=
 MAKETARG =3D $** $@=0A=
 =0A=
-key_perm.h: make_keyperm.exe=0A=
+key_perm.h: $(OJT)\make_keyperm.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-p_table.h: make_p_table.exe=0A=
+p_table.h: $(OJT)\make_p_table.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-s_table.h: make_s_table.exe=0A=
+s_table.h: $(OJT)\make_s_table.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-odd.h: make_odd.exe=0A=
+odd.h: $(OJT)\make_odd.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-p.c: make_p.exe=0A=
+p.c: $(OJT)\make_p.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-s.c: make_s.exe=0A=
+s.c: $(OJT)\make_s.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-fp.c: make_fp.exe=0A=
+fp.c: $(OJT)\make_fp.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
-ip.c: make_ip.exe=0A=
+ip.c: $(OJT)\make_ip.exe=0A=
 	$(MAKETARG)=0A=
 =0A=
 # Make generators.=0A=
-misc.obj: AFS_component_version_number.c=0A=
+$(OJT)\misc.obj: AFS_component_version_number.c=0A=
 =0A=
-make_keyperm.exe: make_keyperm.obj misc.obj main.obj=0A=
+$(OJT)\make_keyperm.exe: $(OJT)\make_keyperm.obj $(OJT)\misc.obj =
$(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_p_table.exe: make_p_table.obj misc.obj main.obj=0A=
+$(OJT)\make_p_table.exe: $(OJT)\make_p_table.obj $(OJT)\misc.obj =
$(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_s_table.exe: make_s_table.obj misc.obj main.obj=0A=
+$(OJT)\make_s_table.exe: $(OJT)\make_s_table.obj $(OJT)\misc.obj =
$(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_odd.exe: make_odd.obj misc.obj main.obj=0A=
+$(OJT)\make_odd.exe: $(OJT)\make_odd.obj $(OJT)\misc.obj $(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_p.exe: make_p.obj misc.obj main.obj=0A=
+$(OJT)\make_p.exe: $(OJT)\make_p.obj $(OJT)\misc.obj $(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_s.exe: make_s.obj misc.obj main.obj=0A=
+$(OJT)\make_s.exe: $(OJT)\make_s.obj $(OJT)\misc.obj $(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_fp.exe: make_fp.obj misc.obj main.obj=0A=
+$(OJT)\make_fp.exe: $(OJT)\make_fp.obj $(OJT)\misc.obj $(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
-make_ip.exe: make_ip.obj misc.obj main.obj=0A=
+$(OJT)\make_ip.exe: $(OJT)\make_ip.obj $(OJT)\misc.obj $(OJT)\main.obj=0A=
 	$(EXECONLINK)=0A=
 =0A=
 install: $(GENERATED_FILES) $(LIBFILE) $(INCFILES)=0A=
@@ -140,3 +140,5 @@=0A=
 clean::=0A=
 	$(DEL) $(LIBFILE) $(GENERATED_FILES)=0A=
 =0A=
+mkdir:=0A=
+=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/des/test/NTMakefile =
upd/src/des/test/NTMakefile=0A=
--- bas/src/des/test/NTMakefile	2000-11-03 18:26:42.000000000 -0800=0A=
+++ upd/src/des/test/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -2,13 +2,16 @@=0A=
 =0A=
 !include ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 =0A=
-testit.exe: testit.obj $(DESTDIR)\lib\afsdes.lib =
$(DESTDIR)\lib\afs\afsutil.lib=0A=
+$(OJT)\testit.exe: $(OJT)\testit.obj $(DESTDIR)\lib\afsdes.lib =
$(DESTDIR)\lib\afs\afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
-verify.exe: verify.obj $(DESTDIR)\lib\afsdes.lib =
$(DESTDIR)\lib\afs\afsutil.lib=0A=
+$(OJT)\verify.exe: $(OJT)\verify.obj $(DESTDIR)\lib\afsdes.lib =
$(DESTDIR)\lib\afs\afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
-key_test.exe: key_test.obj $(DESTDIR)\lib\afsdes.lib =
$(DESTDIR)\lib\afs\afsutil.lib=0A=
+$(OJT)\key_test.exe: $(OJT)\key_test.obj $(DESTDIR)\lib\afsdes.lib =
$(DESTDIR)\lib\afs\afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
-tests: testit.exe verify.exe key_test.exe=0A=
+$(OJT)\tests: $(OJT)\testit.exe $(OJT)\verify.exe $(OJT)\key_test.exe=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/dir/NTMakefile =
upd/src/dir/NTMakefile=0A=
--- bas/src/dir/NTMakefile	2000-11-04 02:04:28.000000000 -0800=0A=
+++ upd/src/dir/NTMakefile	2003-03-10 16:20:20.000000000 -0800=0A=
@@ -25,10 +25,10 @@=0A=
 DIR_LIBFILE =3D $(DESTDIR)\lib\afs\afsdir.lib=0A=
 =0A=
 DIR_LIBOBJS =3D\=0A=
-	buffer.obj \=0A=
-	dir.obj \=0A=
-	salvage.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\buffer.obj \=0A=
+	$(OJT)\dir.obj \=0A=
+	$(OJT)\salvage.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(DIR_LIBFILE): $(DIR_LIBOBJS) =0A=
 	$(LIBARCH)  =0A=
@@ -44,6 +44,5 @@=0A=
 =0A=
 clean::=0A=
 =0A=
-=0A=
-=0A=
-=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/dir/test/NTMakefile =
upd/src/dir/test/NTMakefile=0A=
--- bas/src/dir/test/NTMakefile	2000-11-04 02:04:28.000000000 -0800=0A=
+++ upd/src/dir/test/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -7,7 +7,10 @@=0A=
 =0A=
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 =0A=
-tests: dtest.exe=0A=
+tests: $(OJT)\dtest.exe=0A=
 =0A=
-dtest.exe: dtest.obj DEST\lib\afs\afsdir.lib=0A=
+$(OJT)\dtest.exe: $(OJT)\dtest.obj $(DESTDIR)\lib\afs\afsdir.lib=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/finale/NTMakefile =
upd/src/finale/NTMakefile=0A=
--- bas/src/finale/NTMakefile	2000-11-04 02:04:30.000000000 -0800=0A=
+++ upd/src/finale/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -15,8 +15,8 @@=0A=
 TRANSLATE_ET_EXEFILE =3D $(DESTDIR)\bin\translate_et.exe=0A=
 =0A=
 TRANSLATE_ET_EXEOBJS =3D\=0A=
-	translate_et_nt.obj \=0A=
-	translate_et.res=0A=
+	$(OJT)\translate_et_nt.obj \=0A=
+	$(OJT)\translate_et.res=0A=
 =0A=
 TRANSLATE_ET_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsadminutil.lib \=0A=
@@ -31,8 +31,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-translate_et.res: translate_et.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\translate_et.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -44,3 +43,6 @@=0A=
 # Local clean target; augments predefined clean target=0A=
 =0A=
 clean::=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/fsint/NTMakefile =
upd/src/fsint/NTMakefile=0A=
--- bas/src/fsint/NTMakefile	2001-04-30 00:54:56.000000000 -0700=0A=
+++ upd/src/fsint/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -23,19 +23,18 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsint.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	afscbint.cs.obj \=0A=
-	afscbint.ss.obj \=0A=
-	afscbint.xdr.obj \=0A=
-	afsint.cs.obj 	\=0A=
-	afsint.ss.obj 	\=0A=
-	afsint.xdr.obj 	\=0A=
-	afsaux.obj      \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\afscbint.cs.obj \=0A=
+	$(OJT)\afscbint.ss.obj \=0A=
+	$(OJT)\afscbint.xdr.obj \=0A=
+	$(OJT)\afsint.cs.obj 	\=0A=
+	$(OJT)\afsint.ss.obj 	\=0A=
+	$(OJT)\afsint.xdr.obj 	\=0A=
+	$(OJT)\afsaux.obj      \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
-$(LIBFILE): $(LIBOBJS)  =0A=
+$(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)  =0A=
 =0A=
-=0A=
 # use rxgen on afscbint.xg and afsint.xg=0A=
 afscbint.cs.c afscbint.ss.c afscbint.xdr.c afscbint.h : afscbint.xg =
common.xg=0A=
 	$(RXGEN) -x -y afscbint.xg=0A=
@@ -48,37 +47,38 @@=0A=
 MT_LIBFILE =3D $(DESTDIR)\lib\afs\mtafsint.lib=0A=
 =0A=
 MT_LIBOBJS =3D\=0A=
-	afscbint.cs_mt.obj \=0A=
-	afscbint.ss_mt.obj \=0A=
-	afscbint.xdr_mt.obj \=0A=
-	afsint.cs_mt.obj 	\=0A=
-	afsint.ss_mt.obj 	\=0A=
-	afsint.xdr_mt.obj 	\=0A=
-	afsaux_mt.obj      \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\afscbint.cs_mt.obj \=0A=
+	$(OJT)\afscbint.ss_mt.obj \=0A=
+	$(OJT)\afscbint.xdr_mt.obj \=0A=
+	$(OJT)\afsint.cs_mt.obj 	\=0A=
+	$(OJT)\afsint.ss_mt.obj 	\=0A=
+	$(OJT)\afsint.xdr_mt.obj 	\=0A=
+	$(OJT)\afsaux_mt.obj      \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
+=0A=
 =0A=
-afscbint.cs_mt.obj:afscbint.cs.c=0A=
-	$(C2OBJ) afscbint.cs.c -DAFS_PTHREAD_ENV /Foafscbint.cs_mt.obj=0A=
+$(OJT)\afscbint.cs_mt.obj:afscbint.cs.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-afscbint.ss_mt.obj:afscbint.ss.c=0A=
-	$(C2OBJ) afscbint.ss.c -DAFS_PTHREAD_ENV /Foafscbint.ss_mt.obj=0A=
+$(OJT)\afscbint.ss_mt.obj:afscbint.ss.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-afscbint.xdr_mt.obj:afscbint.xdr.c=0A=
-	$(C2OBJ) afscbint.xdr.c -DAFS_PTHREAD_ENV /Foafscbint.xdr_mt.obj=0A=
+$(OJT)\afscbint.xdr_mt.obj:afscbint.xdr.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-afsint.cs_mt.obj:afsint.cs.c=0A=
-	$(C2OBJ) afsint.cs.c -DAFS_PTHREAD_ENV /Foafsint.cs_mt.obj=0A=
+$(OJT)\afsint.cs_mt.obj:afsint.cs.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-afsint.ss_mt.obj:afsint.ss.c=0A=
-	$(C2OBJ) afsint.ss.c -DAFS_PTHREAD_ENV /Foafsint.ss_mt.obj=0A=
+$(OJT)\afsint.ss_mt.obj:afsint.ss.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-afsint.xdr_mt.obj:afsint.xdr.c=0A=
-	$(C2OBJ) afsint.xdr.c -DAFS_PTHREAD_ENV /Foafsint.xdr_mt.obj=0A=
+$(OJT)\afsint.xdr_mt.obj:afsint.xdr.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-afsaux_mt.obj:afsaux.c=0A=
-	$(C2OBJ) afsaux.c -DAFS_PTHREAD_ENV /Foafsaux_mt.obj=0A=
+$(OJT)\afsaux_mt.obj:afsaux.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV =0A=
 =0A=
-$(MT_LIBFILE): $(MT_LIBOBJS)  =0A=
+$(MT_LIBFILE): $(MT_LIBOBJS)=0A=
 	$(LIBARCH)  =0A=
 =0A=
 install: $(LIBFILE) $(INCFILES) $(MT_LIBFILE)=0A=
@@ -87,3 +87,6 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) *.cs.c *.ss.c *.xdr.c afsint.h afscbint.h=0A=
+	$(DEL) $(LIBFILE) $(MT_LIBFILE)=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/kauth/NTMakefile =
upd/src/kauth/NTMakefile=0A=
--- bas/src/kauth/NTMakefile	2001-10-05 15:40:50.000000000 -0700=0A=
+++ upd/src/kauth/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -28,24 +28,24 @@=0A=
 KAUTH_LIBFILE =3D $(DESTDIR)\lib\afs\afskauth.lib=0A=
 =0A=
 KAUTH_LIBOBJS =3D\=0A=
-	kauth.xdr.obj \=0A=
-	kauth.cs.obj \=0A=
-	kaaux.obj \=0A=
-	client.obj \=0A=
-	authclient.obj \=0A=
-	token.obj \=0A=
-	kautils.obj \=0A=
-	kalocalcell.obj \=0A=
-	kaerrors.obj \=0A=
-	user_nt.obj \=0A=
-	krb_tf.obj \=0A=
-	cm_config.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\kauth.xdr.obj \=0A=
+	$(OJT)\kauth.cs.obj \=0A=
+	$(OJT)\kaaux.obj \=0A=
+	$(OJT)\client.obj \=0A=
+	$(OJT)\authclient.obj \=0A=
+	$(OJT)\token.obj \=0A=
+	$(OJT)\kautils.obj \=0A=
+	$(OJT)\kalocalcell.obj \=0A=
+	$(OJT)\kaerrors.obj \=0A=
+	$(OJT)\user_nt.obj \=0A=
+	$(OJT)\krb_tf.obj \=0A=
+	$(OJT)\cm_config.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 WINNTAFSD =3D ..\WINNT\afsd\=0A=
 =0A=
-cm_config.obj: $(WINNTAFSD)\cm_config.c=0A=
-	$(C2OBJ) $(WINNTAFSD)\cm_config.c=0A=
+$(OJT)\cm_config.obj: $(WINNTAFSD)\cm_config.c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
 $(KAUTH_LIBFILE): $(KAUTH_LIBOBJS) =0A=
 	$(LIBARCH)  =0A=
@@ -56,26 +56,29 @@=0A=
 KAUTH_KRB_LIBFILE =3D $(DESTDIR)\lib\afs\afskauth.krb.lib=0A=
 =0A=
 KAUTH_KRB_LIBOBJS =3D\=0A=
-	kauth.xdr.obj \=0A=
-	kauth.cs.obj \=0A=
-	kaaux.obj \=0A=
-	client.obj \=0A=
-	authclient.obj \=0A=
-	token.obj \=0A=
-	kautils.obj \=0A=
-	kalocalcell.obj \=0A=
-	kaerrors.obj \=0A=
-	user.krb.obj \=0A=
-	krb_tf.obj \=0A=
-	cm_config.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\kauth.xdr.obj \=0A=
+	$(OJT)\kauth.cs.obj \=0A=
+	$(OJT)\kaaux.obj \=0A=
+	$(OJT)\client.obj \=0A=
+	$(OJT)\authclient.obj \=0A=
+	$(OJT)\token.obj \=0A=
+	$(OJT)\kautils.obj \=0A=
+	$(OJT)\kalocalcell.obj \=0A=
+	$(OJT)\kaerrors.obj \=0A=
+	$(OJT)\user.krb.obj \=0A=
+	$(OJT)\krb_tf.obj \=0A=
+	$(OJT)\cm_config.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(KAUTH_KRB_LIBFILE): $(KAUTH_KRB_LIBOBJS) =0A=
 	$(LIBARCH)  =0A=
 =0A=
 #make user.krb.obj=0A=
-user.krb.obj: user_nt.c $(INCFILES) $(DESTDIR)/include/afs/vice.h=0A=
-	$(C2OBJ) user_nt.c  /DAFS_KERBEROS_ENV /Fouser.krb.obj=0A=
+=0A=
+user_nt.c : $(INCFILES) $(DESTDIR)/include/afs/vice.h=0A=
+=0A=
+$(OJT)\user.krb.obj: user_nt.c=0A=
+	$(C2OBJ) $**  -DAFS_KERBEROS_ENV=0A=
 =0A=
 =0A=
 # common libs=0A=
@@ -105,18 +108,18 @@=0A=
 KASERVER =3D $(DESTDIR)\root.server\usr\afs\bin\kaserver.exe=0A=
 =0A=
 KASERVER_OBJS =3D\=0A=
-	kaserver.obj \=0A=
-	kautils.obj \=0A=
-	kalocalcell.obj \=0A=
-	kadatabase.obj \=0A=
-	krb_udp.obj \=0A=
-	kaprocs.obj \=0A=
-	kalog.obj \=0A=
-	kauth.ss.obj \=0A=
-	kauth.xdr.obj \=0A=
-	kaaux.obj \=0A=
-	kaauxdb.obj \=0A=
-	kaserver.res=0A=
+	$(OJT)\kaserver.obj \=0A=
+	$(OJT)\kautils.obj \=0A=
+	$(OJT)\kalocalcell.obj \=0A=
+	$(OJT)\kadatabase.obj \=0A=
+	$(OJT)\krb_udp.obj \=0A=
+	$(OJT)\kaprocs.obj \=0A=
+	$(OJT)\kalog.obj \=0A=
+	$(OJT)\kauth.ss.obj \=0A=
+	$(OJT)\kauth.xdr.obj \=0A=
+	$(OJT)\kaaux.obj \=0A=
+	$(OJT)\kaauxdb.obj \=0A=
+	$(OJT)\kaserver.res=0A=
 =0A=
 KASERVER_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsprocmgmt.lib=0A=
@@ -125,12 +128,14 @@=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP) =0A=
 =0A=
-#build kadatabase.obj=0A=
-kadatabase.obj: kadatabase.c $(INCFILES) =0A=
-	$(C2OBJ) kadatabase.c  /DSPECIAL=3D1 /Fokadatabase.obj=0A=
-#build kaprocs.obj=0A=
-kaprocs.obj: kaprocs.c $(INCFILES)=0A=
-	$(C2OBJ) kaprocs.c /DSPECIAL=3D1 /Fokaprocs.obj=0A=
+#build $(OJT)\kadatabase.obj=0A=
+=0A=
+$(OJT)\kadatabase.obj: kadatabase.c =0A=
+	$(C2OBJ) $**  /DSPECIAL=3D1=0A=
+=0A=
+#build $(OJT)\kaprocs.obj=0A=
+$(OJT)\kaprocs.obj: kaprocs.c=0A=
+	$(C2OBJ) $**  /DSPECIAL=3D1=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # build kas=0A=
@@ -138,10 +143,10 @@=0A=
 KAS =3D $(DESTDIR)\root.server\usr\afs\bin\kas.exe=0A=
 =0A=
 KAS_OBJS =3D\=0A=
-	kas.obj \=0A=
-	admin_tools.obj \=0A=
-	kkids.obj \=0A=
-	kas.res=0A=
+	$(OJT)\kas.obj \=0A=
+	$(OJT)\admin_tools.obj \=0A=
+	$(OJT)\kkids.obj \=0A=
+	$(OJT)\kas.res=0A=
 	=0A=
 $(KAS): $(KAS_OBJS) $(AFSLIBS) $(KAUTH_LIBFILE) $(TOKENLIB)=0A=
 	$(EXECONLINK)=0A=
@@ -152,58 +157,57 @@=0A=
 KPASSWD_EXEFILE =3D $(DESTDIR)\bin\kpasswd.exe=0A=
 =0A=
 KPASSWD_OBJS =3D\=0A=
-	kpasswd.obj \=0A=
-	kkids.obj \=0A=
-	kpasswd.res=0A=
+	$(OJT)\kpasswd.obj \=0A=
+	$(OJT)\kkids.obj \=0A=
+	$(OJT)\kpasswd.res=0A=
 =0A=
 $(KPASSWD_EXEFILE): $(KPASSWD_OBJS) $(AFSLIBS) $(KAUTH_LIBFILE) =
$(TOKENLIB)=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP)=0A=
 =0A=
 #kpwvalid.exe=0A=
-kpwvalid.exe: kpwvalid.obj $(AFSLIBS) $(KAUTH_LIBFILE)=0A=
+$(OJT)\kpwvalid.exe: $(OJT)\kpwvalid.obj $(AFSLIBS) $(KAUTH_LIBFILE)=0A=
 	$(EXECONLINK)=0A=
 =0A=
 #kdb.exe - Not implemented for NT - because dbm not available on NT=0A=
-#kdb.exe: kdb.obj $(AFSLIBS) $(KAUTH_LIBFILE) =0A=
+#kdb.exe: $(OJT)\kdb.obj $(AFSLIBS) $(KAUTH_LIBFILE) =0A=
 #	$(EXECONLINK)=0A=
 =0A=
-=0A=
-=0A=
 #rebuild.exe =0A=
-rebuild.exe: rebuild.obj kautils.obj $(AFSLIBS) =0A=
+$(OJT)\rebuild.exe: $(OJT)\rebuild.obj $(OJT)\kautils.obj $(AFSLIBS) =0A=
 	$(EXECONLINK)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-kaserver.res: kaserver.rc AFS_component_version_number.h=0A=
+$(OJT)\kaserver.res: AFS_component_version_number.h=0A=
 =0A=
-kas.res: kas.rc AFS_component_version_number.h=0A=
+$(OJT)\kas.res: AFS_component_version_number.h=0A=
 =0A=
-kpasswd.res: kpasswd.rc AFS_component_version_number.h=0A=
+$(OJT)\kpasswd.res: AFS_component_version_number.h=0A=
+=0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # rxgen on kauth.rg=0A=
 =0A=
-kauth.ss.c kauth.cs.c kauth.xdr.c $(DESTDIR)\include\afs\kauth.h: =
kauth.rg=0A=
+kauth.ss.c kauth.cs.c kauth.xdr.c kauth.h: kauth.rg=0A=
 	$(RXGEN) -x $**=0A=
-	$(COPY) kauth.h $(DESTDIR)\include\afs\kauth.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # compile_et on kaerrors.c =0A=
 =0A=
-kaerrors.c $(DESTDIR)\include\afs\kautils.h: kaerrors.et kautils.p.h=0A=
+kaerrors.c kautils.h: kaerrors.et kautils.p.h=0A=
 	$(DEL) kautils.h kaerrors.c=0A=
 	$(COMPILE_ET) kaerrors -h kautils=0A=
-	$(COPY) kautils.h  $(DESTDIR)\include\afs\kautils.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # install =0A=
 =0A=
 install: $(INCFILES) $(KAUTH_LIBFILE) $(KAUTH_KRB_LIBFILE) $(KASERVER) =
$(KAS) \=0A=
 	$(KPASSWD_EXEFILE) \=0A=
-	kpwvalid.exe rebuild.exe  \=0A=
+	$(OJT)\kpwvalid.exe $(OJT)\rebuild.exe  \=0A=
 	$(DESTDIR)\etc\kas.exe=0A=
 =0A=
 install9X: $(INCFILES) $(KAUTH_LIBFILE) $(KAUTH_KRB_LIBFILE) \=0A=
@@ -219,7 +223,9 @@=0A=
 # Local clean target; augments predefined clean target=0A=
 =0A=
 clean::=0A=
-	$(DEL) $(KPASSWD_EXEFILE)=0A=
+	$(DEL) $(KPASSWD_EXEFILE) $(INCFILES)=0A=
 	$(DEL) kauth.cs.c kauth.h kauth.ss.c kauth.xdr.c kautils.h=0A=
 	$(DEL) kaerrors.c=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/kauth/test/NTMakefile =
upd/src/kauth/test/NTMakefile=0A=
--- bas/src/kauth/test/NTMakefile	2000-11-04 02:04:42.000000000 -0800=0A=
+++ upd/src/kauth/test/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -22,34 +22,34 @@=0A=
 	$(DESTDIR)\afs\afskauth.lib=0A=
 =0A=
 =0A=
-multiklog.exe: multiklog.obj=0A=
+$(OJT)\multiklog.exe: $(OJT)\multiklog.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
 =0A=
-test_date.exe: test_date.obj=0A=
+$(OJT)\test_date.exe: $(OJT)\test_date.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
-test_badtix.exe: test_badtix.obj=0A=
+$(OJT)\test_badtix.exe: $(OJT)\test_badtix.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
-decode_ticket.exe: decode_ticket.obj=0A=
+$(OJT)\decode_ticket.exe: $(OJT)\decode_ticket.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
-test_interim_ktc.exe: test_interim_ktc.obj=0A=
+$(OJT)\test_interim_ktc.exe: $(OJT)\test_interim_ktc.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
-test_rxkad_free: test_rxkad_free.o =0A=
+$(OJT)\test_rxkad_free: test_rxkad_free.o =0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
-test_getticket.exe: test_getticket.obj=0A=
+$(OJT)\test_getticket.exe: $(OJT)\test_getticket.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
-background.exe: background.obj=0A=
+$(OJT)\background.exe: $(OJT)\background.obj=0A=
 	$(EXECONLINK) $(EXELIBS)=0A=
 =0A=
 =0A=
-test tests all: multiklog.exe test_date.exe test_badtix.exe =
decode_ticket.exe \=0A=
-		test_interim_ktc.exe test_getticket.exe background.exe=0A=
+test tests all: $(OJT)\multiklog.exe $(OJT)\test_date.exe =
$(OJT)\test_badtix.exe $(OJT)\decode_ticket.exe \=0A=
+		$(OJT)\test_interim_ktc.exe $(OJT)\test_getticket.exe =
$(OJT)\background.exe=0A=
 =0A=
 =0A=
 # test_interim_ktc depends on normally running ka & pr servers.  Also on=0A=
@@ -91,4 +91,5 @@=0A=
 =0A=
 clean::=0A=
 =0A=
-=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libacl/NTMakefile =
upd/src/libacl/NTMakefile=0A=
--- bas/src/libacl/NTMakefile	2001-04-30 00:55:26.000000000 -0700=0A=
+++ upd/src/libacl/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -24,9 +24,9 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsacl.lib =0A=
 =0A=
 LIBOBJS =3D\=0A=
-	aclprocs.obj \=0A=
-	netprocs.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\aclprocs.obj \=0A=
+	$(OJT)\netprocs.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS) =0A=
 	$(LIBARCH) =0A=
@@ -51,3 +51,6 @@=0A=
 	$(CD) test=0A=
 	$(MAKECMD) /f NTMakefile acltest=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/NTMakefile =
upd/src/libadmin/NTMakefile=0A=
--- bas/src/libadmin/NTMakefile	2001-04-30 00:56:02.000000000 -0700=0A=
+++ upd/src/libadmin/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -20,3 +20,6 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) $(INCFILES)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/libadmin/adminutil/NTMakefile =
upd/src/libadmin/adminutil/NTMakefile=0A=
--- bas/src/libadmin/adminutil/NTMakefile	2002-01-08 12:44:50.000000000 =
-0800=0A=
+++ upd/src/libadmin/adminutil/NTMakefile	2003-03-10 16:20:22.000000000 =
-0800=0A=
@@ -20,82 +20,113 @@=0A=
 VLSERVER =3D ..\..\vlserver=0A=
 VOLSER =3D ..\..\volser=0A=
 =0A=
+INCFILEDIR=3D$(DESTDIR)\include\afs=0A=
 =0A=
-afs_AdminBosErrors.c : afs_AdminBosErrors.et=0A=
+INCFILES=3D $(INCFILEDIR)\afs_AdminCommonErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminBosErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminCfgErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminClientErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminKasErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminMiscErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminPtsErrors.h \=0A=
+	$(INCFILEDIR)\afs_AdminUtilErrors.h \=0A=
+	$(INCFILEDIR)\afsconfig.h \=0A=
+ 	$(INCFILEDIR)\afs_AdminVosErrors.h=0A=
+=0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
+=0A=
+afs_AdminBosErrors.h afs_AdminBosErrors.c : afs_AdminBosErrors.et=0A=
         $(DEL) afs_AdminBosErrors.h afs_AdminBosErrors.c=0A=
         $(COMPILE_ET) afs_AdminBosErrors -h afs_AdminBosErrors=0A=
-        $(COPY) afs_AdminBosErrors.h  =
$(DESTDIR)\include\afs\afs_AdminBosErrors.h=0A=
 =0A=
-afs_AdminCfgErrors.c : afs_AdminCfgErrors.et=0A=
+afs_AdminCfgErrors.h afs_AdminCfgErrors.c : afs_AdminCfgErrors.et=0A=
         $(DEL) afs_AdminCfgErrors.h afs_AdminCfgErrors.c=0A=
         $(COMPILE_ET) afs_AdminCfgErrors -h afs_AdminCfgErrors=0A=
-        $(COPY) afs_AdminCfgErrors.h  =
$(DESTDIR)\include\afs\afs_AdminCfgErrors.h=0A=
  =0A=
-afs_AdminClientErrors.c : afs_AdminClientErrors.et=0A=
+afs_AdminClientErrors.h afs_AdminClientErrors.c : =
afs_AdminClientErrors.et=0A=
         $(DEL) afs_AdminClientErrors.h afs_AdminClientErrors.c=0A=
         $(COMPILE_ET) afs_AdminClientErrors -h afs_AdminClientErrors=0A=
-        $(COPY) afs_AdminClientErrors.h  =
$(DESTDIR)\include\afs\afs_AdminClientErrors.h=0A=
  =0A=
-afs_AdminCommonErrors.c: afs_AdminCommonErrors.et=0A=
+afs_AdminCommonErrors.h afs_AdminCommonErrors.c: =
afs_AdminCommonErrors.et=0A=
         $(DEL) afs_AdminCommonErrors.h afs_AdminCommonErrors.c=0A=
         $(COMPILE_ET) afs_AdminCommonErrors -h afs_AdminCommonErrors=0A=
-        $(COPY) afs_AdminCommonErrors.h  =
$(DESTDIR)\include\afs\afs_AdminCommonErrors.h=0A=
  =0A=
-afs_AdminKasErrors.c : afs_AdminKasErrors.et=0A=
+afs_AdminKasErrors.h afs_AdminKasErrors.c : afs_AdminKasErrors.et=0A=
         $(DEL) afs_AdminKasErrors.h afs_AdminKasErrors.c=0A=
         $(COMPILE_ET) afs_AdminKasErrors -h afs_AdminKasErrors=0A=
-        $(COPY) afs_AdminKasErrors.h  =
$(DESTDIR)\include\afs\afs_AdminKasErrors.h=0A=
  =0A=
-afs_AdminMiscErrors.c : afs_AdminMiscErrors.et=0A=
+afs_AdminMiscErrors.h afs_AdminMiscErrors.c : afs_AdminMiscErrors.et=0A=
         $(DEL) afs_AdminMiscErrors.h afs_AdminMiscErrors.c=0A=
         $(COMPILE_ET) afs_AdminMiscErrors -h afs_AdminMiscErrors=0A=
-        $(COPY) afs_AdminMiscErrors.h  =
$(DESTDIR)\include\afs\afs_AdminMiscErrors.h=0A=
  =0A=
-afs_AdminPtsErrors.c : afs_AdminPtsErrors.et=0A=
+afs_AdminPtsErrors.h afs_AdminPtsErrors.c : afs_AdminPtsErrors.et=0A=
         $(DEL) afs_AdminPtsErrors.h afs_AdminPtsErrors.c=0A=
         $(COMPILE_ET) afs_AdminPtsErrors -h afs_AdminPtsErrors=0A=
-        $(COPY) afs_AdminPtsErrors.h  =
$(DESTDIR)\include\afs\afs_AdminPtsErrors.h=0A=
  =0A=
-afs_AdminUtilErrors.c : afs_AdminUtilErrors.et=0A=
+afs_AdminUtilErrors.h afs_AdminUtilErrors.c : afs_AdminUtilErrors.et=0A=
         $(DEL) afs_AdminUtilErrors.h afs_AdminUtilErrors.c=0A=
         $(COMPILE_ET) afs_AdminUtilErrors -h afs_AdminUtilErrors=0A=
-        $(COPY) afs_AdminUtilErrors.h  =
$(DESTDIR)\include\afs\afs_AdminUtilErrors.h=0A=
  =0A=
-afs_AdminVosErrors.c : afs_AdminVosErrors.et=0A=
+afs_AdminVosErrors.h afs_AdminVosErrors.c : afs_AdminVosErrors.et=0A=
         $(DEL) afs_AdminVosErrors.h afs_AdminVosErrors.c=0A=
         $(COMPILE_ET) afs_AdminVosErrors -h afs_AdminVosErrors=0A=
-        $(COPY) afs_AdminVosErrors.h  =
$(DESTDIR)\include\afs\afs_AdminVosErrors.h=0A=
-=0A=
 =0A=
 ERRORSOBJS =3D \=0A=
-	afs_AdminBosErrors.obj \=0A=
-	afs_AdminCfgErrors.obj \=0A=
-	afs_AdminClientErrors.obj \=0A=
-	afs_AdminCommonErrors.obj \=0A=
-	afs_AdminKasErrors.obj \=0A=
-	afs_AdminMiscErrors.obj \=0A=
-	afs_AdminPtsErrors.obj \=0A=
-	afs_AdminUtilErrors.obj \=0A=
-	afs_AdminVosErrors.obj \=0A=
-	rxkad_errs.obj \=0A=
-	boserr.obj \=0A=
-	kaerrors.obj \=0A=
-	ktc_errors.obj \=0A=
-	cmd_errors.obj \=0A=
-	pterror.obj \=0A=
-	uerrors.obj \=0A=
-	vl_errors.obj \=0A=
-	acfg_errors.obj \=0A=
-	volerr.obj=0A=
+	$(OJT)\afs_AdminBosErrors.obj \=0A=
+	$(OJT)\afs_AdminCfgErrors.obj \=0A=
+	$(OJT)\afs_AdminClientErrors.obj \=0A=
+	$(OJT)\afs_AdminCommonErrors.obj \=0A=
+	$(OJT)\afs_AdminKasErrors.obj \=0A=
+	$(OJT)\afs_AdminMiscErrors.obj \=0A=
+	$(OJT)\afs_AdminPtsErrors.obj \=0A=
+	$(OJT)\afs_AdminUtilErrors.obj \=0A=
+	$(OJT)\afs_AdminVosErrors.obj=0A=
+=0A=
+AUTHOBJS=3D\=0A=
+	$(OJT)\ktc_errors.obj \=0A=
+	$(OJT)\acfg_errors.obj=0A=
+=0A=
+BOZOOBJS=3D\=0A=
+	$(OJT)\boserr.obj=0A=
+=0A=
+KAUTHOBJS=3D\=0A=
+	$(OJT)\kaerrors.obj =0A=
+	=0A=
+CMDOBJS=3D\=0A=
+	$(OJT)\cmd_errors.obj =0A=
+=0A=
+PTSERVEROBJS=3D\=0A=
+	$(OJT)\pterror.obj =0A=
+=0A=
+UBIKOBJS=3D\=0A=
+	$(OJT)\uerrors.obj=0A=
 =0A=
+RXKADOBJS=3D\=0A=
+	$(OJT)\rxkad_errs.obj=0A=
+=0A=
+VOLSEROBJS=3D\=0A=
+	$(OJT)\volerr.obj=0A=
+=0A=
+VLSERVEROBJS=3D\=0A=
+	$(OJT)\vl_errors.obj=0A=
 =0A=
 ADMINOBJS =3D \=0A=
-	afs_utilAdmin.obj=0A=
+	$(OJT)\afs_utilAdmin.obj=0A=
 =0A=
 DLLOBJS =3D\=0A=
 	$(ADMINOBJS) \=0A=
 	$(ERRORSOBJS) \=0A=
-	afsadminutil.res=0A=
+	$(AUTHOBJS) \=0A=
+	$(BOZOOBJS) \=0A=
+	$(KAUTHOBJS) \=0A=
+	$(CMDOBJS) \=0A=
+	$(PTSERVEROBJS) \=0A=
+	$(VLSERVEROBJS) \=0A=
+	$(VOLSEROBJS) \=0A=
+	$(UBIKOBJS) \=0A=
+	$(RXKADOBJS) \=0A=
+	$(OJT)\afsadminutil.res=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\afs\afs_utilAdmin.h \=0A=
@@ -115,7 +146,7 @@=0A=
 	$(COPY) $*.lib $(ILIBDIR)=0A=
 	$(DEL) $*.lib $*.exp=0A=
 =0A=
-install: afs_AdminCommonErrors.c \=0A=
+install: $(INCFILES) afs_AdminCommonErrors.c \=0A=
 	afs_AdminBosErrors.c \=0A=
 	afs_AdminCfgErrors.c \=0A=
 	afs_AdminClientErrors.c \=0A=
@@ -128,47 +159,47 @@=0A=
 	$(DLLFILE)=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afsadminutil.res: afsadminutil.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afsadminutil.res: AFS_component_version_number.h=0A=
 =0A=
-ktc_errors.obj: $(AUTH)\ktc_errors.c=0A=
-	$(C2OBJ) $(AUTH)\ktc_errors.c=0A=
- =0A=
-acfg_errors.obj: $(AUTH)\acfg_errors.c=0A=
-	$(C2OBJ) $(AUTH)\acfg_errors.c=0A=
- =0A=
-boserr.obj: $(BOZO)\boserr.c=0A=
-	$(C2OBJ) $(BOZO)\boserr.c=0A=
- =0A=
-cmd_errors.obj: $(CMD)\cmd_errors.c=0A=
-	$(C2OBJ) $(CMD)\cmd_errors.c=0A=
- =0A=
-kaerrors.obj: $(KAUTH)\kaerrors.c=0A=
-	$(C2OBJ) $(KAUTH)\kaerrors.c=0A=
- =0A=
-pterror.obj: $(PTSERVER)\pterror.c=0A=
-	$(C2OBJ) $(PTSERVER)\pterror.c=0A=
- =0A=
-rxkad_errs.obj: $(RXKAD)\rxkad_errs.c=0A=
-	$(C2OBJ) $(RXKAD)\rxkad_errs.c=0A=
- =0A=
-uerrors.obj: $(UBIK)\uerrors.c=0A=
-	$(C2OBJ) $(UBIK)\uerrors.c=0A=
- =0A=
-vl_errors.obj: $(VLSERVER)\vl_errors.c=0A=
-	$(C2OBJ) $(VLSERVER)\vl_errors.c=0A=
- =0A=
-volerr.obj: $(VOLSER)\volerr.c=0A=
-	$(C2OBJ) $(VOLSER)\volerr.c=0A=
+$(AUTHOBJS): $(AUTH)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
 =0A=
-clean::=0A=
-	$(DEL) afs_AdminBosErrors.c afs_AdminBosErrors.h afs_AdminBosErrors.obj=0A=
-	$(DEL) afs_AdminCfgErrors.c afs_AdminCfgErrors.h afs_AdminCfgErrors.obj=0A=
-	$(DEL) afs_AdminClientErrors.c afs_AdminClientErrors.h =
afs_AdminClientErrors.obj=0A=
-	$(DEL) afs_AdminCommonErrors.c afs_AdminCommonErrors.h =
afs_AdminCommonErrors.obj=0A=
-	$(DEL) afs_AdminKasErrors.c afs_AdminKasErrors.h afs_AdminKasErrors.obj=0A=
-	$(DEL) afs_AdminMiscErrors.c afs_AdminMiscErrors.h =
afs_AdminMiscErrors.obj=0A=
-	$(DEL) afs_AdminPtsErrors.c afs_AdminPtsErrors.h afs_AdminPtsErrors.obj=0A=
-	$(DEL) afs_AdminUtilErrors.c afs_AdminUtilErrors.h =
afs_AdminUtilErrors.obj=0A=
-	$(DEL) afs_AdminVosErrors.c afs_AdminVosErrors.h afs_AdminVosErrors.obj=0A=
+$(BOZOOBJS): $(BOZO)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(KAUTHOBJS): $(KAUTH)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(PTSERVEROBJS): $(PTSERVER)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(CMDOBJS): $(CMD)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
 =0A=
+$(UBIKOBJS): $(UBIK)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(RXKADOBJS): $(RXKAD)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(VOLSEROBJS): $(VOLSER)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+$(VLSERVEROBJS): $(VLSERVER)\$$(@B).c=0A=
+	$(C2OBJ) -I$*(*D) $**=0A=
+=0A=
+clean::=0A=
+	$(DEL) afs_AdminBosErrors.c afs_AdminBosErrors.h =
$(OJT)\afs_AdminBosErrors.obj=0A=
+	$(DEL) afs_AdminCfgErrors.c afs_AdminCfgErrors.h =
$(OJT)\afs_AdminCfgErrors.obj=0A=
+	$(DEL) afs_AdminClientErrors.c afs_AdminClientErrors.h =
$(OJT)\afs_AdminClientErrors.obj=0A=
+	$(DEL) afs_AdminCommonErrors.c afs_AdminCommonErrors.h =
$(OJT)\afs_AdminCommonErrors.obj=0A=
+	$(DEL) afs_AdminKasErrors.c afs_AdminKasErrors.h =
$(OJT)\afs_AdminKasErrors.obj=0A=
+	$(DEL) afs_AdminMiscErrors.c afs_AdminMiscErrors.h =
$(OJT)\afs_AdminMiscErrors.obj=0A=
+	$(DEL) afs_AdminPtsErrors.c afs_AdminPtsErrors.h =
$(OJT)\afs_AdminPtsErrors.obj=0A=
+	$(DEL) afs_AdminUtilErrors.c afs_AdminUtilErrors.h =
$(OJT)\afs_AdminUtilErrors.obj=0A=
+	$(DEL) afs_AdminVosErrors.c afs_AdminVosErrors.h =
$(OJT)\afs_AdminVosErrors.obj=0A=
+	$(DEL) $(INCFILES)=0A=
+	$(DEL) $(DLLOBJS)=0A=
+	$(DEL) $(DLLFILE)=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/libadmin/adminutil/afsconfig.h =
upd/src/libadmin/adminutil/afsconfig.h=0A=
--- bas/src/libadmin/adminutil/afsconfig.h	1969-12-31 16:00:00.000000000 =
-0800=0A=
+++ upd/src/libadmin/adminutil/afsconfig.h	2003-03-10 16:20:22.000000000 =
-0800=0A=
@@ -0,0 +1,224 @@=0A=
+/* src/config/afsconfig.h.in.  Generated automatically from =
configure.in by autoheader.  */=0A=
+/* Modified for Win2000 build*/=0A=
+=0A=
+/* Define if on AIX 3.=0A=
+   System headers sometimes define this.=0A=
+   We just want to avoid a redefinition error message.  */=0A=
+#ifndef _ALL_SOURCE=0A=
+#undef _ALL_SOURCE=0A=
+#endif=0A=
+=0A=
+/* Define to empty if the keyword does not work.  */=0A=
+#undef const=0A=
+=0A=
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */=0A=
+#undef HAVE_SYS_WAIT_H=0A=
+=0A=
+/* Define as __inline if that's what the C compiler calls it.  */=0A=
+#define inline __inline=0A=
+=0A=
+/* Define if on MINIX.  */=0A=
+#undef _MINIX=0A=
+=0A=
+/* Define to `int' if <sys/types.h> doesn't define.  */=0A=
+#undef pid_t=0A=
+=0A=
+/* Define if the system does not provide POSIX.1 features except=0A=
+   with this defined.  */=0A=
+#undef _POSIX_1_SOURCE=0A=
+=0A=
+/* Define if you need to in order for stat and other things to work.  */=0A=
+#undef _POSIX_SOURCE=0A=
+=0A=
+/* Define as the return type of signal handlers (int or void).  */=0A=
+#undef RETSIGTYPE=0A=
+=0A=
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */=0A=
+//#undef size_t unsigned int =0A=
+=0A=
+/* Define if you have the ANSI C header files.  */=0A=
+#undef STDC_HEADERS=0A=
+=0A=
+/* Define if lex declares yytext as a char * by default, not a char[].  =
*/=0A=
+#undef YYTEXT_POINTER=0A=
+=0A=
+/* Define if you have the connect function.  */=0A=
+#undef HAVE_CONNECT=0A=
+=0A=
+/* Define if you have the getdtablesize function.  */=0A=
+#undef HAVE_GETDTABLESIZE=0A=
+=0A=
+/* Define if you have the gethostbyname function.  */=0A=
+#define HAVE_GETHOSTBYNAME=0A=
+=0A=
+/* Define if you have the random function.  */=0A=
+#define HAVE_RANDOM=0A=
+=0A=
+/* Define if you have the re_comp function.  */=0A=
+#undef HAVE_RE_COMP=0A=
+=0A=
+/* Define if you have the re_exec function.  */=0A=
+#undef HAVE_RE_EXEC=0A=
+=0A=
+/* Define if you have the res_search function.  */=0A=
+#undef HAVE_RES_SEARCH=0A=
+=0A=
+/* Define if you have the snprintf function.  */=0A=
+#undef HAVE_SNPRINTF=0A=
+=0A=
+/* Define if you have the socket function.  */=0A=
+#define HAVE_SOCKET=0A=
+=0A=
+/* Define if you have the srandom function.  */=0A=
+#undef HAVE_SRANDOM=0A=
+=0A=
+/* Define if you have the utimes function.  */=0A=
+#define HAVE_UTIMES=0A=
+=0A=
+/* Define if you have the <direct.h> header file.  */=0A=
+#undef HAVE_DIRECT_H=0A=
+=0A=
+/* Define if you have the <dirent.h> header file.  */=0A=
+#undef HAVE_DIRENT_H=0A=
+=0A=
+/* Define if you have the <fcntl.h> header file.  */=0A=
+#define HAVE_FCNTL_H=0A=
+=0A=
+/* Define if you have the <io.h> header file.  */=0A=
+#define HAVE_IO_H=0A=
+=0A=
+/* Define if you have the <malloc.h> header file.  */=0A=
+#define HAVE_MALLOC_H=0A=
+=0A=
+/* Define if you have the <mntent.h> header file.  */=0A=
+#undef HAVE_MNTENT_H=0A=
+=0A=
+/* Define if you have the <ndir.h> header file.  */=0A=
+#undef HAVE_NDIR_H=0A=
+=0A=
+/* Define if you have the <netdb.h> header file.  */=0A=
+#undef HAVE_NETDB_H=0A=
+=0A=
+/* Define if you have the <netinet/in.h> header file.  */=0A=
+#undef HAVE_NETINET_IN_H=0A=
+=0A=
+/* Define if you have the <security/pam_modules.h> header file.  */=0A=
+#undef HAVE_SECURITY_PAM_MODULES_H=0A=
+=0A=
+/* Define if you have the <siad.h> header file.  */=0A=
+#undef HAVE_SIAD_H=0A=
+=0A=
+/* Define if you have the <signal.h> header file.  */=0A=
+#define HAVE_SIGNAL_H=0A=
+=0A=
+/* Define if you have the <stdlib.h> header file.  */=0A=
+#define HAVE_STDLIB_H=0A=
+=0A=
+/* Define if you have the <string.h> header file.  */=0A=
+#define HAVE_STRING_H=0A=
+=0A=
+/* Define if you have the <strings.h> header file.  */=0A=
+#undef HAVE_STRINGS_H=0A=
+=0A=
+/* Define if you have the <sys/dir.h> header file.  */=0A=
+#undef HAVE_SYS_DIR_H=0A=
+=0A=
+/* Define if you have the <sys/fcntl.h> header file.  */=0A=
+#define HAVE_SYS_FCNTL_H=0A=
+=0A=
+/* Define if you have the <sys/file.h> header file.  */=0A=
+#undef HAVE_SYS_FILE_H=0A=
+=0A=
+/* Define if you have the <sys/fs_types.h> header file.  */=0A=
+#undef HAVE_SYS_FS_TYPES_H=0A=
+=0A=
+/* Define if you have the <sys/mntent.h> header file.  */=0A=
+#undef HAVE_SYS_MNTENT_H=0A=
+=0A=
+/* Define if you have the <sys/mnttab.h> header file.  */=0A=
+#undef HAVE_SYS_MNTTAB_H=0A=
+=0A=
+/* Define if you have the <sys/mount.h> header file.  */=0A=
+#undef HAVE_SYS_MOUNT_H=0A=
+=0A=
+/* Define if you have the <sys/ndir.h> header file.  */=0A=
+#undef HAVE_SYS_NDIR_H=0A=
+=0A=
+/* Define if you have the <sys/param.h> header file.  */=0A=
+#undef HAVE_SYS_PARAM_H=0A=
+=0A=
+/* Define if you have the <sys/time.h> header file.  */=0A=
+#undef HAVE_SYS_TIME_H=0A=
+=0A=
+/* Define if you have the <sys/vfs.h> header file.  */=0A=
+#undef HAVE_SYS_VFS_H=0A=
+=0A=
+/* Define if you have the <termios.h> header file.  */=0A=
+#undef HAVE_TERMIOS_H=0A=
+=0A=
+/* Define if you have the <unistd.h> header file.  */=0A=
+#undef HAVE_UNISTD_H=0A=
+=0A=
+/* Define if you have the <usersec.h> header file.  */=0A=
+#undef HAVE_USERSEC_H=0A=
+=0A=
+/* Define if you have the <windows.h> header file.  */=0A=
+#define HAVE_WINDOWS_H=0A=
+=0A=
+/* Define if you have the <winsock2.h> header file.  */=0A=
+#define HAVE_WINSOCK2_H=0A=
+=0A=
+/* Name of package */=0A=
+#undef PACKAGE=0A=
+=0A=
+/* Version number of package */=0A=
+#undef VERSION=0A=
+=0A=
+/* define if target is big endian */=0A=
+#undef WORDS_BIGENDIAN=0A=
+=0A=
+/* define if sys/param.h defines the endiness */=0A=
+#undef ENDIANESS_IN_SYS_PARAM_H=0A=
+=0A=
+/* define if struct ufsvfs has vfs_dqrwlock */=0A=
+#undef HAVE_VFS_DQRWLOCK=0A=
+=0A=
+#undef PACKAGE=0A=
+#undef VERSION=0A=
+ =0A=
+#define RCSID(msg) \=0A=
+static /**/const char *const rcsid[] =3D { (char *)rcsid, "\100(#)" msg =
}=0A=
+=0A=
+#undef HAVE_CONNECT=0A=
+//#undef HAVE_GETHOSTBYNAME=0A=
+#undef HAVE_RES_SEARCH=0A=
+//#undef HAVE_SOCKET=0A=
+=0A=
+#ifdef ENDIANESS_IN_SYS_PARAM_H=0A=
+# ifndef KERNEL=0A=
+#  include <sys/types.h>=0A=
+#  include <sys/param.h>=0A=
+#  if BYTE_ORDER =3D=3D BIG_ENDIAN=0A=
+#  define WORDS_BIGENDIAN 1=0A=
+#  endif=0A=
+# endif=0A=
+#endif=0A=
+=0A=
+/*#undef AFS_AFSDB_ENV*/=0A=
+#define AFS_AFSDB_ENV 1=0A=
+#undef AFS_NAMEI_ENV=0A=
+#undef BOS_RESTRICTED_MODE=0A=
+=0A=
+#undef FAST_RESTART=0A=
+#undef BITMAP_LATER=0A=
+=0A=
+#undef INODE_SETATTR_NOT_VOID=0A=
+#undef STRUCT_INODE_HAS_I_BYTES=0A=
+#undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK=0A=
+=0A=
+/* glue for RedHat kernel bug */=0A=
+#undef ENABLE_REDHAT_BUILDSYS=0A=
+=0A=
+#if defined(ENABLE_REDHAT_BUILDSYS) && defined(KERNEL) && =
defined(REDHAT_FIX)=0A=
+#include "redhat-fix.h"=0A=
+#endif=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/bos/NTMakefile =
upd/src/libadmin/bos/NTMakefile=0A=
--- bas/src/libadmin/bos/NTMakefile	2002-01-08 12:44:52.000000000 -0800=0A=
+++ upd/src/libadmin/bos/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -11,18 +11,22 @@=0A=
 !include ..\..\config\NTMakefile.version=0A=
 =0A=
 =0A=
-BOZO =3D ..\..\bozo\=0A=
+BOZO =3D ..\..\bozo=0A=
+RX =3D ..\..\rx=0A=
+=0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
 =0A=
 BOZOOBJS =3D \=0A=
-	bosint.xdr.obj bosint.cs.obj=0A=
+	$(OJT)\bosint.xdr.obj $(OJT)\bosint.cs.obj=0A=
 =0A=
 ADMINOBJS =3D \=0A=
-	afs_bosAdmin.obj=0A=
+	$(OJT)\afs_bosAdmin.obj=0A=
 =0A=
 DLLOBJS =3D\=0A=
 	$(ADMINOBJS) \=0A=
 	$(BOZOOBJS) \=0A=
-	afsbosadmin.res=0A=
+	$(RXOBJS) \=0A=
+	$(OJT)\afsbosadmin.res=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\afs\afs_bosAdmin.h=0A=
@@ -46,13 +50,15 @@=0A=
 =0A=
 install: $(DLLFILE) $(LIBINCLUDES)=0A=
 =0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
-bosint.xdr.obj: $(BOZO)\bosint.xdr.c=0A=
-	$(C2OBJ) $(BOZO)\bosint.xdr.c=0A=
+$(BOZOOBJS): $(BOZO)\$$(@B).c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-bosint.cs.obj: $(BOZO)\bosint.cs.c=0A=
-	$(C2OBJ) $(BOZO)\bosint.cs.c=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afsbosadmin.res: afsbosadmin.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afsbosadmin.res: AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/cfg/NTMakefile =
upd/src/libadmin/cfg/NTMakefile=0A=
--- bas/src/libadmin/cfg/NTMakefile	2002-01-08 12:44:52.000000000 -0800=0A=
+++ upd/src/libadmin/cfg/NTMakefile	2003-03-10 16:20:22.000000000 -0800=0A=
@@ -21,23 +21,28 @@=0A=
 DLLFILE =3D $(DESTDIR)\root.server\usr\afs\bin\afscfgadmin.dll=0A=
 ILIBDIR =3D $(DESTDIR)\lib\afs=0A=
 =0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
 =0A=
 UBIKOBJS=3D\=0A=
-	ubik_int.cs.obj \=0A=
-	ubik_int.xdr.obj=0A=
+	$(OJT)\ubik_int.cs.obj \=0A=
+	$(OJT)\ubik_int.xdr.obj=0A=
 =0A=
 CLIENTOBJS=3D\=0A=
-	cellservdb.obj=0A=
+	$(OJT)\cellservdb.obj=0A=
+=0A=
+CFGOBJS =3D \=0A=
+	$(OJT)\cfgclient.obj \=0A=
+	$(OJT)\cfgdb.obj \=0A=
+	$(OJT)\cfghost.obj \=0A=
+	$(OJT)\cfgservers.obj \=0A=
+	$(OJT)\cfginternal.obj=0A=
 =0A=
 DLLOBJS =3D\=0A=
 	$(UBIKOBJS) \=0A=
 	$(CLIENTOBJS) \=0A=
-	cfgclient.obj \=0A=
-	cfgdb.obj \=0A=
-	cfghost.obj \=0A=
-	cfgservers.obj \=0A=
-	cfginternal.obj \=0A=
-	afscfgadmin.res=0A=
+	$(RXOBJS) \=0A=
+	$(CFGOBJS) \=0A=
+	$(OJT)\afscfgadmin.res=0A=
 =0A=
 DLLLIBS =3D\=0A=
 	$(DESTDIR)\lib\afspthread.lib \=0A=
@@ -60,13 +65,15 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for building ubik objects=0A=
 =0A=
-UBIKDIR=3D..\..\ubik=0A=
+UBIK=3D..\..\ubik=0A=
+RX=3D ..\..\rx=0A=
+=0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
-ubik_int.cs.obj: $(UBIKDIR)\ubik_int.cs.c=0A=
-	$(C2OBJ) $(UBIKDIR)\ubik_int.cs.c=0A=
+$(UBIKOBJS): $(UBIK)\$$(@B).c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-ubik_int.xdr.obj: $(UBIKDIR)\ubik_int.xdr.c=0A=
-	$(C2OBJ) $(UBIKDIR)\ubik_int.xdr.c=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Definitions for building client objects=0A=
@@ -74,19 +81,20 @@=0A=
 =0A=
 CLIENTCFGDIR =3D ..\..\WINNT\client_config=0A=
 =0A=
-cellservdb.obj: $(CLIENTCFGDIR)\cellservdb.c=0A=
-	$(C2OBJ) -I$(CLIENTCFGDIR) $(CLIENTCFGDIR)\cellservdb.c=0A=
+$(CLIENTOBJS): $(CLIENTCFGDIR)\$$(@B).c=0A=
+	$(C2OBJ) -I$(CLIENTCFGDIR) $**=0A=
 =0A=
-cfgclient.obj: cfgclient.c=0A=
-	$(C2OBJ) -I$(CLIENTCFGDIR) cfgclient.c=0A=
+$(CFGOBJS): $$(@B).c=0A=
+	$(C2OBJ) -I$(CLIENTCFGDIR) $**=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-afscfgadmin.res: afscfgadmin.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-=0A=
+$(OJT)\afscfgadmin.res: AFS_component_version_number.h=0A=
 =0A=
 install: $(DLLFILE) $(INCFILES)=0A=
 =0A=
 clean::=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude =
bas/src/libadmin/cfg/test/NTMakefile upd/src/libadmin/cfg/test/NTMakefile=0A=
--- bas/src/libadmin/cfg/test/NTMakefile	2002-01-08 12:44:52.000000000 =
-0800=0A=
+++ upd/src/libadmin/cfg/test/NTMakefile	2003-03-10 16:20:22.000000000 =
-0800=0A=
@@ -10,7 +10,7 @@=0A=
 !INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)=0A=
 =0A=
 =0A=
-test tests: cfgtest.exe=0A=
+tests: $(OJT)\cfgtest.exe=0A=
 =0A=
 CFGTEST_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afspthread.lib \=0A=
@@ -20,5 +20,8 @@=0A=
 	$(DESTDIR)\lib\afsrpc.lib \=0A=
 	$(DESTDIR)\lib\afs\afscmd.lib  # static library=0A=
 =0A=
-cfgtest.exe: cfgtest.obj $(CFGTEST_EXELIBS)=0A=
+$(OJT)\cfgtest.exe: $(OJT)\cfgtest.obj $(CFGTEST_EXELIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/client/NTMakefile =
upd/src/libadmin/client/NTMakefile=0A=
--- bas/src/libadmin/client/NTMakefile	2002-01-08 12:44:52.000000000 =
-0800=0A=
+++ upd/src/libadmin/client/NTMakefile	2003-03-10 16:20:24.000000000 =
-0800=0A=
@@ -12,8 +12,8 @@=0A=
 =0A=
 =0A=
 DLLOBJS =3D \=0A=
-	afs_clientAdmin.obj \=0A=
-	afsclientadmin.res=0A=
+	$(OJT)\afs_clientAdmin.obj \=0A=
+	$(OJT)\afsclientadmin.res=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\afs\afs_clientAdmin.h=0A=
@@ -38,5 +38,7 @@=0A=
 install: $(DLLFILE) $(LIBINCLUDES)=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afsclientadmin.res: afsclientadmin.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afsclientadmin.res: AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/kas/NTMakefile =
upd/src/libadmin/kas/NTMakefile=0A=
--- bas/src/libadmin/kas/NTMakefile	2002-01-08 12:44:54.000000000 -0800=0A=
+++ upd/src/libadmin/kas/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -10,16 +10,19 @@=0A=
 !include ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 !include ..\..\config\NTMakefile.version=0A=
 =0A=
-KAUTH =3D ..\..\kauth\=0A=
+KAUTH =3D ..\..\kauth=0A=
+RX =3D ..\..\rx=0A=
+=0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
 =0A=
 KAUTHOBJS =3D \=0A=
-	kauth.cs.obj kauth.xdr.obj kaaux.obj=0A=
+	$(OJT)\kauth.cs.obj $(OJT)\kauth.xdr.obj $(OJT)\kaaux.obj=0A=
 =0A=
 ADMINOBJS =3D \=0A=
-	afs_kasAdmin.obj \=0A=
-	afskasadmin.res=0A=
+	$(OJT)\afs_kasAdmin.obj \=0A=
+	$(OJT)\afskasadmin.res=0A=
 =0A=
-DLLOBJS =3D $(ADMINOBJS) $(KAUTHOBJS)=0A=
+DLLOBJS =3D $(ADMINOBJS) $(KAUTHOBJS) $(RXOBJS)=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\afs\afs_kasAdmin.h=0A=
@@ -42,17 +45,14 @@=0A=
 =0A=
 install: $(DLLFILE) $(LIBINCLUDES)=0A=
 =0A=
+$(KAUTHOBJS): $(KAUTH)\$$(@B).c=0A=
+	$(C2OBJ) -I$(KAUTH) $**=0A=
 =0A=
-=0A=
-kauth.cs.obj: $(KAUTH)\kauth.cs.c=0A=
-	$(C2OBJ) $(KAUTH)\kauth.cs.c=0A=
-=0A=
-kauth.xdr.obj: $(KAUTH)\kauth.xdr.c=0A=
-	$(C2OBJ) $(KAUTH)\kauth.xdr.c=0A=
-=0A=
-kaaux.obj: $(KAUTH)\kaaux.c=0A=
-	$(C2OBJ) $(KAUTH)\kaaux.c=0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afskasadmin.res: afskasadmin.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afskasadmin.res: AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/pts/NTMakefile =
upd/src/libadmin/pts/NTMakefile=0A=
--- bas/src/libadmin/pts/NTMakefile	2002-01-08 12:44:54.000000000 -0800=0A=
+++ upd/src/libadmin/pts/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -10,18 +10,22 @@=0A=
 !include ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 !include ..\..\config\NTMakefile.version=0A=
 =0A=
-PTSERVER =3D ..\..\ptserver\=0A=
+PTSERVER =3D ..\..\ptserver=0A=
+RX =3D ..\..\rx=0A=
+=0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
 =0A=
 PTSERVEROBJS =3D \=0A=
-	ptint.xdr.obj ptint.cs.obj=0A=
+	$(OJT)\ptint.xdr.obj $(OJT)\ptint.cs.obj=0A=
 =0A=
 ADMINOBJS =3D \=0A=
-	afs_ptsAdmin.obj=0A=
+	$(OJT)\afs_ptsAdmin.obj=0A=
 =0A=
 DLLOBJS =3D\=0A=
 	$(ADMINOBJS) \=0A=
 	$(PTSERVEROBJS) \=0A=
-	afsptsadmin.res=0A=
+	$(RXOBJS) \=0A=
+	$(OJT)\afsptsadmin.res=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\afs\afs_ptsAdmin.h=0A=
@@ -45,14 +49,15 @@=0A=
 =0A=
 install: $(DLLFILE) $(LIBINCLUDES)=0A=
 =0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
+$(PTSERVEROBJS): $(PTSERVER)\$$(@B).c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-ptint.xdr.obj: $(PTSERVER)\ptint.xdr.c=0A=
-	$(C2OBJ) $(PTSERVER)\ptint.xdr.c=0A=
+# Definitions for generating versioninfo resources=0A=
 =0A=
-ptint.cs.obj: $(PTSERVER)\ptint.cs.c=0A=
-	$(C2OBJ) $(PTSERVER)\ptint.cs.c=0A=
+$(OJT)\afsptsadmin.res: AFS_component_version_number.h=0A=
 =0A=
-# Definitions for generating versioninfo resources=0A=
-afsptsadmin.res: afsptsadmin.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/test/NTMakefile =
upd/src/libadmin/test/NTMakefile=0A=
--- bas/src/libadmin/test/NTMakefile	2002-01-08 12:44:54.000000000 -0800=0A=
+++ upd/src/libadmin/test/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -10,7 +10,7 @@=0A=
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 =0A=
 =0A=
-install test tests: afscp.exe=0A=
+install tests: $(OJT)\afscp.exe=0A=
 =0A=
 AFSCP_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afspthread.lib \=0A=
@@ -25,12 +25,15 @@=0A=
 	$(DESTDIR)\lib\afs\afscmd.lib  # static library=0A=
 =0A=
 AFSCP_EXEOBJS =3D\=0A=
-	bos.obj \=0A=
-	client.obj \=0A=
-	kas.obj \=0A=
-	pts.obj \=0A=
-	util.obj \=0A=
-	vos.obj=0A=
+	$(OJT)\bos.obj \=0A=
+	$(OJT)\client.obj \=0A=
+	$(OJT)\kas.obj \=0A=
+	$(OJT)\pts.obj \=0A=
+	$(OJT)\util.obj \=0A=
+	$(OJT)\vos.obj=0A=
 =0A=
-afscp.exe: afscp.obj $(AFSCP_EXEOBJS) $(AFSCP_EXELIBS)=0A=
+$(OJT)\afscp.exe: $(OJT)\afscp.obj $(AFSCP_EXEOBJS) $(AFSCP_EXELIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libadmin/vos/NTMakefile =
upd/src/libadmin/vos/NTMakefile=0A=
--- bas/src/libadmin/vos/NTMakefile	2002-01-08 12:44:56.000000000 -0800=0A=
+++ upd/src/libadmin/vos/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -10,36 +10,41 @@=0A=
 !include ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 !include ..\..\config\NTMakefile.version=0A=
 =0A=
-VLSERVER =3D ..\..\vlserver\=0A=
+VLSERVER =3D ..\..\vlserver=0A=
 =0A=
-VOLSER =3D ..\..\volser\=0A=
+VOLSER =3D ..\..\volser=0A=
 =0A=
-FSINT =3D ..\..\fsint\=0A=
+FSINT =3D ..\..\fsint=0A=
+=0A=
+RX =3D ..\..\rx=0A=
 =0A=
 ADMINOBJS =3D \=0A=
-	afs_vosAdmin.obj \=0A=
-	vosutils.obj \=0A=
-	vsprocs.obj \=0A=
-	lockprocs.obj=0A=
+	$(OJT)\afs_vosAdmin.obj \=0A=
+	$(OJT)\vosutils.obj \=0A=
+	$(OJT)\vsprocs.obj \=0A=
+	$(OJT)\lockprocs.obj=0A=
 =0A=
 VLSERVEROBJS =3D \=0A=
-	vldbint.cs.obj \=0A=
-	vldbint.xdr.obj=0A=
+	$(OJT)\vldbint.cs.obj \=0A=
+	$(OJT)\vldbint.xdr.obj=0A=
 =0A=
 VOLSEROBJS =3D \=0A=
-	volint.cs.obj \=0A=
-	volint.xdr.obj=0A=
+	$(OJT)\volint.cs.obj \=0A=
+	$(OJT)\volint.xdr.obj=0A=
 =0A=
 FSINTOBJS =3D\=0A=
-	afsint.xdr.obj \=0A=
-	afscbint.xdr.obj=0A=
+	$(OJT)\afsint.xdr.obj \=0A=
+	$(OJT)\afscbint.xdr.obj=0A=
+=0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
 =0A=
 DLLOBJS =3D\=0A=
 	$(ADMINOBJS) \=0A=
 	$(VLSERVEROBJS) \=0A=
 	$(VOLSEROBJS) \=0A=
 	$(FSINTOBJS) \=0A=
-	afsvosadmin.res=0A=
+	$(RXOBJS) \=0A=
+	$(OJT)\afsvosadmin.res=0A=
 =0A=
 LIBINCLUDES =3D \=0A=
 	$(DESTDIR)\include\afs\afs_vosAdmin.h=0A=
@@ -66,24 +71,20 @@=0A=
 =0A=
 install: $(DLLFILE) $(LIBINCLUDES)=0A=
 =0A=
-vldbint.cs.obj: $(VLSERVER)\vldbint.cs.c=0A=
-	$(C2OBJ) $(VLSERVER)\vldbint.cs.c=0A=
-=0A=
-vldbint.xdr.obj: $(VLSERVER)\vldbint.xdr.c=0A=
-	$(C2OBJ) $(VLSERVER)\vldbint.xdr.c=0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
-volint.cs.obj: $(VOLSER)\volint.cs.c=0A=
-	$(C2OBJ) $(VOLSER)\volint.cs.c=0A=
+$(VLSERVEROBJS):$(VLSERVER)\$$(@B).c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-volint.xdr.obj: $(VOLSER)\volint.xdr.c=0A=
-	$(C2OBJ) $(VOLSER)\volint.xdr.c=0A=
+$(VOLSEROBJS):$(VOLSER)\$$(@B).c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
-afsint.xdr.obj: $(FSINT)\afsint.xdr.c=0A=
-	$(C2OBJ) $(FSINT)\afsint.xdr.c=0A=
-=0A=
-afscbint.xdr.obj: $(FSINT)\afscbint.xdr.c=0A=
-	$(C2OBJ) $(FSINT)\afscbint.xdr.c=0A=
+$(FSINTOBJS):$(FSINT)\$$(@B).c=0A=
+	$(C2OBJ) $**=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afsvosadmin.res: afsvosadmin.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afsvosadmin.res: AFS_component_version_number.h=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libafsauthent/NTMakefile =
upd/src/libafsauthent/NTMakefile=0A=
--- bas/src/libafsauthent/NTMakefile	2002-01-08 12:44:56.000000000 -0800=0A=
+++ upd/src/libafsauthent/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -22,63 +22,66 @@=0A=
 PTSERVER =3D ..\ptserver=0A=
 SYS =3D ..\sys=0A=
 WINNTAFSD =3D ..\WINNT\afsd=0A=
+RX =3D ..\rx=0A=
 =0A=
 LIBFILE =3D $(DESTDIR)\lib\afsauthent.dll=0A=
 =0A=
-AUDITOBJS =3D audit.obj=0A=
+RXOBJS =3D $(OJT)\xdr_int32.obj $(OJT)\xdr_int64.obj=0A=
+=0A=
+AUDITBJS =3D $(OJT)\audit.obj=0A=
 =0A=
 AUTHOBJS =3D \=0A=
-	cellconfig.obj \=0A=
-	userok.obj \=0A=
-	writeconfig.obj \=0A=
-	authcon.obj \=0A=
-	ktc_errors.obj \=0A=
-	ktc_nt.obj \=0A=
-	acfg_errors.obj=0A=
+	$(OJT)\cellconfig.obj \=0A=
+	$(OJT)\userok.obj \=0A=
+	$(OJT)\writeconfig.obj \=0A=
+	$(OJT)\authcon.obj \=0A=
+	$(OJT)\ktc_errors.obj \=0A=
+	$(OJT)\ktc_nt.obj \=0A=
+	$(OJT)\acfg_errors.obj=0A=
 =0A=
 KAUTHOBJS =3D \=0A=
-	kauth.xdr.obj \=0A=
-	kauth.cs.obj \=0A=
-	kaaux.obj \=0A=
-	client.obj \=0A=
-	authclient.obj \=0A=
-	token.obj \=0A=
-	kautils.obj \=0A=
-	kalocalcell.obj \=0A=
-	kaerrors.obj \=0A=
-	user_nt.obj=0A=
+	$(OJT)\kauth.xdr.obj \=0A=
+	$(OJT)\kauth.cs.obj \=0A=
+	$(OJT)\kaaux.obj \=0A=
+	$(OJT)\client.obj \=0A=
+	$(OJT)\authclient.obj \=0A=
+	$(OJT)\token.obj \=0A=
+	$(OJT)\kautils.obj \=0A=
+	$(OJT)\kalocalcell.obj \=0A=
+	$(OJT)\kaerrors.obj \=0A=
+	$(OJT)\user_nt.obj=0A=
 =0A=
 UBIKOBJS =3D \=0A=
-	ubikclient.obj \=0A=
-	uerrors.obj \=0A=
-	ubik_int.cs.obj \=0A=
-	ubik_int.xdr.obj=0A=
+	$(OJT)\ubikclient.obj \=0A=
+	$(OJT)\uerrors.obj \=0A=
+	$(OJT)\ubik_int.cs.obj \=0A=
+	$(OJT)\ubik_int.xdr.obj=0A=
 =0A=
 UTILOBJS =3D \=0A=
-	pthread_glock.obj \=0A=
-	get_krbrlm.obj \=0A=
-	casestrcpy.obj \=0A=
-	fileutil.obj \=0A=
-	dirpath.obj \=0A=
-	readdir_nt.obj=0A=
+	$(OJT)\pthread_glock.obj \=0A=
+	$(OJT)\get_krbrlm.obj \=0A=
+	$(OJT)\casestrcpy.obj \=0A=
+	$(OJT)\fileutil.obj \=0A=
+	$(OJT)\dirpath.obj \=0A=
+	$(OJT)\readdir_nt.obj=0A=
 =0A=
 RXKADOBJS =3D \=0A=
-	rxkad_errs.obj=0A=
+	$(OJT)\rxkad_errs.obj=0A=
 =0A=
 PTSERVEROBJS =3D \=0A=
-	ptclient.obj \=0A=
-	ptint.cs.obj \=0A=
-	ptint.xdr.obj \=0A=
-	ptuser.obj \=0A=
-	display.obj \=0A=
-	pterror.obj=0A=
+	$(OJT)\ptclient.obj \=0A=
+	$(OJT)\ptint.cs.obj \=0A=
+	$(OJT)\ptint.xdr.obj \=0A=
+	$(OJT)\ptuser.obj \=0A=
+	$(OJT)\display.obj \=0A=
+	$(OJT)\pterror.obj=0A=
 =0A=
 SYSOBJS =3D \=0A=
-	pioctl_nt.obj=0A=
+	$(OJT)\pioctl_nt.obj=0A=
 =0A=
 WINNTAFSDOBJS =3D\=0A=
-	cm_config.obj \=0A=
-	afsrpc_c.obj=0A=
+	$(OJT)\cm_config.obj \=0A=
+	$(OJT)\afsrpc_c.obj=0A=
 =0A=
 DLLOBJS =3D\=0A=
 	$(AUTHOBJS) \=0A=
@@ -89,123 +92,39 @@=0A=
 	$(PTSERVEROBJS) \=0A=
 	$(SYSOBJS) \=0A=
 	$(WINNTAFSDOBJS) \=0A=
-	$(AUDITOBJS) \=0A=
+	$(AUDITBJS) \=0A=
 	$(DESTDIR)\lib\cm_dns.obj \=0A=
-	afsauthent.res=0A=
-=0A=
-audit.obj: $(AUDIT)\audit.c=0A=
-	$(C2OBJ) $(AUDIT)\audit.c=0A=
-=0A=
-cellconfig.obj: $(AUTH)\cellconfig.c=0A=
-	$(C2OBJ) $(AUTH)\cellconfig.c=0A=
-=0A=
-userok.obj: $(AUTH)\userok.c=0A=
-	$(C2OBJ) $(AUTH)\userok.c=0A=
-=0A=
-writeconfig.obj: $(AUTH)\writeconfig.c=0A=
-	$(C2OBJ) $(AUTH)\writeconfig.c=0A=
-=0A=
-authcon.obj: $(AUTH)\authcon.c=0A=
-	$(C2OBJ) $(AUTH)\authcon.c=0A=
-=0A=
-ktc_errors.obj: $(AUTH)\ktc_errors.c=0A=
-	$(C2OBJ) $(AUTH)\ktc_errors.c=0A=
-=0A=
-acfg_errors.obj: $(AUTH)\acfg_errors.c=0A=
-	$(C2OBJ) $(AUTH)\acfg_errors.c=0A=
-=0A=
-kauth.xdr.obj: $(KAUTH)\kauth.xdr.c=0A=
-	$(C2OBJ) $(KAUTH)\kauth.xdr.c=0A=
-=0A=
-kauth.cs.obj: $(KAUTH)\kauth.cs.c=0A=
-	$(C2OBJ) $(KAUTH)\kauth.cs.c=0A=
-=0A=
-kaaux.obj: $(KAUTH)\kaaux.c=0A=
-	$(C2OBJ) $(KAUTH)\kaaux.c=0A=
-=0A=
-client.obj: $(KAUTH)\client.c=0A=
-	$(C2OBJ) $(KAUTH)\client.c=0A=
-=0A=
-authclient.obj: $(KAUTH)\authclient.c=0A=
-	$(C2OBJ) $(KAUTH)\authclient.c=0A=
-=0A=
-token.obj: $(KAUTH)\token.c=0A=
-	$(C2OBJ) $(KAUTH)\token.c=0A=
-=0A=
-kautils.obj: $(KAUTH)\kautils.c=0A=
-	$(C2OBJ) $(KAUTH)\kautils.c=0A=
+	$(OJT)\afsauthent.res=0A=
 =0A=
-kalocalcell.obj: $(KAUTH)\kalocalcell.c=0A=
-	$(C2OBJ) $(KAUTH)\kalocalcell.c=0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
-kaerrors.obj: $(KAUTH)\kaerrors.c=0A=
-	$(C2OBJ) $(KAUTH)\kaerrors.c=0A=
+$(AUTHOBJS): $(AUTH)\$$(@B).c=0A=
+	$(C2OBJ) -I$(AUTH) $**=0A=
 =0A=
-ktc_nt.obj: $(AUTH)\ktc_nt.c=0A=
-	$(C2OBJ) $(AUTH)\ktc_nt.c=0A=
+$(KAUTHOBJS): $(KAUTH)\$$(@B).c=0A=
+	$(C2OBJ) -I$(KAUTH) $**=0A=
 =0A=
-user_nt.obj: $(KAUTH)\user_nt.c=0A=
-	$(C2OBJ) $(KAUTH)\user_nt.c=0A=
+$(UBIKOBJS): $(UBIK)\$$(@B).c=0A=
+	$(C2OBJ) -I$(UBIK) $**=0A=
 =0A=
-ubikclient.obj: $(UBIK)\ubikclient.c=0A=
-	$(C2OBJ) $(UBIK)\ubikclient.c=0A=
+$(UTILOBJS): $(UTIL)\$$(@B).c=0A=
+	$(C2OBJ) -I$(UTIL) $**=0A=
 =0A=
-uerrors.obj: $(UBIK)\uerrors.c=0A=
-	$(C2OBJ) $(UBIK)\uerrors.c=0A=
+$(RXKADOBJS): $(RXKAD)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RXKAD) $**=0A=
 =0A=
-ubik_int.cs.obj: $(UBIK)\ubik_int.cs.c=0A=
-	$(C2OBJ) $(UBIK)\ubik_int.cs.c=0A=
+$(PTSERVEROBJS): $(PTSERVER)\$$(@B).c=0A=
+	$(C2OBJ) -I$(PTSERVER) $**=0A=
 =0A=
-ubik_int.xdr.obj: $(UBIK)\ubik_int.xdr.c=0A=
-	$(C2OBJ) $(UBIK)\ubik_int.xdr.c=0A=
+$(WINNTAFSDOBJS): $(WINNTAFSD)\$$(@B).c=0A=
+	$(C2OBJ) -I$(WINNTAFSD) $**=0A=
 =0A=
-get_krbrlm.obj: $(UTIL)\get_krbrlm.c=0A=
-	$(C2OBJ) $(UTIL)\get_krbrlm.c=0A=
+$(AUDITBJS): $(AUDIT)\$$(@B).c=0A=
+	$(C2OBJ) -I$(AUDIT) $**=0A=
 =0A=
-dirpath.obj: $(UTIL)\dirpath.c=0A=
-	$(C2OBJ) $(UTIL)\dirpath.c=0A=
-=0A=
-fileutil.obj: $(UTIL)\fileutil.c=0A=
-	$(C2OBJ) $(UTIL)\fileutil.c=0A=
-=0A=
-readdir_nt.obj: $(UTIL)\readdir_nt.c=0A=
-	$(C2OBJ) $(UTIL)\readdir_nt.c=0A=
-=0A=
-casestrcpy.obj: $(UTIL)\casestrcpy.c=0A=
-	$(C2OBJ) $(UTIL)\casestrcpy.c=0A=
-=0A=
-pthread_glock.obj: $(UTIL)\pthread_glock.c=0A=
-	$(C2OBJ) $(UTIL)\pthread_glock.c=0A=
-=0A=
-rxkad_errs.obj: $(RXKAD)\rxkad_errs.c=0A=
-	$(C2OBJ) $(RXKAD)\rxkad_errs.c=0A=
-=0A=
-ptclient.obj: $(PTSERVER)\ptclient.c=0A=
-	$(C2OBJ) $(PTSERVER)\ptclient.c=0A=
-=0A=
-ptuser.obj: $(PTSERVER)\ptuser.c=0A=
-	$(C2OBJ) $(PTSERVER)\ptuser.c=0A=
-=0A=
-display.obj: $(PTSERVER)\display.c=0A=
-	$(C2OBJ) $(PTSERVER)\display.c=0A=
-=0A=
-ptint.cs.obj: $(PTSERVER)\ptint.cs.c=0A=
-	$(C2OBJ) $(PTSERVER)\ptint.cs.c=0A=
-=0A=
-ptint.xdr.obj: $(PTSERVER)\ptint.xdr.c=0A=
-	$(C2OBJ) $(PTSERVER)\ptint.xdr.c=0A=
-=0A=
-pterror.obj: $(PTSERVER)\pterror.c=0A=
-	$(C2OBJ) $(PTSERVER)\pterror.c=0A=
-=0A=
-pioctl_nt.obj: $(SYS)\pioctl_nt.c=0A=
-	$(C2OBJ) $(SYS)\pioctl_nt.c=0A=
-=0A=
-afsrpc_c.obj: $(WINNTAFSD)\afsrpc_c.c=0A=
-	$(C2OBJ) $(WINNTAFSD)\afsrpc_c.c=0A=
-=0A=
-cm_config.obj: $(WINNTAFSD)\cm_config.c=0A=
-	$(C2OBJ) $(WINNTAFSD)\cm_config.c=0A=
+$(SYSOBJS): $(SYS)\$$(@B).c=0A=
+	$(C2OBJ) -I$(SYS) $**=0A=
 =0A=
 DLLLIBS =3D\=0A=
 !IF (("$(SYS_NAME)"=3D=3D"i386_win95" ) || =
("$(SYS_NAME)"=3D=3D"I386_WIN95" ))=0A=
@@ -219,13 +138,12 @@=0A=
 	$(DESTDIR)\lib\afs\afsreg.lib \=0A=
 	$(DESTDIR)\lib\afs\afseventlog.lib=0A=
 =0A=
-$(LIBFILE): $(DLLOBJS) $(DLLLIBS)=0A=
+$(LIBFILE): $(DLLOBJS) $(DLLLIBS) $(RXOBJS)=0A=
 	$(DLLCONLINK) /DEF:afsauthent.def rpcrt4.lib=0A=
 	$(DLLPREP)=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afsauthent.res: afsauthent.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afsauthent.res: AFS_component_version_number.h=0A=
 =0A=
 install: $(LIBFILE)=0A=
 =0A=
@@ -233,3 +151,6 @@=0A=
 =0A=
 clean ::=0A=
 	$(DEL) $(LIBFILE)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/libafsrpc/NTMakefile =
upd/src/libafsrpc/NTMakefile=0A=
--- bas/src/libafsrpc/NTMakefile	2002-01-08 12:44:56.000000000 -0800=0A=
+++ upd/src/libafsrpc/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -22,235 +22,63 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afsrpc.dll=0A=
 =0A=
 # Object files by category.=0A=
-MULTIOBJS =3D rx_multi.obj=0A=
+MULTIOBJS =3D $(OJT)\rx_multi.obj=0A=
 =0A=
-XDROBJS =3D xdr.obj xdr_array.obj xdr_arrayn.obj xdr_float.obj =
xdr_mem.obj \=0A=
-	xdr_rec.obj  xdr_refernce.obj xdr_rx.obj xdr_update.obj \=0A=
-	xdr_afsuuid.obj xdr_int64.obj=0A=
+XDROBJS =3D $(OJT)\xdr.obj $(OJT)\xdr_array.obj $(OJT)\xdr_arrayn.obj =
$(OJT)\xdr_float.obj $(OJT)\xdr_mem.obj \=0A=
+	$(OJT)\xdr_rec.obj  $(OJT)\xdr_refernce.obj $(OJT)\xdr_rx.obj =
$(OJT)\xdr_update.obj \=0A=
+	$(OJT)\xdr_afsuuid.obj $(OJT)\xdr_int64.obj $(OJT)\xdr_int32.obj=0A=
 =0A=
-RXOBJS =3D rx_event.obj rx_user.obj rx_pthread.obj rx.obj \=0A=
-	rx_null.obj rx_globals.obj rx_getaddr.obj rx_misc.obj rx_packet.obj \=0A=
-	rx_rdwr.obj rx_trace.obj rx_xmit_nt.obj rx_conncache.obj =0A=
+RXOBJS =3D $(OJT)\rx_event.obj $(OJT)\rx_user.obj $(OJT)\rx_pthread.obj =
$(OJT)\rx.obj \=0A=
+	$(OJT)\rx_null.obj $(OJT)\rx_globals.obj $(OJT)\rx_getaddr.obj =
$(OJT)\rx_misc.obj $(OJT)\rx_packet.obj \=0A=
+	$(OJT)\rx_rdwr.obj $(OJT)\rx_trace.obj $(OJT)\rx_xmit_nt.obj =
$(OJT)\rx_conncache.obj=0A=
 =0A=
-RXSTATOBJS =3D rxstat.obj rxstat.ss.obj rxstat.xdr.obj rxstat.cs.obj=0A=
+RXSTATBJS =3D $(OJT)\rxstat.obj $(OJT)\rxstat.ss.obj =
$(OJT)\rxstat.xdr.obj $(OJT)\rxstat.cs.obj=0A=
 =0A=
-LIBRXKAD_OBJS =3D rxkad_client.obj rxkad_server.obj rxkad_common.obj =
ticket.obj \=0A=
-	AFS_component_version_number.obj=0A=
+LIBRXKAD_OBJS =3D $(OJT)\rxkad_client.obj $(OJT)\rxkad_server.obj =
$(OJT)\rxkad_common.obj $(OJT)\ticket.obj \=0A=
+	$(OJT)\ticket5.obj $(OJT)\crc.obj =
$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
-LIBRXKAD_REGOBJS =3D fcrypt.obj crypt_conn.obj=0A=
+LIBRXKAD_REGOBJS =3D $(OJT)\fcrypt.obj $(OJT)\crypt_conn.obj=0A=
 =0A=
-DESOBJS =3D des.obj cbc_encrypt.obj pcbc_encrypt.obj cksum.obj =
new_rnd_key.obj \=0A=
-	key_sched.obj debug_decl.obj quad_cksum.obj key_parity.obj \=0A=
-	weak_key.obj strng_to_key.obj misc.obj util.obj=0A=
+DESOBJS_INT =3D $(OJT)\des.obj $(OJT)\cbc_encrypt.obj =
$(OJT)\pcbc_encrypt.obj $(OJT)\cksum.obj $(OJT)\new_rnd_key.obj \=0A=
+	$(OJT)\key_sched.obj $(OJT)\debug_decl.obj $(OJT)\quad_cksum.obj =
$(OJT)\key_parity.obj \=0A=
+	$(OJT)\weak_key.obj $(OJT)\strng_to_key.obj $(OJT)\util.obj=0A=
 =0A=
-UTILOBJS =3D casestrcpy.obj winsock_nt.obj=0A=
+DESOBJS =3D $(DESOBJS_INT) $(OJT)\misc.obj =0A=
 =0A=
-COMERROBJS =3D error_msg.obj et_name.obj com_err.obj=0A=
+UTILOBJS =3D $(OJT)\casestrcpy.obj $(OJT)\winsock_nt.obj=0A=
 =0A=
-FSINTOBJS =3D afsint.cs.obj afsint.xdr.obj afscbint.cs.obj =
afscbint.xdr.obj \=0A=
-	afsaux.obj=0A=
+COMERRBJS =3D $(OJT)\error_msg.obj $(OJT)\et_name.obj $(OJT)\com_err.obj=0A=
 =0A=
-DLLOBJS =3D $(MULTIOBJS) $(RXOBJS) $(XDROBJS) $(RXSTATOBJS) =
$(LIBRXKAD_OBJS) \=0A=
-	$(DESOBJS) $(LIBRXKAD_REGOBJS) $(UTILOBJS) $(COMERROBJS) \=0A=
-	$(FSINTOBJS) afsrpc.res=0A=
+FSINTBJS =3D $(OJT)\afsint.cs.obj $(OJT)\afsint.xdr.obj =
$(OJT)\afscbint.cs.obj $(OJT)\afscbint.xdr.obj \=0A=
+	$(OJT)\afsaux.obj=0A=
 =0A=
-rx_multi.obj: $(RX)\rx_multi.c=0A=
-	$(C2OBJ) $(RX)\rx_multi.c=0A=
+DLLOBJS =3D $(MULTIOBJS) $(RXOBJS) $(XDROBJS) $(RXSTATBJS) =
$(LIBRXKAD_OBJS) \=0A=
+	$(DESOBJS) $(LIBRXKAD_REGOBJS) $(UTILBJS) $(COMERRBJS) \=0A=
+	$(FSINTBJS) $(OJT)\afsrpc.res=0A=
 =0A=
-xdr.obj: $(RX)\xdr.c=0A=
-	$(C2OBJ) $(RX)\xdr.c=0A=
+$(MULTIOBJS) $(RXOBJS) $(XDROBJS):$(RX)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(RX) =0A=
 =0A=
-xdr_array.obj: $(RX)\xdr_array.c=0A=
-	$(C2OBJ) $(RX)\xdr_array.c=0A=
+$(RXSTATBJS):$(RXSTAT)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(RXSTAT)=0A=
 =0A=
-xdr_arrayn.obj: $(RX)\xdr_arrayn.c=0A=
-	$(C2OBJ) $(RX)\xdr_arrayn.c=0A=
+$(LIBRXKAD_REGOBJS) $(LIBRXKAD_OBJS):$(RXKAD)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(RXKAD)=0A=
 =0A=
-xdr_float.obj: $(RX)\xdr_float.c=0A=
-	$(C2OBJ) $(RX)\xdr_float.c=0A=
+$(DESOBJS_INT):$(DES)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(DES)=0A=
 =0A=
-xdr_mem.obj: $(RX)\xdr_mem.c=0A=
-	$(C2OBJ) $(RX)\xdr_mem.c=0A=
+$(OJT)\misc.obj:$(DES)\misc.c=0A=
+	$(C2OBJ) $** -DDONT_INCL_MAIN -I$(DES)=0A=
 =0A=
-xdr_rec.obj: $(RX)\xdr_rec.c=0A=
-	$(C2OBJ) $(RX)\xdr_rec.c=0A=
+$(COMERRBJS):$(COMERR)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(COMERR)=0A=
 =0A=
-xdr_refernce.obj: $(RX)\xdr_refernce.c=0A=
-	$(C2OBJ) $(RX)\xdr_refernce.c=0A=
+$(FSINTBJS):$(FSINT)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(FSINT)=0A=
 =0A=
-xdr_rx.obj: $(RX)\xdr_rx.c=0A=
-	$(C2OBJ) $(RX)\xdr_rx.c=0A=
-=0A=
-xdr_update.obj: $(RX)\xdr_update.c=0A=
-	$(C2OBJ) $(RX)\xdr_update.c=0A=
-=0A=
-xdr_afsuuid.obj: $(RX)\xdr_afsuuid.c=0A=
-	$(C2OBJ) $(RX)\xdr_afsuuid.c=0A=
-=0A=
-xdr_int64.obj: $(RX)\xdr_int64.c=0A=
-	$(C2OBJ) $(RX)\xdr_int64.c=0A=
-=0A=
-rx_event.obj: $(RX)\rx_event.c=0A=
-	$(C2OBJ) $(RX)\rx_event.c=0A=
-=0A=
-rx_user.obj: $(RX)\rx_user.c=0A=
-	$(C2OBJ) $(RX)\rx_user.c=0A=
-=0A=
-rx_pthread.obj: $(RX)\rx_pthread.c=0A=
-	$(C2OBJ) $(RX)\rx_pthread.c=0A=
-=0A=
-rx.obj: $(RX)\rx.c=0A=
-	$(C2OBJ) $(RX)\rx.c=0A=
-=0A=
-rx_null.obj: $(RX)\rx_null.c=0A=
-	$(C2OBJ) $(RX)\rx_null.c=0A=
-=0A=
-rx_globals.obj: $(RX)\rx_globals.c=0A=
-	$(C2OBJ) $(RX)\rx_globals.c=0A=
-=0A=
-rx_getaddr.obj: $(RX)\rx_getaddr.c=0A=
-	$(C2OBJ) $(RX)\rx_getaddr.c=0A=
-=0A=
-rx_misc.obj: $(RX)\rx_misc.c=0A=
-	$(C2OBJ) $(RX)\rx_misc.c=0A=
-=0A=
-rx_packet.obj: $(RX)\rx_packet.c=0A=
-	$(C2OBJ) $(RX)\rx_packet.c=0A=
-=0A=
-rx_rdwr.obj: $(RX)\rx_rdwr.c=0A=
-	$(C2OBJ) $(RX)\rx_rdwr.c=0A=
-=0A=
-rx_trace.obj: $(RX)\rx_trace.c=0A=
-	$(C2OBJ) $(RX)\rx_trace.c=0A=
-=0A=
-rx_xmit_nt.obj: $(RX)\rx_xmit_nt.c=0A=
-	$(C2OBJ) $(RX)\rx_xmit_nt.c=0A=
-=0A=
-rx_conncache.obj: $(RX)\rx_conncache.c=0A=
-	$(C2OBJ) $(RX)\rx_conncache.c=0A=
-=0A=
-rxstat.cs.obj:$(RXSTAT)\rxstat.cs.c=0A=
-	$(C2OBJ) $(RXSTAT)\rxstat.cs.c=0A=
-=0A=
-rxstat.ss.obj:$(RXSTAT)\rxstat.ss.c=0A=
-	$(C2OBJ) $(RXSTAT)\rxstat.ss.c=0A=
-=0A=
-rxstat.xdr.obj:$(RXSTAT)\rxstat.xdr.c=0A=
-	$(C2OBJ) $(RXSTAT)\rxstat.xdr.c=0A=
-=0A=
-rxstat.obj:$(RXSTAT)\rxstat.c=0A=
-	$(C2OBJ) $(RXSTAT)\rxstat.c=0A=
-=0A=
-rxkad_client.obj:$(RXKAD)\rxkad_client.c=0A=
-	$(C2OBJ) $(RXKAD)\rxkad_client.c=0A=
-=0A=
-rxkad_server.obj:$(RXKAD)\rxkad_server.c=0A=
-	$(C2OBJ) $(RXKAD)\rxkad_server.c=0A=
-=0A=
-rxkad_common.obj:$(RXKAD)\rxkad_common.c=0A=
-	$(C2OBJ) $(RXKAD)\rxkad_common.c=0A=
-=0A=
-ticket.obj:$(RXKAD)\ticket.c=0A=
-	$(C2OBJ) $(RXKAD)\ticket.c=0A=
-=0A=
-fcrypt.obj:$(RXKAD)\fcrypt.c=0A=
-	$(C2OBJ) $(RXKAD)\fcrypt.c=0A=
-=0A=
-crypt_conn.obj:$(RXKAD)\crypt_conn.c=0A=
-	$(C2OBJ) $(RXKAD)\crypt_conn.c=0A=
-=0A=
-AFS_component_version_number.obj:$(RXKAD)\AFS_component_version_number.c=0A=
-	$(C2OBJ) $(RXKAD)\AFS_component_version_number.c=0A=
-=0A=
-fcrypt_x.obj:$(RXKAD)\fcrypt.c=0A=
-	$(C2OBJ) $(RXKAD)\fcrypt.c /Fofcrypt_x.obj=0A=
-=0A=
-crypt_conn_x.obj:$(RXKAD)\crypt_conn.c=0A=
-	$(C2OBJ) $(RXKAD)\crypt_conn.c /Focrypt_conn_x.obj=0A=
-=0A=
-des.obj:$(DES)\des.c=0A=
-	$(C2OBJ) $(DES)\des.c=0A=
-=0A=
-cbc_encrypt.obj:$(DES)\cbc_encrypt.c=0A=
-	$(C2OBJ) $(DES)\cbc_encrypt.c=0A=
-=0A=
-pcbc_encrypt.obj:$(DES)\pcbc_encrypt.c=0A=
-	$(C2OBJ) $(DES)\pcbc_encrypt.c=0A=
-=0A=
-cksum.obj:$(DES)\cksum.c=0A=
-	$(C2OBJ) $(DES)\cksum.c=0A=
-=0A=
-new_rnd_key.obj:$(DES)\new_rnd_key.c=0A=
-	$(C2OBJ) $(DES)\new_rnd_key.c=0A=
-=0A=
-key_sched.obj:$(DES)\key_sched.c=0A=
-	$(C2OBJ) $(DES)\key_sched.c=0A=
-=0A=
-debug_decl.obj:$(DES)\debug_decl.c=0A=
-	$(C2OBJ) $(DES)\debug_decl.c=0A=
-=0A=
-quad_cksum.obj:$(DES)\quad_cksum.c=0A=
-	$(C2OBJ) $(DES)\quad_cksum.c=0A=
-=0A=
-key_parity.obj:$(DES)\key_parity.c=0A=
-	$(C2OBJ) $(DES)\key_parity.c=0A=
-=0A=
-weak_key.obj:$(DES)\weak_key.c=0A=
-	$(C2OBJ) $(DES)\weak_key.c=0A=
-=0A=
-strng_to_key.obj:$(DES)\strng_to_key.c=0A=
-	$(C2OBJ) $(DES)\strng_to_key.c=0A=
-=0A=
-misc.obj:$(DES)\misc.c=0A=
-	$(C2OBJ) -DDONT_INCL_MAIN $(DES)\misc.c=0A=
-=0A=
-util.obj:$(DES)\util.c=0A=
-	$(C2OBJ) $(DES)\util.c=0A=
-=0A=
-des_x.obj:$(DES)\des.c=0A=
-	$(C2OBJ) $(DES)\des.c /Fodes_x.obj=0A=
-=0A=
-cbc_crypt_x.obj:$(DES)\cbc_encrypt.c=0A=
-	$(C2OBJ) $(DES)\cbc_encrypt.c /Focbc_crypt_x.obj=0A=
-=0A=
-pcbc_crypt_x.obj:$(DES)\pcbc_encrypt.c=0A=
-	$(C2OBJ) $(DES)\pcbc_encrypt.c /Fopcbc_crypt_x.obj=0A=
-=0A=
-cksum_x.obj:$(DES)\cksum.c=0A=
-	$(C2OBJ) $(DES)\cksum.c /Focksum_x.obj=0A=
-=0A=
-nrnd_key_x.obj:$(DES)\new_rnd_key.c=0A=
-	$(C2OBJ) $(DES)\new_rnd_key.c /Fonrnd_key_x.obj=0A=
-=0A=
-error_msg.obj:$(COMERR)\error_msg.c=0A=
-	$(C2OBJ) $(COMERR)\error_msg.c=0A=
-=0A=
-et_name.obj:$(COMERR)\et_name.c=0A=
-	$(C2OBJ) $(COMERR)\et_name.c=0A=
-=0A=
-com_err.obj:$(COMERR)\com_err.c=0A=
-	$(C2OBJ) $(COMERR)\com_err.c=0A=
-=0A=
-casestrcpy.obj:$(UTIL)\casestrcpy.c=0A=
-	$(C2OBJ) $(UTIL)\casestrcpy.c=0A=
-=0A=
-winsock_nt.obj:$(UTIL)\winsock_nt.c=0A=
-	$(C2OBJ) $(UTIL)\winsock_nt.c=0A=
-=0A=
-afsint.cs.obj:$(FSINT)\afsint.cs.c=0A=
-	$(C2OBJ) $(FSINT)\afsint.cs.c=0A=
-=0A=
-afsint.xdr.obj:$(FSINT)\afsint.xdr.c=0A=
-	$(C2OBJ) $(FSINT)\afsint.xdr.c=0A=
-=0A=
-afscbint.cs.obj:$(FSINT)\afscbint.cs.c=0A=
-	$(C2OBJ) $(FSINT)\afscbint.cs.c=0A=
-=0A=
-afscbint.xdr.obj:$(FSINT)\afscbint.xdr.c=0A=
-	$(C2OBJ) $(FSINT)\afscbint.xdr.c=0A=
-=0A=
-afsaux.obj:$(FSINT)\afsaux.c=0A=
-	$(C2OBJ) $(FSINT)\afsaux.c=0A=
+$(UTILOBJS):$(UTIL)\$$(@B).c=0A=
+	$(C2OBJ) $** -I$(UTIL)=0A=
 =0A=
 NTMAKE =3D nmake /nologo /f ntmakefile=0A=
 =0A=
@@ -269,9 +97,7 @@=0A=
 	$(DLLPREP)=0A=
 =0A=
 # Definitions for generating versioninfo resources=0A=
-afsrpc.res: afsrpc.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-=0A=
+$(OJT)\afsrpc.res: AFS_component_version_number.h=0A=
 =0A=
 install:=0A=
 !       IF (EXIST(..\..\src\des\NTMakefile))=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/lwp/NTMakefile =
upd/src/lwp/NTMakefile=0A=
--- bas/src/lwp/NTMakefile	2001-04-30 01:02:56.000000000 -0700=0A=
+++ upd/src/lwp/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -10,14 +10,14 @@=0A=
 !include ..\config\NTMakefile.$(SYS_NAME)=0A=
 !include ..\config\NTMakefile.version=0A=
 =0A=
-LIBOBJS =3D lock.obj \=0A=
-	  lwp_nt.obj \=0A=
-	  iomgr.obj \=0A=
-	  timer.obj\=0A=
-	  fasttime.obj \=0A=
-	  waitkey.obj \=0A=
-	  threadname.obj \=0A=
-	  AFS_component_version_number.obj=0A=
+LIBOBJS =3D $(OJT)\lock.obj \=0A=
+	  $(OJT)\lwp_nt.obj \=0A=
+	  $(OJT)\iomgr.obj \=0A=
+	  $(OJT)\timer.obj\=0A=
+	  $(OJT)\fasttime.obj \=0A=
+	  $(OJT)\waitkey.obj \=0A=
+	  $(OJT)\threadname.obj \=0A=
+	  $(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 LIBFILE =3D $(DESTDIR)\lib\afslwp.lib=0A=
 =0A=
@@ -36,10 +36,13 @@=0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
 =0A=
-tests: rw.exe=0A=
+tests: $(OJT)\rw.exe=0A=
 =0A=
-rw.exe: rw.obj $(LIBFILE) $(DESTDIR)\lib\afs\afsutil.lib=0A=
+$(OJT)\rw.exe: $(OJT)\rw.obj $(LIBFILE) $(DESTDIR)\lib\afs\afsutil.lib=0A=
 	$(EXECONLINK)=0A=
 =0A=
 clean::=0A=
 	$(DEL) $(LIBFILE)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/lwp/test/NTMakefile =
upd/src/lwp/test/NTMakefile=0A=
--- bas/src/lwp/test/NTMakefile	2000-11-04 02:05:14.000000000 -0800=0A=
+++ upd/src/lwp/test/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -8,13 +8,13 @@=0A=
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 !INCLUDE ..\..\config\NTMakefile.version=0A=
 =0A=
-LIBS =3D  DEST\lib\afslwp.lib \=0A=
-	DEST\lib\afs\afsutil.lib=0A=
+LIBS =3D  DESTDIR\lib\afslwp.lib \=0A=
+	DESTDIRlib\afs\afsutil.lib=0A=
 =0A=
 =0A=
 # build testkey.exe=0A=
-TESTKEY =3D testkey.exe=0A=
-testkey.exe: test_key.obj $(LIBS)=0A=
+TESTKEY =3D $(OJT)\testkey.exe=0A=
+$(OJT)\testkey.exe: $(OJT)\test_key.obj $(LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
 =0A=
@@ -26,3 +26,6 @@=0A=
 =0A=
 clean::=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/procmgmt/NTMakefile =
upd/src/procmgmt/NTMakefile=0A=
--- bas/src/procmgmt/NTMakefile	2002-01-08 12:44:56.000000000 -0800=0A=
+++ upd/src/procmgmt/NTMakefile	2003-03-10 16:20:24.000000000 -0800=0A=
@@ -12,8 +12,10 @@=0A=
 =0A=
 =
#########################################################################=
###=0A=
 =0A=
-INCFILES =3D\=0A=
-	$(DESTDIR)\include\afs\procmgmt.h=0A=
+INCFILES =3D	$(DESTDIR)\include\afs\procmgmt.h=0A=
+=0A=
+$(INCFILES):$$(@F)=0A=
+	$(COPY) $** $(DESTDIR)\include\afs\.=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Build afsprocmgmt.dll=0A=
@@ -22,15 +24,15 @@=0A=
 ILIBDIR =3D $(DESTDIR)\lib\afs=0A=
 =0A=
 DLLOBJS =3D\=0A=
-	procmgmt_nt.obj \=0A=
-	redirect_nt.obj \=0A=
-	afsprocmgmt.res=0A=
+	$(OJT)\procmgmt_nt.obj \=0A=
+	$(OJT)\redirect_nt.obj \=0A=
+	$(OJT)\afsprocmgmt.res=0A=
 =0A=
 DLLLIBS =3D\=0A=
 	$(DESTDIR)\lib\afspthread.lib \=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib=0A=
 =0A=
-$(DLLFILE): $(DLLOBJS) $(DLLLIBS)=0A=
+$(DLLFILE): $(DLLOBJS) $(DLLRES) $(DLLLIBS)=0A=
 	$(DLLCONLINK) /DEF:afsprocmgmt.def=0A=
 	$(DLLPREP)=0A=
 	$(COPY) $*.lib $(ILIBDIR)=0A=
@@ -43,8 +45,8 @@=0A=
 CL_KILL_EXEFILE =3D $(DESTDIR)\etc\afskill.exe=0A=
 =0A=
 KILL_EXEOBJS =3D\=0A=
-	afskill.obj \=0A=
-	afskill.res=0A=
+	$(OJT)\afskill.obj \=0A=
+	$(OJT)\afskill.res=0A=
 =0A=
 KILL_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afs\afsprocmgmt.lib=0A=
@@ -59,12 +61,14 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating versioninfo resources=0A=
 =0A=
-afsprocmgmt.res: afsprocmgmt.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+#.cpp.obj:=0A=
+#	$(CPP2OBJ) $<=0A=
 =0A=
-afskill.res: afskill.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\afsprocmgmt.res: AFS_component_version_number.h=0A=
+#	$(RC) $*.rc=0A=
 =0A=
+$(OJT)\afskill.res: AFS_component_version_number.h=0A=
+#	$(RC) $*.rc=0A=
 =0A=
 install_headers: $(INCFILES)=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/procmgmt/test/NTMakefile =
upd/src/procmgmt/test/NTMakefile=0A=
--- bas/src/procmgmt/test/NTMakefile	2002-01-08 12:44:58.000000000 -0800=0A=
+++ upd/src/procmgmt/test/NTMakefile	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -7,12 +7,15 @@=0A=
 =0A=
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)=0A=
 =0A=
-test tests: pmgttest.exe=0A=
+tests: $(OJT)\pmgttest.exe=0A=
 =0A=
 PMGTTEST_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afspthread.lib \=0A=
 	$(DESTDIR)\lib\afs\afsprocmgmt.lib \=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib=0A=
 =0A=
-pmgttest.exe: pmgttest.obj $(PMGTTEST_EXELIBS)=0A=
+$(OJT)\pmgttest.exe: $(OJT)\pmgttest.obj $(PMGTTEST_EXELIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/ptserver/NTMakefile =
upd/src/ptserver/NTMakefile=0A=
--- bas/src/ptserver/NTMakefile	2001-10-05 15:40:50.000000000 -0700=0A=
+++ upd/src/ptserver/NTMakefile	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -20,6 +20,7 @@=0A=
 	$(INCFILEDIR)\afs\ptserver.h \=0A=
 	$(INCFILEDIR)\afs\ptint.h \=0A=
 	$(INCFILEDIR)\afs\pterror.h \=0A=
+	ptopcodes.h \=0A=
 	$(INCFILEDIR)\afs\ptclient.h =0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -28,14 +29,13 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsprot.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	ptuser.obj \=0A=
-	pterror.obj \=0A=
-	ptint.cs.obj \=0A=
-	ptint.xdr.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\ptuser.obj \=0A=
+	$(OJT)\pterror.obj \=0A=
+	$(OJT)\ptint.cs.obj \=0A=
+	$(OJT)\ptint.xdr.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
-=0A=
-$(LIBFILE): $(LIBOBJS)  =0A=
+$(LIBFILE):  $(LIBOBJS)=0A=
 	$(LIBARCH) =0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -44,13 +44,13 @@=0A=
 PTSERVER =3D $(DESTDIR)\root.server\usr\afs\bin\ptserver.exe=0A=
 =0A=
 PTSERVER_EXEOBJS =3D\=0A=
-	ptint.ss.obj \=0A=
-	ptint.xdr.obj \=0A=
-	ptserver.obj \=0A=
-	ptutils.obj \=0A=
-	ptprocs.obj \=0A=
-	utils.obj \=0A=
-	ptserver.res=0A=
+	$(OJT)\ptint.ss.obj \=0A=
+	$(OJT)\ptint.xdr.obj \=0A=
+	$(OJT)\ptserver.obj \=0A=
+	$(OJT)\ptutils.obj \=0A=
+	$(OJT)\ptprocs.obj \=0A=
+	$(OJT)\utils.obj \=0A=
+	$(OJT)\ptserver.res=0A=
 =0A=
 =0A=
 PTSERVER_EXELIBS =3D\=0A=
@@ -72,8 +72,7 @@=0A=
 PTSERVER_EXELIBS =3D$(PTSERVER_EXELIBS) =
$(DESTDIR)\lib\afs\afsprocmgmt.lib=0A=
 !ENDIF=0A=
 =0A=
-=0A=
-$(PTSERVER): $(PTSERVER_EXEOBJS) $(PTSERVER_EXELIBS)=0A=
+$(PTSERVER): $(PTSERVER_EXEOBJS) $(RXKADOBJS) $(PTSERVER_EXELIBS)=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP) =0A=
 =0A=
@@ -85,8 +84,8 @@=0A=
 PTS =3D $(DESTDIR)\bin\pts.exe=0A=
 =0A=
 PTS_EXEOBJS =3D\=0A=
-	pts.obj \=0A=
-	pts.res=0A=
+	$(OJT)\pts.obj \=0A=
+	$(OJT)\pts.res=0A=
 =0A=
 PTS_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afsubik.lib \=0A=
@@ -113,32 +112,32 @@=0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
 =0A=
-ptserver.res: ptserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-pts.res: pts.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\ptserver.res: AFS_component_version_number.h=0A=
+=0A=
+$(OJT)\pts.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # rxgen on pting.xg=0A=
 =0A=
-ptint.ss.c ptint.cs.c ptint.xdr.c $(DESTDIR)\include\afs\ptint.h: =
ptint.xg=0A=
-	$(RXGEN) -x $**=0A=
-	$(COPY) ptint.h $(DESTDIR)\include\afs\ptint.h=0A=
+$(INCFILEDIR)\afs\ptint.h : ptint.h=0A=
 =0A=
+ptint.ss.c ptint.cs.c ptint.xdr.c ptint.h: ptint.xg=0A=
+	$(RXGEN) -x $**=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating files via COMPILE_ET=0A=
 =0A=
-$(DESTDIR)\include\afs\pterror.h pterror.c: pterror.et=0A=
+$(DESTDIR)\include\afs\pterror.h: pterror.h=0A=
+=0A=
+pterror.h pterror.c: pterror.et=0A=
 	$(DEL) pterror.h pterror.c=0A=
 	$(COMPILE_ET) pterror  -h pterror=0A=
-	$(COPY) pterror.h $(DESTDIR)\include\afs\pterror.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # install pts, ptserver and afsprot.lib=0A=
 =0A=
-install: $(INCFILES) $(LIBFILE) $(PTSERVER) $(PTS) readgroup.exe \=0A=
-	readpwd.exe  testpt.exe db_verify.exe  \=0A=
+install: $(INCFILES) ptint.ss.c ptint.cs.c ptint.xdr.c $(LIBFILE) =
$(PTSERVER) $(PTS) $(OJT)\readgroup.exe \=0A=
+	$(OJT)\readpwd.exe  $(OJT)\testpt.exe $(OJT)\db_verify.exe  \=0A=
 	$(DESTDIR)\root.server\usr\afs\bin\pts.exe \=0A=
 	$(INCFILEDIR)\afs\prserver.h $(INCFILEDIR)\afs\print.h \=0A=
 	$(INCFILEDIR)\afs\prerror.h $(INCFILEDIR)\afs\prclient.h=0A=
@@ -172,7 +171,7 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) ptint.cs.c ptint.ss.c ptclient ptint.xdr.c ptint.h=0A=
-	$(DEL) readgroup.exe readpwd.exe db_verify.exe testpt.exe =0A=
+	$(DEL) $(OJT)\readgroup.exe $(OJT)\readpwd.exe $(OJT)\db_verify.exe =
$(OJT)\testpt.exe =0A=
 	$(DEL) pterror.h pterror.c=0A=
 	$(DEL) $(PTS)=0A=
 =0A=
@@ -180,14 +179,17 @@=0A=
 # tests?=0A=
 TEST_LIBS =3D $(PTS_EXELIBS)=0A=
 =0A=
-readgroup.exe: readgroup.obj $(LIBFILE) $(TEST_LIBS)=0A=
+$(OJT)\readgroup.exe: $(OJT)\readgroup.obj $(LIBFILE) $(TEST_LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
-readpwd.exe: readpwd.obj $(LIBFILE) $(TEST_LIBS)=0A=
+$(OJT)\readpwd.exe: $(OJT)\readpwd.obj $(LIBFILE) $(TEST_LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
-testpt.exe: testpt.obj $(LIBFILE) $(TEST_LIBS)=0A=
+$(OJT)\testpt.exe: $(OJT)\testpt.obj $(LIBFILE) $(TEST_LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
-db_verify.exe: db_verify.obj pterror.obj display.obj $(LIBFILE) =
$(TEST_LIBS)=0A=
+$(OJT)\db_verify.exe: $(OJT)\db_verify.obj $(OJT)\pterror.obj =
$(OJT)\display.obj $(LIBFILE) $(TEST_LIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rx/NTMakefile =
upd/src/rx/NTMakefile=0A=
--- bas/src/rx/NTMakefile	2001-04-30 01:03:56.000000000 -0700=0A=
+++ upd/src/rx/NTMakefile	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -20,15 +20,15 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afsrx.lib=0A=
 =0A=
 # Object files by category.=0A=
-XDROBJS =3D xdr.obj xdr_array.obj xdr_arrayn.obj xdr_float.obj =
xdr_mem.obj \=0A=
-	xdr_rec.obj  xdr_refernce.obj xdr_rx.obj xdr_update.obj \=0A=
-	xdr_afsuuid.obj xdr_int64.obj=0A=
-=0A=
-RXOBJS =3D rx_clock_nt.obj rx_event.obj rx_user.obj rx_lwp.obj rx.obj \=0A=
-	rx_null.obj rx_globals.obj rx_getaddr.obj rx_misc.obj rx_packet.obj \=0A=
-	rx_rdwr.obj rx_trace.obj rx_xmit_nt.obj rx_conncache.obj=0A=
+XDROBJS =3D $(OJT)\xdr.obj $(OJT)\xdr_array.obj $(OJT)\xdr_arrayn.obj =
$(OJT)\xdr_float.obj $(OJT)\xdr_mem.obj \=0A=
+	$(OJT)\xdr_rec.obj  $(OJT)\xdr_refernce.obj $(OJT)\xdr_rx.obj =
$(OJT)\xdr_update.obj \=0A=
+	$(OJT)\xdr_afsuuid.obj $(OJT)\xdr_int64.obj $(OJT)\xdr_int32.obj=0A=
+=0A=
+RXOBJS =3D $(OJT)\rx_event.obj $(OJT)\rx_clock_nt.obj =
$(OJT)\rx_user.obj $(OJT)\rx_lwp.obj $(OJT)\rx.obj \=0A=
+	$(OJT)\rx_null.obj $(OJT)\rx_globals.obj $(OJT)\rx_getaddr.obj =
$(OJT)\rx_misc.obj $(OJT)\rx_packet.obj \=0A=
+	$(OJT)\rx_rdwr.obj $(OJT)\rx_trace.obj $(OJT)\rx_xmit_nt.obj =
$(OJT)\rx_conncache.obj=0A=
 =0A=
-MULTIOBJS =3D rx_multi.obj=0A=
+MULTIOBJS =3D $(OJT)\rx_multi.obj=0A=
 =0A=
 LIBOBJS =3D $(RXOBJS) $(MULTIOBJS) $(XDROBJS)=0A=
 =0A=
@@ -48,6 +48,8 @@=0A=
 	$(INCFILEDIR)\rx_lwp.h \=0A=
 	$(INCFILEDIR)\rx_pthread.h \=0A=
 	$(INCFILEDIR)\rx_xmit_nt.h \=0A=
+	$(INCFILEDIR)\xdr_prototypes.h \=0A=
+	$(INCFILEDIR)\rx_prototypes.h \=0A=
 	$(INCFILEDIR)\xdr.h=0A=
 =0A=
 LOCAL_HEADERS =3D \=0A=
@@ -65,11 +67,10 @@=0A=
 # Not yet=0A=
 #rxdumptrace.exe: rx_trace.c=0A=
 =0A=
-=0A=
 # build rxdebug.=0A=
 RXDEBUG =3D $(DESTDIR)\etc\rxdebug.exe=0A=
-RXDOBJS =3D rxdebug.obj \=0A=
-	  rxdebug.res=0A=
+RXDOBJS =3D $(OJT)\rxdebug.obj \=0A=
+	  $(OJT)\rxdebug.res=0A=
 =0A=
 LIBDIR  =3D $(DESTDIR)\lib=0A=
 RXDLIBS =3D $(LIBDIR)\afs\afscmd.lib \=0A=
@@ -78,8 +79,8 @@=0A=
 	  $(LIBDIR)\afs\afsutil.lib \=0A=
           $(LIBDIR)\afs\afsreg.lib=0A=
 =0A=
-rxdebug.res: rxdebug.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\rxdebug.res: rxdebug.rc AFS_component_version_number.h=0A=
+	$(RC) /Fo$*.RES $(*F).rc =0A=
 =0A=
 $(RXDEBUG): $(RXDOBJS) $(RXDLIBS)=0A=
 	$(EXECONLINK)=0A=
@@ -88,3 +89,9 @@=0A=
 install: $(LIBFILE) $(INCFILES) $(RXDEBUG)=0A=
 =0A=
 install9x: $(LIBFILE) $(INCFILES)=0A=
+=0A=
+clean::=0A=
+	$(DEL) $(LIBFILE) $(INCFILES)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rx/rx_clock_nt.c =
upd/src/rx/rx_clock_nt.c=0A=
--- bas/src/rx/rx_clock_nt.c	2001-07-12 13:58:56.000000000 -0700=0A=
+++ upd/src/rx/rx_clock_nt.c	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -36,6 +36,10 @@=0A=
 /* Timing tests show that we can compute times at about 4uS per call. */=0A=
 LARGE_INTEGER rxi_clock0;=0A=
 LARGE_INTEGER rxi_clockFreq;=0A=
+=0A=
+#undef clock_UpdateTime=0A=
+void clock_UpdateTime(void);=0A=
+=0A=
 void clock_Init()=0A=
 {=0A=
     if (!QueryPerformanceFrequency(&rxi_clockFreq)) {=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rx/rx_prototypes.h =
upd/src/rx/rx_prototypes.h=0A=
--- bas/src/rx/rx_prototypes.h	2003-02-08 00:40:04.000000000 -0800=0A=
+++ upd/src/rx/rx_prototypes.h	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -258,8 +258,10 @@=0A=
 #if 0=0A=
 extern int rxk_FreeSocket(register struct socket *asocket);=0A=
 #endif=0A=
+#ifndef AFS_NT40_ENV=0A=
 extern struct osi_socket *rxk_NewSocket(short aport);=0A=
 #endif=0A=
+#endif=0A=
 extern int rxk_ReadPacket(osi_socket so, struct rx_packet *p, int =
*host, int *port);=0A=
 #ifdef UKERNEL=0A=
 extern void rx_ServerProc(void);=0A=
@@ -287,7 +289,9 @@=0A=
 =0A=
 =0A=
 /* rx_knet.c */=0A=
+#ifndef AFS_NT40_ENV=0A=
 extern struct osi_socket *rxk_NewSocket(short aport);=0A=
+#endif=0A=
 extern int rxk_FreeSocket(register osi_socket asocket);=0A=
 #if defined(KERNEL) && !defined(AFS_SGI_ENV)=0A=
 extern int osi_NetSend(osi_socket asocket, struct sockaddr_in *addr,=0A=
@@ -361,7 +365,7 @@=0A=
 	int resid, char *in);=0A=
 extern void rxi_freeCBuf(struct rx_packet *c);=0A=
 extern int rxi_RoundUpPacket(struct rx_packet *p, unsigned int nb);=0A=
-extern int rxi_AllocDataBuf(struct rx_packet *p, int nb, int class);=0A=
+extern int rxi_AllocDataBuf(struct rx_packet *p, int nb, int cla_ss);=0A=
 extern void rxi_MorePackets(int apackets);=0A=
 extern void rxi_MorePacketsNoLock(int apackets);=0A=
 extern void rxi_FreeAllPackets(void);=0A=
@@ -371,8 +375,8 @@=0A=
 extern void rxi_RestoreDataBufs(struct rx_packet *p);=0A=
 extern int rxi_TrimDataBufs(struct rx_packet *p, int first);=0A=
 extern void rxi_FreePacket(struct rx_packet *p);=0A=
-extern struct rx_packet *rxi_AllocPacketNoLock(int class);=0A=
-extern struct rx_packet *rxi_AllocPacket(int class);=0A=
+extern struct rx_packet *rxi_AllocPacketNoLock(int cla_ss);=0A=
+extern struct rx_packet *rxi_AllocPacket(int cla_ss);=0A=
 extern struct rx_packet *rxi_AllocSendPacket(register struct rx_call =
*call, int want);=0A=
 extern int rxi_ReadPacket(int socket, register struct rx_packet *p, =
afs_uint32 *host, u_short *port);=0A=
 extern struct rx_packet *rxi_SplitJumboPacket(register struct rx_packet =
*p, afs_int32 host, =0A=
@@ -464,10 +468,6 @@=0A=
 extern void osi_Free(char *x, afs_int32 size);=0A=
 #endif=0A=
 #endif /* AFS_AIX32_ENV */=0A=
-#if defined(AFS_NT40_ENV) || defined(AFS_DJGPP_ENV)=0A=
-extern int rxi_getaddr(void);=0A=
-extern int rx_getAllAddr (afs_int32 *buffer, int maxSize);=0A=
-#endif=0A=
 extern void rx_GetIFInfo(void);=0A=
 extern void rx_SetNoJumbo(void);=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rx/test/NTMakefile =
upd/src/rx/test/NTMakefile=0A=
--- bas/src/rx/test/NTMakefile	2000-11-04 02:05:42.000000000 -0800=0A=
+++ upd/src/rx/test/NTMakefile	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -18,15 +18,18 @@=0A=
 	$(DESTDIR)\lib\afsrx.lib=0A=
 =0A=
 =0A=
-RXTESTOBJS =3D testclient.obj testserver.obj=0A=
+RXTESTOBJS =3D $(OJT)\testclient.obj $(OJT)\testserver.obj=0A=
 =0A=
 =0A=
-test tests: testclient.exe testserver.exe tableGen.exe generator.exe=0A=
+tests: $(OJT)\testclient.exe $(OJT)\testserver.exe $(OJT)\tableGen.exe =
$(OJT)\generator.exe=0A=
 =0A=
-testclient.exe: testclient.obj $(LIBS)=0A=
+testclient.exe: $(OJT)\testclient.obj $(LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
-testserver.exe: testserver.obj $(LIBS)=0A=
+testserver.exe: $(OJT)\testserver.obj $(LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
 $(RXTESTOBJS): ..\rx_clock.h ..\rx_queue.h ..\rx_event.h ..\rx.h=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxgen/NTMakefile =
upd/src/rxgen/NTMakefile=0A=
--- bas/src/rxgen/NTMakefile	2001-04-30 01:04:14.000000000 -0700=0A=
+++ upd/src/rxgen/NTMakefile	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -18,16 +18,15 @@=0A=
 EXEFILE =3D $(DESTDIR)\bin\rxgen.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	rpc_main.obj \=0A=
-	rpc_hout.obj \=0A=
-	rpc_cout.obj \=0A=
-	rpc_parse.obj \=0A=
-	rpc_scan.obj \=0A=
-	rpc_util.obj \=0A=
-	rpc_svcout.obj \=0A=
-	rpc_clntout.obj=0A=
+	$(OJT)\rpc_main.obj \=0A=
+	$(OJT)\rpc_hout.obj \=0A=
+	$(OJT)\rpc_cout.obj \=0A=
+	$(OJT)\rpc_parse.obj \=0A=
+	$(OJT)\rpc_scan.obj \=0A=
+	$(OJT)\rpc_util.obj \=0A=
+	$(OJT)\rpc_svcout.obj \=0A=
+	$(OJT)\rpc_clntout.obj=0A=
 	=0A=
-=0A=
 $(EXEFILE): $(EXEOBJS) $(EXELIBS)=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP) =0A=
@@ -40,3 +39,6 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) $(EXEFILE)	=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxkad/NTMakefile =
upd/src/rxkad/NTMakefile=0A=
--- bas/src/rxkad/NTMakefile	2001-04-30 01:04:24.000000000 -0700=0A=
+++ upd/src/rxkad/NTMakefile	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -12,18 +12,23 @@=0A=
 INCFILEDIR =3D $(DESTDIR)\include\rx  # header file install directory=0A=
 =0A=
 INCFILES =3D\=0A=
+	$(INCFILEDIR)\rxkad_prototypes.h \=0A=
+	$(INCFILEDIR)\fcrypt.h \=0A=
+	$(INCFILEDIR)\asn1_err.h \=0A=
 	$(INCFILEDIR)\rxkad.h=0A=
 =0A=
 # build afsrxkad.lib=0A=
 LIBOBJS =3D\=0A=
-	rxkad_client.obj \=0A=
-	rxkad_server.obj \=0A=
-	rxkad_common.obj \=0A=
-	ticket.obj \=0A=
-	rxkad_errs.obj \=0A=
-	AFS_component_version_number.obj \=0A=
-	fcrypt.obj \=0A=
-	crypt_conn.obj =0A=
+	$(OJT)\rxkad_client.obj \=0A=
+	$(OJT)\rxkad_server.obj \=0A=
+	$(OJT)\rxkad_common.obj \=0A=
+	$(OJT)\ticket.obj \=0A=
+	$(OJT)\rxkad_errs.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\fcrypt.obj \=0A=
+	$(OJT)\ticket5.obj \=0A=
+	$(OJT)\crc.obj \=0A=
+	$(OJT)\crypt_conn.obj =0A=
 =0A=
 # afsrxkad.lib=0A=
 LIBFILE =3D $(DESTDIR)\lib\afsrxkad.lib=0A=
@@ -33,36 +38,28 @@=0A=
 =0A=
 # generate rxkad.h and rxkad_errs.c from rxkad_errs.et=0A=
 =0A=
-$(INCFILES) rxkad_errs.c : rxkad_errs.et rxkad.p.h=0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
+=0A=
+rxkad.h rxkad_errs.c : rxkad_errs.et rxkad.p.h=0A=
 	$(DEL) rxkad_errs.c =0A=
 	$(COMPILE_ET) rxkad_errs -h rxkad=0A=
-	$(COPY) rxkad.h $(INCFILES)=0A=
 =0A=
 # These sources are kept in a separate directory so that we can use an=0A=
 # ACL to comply with source export restrictions.=0A=
 =0A=
 DOMESTIC =3D crypt_conn.c fcrypt.c fcrypt.h sboxes.h=0A=
 =0A=
-crypt_conn.c : domestic\crypt_conn.c=0A=
-	$(DEL) crypt_conn.c=0A=
-	$(COPY) domestic\crypt_conn.c crypt_conn.c=0A=
-=0A=
-fcrypt.c : domestic\fcrypt.c=0A=
-	$(DEL) fcrypt.c=0A=
-	$(COPY) domestic\fcrypt.c fcrypt.c=0A=
-=0A=
-fcrypt.h : domestic\fcrypt.h=0A=
-	$(DEL) fcrypt.h=0A=
-	$(COPY) domestic\fcrypt.h fcrypt.h=0A=
-=0A=
-sboxes.h : domestic\sboxes.h=0A=
-	$(DEL) sboxes.h=0A=
-	$(COPY) domestic\sboxes.h sboxes.h=0A=
+$(DOMESTIC):domestic\$$@=0A=
+	$(COPY)  $** .=0A=
 =0A=
 install: $(DOMESTIC) $(INCFILES) $(LIBFILE)=0A=
 =0A=
 install9x: install=0A=
 =0A=
 clean::=0A=
-	$(DEL) $(RXKAD_INCFILE) rxkad_errs.c =0A=
+	$(DEL) $(RXKAD_INCFILE) rxkad_errs.c $(INCFILES)=0A=
+	$(DEL) $(LIBFILE)=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxkad/rxkad_client.c =
upd/src/rxkad/rxkad_client.c=0A=
--- bas/src/rxkad/rxkad_client.c	2002-11-12 15:57:40.000000000 -0800=0A=
+++ upd/src/rxkad/rxkad_client.c	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -58,7 +58,7 @@=0A=
 #include <rx/rx.h>=0A=
 #include <rx/xdr.h>=0A=
 #ifdef AFS_PTHREAD_ENV=0A=
-#include "rxkad/rxkad.h"=0A=
+#include "rx/rxkad.h"=0A=
 #endif /* AFS_PTHREAD_ENV */=0A=
 #endif /* KERNEL */=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxkad/rxkad_prototypes.h =
upd/src/rxkad/rxkad_prototypes.h=0A=
--- bas/src/rxkad/rxkad_prototypes.h	2002-12-10 07:32:24.000000000 -0800=0A=
+++ upd/src/rxkad/rxkad_prototypes.h	2003-03-10 16:20:26.000000000 -0800=0A=
@@ -11,7 +11,7 @@=0A=
 #define _RXKAD_PROTOTYPES_H=0A=
 =0A=
 /* till the typedefs are moved elsewhere */=0A=
-#include "rx/fcrypt.h"=0A=
+#include "fcrypt.h"=0A=
 #include "rx/rx.h"=0A=
 =0A=
 /* domestic/crypt_conn.c */=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxkad/test/NTMakefile =
upd/src/rxkad/test/NTMakefile=0A=
--- bas/src/rxkad/test/NTMakefile	2000-11-04 02:05:46.000000000 -0800=0A=
+++ upd/src/rxkad/test/NTMakefile	2003-03-10 16:20:28.000000000 -0800=0A=
@@ -12,16 +12,16 @@=0A=
 =
#########################################################################=
###=0A=
 # Build stress.exe=0A=
 =0A=
-EXEFILE =3D stress.exe=0A=
+EXEFILE =3D $(OJT)\stress.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	stress.xdr.obj \=0A=
-	stress_errs.obj \=0A=
-	stress_c.obj \=0A=
-	stress_s.obj \=0A=
-	stress.cs.obj \=0A=
-	stress.ss.obj \=0A=
-	stress.obj=0A=
+	$(OJT)\stress.xdr.obj \=0A=
+	$(OJT)\stress_errs.obj \=0A=
+	$(OJT)\stress_c.obj \=0A=
+	$(OJT)\stress_s.obj \=0A=
+	$(OJT)\stress.cs.obj \=0A=
+	$(OJT)\stress.ss.obj \=0A=
+	$(OJT)\stress.obj=0A=
 =0A=
 EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afsrxkad.lib \=0A=
@@ -59,3 +59,6 @@=0A=
 clean::=0A=
 	 $(DEL) stress.cs.c stress.ss.c stress.xdr.c stress.h \=0A=
 		stress_errs.c stress_errs.h stress.EXE th_*	=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxkad/test/stress_c.c =
upd/src/rxkad/test/stress_c.c=0A=
--- bas/src/rxkad/test/stress_c.c	2002-10-27 17:18:40.000000000 -0800=0A=
+++ upd/src/rxkad/test/stress_c.c	1969-12-31 16:00:00.000000000 -0800=0A=
@@ -1,1237 +0,0 @@=0A=
-/*=0A=
- * Copyright 2000, International Business Machines Corporation and =
others.=0A=
- * All Rights Reserved.=0A=
- * =0A=
- * This software has been released under the terms of the IBM Public=0A=
- * License.  For details, see the LICENSE file in the top-level source=0A=
- * directory or online at http://www.openafs.org/dl/license10.html=0A=
- */=0A=
-=0A=
-/* RX Authentication Stress test: client side code. */=0A=
-=0A=
-#include <afsconfig.h>=0A=
-#include <afs/param.h>=0A=
-=0A=
-RCSID("$Header: /cvs/openafs/src/rxkad/test/stress_c.c,v 1.8 2002/10/28 =
01:18:40 jhutz Exp $");=0A=
-=0A=
-#include <afs/stds.h>=0A=
-#include <sys/types.h>=0A=
-#include <stdio.h>=0A=
-#ifdef AFS_NT40_ENV=0A=
-#include <winsock2.h>=0A=
-#else=0A=
-#include <netdb.h>=0A=
-#include <netinet/in.h>=0A=
-#endif=0A=
-#include <afs/com_err.h>=0A=
-#include <afs/afsutil.h>=0A=
-#include <rx/rxkad.h>=0A=
-#include <afs/auth.h>=0A=
-#include "stress.h"=0A=
-#include "stress_internal.h"=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-#include <pthread.h>=0A=
-#define FT_ApproxTime() (int)time(0)=0A=
-#endif=0A=
-=0A=
-extern int maxSkew;=0A=
-=0A=
-static char *whoami;=0A=
-=0A=
-static long GetServer(aname)=0A=
-  IN char *aname;=0A=
-{=0A=
-    register struct hostent *th;=0A=
-    long addr;=0A=
-=0A=
-    th =3D gethostbyname(aname);=0A=
-    if (!th) {=0A=
-	fprintf (stderr, "host %s not found\n", aname);=0A=
-	return errno;=0A=
-    }=0A=
-    memcpy(&addr, th->h_addr, sizeof(addr));=0A=
-    return addr;=0A=
-}=0A=
-=0A=
-static long GetToken (versionP, session, ticketLenP, ticket, cell)=0A=
-  OUT long *versionP;=0A=
-  OUT struct ktc_encryptionKey *session;=0A=
-  OUT int *ticketLenP;=0A=
-  OUT char *ticket;=0A=
-{=0A=
-  struct ktc_principal sname;=0A=
-  struct ktc_token ttoken;=0A=
-    long code;=0A=
-=0A=
-  strcpy(sname.cell, cell);=0A=
-  sname.instance[0] =3D 0;=0A=
-  strcpy(sname.name, "afs");=0A=
-  code =3D ktc_GetToken(&sname, &ttoken, sizeof(ttoken), NULL);=0A=
-  if (code) return code;=0A=
-=0A=
-  *versionP =3D ttoken.kvno;=0A=
-  *ticketLenP =3D ttoken.ticketLen;=0A=
-  memcpy(ticket, ttoken.ticket, ttoken.ticketLen);=0A=
-  memcpy(session, &ttoken.sessionKey, sizeof(struct ktc_encryptionKey));=0A=
-  return 0;=0A=
-}=0A=
-=0A=
-static long GetTicket (versionP, session, ticketLenP, ticket, cell)=0A=
-  OUT long *versionP;=0A=
-  OUT struct ktc_encryptionKey *session;=0A=
-  OUT int *ticketLenP;=0A=
-  OUT char *ticket;=0A=
-{=0A=
-    long code;=0A=
-=0A=
-    /* create random session key, using key for seed to good random */=0A=
-    des_init_random_number_generator (&serviceKey);=0A=
-    code =3D des_random_key (session);=0A=
-    if (code) return code;=0A=
-    =0A=
-    /* now create the actual ticket */=0A=
-    *ticketLenP =3D 0;=0A=
-    code =3D tkt_MakeTicket(ticket, ticketLenP, &serviceKey,=0A=
-			  RXKST_CLIENT_NAME, RXKST_CLIENT_INST, cell,=0A=
-			  /*start,end*/0, 0xffffffff, session, /*host*/0,=0A=
-			  RXKST_SERVER_NAME, RXKST_SERVER_NAME);=0A=
-    /* parms were buffer, ticketlen, key to seal ticket with, principal =
name,=0A=
-     * instance and cell, start time, end time, session key to seal in =
ticket,=0A=
-     * inet host, server name and server instance */=0A=
-    if (code) return code;=0A=
-    *versionP =3D serviceKeyVersion;=0A=
-    return 0;=0A=
-}=0A=
-struct client {=0A=
-    struct rx_connection *conn;=0A=
-    u_long sendLen;			/* parameters for call to Copious */=0A=
-    u_long recvLen;=0A=
-    u_long *fastCalls;			/* number of calls to perform */=0A=
-    u_long *slowCalls;=0A=
-    u_long *copiousCalls;=0A=
-};=0A=
-=0A=
-static long Copious (c, buf, buflen)=0A=
-  IN struct client *c;=0A=
-  IN u_char *buf;=0A=
-  IN u_long buflen;=0A=
-{=0A=
-    long code;=0A=
-    struct rx_call *call;=0A=
-    long i;=0A=
-    long inlen =3D c->sendLen;=0A=
-    long outlen =3D c->recvLen;=0A=
-    long d =3D 23;=0A=
-    long mysum;=0A=
-    long outsum;=0A=
-=0A=
-    mysum =3D 0;=0A=
-    for (i=3D0; i<inlen; i++) mysum +=3D (d++ & 0xff);=0A=
-=0A=
-    call =3D rx_NewCall (c->conn);=0A=
-    code =3D StartRXKST_Copious (call, inlen, mysum, outlen);=0A=
-    if (code =3D=3D 0) {=0A=
-	long tlen;=0A=
-	long xfer =3D 0;=0A=
-	long n;=0A=
-	d =3D 23;=0A=
-	while (xfer < inlen) {=0A=
-	    tlen =3D inlen - xfer;=0A=
-	    if (tlen > buflen) tlen =3D buflen;=0A=
-	    for (i=3D0; i<tlen; i++) buf[i] =3D (d++ & 0xff);=0A=
-	    n =3D rx_Write (call, buf, tlen);=0A=
-	    if (n !=3D tlen) {=0A=
-		if (n < 0) code =3D n;=0A=
-		else code =3D RXKST_WRITESHORT;=0A=
-		break;=0A=
-	    }=0A=
-	    xfer +=3D tlen;=0A=
-	}=0A=
-	if (code =3D=3D 0) {=0A=
-	    xfer =3D 0;=0A=
-	    mysum =3D 0;=0A=
-	    while (xfer < outlen) {=0A=
-		tlen =3D outlen - xfer;=0A=
-		if (tlen > buflen) tlen =3D buflen;=0A=
-		n =3D rx_Read (call, buf, tlen);=0A=
-		if (n !=3D tlen) {=0A=
-		    if (n < 0) code =3D n;=0A=
-		    else code =3D RXKST_READSHORT;=0A=
-		    break;=0A=
-		}=0A=
-		for (i=3D0; i<tlen; i++) mysum +=3D buf[i];=0A=
-		xfer +=3D tlen;=0A=
-	    }=0A=
-	}=0A=
-    }=0A=
-    if (code =3D=3D 0)=0A=
-	code =3D EndRXKST_Copious (call, &outsum);=0A=
-    code =3D rx_EndCall(call, code);=0A=
-    if (code) return code;=0A=
-    if (outsum !=3D mysum) {=0A=
-	return RXKST_BADOUTPUTSUM;=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-static long DoClient (index, rock)=0A=
-  IN u_int index;=0A=
-  IN opaque rock;=0A=
-{=0A=
-    struct client *c =3D (struct client *)rock;=0A=
-    long code;=0A=
-    int i;=0A=
-    u_long n, inc_n;=0A=
-=0A=
-    n =3D 95678;=0A=
-    for (i=3D0; i<c->fastCalls[index]; i++) {=0A=
-	code =3D RXKST_Fast (c->conn, n, &inc_n);=0A=
-	if (code) return (code);=0A=
-	if (n+1 !=3D inc_n) return RXKST_INCFAILED;=0A=
-	n++;=0A=
-    }=0A=
-=0A=
-    for (i=3D0; i<c->slowCalls[index]; i++) {=0A=
-	u_long ntime;=0A=
-	u_long now;=0A=
-	code =3D RXKST_Slow (c->conn, 1, &ntime);=0A=
-	if (code) return (code);=0A=
-	now =3D FT_ApproxTime();=0A=
-	if ((ntime < now-maxSkew) || (ntime > now+maxSkew)) return =
RXKST_TIMESKEW;=0A=
-    }=0A=
-=0A=
-    if (c->copiousCalls[index] > 0) {=0A=
-	u_long buflen =3D 10000;=0A=
-	u_char *buf =3D (u_char *) osi_Alloc (buflen);=0A=
-	for (i=3D0; i<c->copiousCalls[index]; i++) {=0A=
-	    code =3D Copious (c, buf, buflen);=0A=
-	    if (code) break;=0A=
-	}=0A=
-	osi_Free (buf, buflen);=0A=
-	if (code) return code;=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-struct worker {=0A=
-    struct worker *next;=0A=
-    long exitCode;			/* is PROCESSRUNNING until exit */=0A=
-    int index;=0A=
-    opaque rock;=0A=
-    long (*proc)();=0A=
-};=0A=
-=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-static pthread_once_t workerOnce =3D PTHREAD_ONCE_INIT;=0A=
-static pthread_mutex_t workerLock;=0A=
-static pthread_cond_t workerCV;=0A=
-void WorkerInit(void)=0A=
-{=0A=
-    pthread_mutex_init(&workerLock, NULL);=0A=
-    pthread_cond_init(&workerCV, NULL);=0A=
-}=0A=
-#endif=0A=
-static struct worker *workers;=0A=
-=0A=
-static long DoWorker (w)=0A=
-  IN struct worker *w;=0A=
-{=0A=
-    long code;=0A=
-    code =3D (*w->proc) (w->index, w->rock);=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_mutex_lock(&workerLock);=0A=
-#endif=0A=
-    w->exitCode =3D code;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_mutex_unlock(&workerLock);=0A=
-#endif=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_cond_signal(&workerCV);=0A=
-#else=0A=
-    LWP_NoYieldSignal(&workers);=0A=
-#endif=0A=
-    return code;=0A=
-}=0A=
-=0A=
-#define MAX_CTHREADS 25=0A=
-=0A=
-static long CallSimultaneously (threads, rock, proc)=0A=
-  IN u_int threads;=0A=
-  IN opaque rock;=0A=
-  IN long (*proc)();=0A=
-{=0A=
-    long code;=0A=
-    int i;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_once(&workerOnce, WorkerInit);=0A=
-#endif=0A=
-=0A=
-    workers =3D 0;=0A=
-    for (i=3D0; i<threads; i++) {=0A=
-	struct worker *w;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-	pthread_t pid;=0A=
-#else=0A=
-	PROCESS pid;=0A=
-#endif=0A=
-	assert (i < MAX_CTHREADS);=0A=
-	w =3D (struct worker *) osi_Alloc (sizeof(struct worker));=0A=
-	memset(w, 0, sizeof(*w));=0A=
-	w->next =3D workers;=0A=
-	workers =3D w;=0A=
-	w->index =3D i;=0A=
-	w->exitCode =3D RXKST_PROCESSRUNNING;=0A=
-	w->rock =3D rock;=0A=
-	w->proc =3D proc;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-	{=0A=
-	    pthread_attr_t tattr;=0A=
-=0A=
-	    code =3D pthread_attr_init(&tattr);=0A=
-	    if (code) {=0A=
-		com_err (whoami, code, "can't pthread_attr_init worker process");=0A=
-		return code;=0A=
-	    }=0A=
-=0A=
-	    code =3D pthread_attr_setdetachstate(&tattr, =
PTHREAD_CREATE_DETACHED);=0A=
-	    if (code) {=0A=
-		com_err (whoami, code, "can't pthread_attr_setdetachstate worker =
process");=0A=
-		return code;=0A=
-	    }=0A=
-=0A=
-	    code =3D pthread_create(&pid, &tattr, DoWorker, (void*)w);=0A=
-	}=0A=
-#else=0A=
-	code =3D LWP_CreateProcess(DoWorker, 16000, LWP_NORMAL_PRIORITY,=0A=
-				 (opaque) w, "Worker Process", &pid);=0A=
-#endif=0A=
-	if (code) {=0A=
-	    com_err (whoami, code, "can't create worker process");=0A=
-	    return code;=0A=
-	}=0A=
-    }=0A=
-    code =3D 0;				/* last non-zero code encountered */=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_mutex_lock(&workerLock);=0A=
-#endif=0A=
-    while (workers) {=0A=
-	struct worker *w, *prevW, *nextW;=0A=
-	prevW =3D 0;=0A=
-	for (w=3Dworkers; w; w=3DnextW) {=0A=
-	    nextW =3D w->next;=0A=
-	    if (w->exitCode !=3D RXKST_PROCESSRUNNING) {=0A=
-		if (w->exitCode) {=0A=
-		    if (code =3D=3D 0) code =3D w->exitCode;=0A=
-		}=0A=
-		if (prevW) prevW->next =3D w->next;=0A=
-		else workers =3D w->next;=0A=
-		osi_Free (w, sizeof(*w));=0A=
-		continue;		/* don't bump prevW */=0A=
-	    }=0A=
-	    prevW =3D w;=0A=
-	}=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-	if (workers) =0A=
-	    pthread_cond_wait(&workerCV, &workerLock);=0A=
-#else=0A=
-	if (workers) LWP_WaitProcess (&workers);=0A=
-#endif=0A=
-    }=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_mutex_unlock(&workerLock);=0A=
-#endif=0A=
-    return code;=0A=
-}=0A=
-=0A=
-static void DivideUpCalls (calls, threads, threadCalls)=0A=
-  IN u_long calls;=0A=
-  IN u_int threads;=0A=
-  IN u_long threadCalls[];=0A=
-{=0A=
-    int i;=0A=
-    for (i=3D0; i<threads; i++) {=0A=
-	threadCalls[i] =3D calls / (threads-i);=0A=
-	calls -=3D threadCalls[i];=0A=
-    }=0A=
-}=0A=
-=0A=
-static double ftime ()=0A=
-{=0A=
-    struct timeval tv;=0A=
-    gettimeofday(&tv, 0);=0A=
-    return (double)tv.tv_sec + (double)tv.tv_usec / 1000000.0;=0A=
-}=0A=
-=0A=
-static long RunLoadTest (parms, conn)=0A=
-  IN struct clientParms *parms;=0A=
-  IN struct rx_connection *conn;=0A=
-{=0A=
-    long code;=0A=
-    struct client c;=0A=
-    u_long fastCalls[MAX_CTHREADS];=0A=
-    u_long slowCalls[MAX_CTHREADS];=0A=
-    u_long copiousCalls[MAX_CTHREADS];=0A=
-    double start, interval;=0A=
-=0A=
-    DivideUpCalls (parms->fastCalls, parms->threads, fastCalls);=0A=
-    DivideUpCalls (parms->slowCalls, parms->threads, slowCalls);=0A=
-    DivideUpCalls (parms->copiousCalls, parms->threads, copiousCalls);=0A=
-=0A=
-    memset(&c, 0, sizeof(c));=0A=
-    c.conn =3D conn;=0A=
-    c.sendLen =3D parms->sendLen;=0A=
-    c.recvLen =3D parms->recvLen;=0A=
-    c.fastCalls =3D fastCalls;=0A=
-    c.slowCalls =3D slowCalls;=0A=
-    c.copiousCalls =3D copiousCalls;=0A=
-=0A=
-    start =3D ftime();=0A=
-    code =3D CallSimultaneously (parms->threads, &c, DoClient);=0A=
-    if (code) {=0A=
-	com_err (whoami, code, "in DoClient");=0A=
-	return code;=0A=
-    }=0A=
-    interval =3D ftime() - start;=0A=
-=0A=
-    if (parms->printTiming) {=0A=
-	u_long totalCalls =3D=0A=
-	    parms->fastCalls + parms->slowCalls + parms->copiousCalls;=0A=
-	int t =3D (interval / totalCalls) * 1000.0 + 0.5;=0A=
-	if (totalCalls > 0) {=0A=
-	    printf ("For %d calls: %d msec/call\n", totalCalls, t);=0A=
-	}=0A=
-	if (parms->copiousCalls > 0) {=0A=
-	    long n =3D parms->sendLen + parms->recvLen;=0A=
-	    double kbps;=0A=
-	    int b;=0A=
-	    kbps =3D (double)(parms->copiousCalls * n) / (interval * 1000.0);=0A=
-	    b =3D kbps + 0.5;=0A=
-#if 0=0A=
-I just cannot get printing of floats to work on the pmax!!!!=0A=
-	    printf ("%g %d %d %d\n", (float)kbps, b);=0A=
-	    printf ("%g %d %d %d\n", kbps, b);=0A=
-	    fprintf (stdout, "%g %d %d\n", kbps, b);=0A=
-	    {=0A=
-		char buf[100];=0A=
-		buf[sizeof(buf)-1] =3D 0;=0A=
-		sprintf (buf, "%g %d %d\n", kbps, b);=0A=
-		assert (buf[sizeof(buf)-1] =3D=3D 0);=0A=
-		printf ("%s", buf);=0A=
-	    }=0A=
-#endif=0A=
-	    printf ("For %d copious calls, %d send + %d recv =3D %d bytes =
each: %d kbytes/sec\n",=0A=
-		    parms->copiousCalls, parms->sendLen, parms->recvLen,=0A=
-		    n, b);=0A=
-#if 0=0A=
-	    printf ("%g\n", kbps);=0A=
-#endif=0A=
-	}=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-static long RepeatLoadTest (parms, conn)=0A=
-  IN struct clientParms *parms;=0A=
-  IN struct rx_connection *conn;=0A=
-{=0A=
-    long code;=0A=
-    long count;=0A=
-=0A=
-    if (parms->repeatInterval =3D=3D 0) {=0A=
-	if (parms->repeatCount =3D=3D 0) parms->repeatCount =3D 1;=0A=
-    } else {=0A=
-	if (parms->repeatCount =3D=3D 0) parms->repeatCount =3D 0x7fffffff;=0A=
-    }=0A=
-=0A=
-    if (parms->printTiming) {=0A=
-	int types;=0A=
-	types =3D (parms->fastCalls ? 1 : 0) +=0A=
-	    (parms->slowCalls ? 1 : 0) + (parms->copiousCalls ? 1 : 0);=0A=
-	if (types > 1)=0A=
-	    fprintf (stderr, "Combined timings of several types of calls may =
not be meaningful.\n");=0A=
-	if (types =3D=3D 0)=0A=
-	    /* do timings of copious calls by default */=0A=
-	    parms->copiousCalls =3D 10;=0A=
-    }=0A=
-=0A=
-    for (count=3D0; count<parms->repeatCount; count++) {=0A=
-	code =3D RunLoadTest (parms, conn);=0A=
-	if (code) return code;=0A=
-	if (parms->repeatInterval) {=0A=
-	    u_long i =3D parms->repeatInterval;=0A=
-	    u_long now =3D time(0);=0A=
-	    u_long next =3D (now + i-1) / i * i; /* round up to next interval =
*/=0A=
-	    while (now < next) {=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-		sleep(next-now);=0A=
-#else=0A=
-		IOMGR_Sleep (next-now);=0A=
-#endif=0A=
-		now =3D time(0);=0A=
-	    }=0A=
-	}=0A=
-    }=0A=
-    return code;=0A=
-}=0A=
-=0A=
-/* For backward compatibility, don't try to use the CallNumber stuff =
unless=0A=
- * we're compiling against the new Rx. */=0A=
-=0A=
-#ifdef rx_GetPacketCksum=0A=
-=0A=
-struct multiChannel {=0A=
-    struct rx_connection *conn;=0A=
-    int done;=0A=
-    long *codes;=0A=
-    int changes[RX_MAXCALLS];=0A=
-    long callNumbers[RX_MAXCALLS];=0A=
-};=0A=
-#define BIG_PRIME 1257056893		/* 0x4AED2A7d */=0A=
-static u_long sequence =3D 0;=0A=
-=0A=
-static long FastCall (conn)=0A=
-  IN struct rx_connection *conn;=0A=
-{=0A=
-    long code;=0A=
-    u_long n =3D (sequence =3D sequence * BIG_PRIME + BIG_PRIME);=0A=
-    u_long inc_n;=0A=
-=0A=
-    code =3D RXKST_Fast (conn, n, &inc_n);=0A=
-    if (code) return code;=0A=
-    if (inc_n !=3D n+1) return RXKST_INCFAILED;=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-static long UniChannelCall (index, rock)=0A=
-  IN u_int index;=0A=
-  IN opaque rock;=0A=
-{=0A=
-    struct multiChannel *mc =3D (struct multiChannel *)rock;=0A=
-    long code;=0A=
-    long callNumbers[RX_MAXCALLS];=0A=
-    int unchanged;=0A=
-=0A=
-    code =3D 0;=0A=
-    unchanged =3D 1;=0A=
-    while (!mc->done && unchanged) {=0A=
-	int i;=0A=
-	code =3D FastCall (mc->conn);=0A=
-	if (code) break;=0A=
-	code =3D rxi_GetCallNumberVector (mc->conn, callNumbers);=0A=
-	if (code) break;=0A=
-	unchanged=3D0;=0A=
-	for (i=3D0; i<RX_MAXCALLS; i++) {=0A=
-	    if (callNumbers[i] > mc->callNumbers[i]) {=0A=
-		mc->callNumbers[i] =3D callNumbers[i];=0A=
-		mc->changes[i]--;	/* may go negative */=0A=
-	    }=0A=
-	    if (mc->changes[i] > 0) unchanged++;=0A=
-	}=0A=
-    }=0A=
-    mc->codes[index] =3D code;=0A=
-    mc->done++;=0A=
-    return code;=0A=
-}=0A=
-  =0A=
-static long MakeMultiChannelCall (conn, each, expectedCode, codes)=0A=
-  IN struct rx_connection *conn;=0A=
-  IN int each;				/* calls to make on each channel */=0A=
-  IN long expectedCode;=0A=
-  OUT long codes[];=0A=
-{=0A=
-    long code;=0A=
-    int i;=0A=
-    struct multiChannel mc;=0A=
-=0A=
-    memset(&mc, 0, sizeof(mc));=0A=
-    mc.conn =3D conn;=0A=
-    for (i=3D0; i<RX_MAXCALLS; i++) {=0A=
-	codes[i] =3D RXKST_PROCESSRUNNING;=0A=
-	mc.changes[i] =3D each;=0A=
-    }=0A=
-    mc.codes =3D codes;=0A=
-    code =3D rxi_GetCallNumberVector (conn, mc.callNumbers);=0A=
-    if (code) return code;=0A=
-    mc.done =3D 0;=0A=
-    code =3D CallSimultaneously (RX_MAXCALLS, &mc, UniChannelCall);=0A=
-    if (((expectedCode =3D=3D RXKST_INCFAILED) || (expectedCode =3D=3D =
-1)) &&=0A=
-	((code =3D=3D expectedCode) || (code =3D=3D -3))) ; /* strange cases */=0A=
-    else if (code !=3D expectedCode) {=0A=
-	com_err (whoami, code,=0A=
-		 "problem making multichannel call, expected '%s'",=0A=
-		 ((expectedCode =3D=3D 0)=0A=
-		  ? "no error" : (char *)error_message (expectedCode)));=0A=
-    }=0A=
-    return code;=0A=
-}=0A=
-=0A=
-static long CheckCallFailure (conn, codes, code, msg)=0A=
-  IN struct rx_connection *conn;=0A=
-  IN long codes[];=0A=
-  IN long code;=0A=
-  IN char *msg;=0A=
-{=0A=
-    if (code =3D=3D 0) {=0A=
-	fprintf (stderr, "Failed to detect %s\n", msg);=0A=
-	return RXKST_NODUPLICATECALL;=0A=
-    } else {=0A=
-	int i;=0A=
-	int okay =3D 1;=0A=
-	int someZero =3D 0;=0A=
-	for (i=3D0; i<RX_MAXCALLS; i++)=0A=
-	    if (!((codes[i] =3D=3D 0) || (codes[i] =3D=3D code) ||=0A=
-		  (codes[i] =3D=3D -3))) okay =3D 0;=0A=
-	if (conn->error) okay =3D 0;=0A=
-	if (!okay) {=0A=
-	    fprintf (stderr, "%s produced these errors:\n", msg);=0A=
-	    for (i=3D0; i<RX_MAXCALLS; i++) {=0A=
-		assert (codes[i] !=3D RXKST_PROCESSRUNNING);=0A=
-		if (codes[i] =3D=3D 0) {=0A=
-		    someZero++;=0A=
-		    fprintf (stderr, "  %d no error\n", i);=0A=
-		} else fprintf (stderr,=0A=
-				"  %d %s\n", i, error_message(codes[i]));=0A=
-	    }=0A=
-	    if (someZero) {=0A=
-		char buf[100];=0A=
-		sprintf (buf, "connection dead following %s", msg);=0A=
-		code =3D FastCall (conn);=0A=
-		if (code) com_err (whoami, code, buf);=0A=
-	    }=0A=
-	}=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-#endif rx_GetPacketCksum=0A=
-=0A=
-static long RunCallTest (parms, host, sc, si)=0A=
-  IN struct clientParms *parms;=0A=
-  IN long host;=0A=
-  IN struct rx_securityClass *sc;=0A=
-  IN long si;=0A=
-{=0A=
-    long code;=0A=
-=0A=
-#ifndef rx_GetPacketCksum=0A=
-=0A=
-    code =3D RXKST_BADARGS;=0A=
-    com_err (whoami, code, "Older versions of Rx don't support Get/Set =
callNumber Vector procedures: can't run this CallTest");=0A=
-    return code;=0A=
-=0A=
-#else=0A=
-=0A=
-    int i, ch;=0A=
-    struct rx_connection *conn;=0A=
-    long firstCall;=0A=
-    long callNumbers[RX_MAXCALLS];=0A=
-    long codes[RX_MAXCALLS];=0A=
-    long retCode =3D 0;			/* ret. if nothing fatal goes wrong */=0A=
-=0A=
-    conn =3D rx_NewConnection(host, htons(RXKST_SERVICEPORT), =
RXKST_SERVICEID,=0A=
-			    sc, si);=0A=
-    if (!conn) return RXKST_NEWCONNFAILED;=0A=
-=0A=
-    /* First check the basic behaviour of call number handling */=0A=
-=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    for (i=3D0; i<RX_MAXCALLS; i++) {=0A=
-	if (callNumbers[i] !=3D 0) {=0A=
-	    fprintf (stderr, "Connection's initial call numbers not zero. =
call[%d] =3D %d\n", i, callNumbers[i]);=0A=
-	    return RXKST_BADCALLNUMBERS;=0A=
-	}=0A=
-    }=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) return code;=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    firstCall =3D callNumbers[0];=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) return code;=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    if ((callNumbers[0] !=3D firstCall+1) &&=0A=
-	((firstCall =3D=3D 1) || (firstCall =3D=3D 2))) {=0A=
-	/* The call number after the first call should be one or, more likely,=0A=
-         * two (if the call is still DALLYing).  Between first and =
second call,=0A=
-         * the call number should have incremented by one. */=0A=
-	fprintf (stderr, "Connection's first channel call number not one. =
call[%d] =3D %d\n", 0, callNumbers[0]);=0A=
-	return RXKST_BADCALLNUMBERS;=0A=
-    }=0A=
-    for (i=3D1; i<RX_MAXCALLS; i++) {=0A=
-	if (callNumbers[i] !=3D 0) {=0A=
-	    fprintf (stderr, "Connection's other channel call numbers not =
zero. call[%d] =3D %d\n", i, callNumbers[i]);=0A=
-	    return RXKST_BADCALLNUMBERS;=0A=
-	}=0A=
-    }=0A=
-    code =3D MakeMultiChannelCall (conn, 1, 0, codes);=0A=
-    if (code) return code;=0A=
-=0A=
-    /* Now try to resend a call that's already been executed by finding =
a=0A=
-     * non-zero call number on a channel other than zero and =
decrementing it by=0A=
-     * one.  This should appear to the server as a retransmitted call.  =
Since=0A=
-     * this is behaving as a broken client different strange behaviors =
may be=0A=
-     * exhibited by different servers.  If the response packet to the =
original=0A=
-     * call is discarded by the time the "retransmitted" call arrives =
(perhaps=0A=
-     * due to high server or client load) there is no way for the =
server to=0A=
-     * respond at all.  Further, it seems, that under some cases the =
connection=0A=
-     * will be kept alive indefinitely even though the server has =
discarded the=0A=
-     * "retransmitted" call and is making no effort to reexecute the =
call.  To=0A=
-     * handle these, accept either a timeout (-1) or and INCFAILED =
error here,=0A=
-     * also set the connenction HardDeadTime to punt after a reasonable=0A=
-     * interval. */=0A=
-=0A=
-    /* short dead time since may we expect some trouble */=0A=
-    rx_SetConnHardDeadTime (conn, 30);=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    for (ch=3D1; ch<RX_MAXCALLS; ch++)=0A=
-	if (callNumbers[ch] > 1) {=0A=
-	    callNumbers[ch]--;=0A=
-	    code =3D rxi_SetCallNumberVector (conn, callNumbers);=0A=
-	    if (code) return code;=0A=
-	    break;=0A=
-	}=0A=
-    if (ch>=3D RX_MAXCALLS)		/* didn't find any? all DALLYing? */=0A=
-	return RXKST_BADCALLNUMBERS;=0A=
-    code =3D MakeMultiChannelCall (conn, 1, RXKST_INCFAILED, codes);=0A=
-    code =3D CheckCallFailure (conn, codes, code, "retransmitted call");=0A=
-    if (code && !retCode) retCode =3D code;=0A=
-=0A=
-    /* Get a fresh connection, becasue if the above failed as it should =
the=0A=
-     * connection is dead. */=0A=
-    rx_DestroyConnection (conn);=0A=
-    conn =3D rx_NewConnection(host, htons(RXKST_SERVICEPORT), =
RXKST_SERVICEID,=0A=
-			    sc, si);=0A=
-    if (!conn) return RXKST_NEWCONNFAILED;=0A=
-=0A=
-    /* Similarly, but decrement call number by two which should be =
completely=0A=
-     * unmistakeable as a broken or malicious client. */=0A=
-=0A=
-    /* short dead time since may we expect some trouble */=0A=
-    rx_SetConnHardDeadTime (conn, 30);=0A=
-    code =3D MakeMultiChannelCall (conn, 2, 0, codes);=0A=
-    if (code) return code;=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    for (ch=3D1; ch<RX_MAXCALLS; ch++)=0A=
-	if (callNumbers[ch] > 2) {=0A=
-	    callNumbers[ch] -=3D 2;=0A=
-	    code =3D rxi_SetCallNumberVector (conn, callNumbers);=0A=
-	    break;=0A=
-	}=0A=
-    if (ch>=3D RX_MAXCALLS)		/* didn't find any? all DALLYing? */=0A=
-	return RXKST_BADCALLNUMBERS;=0A=
-    code =3D MakeMultiChannelCall (conn, 1, -1, codes);=0A=
-    code =3D CheckCallFailure (conn, codes, code, "duplicate call");=0A=
-    if (code && !retCode) retCode =3D code;=0A=
-=0A=
-    rx_DestroyConnection (conn);=0A=
-    conn =3D rx_NewConnection(host, htons(RXKST_SERVICEPORT), =
RXKST_SERVICEID,=0A=
-			    sc, si);=0A=
-    if (!conn) return RXKST_NEWCONNFAILED;=0A=
-=0A=
-    /* Next, without waiting for the server to discard its state, we =
will check=0A=
-     * to see if the Challenge/Response protocol correctly informs the =
server=0A=
-     * of the client's callNumber state.  We do this by artificially =
increasing=0A=
-     * the call numbers of a new connection for all channels beyond =
zero,=0A=
-     * making a call on channel zero, then resetting the call number =
for the=0A=
-     * unused channels back to zero, then making calls on all channels. =
*/=0A=
-=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    for (i=3D0; i<RX_MAXCALLS; i++) {=0A=
-	if (callNumbers[i] !=3D 0) return RXKST_BADCALLNUMBERS;=0A=
-	callNumbers[i] =3D 51;		/* an arbitrary value... */=0A=
-    }=0A=
-    code =3D rxi_SetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    code =3D FastCall (conn);		/* use channel 0 */=0A=
-    if (code) return code;=0A=
-    code =3D rxi_GetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    if (callNumbers[0] !=3D 52) return RXKST_BADCALLNUMBERS;=0A=
-    for (i=3D1; i<RX_MAXCALLS; i++) {=0A=
-	if (callNumbers[i] !=3D 51) return RXKST_BADCALLNUMBERS;=0A=
-	callNumbers[i] =3D 37;		/* back up a ways */=0A=
-    }=0A=
-    code =3D rxi_SetCallNumberVector (conn, callNumbers);=0A=
-    if (code) return code;=0A=
-    /* now try calls on all channels... */=0A=
-    code =3D MakeMultiChannelCall (conn, 1, -1, codes);=0A=
-    code =3D CheckCallFailure (conn, codes, code,=0A=
-			     "alternate channel call replay");=0A=
-    if (code && !retCode) retCode =3D code;=0A=
-=0A=
-    rx_DestroyConnection (conn);=0A=
-    return retCode;=0A=
-=0A=
-#endif rx_GetPacketCksum=0A=
-=0A=
-}=0A=
-=0A=
-#ifdef rx_GetPacketCksum=0A=
-=0A=
-static struct {=0A=
-    int op;=0A=
-    u_long epoch;			/* connection to attack */=0A=
-    u_long cid;=0A=
-    int client;				/* TRUE =3D> client side */=0A=
-    u_long newEpoch;			/* conn to direct challenges to */=0A=
-    u_long newCid;=0A=
-    u_long counts[RX_N_PACKET_TYPES];=0A=
-} incomingOps;=0A=
-#define IO_NOOP			0=0A=
-#define IO_COUNT		1=0A=
-#define IO_REDIRECTCHALLENGE	2=0A=
-=0A=
-static int HandleIncoming (p, addr)=0A=
-  INOUT struct rx_packet *p;=0A=
-  INOUT struct sockaddr_in *addr;=0A=
-{=0A=
-    int client;				/* packet sent by client */=0A=
-    u_char type;			/* packet type */=0A=
-=0A=
-    if (incomingOps.op =3D=3D IO_NOOP) return 0;=0A=
-=0A=
-    client =3D ((p->header.flags&RX_CLIENT_INITIATED) !=3D =
RX_CLIENT_INITIATED);=0A=
-    if ((p->header.epoch !=3D incomingOps.epoch) ||=0A=
-	((p->header.cid ^ incomingOps.cid) & RX_CIDMASK) ||=0A=
-	(client !=3D incomingOps.client)) return 0;=0A=
-    type =3D p->header.type;=0A=
-    if ((type <=3D 0) || (type >=3D RX_N_PACKET_TYPES)) type =3D 0;=0A=
-    incomingOps.counts[type]++;=0A=
-=0A=
-    switch (incomingOps.op) {=0A=
-      case IO_NOOP:=0A=
-      case IO_COUNT:=0A=
-	break;=0A=
-=0A=
-      case IO_REDIRECTCHALLENGE:=0A=
-	if (p->header.type !=3D RX_PACKET_TYPE_CHALLENGE) break;=0A=
-	p->header.epoch =3D incomingOps.newEpoch;=0A=
-	p->header.cid =3D incomingOps.newCid;=0A=
-	/* Now set up to watch for the corresponding challenge. */=0A=
-	incomingOps.epoch =3D incomingOps.newEpoch;=0A=
-	incomingOps.cid =3D incomingOps.newCid;=0A=
-	incomingOps.op =3D IO_COUNT;=0A=
-	break;=0A=
-=0A=
-      default:=0A=
-	fprintf (stderr, "Unknown incoming op %d\n", incomingOps.op);=0A=
-	break;=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-static struct {=0A=
-    int op;=0A=
-    u_long epoch;			/* connection to attack */=0A=
-    u_long cid;=0A=
-    int client;				/* TRUE =3D> client side */=0A=
-    u_long counts[RX_N_PACKET_TYPES];=0A=
-} outgoingOps;=0A=
-#define OO_NOOP		0=0A=
-#define OO_COUNT	1=0A=
-#define OO_ZEROCKSUM	2=0A=
-#define OO_MUNGCKSUM	3=0A=
-=0A=
-static int HandleOutgoing (p, addr)=0A=
-  INOUT struct rx_packet *p;=0A=
-  INOUT struct sockaddr_in *addr;=0A=
-{=0A=
-    int client;				/* packet sent by client */=0A=
-    u_char type;			/* packet type */=0A=
-=0A=
-    if (outgoingOps.op =3D=3D OO_NOOP) return 0;=0A=
-=0A=
-    client =3D ((p->header.flags&RX_CLIENT_INITIATED) =3D=3D =
RX_CLIENT_INITIATED);=0A=
-    if ((p->header.epoch !=3D outgoingOps.epoch) ||=0A=
-	((p->header.cid ^ outgoingOps.cid) & RX_CIDMASK) ||=0A=
-	(client !=3D outgoingOps.client)) return 0;=0A=
-    type =3D p->header.type;=0A=
-    if ((type <=3D 0) || (type >=3D RX_N_PACKET_TYPES)) type =3D 0;=0A=
-    outgoingOps.counts[type]++;=0A=
-=0A=
-    switch (outgoingOps.op) {=0A=
-      case OO_NOOP:=0A=
-      case OO_COUNT:=0A=
-	/* counting always happens above if not noop */=0A=
-	break;=0A=
-=0A=
-      case OO_ZEROCKSUM:=0A=
-	if (p->header.type !=3D RX_PACKET_TYPE_DATA) break;=0A=
-	if (rx_GetPacketCksum (p) =3D=3D 0) {=0A=
-	    /* probably, a retransmitted packet */=0A=
-	    fprintf (stderr, "Packet cksum already zero\n");=0A=
-	    break;=0A=
-	}=0A=
-	rx_SetPacketCksum (p, 0);=0A=
-	break;=0A=
-=0A=
-      case OO_MUNGCKSUM: {=0A=
-	  u_short cksum;=0A=
-	  if (p->header.type !=3D RX_PACKET_TYPE_DATA) break;=0A=
-	  cksum =3D rx_GetPacketCksum (p);=0A=
-	  if (cksum =3D=3D 0) {=0A=
-	      fprintf (stderr, "Packet cksum already zero\n");=0A=
-	      break;=0A=
-	  }=0A=
-	  rx_SetPacketCksum (p, cksum ^ 8);=0A=
-	  break;=0A=
-      }=0A=
-      default:=0A=
-	fprintf (stderr, "Unknown outgoing op %d\n", outgoingOps.op);=0A=
-	break;=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-static pthread_once_t slowCallOnce =3D PTHREAD_ONCE_INIT;=0A=
-static pthread_mutex_t slowCallLock;=0A=
-static pthread_cond_t slowCallCV;=0A=
-void SlowCallInit(void)=0A=
-{=0A=
-    pthread_mutex_init(&slowCallLock, NULL);=0A=
-    pthread_cond_init(&slowCallCV, NULL);=0A=
-}=0A=
-#endif=0A=
-static long slowCallCode;=0A=
-static long SlowCall (conn)=0A=
-  IN opaque conn;=0A=
-{=0A=
-    u_long ntime;=0A=
-    u_long now;=0A=
-    long temp_rc;=0A=
-=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_mutex_lock(&slowCallLock);=0A=
-#endif=0A=
-    slowCallCode =3D RXKST_PROCESSRUNNING;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_cond_signal(&slowCallCV);=0A=
-#else=0A=
-    LWP_NoYieldSignal (&slowCallCode);=0A=
-#endif=0A=
-    slowCallCode =3D RXKST_Slow (conn, 1, &ntime);=0A=
-    if (!slowCallCode) {=0A=
-	now =3D FT_ApproxTime();=0A=
-	if ((ntime < now-maxSkew) || (ntime > now+maxSkew))=0A=
-	    slowCallCode =3D RXKST_TIMESKEW;=0A=
-    }=0A=
-    temp_rc =3D slowCallCode;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_cond_signal(&slowCallCV);=0A=
-    pthread_mutex_unlock(&slowCallLock);=0A=
-#else=0A=
-    LWP_NoYieldSignal (&slowCallCode);=0A=
-#endif=0A=
-    return temp_rc;=0A=
-}=0A=
-=0A=
-#endif rx_GetPacketCksum=0A=
-=0A=
-static long RunHijackTest (parms, host, sc, si)=0A=
-  IN struct clientParms *parms;=0A=
-  IN long host;=0A=
-  IN struct rx_securityClass *sc;=0A=
-  IN long si;=0A=
-{=0A=
-=0A=
-#ifndef rx_GetPacketCksum=0A=
-=0A=
-    code =3D RXKST_BADARGS;=0A=
-    com_err (whoami, code, "Older versions of Rx don't export packet =
tracing routines: can't run this HijackTest");=0A=
-    return code;=0A=
-=0A=
-#else=0A=
-=0A=
-    extern int (*rx_justReceived)();=0A=
-    extern int (*rx_almostSent)();=0A=
-=0A=
-    long code;=0A=
-    struct rx_connection *conn =3D 0;=0A=
-    struct rx_connection *otherConn =3D 0;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_t pid;=0A=
-#else=0A=
-    PROCESS pid;=0A=
-#endif=0A=
-    int nResp;				/* otherConn responses seen */=0A=
-    long tmp_rc;=0A=
-=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_once(&slowCallOnce, SlowCallInit);=0A=
-#endif=0A=
-    rx_justReceived =3D HandleIncoming;=0A=
-    rx_almostSent =3D HandleOutgoing;=0A=
-=0A=
-    incomingOps.op =3D IO_NOOP;=0A=
-    outgoingOps.op =3D OO_NOOP;=0A=
-=0A=
-#define HIJACK_CONN(conn) \=0A=
-    {   if (conn) rx_DestroyConnection (conn); \=0A=
-	(conn) =3D rx_NewConnection(host, htons(RXKST_SERVICEPORT), \=0A=
-				RXKST_SERVICEID, sc, si); \=0A=
-	if (!(conn)) return RXKST_NEWCONNFAILED; \=0A=
-	outgoingOps.client =3D 1; \=0A=
-	outgoingOps.epoch =3D (conn)->epoch; \=0A=
-	outgoingOps.cid =3D (conn)->cid; }=0A=
-=0A=
-    HIJACK_CONN(conn);=0A=
-=0A=
-    /* First try switching from no packet cksum to sending packet cksum =
between=0A=
-     * calls, and see if server complains. */=0A=
-=0A=
-    outgoingOps.op =3D OO_ZEROCKSUM;=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) {=0A=
-	com_err (whoami, code, "doing FastCall with ZEROCKSUM");=0A=
-	return code;=0A=
-    }    =0A=
-    /* The server thinks we're an old style client.  Now start sending =
cksums.=0A=
-     * Server shouldn't care. */=0A=
-    outgoingOps.op =3D OO_NOOP;=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) {=0A=
-	com_err (whoami, code, "doing FastCall with non-ZEROCKSUM");=0A=
-	return code;=0A=
-    }    =0A=
-    /* The server now thinks we're a new style client, we can't go back =
now. */=0A=
-    outgoingOps.op =3D OO_ZEROCKSUM;=0A=
-    code =3D FastCall (conn);=0A=
-    if (code =3D=3D 0) code =3D RXKST_NOBADCKSUM;=0A=
-    if (code !=3D RXKADSEALEDINCON) {=0A=
-	com_err (whoami, code, "doing FastCall with ZEROCKSUM");=0A=
-	return code;=0A=
-    } else if (!conn->error) {=0A=
-	code =3D RXKST_NOCONNERROR;=0A=
-	com_err (whoami, code, "doing FastCall with ZEROCKSUM");=0A=
-	return code;	=0A=
-    } else code =3D 0;=0A=
-=0A=
-    HIJACK_CONN(conn);=0A=
-=0A=
-    /* Now try modifying packet cksum to see if server complains. */=0A=
-=0A=
-    outgoingOps.op =3D OO_MUNGCKSUM;=0A=
-    code =3D FastCall (conn);=0A=
-    if (code =3D=3D 0) code =3D RXKST_NOBADCKSUM;=0A=
-    if (code !=3D RXKADSEALEDINCON) {=0A=
-	com_err (whoami, code, "doing FastCall with ZEROCKSUM");=0A=
-	return code;=0A=
-    } else if (!conn->error) {=0A=
-	code =3D RXKST_NOCONNERROR;=0A=
-	com_err (whoami, code, "doing FastCall with ZEROCKSUM");=0A=
-	return code;	=0A=
-    } else code =3D 0;=0A=
-=0A=
-    /* Now make two connection and direct the first challenge on one =
connection=0A=
-     * to the other connection to see if it generates a response.  The=0A=
-     * retransmitted challenge should allow the call on the first =
connection to=0A=
-     * complete correctly.  Part one is to attack a new connection, =
then attack=0A=
-     * it after it has made a call.  Part three, just for comparison, =
attacks a=0A=
-     * otherConn while it is making a slow call (and thus has an active =
call).=0A=
-     * Against this attack we have no defense so we expect a challenge =
in this=0A=
-     * case, which the server will discard. */=0A=
-=0A=
-#define RedirectChallenge(conn,otherConn)	\=0A=
-    (incomingOps.epoch =3D (conn)->epoch,		\=0A=
-     incomingOps.cid =3D (conn)->cid,		\=0A=
-     incomingOps.client =3D 1,			\=0A=
-     incomingOps.newEpoch =3D (otherConn)->epoch,	\=0A=
-     incomingOps.newCid =3D (otherConn)->cid,	\=0A=
-     incomingOps.op =3D IO_REDIRECTCHALLENGE,	\=0A=
-     outgoingOps.epoch =3D (otherConn)->epoch,	\=0A=
-     outgoingOps.cid =3D (otherConn)->cid,	\=0A=
-     outgoingOps.client =3D 1,			\=0A=
-     outgoingOps.op =3D OO_COUNT,			\=0A=
-     outgoingOps.counts[RX_PACKET_TYPE_RESPONSE] =3D 0)=0A=
-=0A=
-    HIJACK_CONN(conn);=0A=
-    HIJACK_CONN(otherConn)=0A=
-    RedirectChallenge (conn, otherConn);=0A=
-=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) return code;=0A=
-    assert (incomingOps.op =3D=3D IO_COUNT); /* redirect code was =
triggered */=0A=
-    if (outgoingOps.counts[RX_PACKET_TYPE_RESPONSE] > 0) {=0A=
-  oracle:=0A=
-	code =3D RXKST_CHALLENGEORACLE;=0A=
-	com_err (whoami, code, "misdirecting challenge");=0A=
-	return code;=0A=
-    }=0A=
-    code =3D FastCall (otherConn);	/* generate some activity here */=0A=
-    if (code) return code;=0A=
-    nResp =3D outgoingOps.counts[RX_PACKET_TYPE_RESPONSE];=0A=
-    assert (nResp >=3D 1);=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) return code;=0A=
-    if (outgoingOps.counts[RX_PACKET_TYPE_RESPONSE] > nResp) goto =
oracle;=0A=
-=0A=
-    HIJACK_CONN(conn);=0A=
-    RedirectChallenge (conn, otherConn);=0A=
-    /* otherConn was authenticated during part one */=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) return code;=0A=
-    assert (incomingOps.op =3D=3D IO_COUNT); /* redirect code was =
triggered */=0A=
-    if (outgoingOps.counts[RX_PACKET_TYPE_RESPONSE] !=3D 0) goto oracle;=0A=
-=0A=
-    HIJACK_CONN(conn);=0A=
-    RedirectChallenge (conn, otherConn);=0A=
-    /* otherConn is still authenticated */=0A=
-    slowCallCode =3D RXKST_PROCESSCREATED;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    {=0A=
-	pthread_attr_t tattr;=0A=
-=0A=
-	code =3D pthread_attr_init(&tattr);=0A=
-	if (code) {=0A=
-	    com_err (whoami, code, "can't pthread_attr_init slow call =
process");=0A=
-	    return code;=0A=
-	}=0A=
-=0A=
-	code =3D pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);=0A=
-	if (code) {=0A=
-	    com_err (whoami, code, "can't pthread_attr_setdetachstate slow =
call process");=0A=
-	    return code;=0A=
-	}=0A=
-=0A=
-	code =3D pthread_create(&pid, &tattr, SlowCall, (void*) otherConn);=0A=
-    }=0A=
-#else=0A=
-    code =3D LWP_CreateProcess(SlowCall, 16000, LWP_NORMAL_PRIORITY,=0A=
-			     (opaque) otherConn, "Slow Call Process", &pid);=0A=
-#endif=0A=
-    if (code) {=0A=
-	com_err (whoami, code, "can't create slow call process");=0A=
-	return code;=0A=
-    }=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    pthread_mutex_lock(&slowCallLock);=0A=
-    while (slowCallCode =3D=3D RXKST_PROCESSCREATED)=0A=
-	pthread_cond_wait(&slowCallCV, &slowCallLock);=0A=
-#else=0A=
-    while (slowCallCode =3D=3D RXKST_PROCESSCREATED)=0A=
-	LWP_WaitProcess (&slowCallCode);	/* wait for process start */=0A=
-#endif=0A=
-    if (slowCallCode !=3D RXKST_PROCESSRUNNING) {=0A=
-	tmp_rc =3D slowCallCode;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-	pthread_mutex_unlock(&slowCallLock);=0A=
-#endif	=0A=
-	return tmp_rc;		/* make sure didn't fail immediately */=0A=
-    }=0A=
-    assert (incomingOps.op =3D=3D IO_REDIRECTCHALLENGE);=0A=
-    code =3D FastCall (conn);=0A=
-    if (code) return code;=0A=
-    assert (incomingOps.op =3D=3D IO_COUNT); /* redirect code was =
triggered */=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    while (slowCallCode =3D=3D RXKST_PROCESSRUNNING)=0A=
-	pthread_cond_wait(&slowCallCV, &slowCallLock);=0A=
-    pthread_mutex_unlock(&slowCallLock);=0A=
-#else=0A=
-    while (slowCallCode =3D=3D RXKST_PROCESSRUNNING)=0A=
-	LWP_WaitProcess (&slowCallCode);	/* wait for process finish */=0A=
-#endif=0A=
-    if (outgoingOps.counts[RX_PACKET_TYPE_RESPONSE] !=3D 1) goto oracle;=0A=
-=0A=
-    rx_justReceived =3D 0;=0A=
-    rx_almostSent =3D 0;=0A=
-    rx_DestroyConnection (otherConn);=0A=
-    rx_DestroyConnection (conn);=0A=
-    return code;=0A=
-=0A=
-#endif rx_GetPacketCksum=0A=
-=0A=
-}=0A=
-=0A=
-long rxkst_StartClient (parms)=0A=
-  IN struct clientParms *parms;=0A=
-{=0A=
-    long code;=0A=
-    long host;=0A=
-    long scIndex;=0A=
-    struct rx_securityClass *sc;=0A=
-=0A=
-    whoami =3D parms->whoami;		/* set this global variable */=0A=
-=0A=
-    host =3D GetServer (parms->server);=0A=
-=0A=
-    if (parms->authentication >=3D 0) {=0A=
-	long kvno;=0A=
-	char ticket[MAXKTCTICKETLEN];=0A=
-	int ticketLen;=0A=
-	struct ktc_encryptionKey Ksession;=0A=
-=0A=
-	if (parms->useTokens)=0A=
-	    code =3D GetToken (&kvno, &Ksession, &ticketLen, ticket, =
parms->cell);=0A=
-	else=0A=
-	    code =3D GetTicket (&kvno, &Ksession, &ticketLen, ticket, =
parms->cell);=0A=
-	if (code) return code;=0A=
-=0A=
-	/* next, we have ticket, kvno and session key, authenticate the conn */=0A=
-	sc =3D (struct rx_securityClass *)=0A=
-	    rxkad_NewClientSecurityObject (parms->authentication,=0A=
-					   &Ksession, kvno, ticketLen, ticket);=0A=
-	assert (sc);=0A=
-	scIndex =3D 2;			/* kerberos security index */=0A=
-    } else {=0A=
-	/* unauthenticated connection */=0A=
-	sc =3D rxnull_NewClientSecurityObject();=0A=
-	assert (sc);=0A=
-	scIndex =3D 0;			/* null security index */=0A=
-    }=0A=
-=0A=
-    code =3D 0;=0A=
-    if (!code && parms->callTest) {=0A=
-	code =3D RunCallTest (parms, host, sc, scIndex);=0A=
-    }=0A=
-    if (!code && parms->hijackTest) {=0A=
-	code =3D RunHijackTest (parms, host, sc, scIndex);=0A=
-    }=0A=
-    if (!code &&=0A=
-	(parms->printTiming ||=0A=
-	 parms->fastCalls || parms->slowCalls || parms->copiousCalls)) {=0A=
-	struct rx_connection *conn;=0A=
-	conn =3D rx_NewConnection(host, htons(RXKST_SERVICEPORT),=0A=
-				RXKST_SERVICEID, sc, scIndex);=0A=
-	if (conn) {=0A=
-	    code =3D RepeatLoadTest (parms, conn);=0A=
-	    rx_DestroyConnection (conn);=0A=
-	} else code =3D RXKST_NEWCONNFAILED;=0A=
-    }=0A=
-    if (!code && parms->stopServer) {=0A=
-	struct rx_connection *conn;=0A=
-	conn =3D rx_NewConnection(host, htons(RXKST_SERVICEPORT),=0A=
-				RXKST_SERVICEID, sc, scIndex);=0A=
-	if (conn) {=0A=
-	    code =3D RXKST_Kill (conn);=0A=
-	    if (code) {=0A=
-		com_err (whoami, code, "trying to stop server");=0A=
-	    }=0A=
-	    rx_DestroyConnection (conn);=0A=
-	} else code =3D RXKST_NEWCONNFAILED;=0A=
-    }=0A=
-=0A=
-    if (parms->printStats) {=0A=
-	rx_PrintStats (stdout);=0A=
-#if 0=0A=
-	/* use rxdebug style iteration here */=0A=
-	rx_PrintPeerStats (stdout, rx_PeerOf(conn));=0A=
-#endif=0A=
-    }=0A=
-=0A=
-    rxs_Release (sc);=0A=
-    rx_Finalize();=0A=
-    if (code) {=0A=
-	com_err (parms->whoami, code, "test fails");=0A=
-	exit (13);=0A=
-    } else {=0A=
-	printf ("Test Okay\n");=0A=
-	if (!parms->noExit) exit (0);=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxkad/test/stress_s.c =
upd/src/rxkad/test/stress_s.c=0A=
--- bas/src/rxkad/test/stress_s.c	2002-10-27 17:18:40.000000000 -0800=0A=
+++ upd/src/rxkad/test/stress_s.c	1969-12-31 16:00:00.000000000 -0800=0A=
@@ -1,300 +0,0 @@=0A=
-/*=0A=
- * Copyright 2000, International Business Machines Corporation and =
others.=0A=
- * All Rights Reserved.=0A=
- * =0A=
- * This software has been released under the terms of the IBM Public=0A=
- * License.  For details, see the LICENSE file in the top-level source=0A=
- * directory or online at http://www.openafs.org/dl/license10.html=0A=
- */=0A=
-=0A=
-/* RX Authentication Stress test: server side code. */=0A=
-=0A=
-#include <afsconfig.h>=0A=
-#include <afs/param.h>=0A=
-=0A=
-RCSID("$Header: /cvs/openafs/src/rxkad/test/stress_s.c,v 1.6 2002/10/28 =
01:18:40 jhutz Exp $");=0A=
-=0A=
-#include <afs/stds.h>=0A=
-#include <stdio.h>=0A=
-#include <fcntl.h>=0A=
-#include <sys/types.h>=0A=
-#ifdef AFS_NT40_ENV=0A=
-#include <winsock2.h>=0A=
-#else=0A=
-#include <netinet/in.h>=0A=
-#endif=0A=
-#include <rx/rx_null.h>=0A=
-=0A=
-#include <rx/rxkad.h>=0A=
-=0A=
-#include <afs/keys.h>=0A=
-#include <afs/cellconfig.h>=0A=
-=0A=
-#include "stress.h"=0A=
-#include "stress_internal.h"=0A=
-=0A=
-=0A=
-extern RXKST_ExecuteRequest();=0A=
-=0A=
-struct ktc_encryptionKey serviceKey =3D=0A=
-    {0x45, 0xe3, 0x3d, 0x16, 0x29, 0x64, 0x8a, 0x8f};=0A=
-long serviceKeyVersion =3D 7;=0A=
-=0A=
-static long GetKey (rock, kvno, key)=0A=
-  IN char *rock;=0A=
-  IN long  kvno;=0A=
-  OUT struct ktc_encryptionKey *key;=0A=
-{=0A=
-    struct serverParms *parms =3D (struct serverParms *)rock;=0A=
-    struct afsconf_keys tstr;=0A=
-    afs_int32 code;=0A=
-    int fd;=0A=
-=0A=
-    fprintf(stderr, "GetKey called for kvno %d\n", kvno);=0A=
-    if (!parms->keyfile) {=0A=
-        memcpy(key, &serviceKey, sizeof(*key));=0A=
-        return 0;=0A=
-    }=0A=
-=0A=
-    /* the rest of this function borrows heavily from auth/cellconfig.c =
*/=0A=
-    fd =3D open(parms->keyfile, O_RDONLY);=0A=
-    if (fd < 0) {=0A=
-        return AFSCONF_FAILURE;=0A=
-    }=0A=
-    code =3D read(fd, &tstr, sizeof(struct afsconf_keys));=0A=
-    close(fd);=0A=
-    if (code < sizeof(afs_int32)) {=0A=
-        return AFSCONF_FAILURE;=0A=
-    }=0A=
-=0A=
-    /* convert key structure to host order */=0A=
-    tstr.nkeys =3D ntohl(tstr.nkeys);=0A=
-    for(fd =3D 0; fd < tstr.nkeys; fd++) {=0A=
-        if (kvno =3D=3D ntohl(tstr.key[fd].kvno)) {=0A=
-            memcpy(key, tstr.key[fd].key, sizeof(*key));=0A=
-            return 0;=0A=
-        }=0A=
-    }=0A=
-=0A=
-    return AFSCONF_NOTFOUND;=0A=
-}=0A=
-=0A=
-static int minAuth;=0A=
-=0A=
-long rxkst_StartServer (parms)=0A=
-  INOUT struct serverParms *parms;=0A=
-{=0A=
-    extern int rx_stackSize;=0A=
-    struct rx_service *tservice;=0A=
-    struct rx_securityClass *sc[3];=0A=
-    rxkad_level minLevel;=0A=
-=0A=
-    minAuth =3D parms->authentication;=0A=
-    if (minAuth =3D=3D -1) minLevel =3D rxkad_clear;=0A=
-    else minLevel =3D minAuth;=0A=
-=0A=
-    sc[0] =3D rxnull_NewServerSecurityObject();=0A=
-    sc[1] =3D 0;				/* no rxvab anymore */=0A=
-    sc[2] =3D rxkad_NewServerSecurityObject (minLevel, (void *)parms, =
GetKey, 0);=0A=
-    tservice =3D rx_NewService(htons(RXKST_SERVICEPORT), =
RXKST_SERVICEID,=0A=
-			     "stress test", sc, 3, RXKST_ExecuteRequest);=0A=
-    if (tservice =3D=3D (struct rx_service *)0) {=0A=
-	fprintf (stderr, "Could not create stress test rx service\n");=0A=
-	exit(3);=0A=
-    }=0A=
-    rx_SetMinProcs(tservice, parms->threads);=0A=
-    rx_SetMaxProcs(tservice, parms->threads);=0A=
-    rx_SetStackSize(tservice, 10000);=0A=
-=0A=
-    rx_StartServer(/*donate me*/1);	/* start handling req. of all types =
*/=0A=
-    /* never reached */=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-static char test_client_name[MAXKTCNAMELEN];=0A=
-static char test_client_inst[MAXKTCNAMELEN];=0A=
-static char test_client_cell[MAXKTCREALMLEN];=0A=
-static int got_client_id =3D 0;=0A=
-static long CheckAuth (call)=0A=
-  IN struct rx_call *call;=0A=
-{=0A=
-    long code;=0A=
-    int si;=0A=
-    rxkad_level level;=0A=
-    char name[MAXKTCNAMELEN];=0A=
-    char inst[MAXKTCNAMELEN];=0A=
-    char cell[MAXKTCREALMLEN];=0A=
-    long kvno;=0A=
-    u_long expiration;			/* checked by Security Module */=0A=
-=0A=
-    si =3D rx_SecurityClassOf(rx_ConnectionOf(call));=0A=
-    if (si =3D=3D 1) {=0A=
-	printf ("No support for VAB security module.\n");=0A=
-	return -1;=0A=
-    } else if (si =3D=3D 0) {=0A=
-	if (minAuth > -1) return RXKST_UNAUTH;=0A=
-	else return 0;=0A=
-    } else if (si !=3D 2) {=0A=
-	fprintf (stderr, "Unknown security index %d\n", si);=0A=
-	return -1;=0A=
-    }=0A=
-=0A=
-    code =3D rxkad_GetServerInfo (rx_ConnectionOf(call), &level, =
&expiration,=0A=
-				name, inst, cell, &kvno);=0A=
-    if (code) return code;=0A=
-    if (minAuth > level) return -1;=0A=
-    fprintf(stderr, "Test client is %s.%s@%s\n", name, inst, cell);=0A=
-    if (got_client_id) {=0A=
-        if (strcmp(name, test_client_name)) return RXKST_BADCLIENT;=0A=
-        if (strcmp(inst, test_client_inst)) return RXKST_BADCLIENT;=0A=
-        if (strcmp(cell, test_client_cell)) return RXKST_BADCLIENT;=0A=
-    } else {=0A=
-        strcpy(test_client_name, name);=0A=
-        strcpy(test_client_inst, inst);=0A=
-        strcpy(test_client_cell, cell);=0A=
-        got_client_id =3D 1;=0A=
-    }=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-/* Stop the server.  There isn't a graceful way to do this so just =
exit. */=0A=
-=0A=
-afs_int32 SRXKST_Kill (call)=0A=
-  IN struct rx_call *call;=0A=
-{=0A=
-    long code;=0A=
-    code =3D CheckAuth (call);=0A=
-    if (code) return code;=0A=
-=0A=
-    /* This is tricky, but since we're never going to return, we end =
the call=0A=
-     * here, then rx_Finalize should push out the response/ack. */=0A=
-    rx_EndCall(call, 0);=0A=
-    rx_Finalize();=0A=
-=0A=
-    printf ("Server halted by RPC request.\n");=0A=
-    exit (0);=0A=
-    return 0;    =0A=
-}=0A=
-=0A=
-afs_int32 SRXKST_Fast (call, n, inc_nP)=0A=
-  IN struct rx_call *call;=0A=
-  IN u_long n;=0A=
-  OUT u_long *inc_nP;=0A=
-{=0A=
-    *inc_nP =3D n+1;=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-afs_int32 SRXKST_Slow (call, tag, nowP)=0A=
-  IN struct rx_call *call;=0A=
-  IN u_long tag;=0A=
-  OUT u_long *nowP;=0A=
-{=0A=
-    long code;=0A=
-    code =3D CheckAuth (call);=0A=
-    if (code) return code;=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
-    sleep(1);=0A=
-#else=0A=
-    IOMGR_Sleep (1);=0A=
-#endif=0A=
-    time (nowP);=0A=
-    return 0;=0A=
-}=0A=
-=0A=
-#define COPBUFSIZE 10000=0A=
-static struct buflist {=0A=
-    struct buflist *next;=0A=
-} *buflist =3D 0;=0A=
-static int bufAllocs =3D 0;=0A=
-=0A=
-static u_char *GetBuffer()=0A=
-{=0A=
-    u_char *ret;=0A=
-    if (buflist) {=0A=
-	ret =3D (u_char *)buflist;=0A=
-	buflist =3D buflist->next;=0A=
-    } else {=0A=
-	ret =3D (u_char *) osi_Alloc (COPBUFSIZE);=0A=
-	bufAllocs++;=0A=
-    }=0A=
-    return ret;=0A=
-}=0A=
-=0A=
-static void PutBuffer(b)=0A=
-  IN u_char *b;=0A=
-{=0A=
-    struct buflist *bl =3D (struct buflist *)b;=0A=
-    bl->next =3D buflist;=0A=
-    buflist =3D bl;=0A=
-}=0A=
-=0A=
-afs_int32 SRXKST_Copious (call, inlen, insum, outlen, outsum)=0A=
-  IN struct rx_call *call;=0A=
-  IN u_long inlen;=0A=
-  IN u_long insum;=0A=
-  IN u_long outlen;=0A=
-  OUT u_long *outsum;=0A=
-{=0A=
-    long code;=0A=
-    long mysum;=0A=
-    u_char *buf;=0A=
-    int i;=0A=
-    long b;=0A=
-    long bytesTransfered;=0A=
-    long n;=0A=
-=0A=
-    code =3D CheckAuth (call);=0A=
-    if (code) return code;=0A=
-    buf =3D GetBuffer();=0A=
-    mysum =3D 0;=0A=
-    bytesTransfered =3D 0;=0A=
-    while (bytesTransfered < inlen) {=0A=
-	u_long tlen;			/* how much more to do */=0A=
-	tlen =3D inlen - bytesTransfered;=0A=
-	if (tlen > COPBUFSIZE) tlen =3D COPBUFSIZE;=0A=
-	n =3D rx_Read(call, buf, tlen);=0A=
-	if (n !=3D tlen) {=0A=
-	    if (n < 0) code =3D n;=0A=
-	    else code =3D RXKST_READSHORT;=0A=
-	    break;=0A=
-	}=0A=
-	for (i=3D0; i<tlen; i++) mysum +=3D buf[i];=0A=
-	bytesTransfered +=3D tlen;=0A=
-    }=0A=
-    if (code) goto done;=0A=
-    if (mysum !=3D insum) {=0A=
-	code =3D RXKST_BADINPUTSUM;=0A=
-	goto done;=0A=
-    }=0A=
-=0A=
-#define BIG_PRIME 1257056893		/* 0x4AED2A7d */=0A=
-#if 0=0A=
-#define NextByte() ((b>24 ? ((seed =3D seed*BIG_PRIME + =
BIG_PRIME),b=3D0) : 0), \=0A=
-		    (b +=3D8), ((seed >> (b-8))&0xff))=0A=
-#else=0A=
-#define NextByte() (b+=3D3)=0A=
-#endif=0A=
-    b=3D32;=0A=
-=0A=
-    mysum =3D 0;=0A=
-    bytesTransfered =3D 0;=0A=
-    while (bytesTransfered < outlen) {=0A=
-	u_long tlen;			/* how much more to do */=0A=
-	tlen =3D outlen - bytesTransfered;=0A=
-	if (tlen > COPBUFSIZE) tlen =3D COPBUFSIZE;=0A=
-	for (i=3D0; i<tlen; i++) mysum +=3D (buf[i] =3D NextByte());=0A=
-	n =3D rx_Write(call, buf, tlen);=0A=
-	if (n !=3D tlen) {=0A=
-	    if (n < 0) code =3D n;=0A=
-	    else code =3D RXKST_WRITESHORT;=0A=
-	    break;=0A=
-	}=0A=
-	bytesTransfered +=3D tlen;=0A=
-    }=0A=
-  done:=0A=
-    PutBuffer (buf);=0A=
-    if (code) return code;=0A=
-    *outsum =3D mysum;=0A=
-    return 0;=0A=
-}=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxstat/NTMakefile =
upd/src/rxstat/NTMakefile=0A=
--- bas/src/rxstat/NTMakefile	2001-09-17 13:35:24.000000000 -0700=0A=
+++ upd/src/rxstat/NTMakefile	2003-03-10 16:20:28.000000000 -0800=0A=
@@ -19,10 +19,10 @@=0A=
 # Library component lists.=0A=
 =0A=
 LIBOBJS =3D \=0A=
-	rxstat.cs.obj \=0A=
-	rxstat.ss.obj \=0A=
-	rxstat.xdr.obj \=0A=
-	rxstat.obj=0A=
+	$(OJT)\rxstat.cs.obj \=0A=
+	$(OJT)\rxstat.ss.obj \=0A=
+	$(OJT)\rxstat.xdr.obj \=0A=
+	$(OJT)\rxstat.obj=0A=
 =0A=
 LIBFILE =3D $(DESTDIR)\lib\afsrxstat.lib=0A=
 =0A=
@@ -38,4 +38,8 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) rxstat.cs.c rxstat.h rxstat.ss.c rxstat.xdr.c=0A=
+	$(DEL) $(LIBFILE)=0A=
 =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/rxstat/rxstat.c =
upd/src/rxstat/rxstat.c=0A=
--- bas/src/rxstat/rxstat.c	2002-10-15 21:59:10.000000000 -0700=0A=
+++ upd/src/rxstat/rxstat.c	2003-03-10 16:20:28.000000000 -0800=0A=
@@ -23,7 +23,7 @@=0A=
 #else /* UKERNEL */=0A=
 #include <afs/stds.h>=0A=
 #include <rx/rx.h>=0A=
-#include "rxstat/rxstat.h"=0A=
+#include "rxstat.h"=0A=
 #ifdef KERNEL=0A=
 #include "sys/errno.h"=0A=
 #else /* KERNEL */=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/sys/NTMakefile =
upd/src/sys/NTMakefile=0A=
--- bas/src/sys/NTMakefile	2001-04-30 01:04:50.000000000 -0700=0A=
+++ upd/src/sys/NTMakefile	2003-03-10 16:20:30.000000000 -0800=0A=
@@ -20,7 +20,7 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afspioctl.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	pioctl_nt.obj=0A=
+	$(OJT)\pioctl_nt.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/tbutc/NTMakefile =
upd/src/tbutc/NTMakefile=0A=
--- bas/src/tbutc/NTMakefile	2002-01-08 12:44:58.000000000 -0800=0A=
+++ upd/src/tbutc/NTMakefile	2003-03-10 16:20:30.000000000 -0800=0A=
@@ -30,22 +30,22 @@=0A=
 BUCOORD =3D ..\bucoord=0A=
 VOLSER  =3D ..\volser=0A=
 =0A=
-BUCOORDOBJS =3D ubik_db_if.obj $(BUCOORD)\volstub.obj =
$(BUCOORD)\dlq.obj \=0A=
-	                     $(BUCOORD)\status.obj $(BUCOORD)\bucoord_errs.obj=0A=
+BUCOORDOBJS =3D $(OJT)\ubik_db_if.obj $(OJT)\$(BUCOORD)\volstub.obj =
$(OJT)\$(BUCOORD)\dlq.obj \=0A=
+	                     $(OJT)\$(BUCOORD)\status.obj =
$(OJT)\$(BUCOORD)\bucoord_errs.obj=0A=
 =0A=
-VOLSERLIBOBJ =3D $(VOLSER)\volint.cs.obj  vsprocs.obj              =
$(VOLSER)\vsutils.obj \=0A=
-               $(VOLSER)\lockprocs.obj  $(VOLSER)\volint.xdr.obj =
$(VOLSER)\volerr.obj  \=0A=
-               $(VOLSER)\volint.ss.obj  =
AFS_component_version_number.obj =0A=
-VOLSERLIBS  =3D afstvolser.lib=0A=
+VOLSERLIBOBJ =3D $(OJT)\$(VOLSER)\volint.cs.obj  $(OJT)\vsprocs.obj =
$(OJT)\$(VOLSER)\vsutils.obj \=0A=
+               $(OJT)\$(VOLSER)\lockprocs.obj  =
$(OJT)\$(VOLSER)\volint.xdr.obj $(OJT)\$(VOLSER)\volerr.obj  \=0A=
+               $(OJT)\$(VOLSER)\volint.ss.obj  =
$(OJT)\AFS_component_version_number.obj =0A=
+VOLSERLIBS  =3D $(OJT)\afstvolser.lib=0A=
 =0A=
-LWPOBJS     =3D lock.obj=0A=
+LWPOBJS     =3D $(OJT)\lock.obj=0A=
 =0A=
-BUTMOBJS    =3D file_tm.obj AFS_component_version_number.obj=0A=
-BUTMLIBS    =3D afstbutm.lib=0A=
+BUTMOBJS    =3D $(OJT)\file_tm.obj =
$(OJT)\AFS_component_version_number.obj=0A=
+BUTMLIBS    =3D $(OJT)\afstbutm.lib=0A=
 BUTMINCLUDE =3D -I$(DESTDIR)\include=0A=
 =0A=
-BUTCOBJS   =3D dbentries.obj tcprocs.obj lwps.obj tcmain.obj list.obj =
recoverDb.obj \=0A=
-	     tcudbprocs.obj dump.obj tcstatus.obj butc_xbsa.obj \=0A=
+BUTCOBJS   =3D $(OJT)\dbentries.obj $(OJT)\tcprocs.obj $(OJT)\lwps.obj =
$(OJT)\tcmain.obj $(OJT)\list.obj $(OJT)\recoverDb.obj \=0A=
+	     $(OJT)\tcudbprocs.obj $(OJT)\dump.obj $(OJT)\tcstatus.obj =
$(OJT)\butc_xbsa.obj \=0A=
              $(LWPOBJS) $(BUCOORDOBJS)=0A=
 BUTCINCLUDE=3D -I. -I$(DESTDIR)\include -I$(XBSADIR)=0A=
 BUTCLIBS=3D$(DESTDIR)\lib\afs\afsbudb.lib  \=0A=
@@ -89,7 +89,7 @@=0A=
 =0A=
 include ..\config\NTMakefile.version=0A=
 =0A=
-# rm tcstatus.obj=0A=
+# rm $(OJT)\tcstatus.obj=0A=
 # nmake /nologo /f ntmakefile install=0A=
 #----------------------------------------------- BUTC=0A=
 =0A=
@@ -97,66 +97,65 @@=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP)=0A=
 =0A=
-# 	$(C2OBJ) $**=0A=
+.c.$(OJT)\obj:=0A=
+	$(C2OBJ) -I$(BUCOORD) $<=0A=
 =0A=
-dbentries.obj: $(BUTC)/dbentries.c=0A=
+$(OJT)\dbentries.obj: $(BUTC)/dbentries.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-tcprocs.obj: $(BUTC)/tcprocs.c=0A=
+$(OJT)\tcprocs.obj: $(BUTC)/tcprocs.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-lwps.obj: $(BUTC)/lwps.c=0A=
+$(OJT)\lwps.obj: $(BUTC)/lwps.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-tcmain.obj: $(BUTC)/tcmain.c=0A=
+$(OJT)\tcmain.obj: $(BUTC)/tcmain.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-list.obj: $(BUTC)/list.c=0A=
+$(OJT)\list.obj: $(BUTC)/list.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-recoverDb.obj: $(BUTC)/recoverDb.c=0A=
+$(OJT)\recoverDb.obj: $(BUTC)/recoverDb.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-tcudbprocs.obj: $(BUTC)/tcudbprocs.c=0A=
+$(OJT)\tcudbprocs.obj: $(BUTC)/tcudbprocs.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-dump.obj: $(BUTC)/dump.c=0A=
+$(OJT)\dump.obj: $(BUTC)/dump.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-tcstatus.obj: $(BUTC)/tcstatus.c=0A=
+$(OJT)\tcstatus.obj: $(BUTC)/tcstatus.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-butc_xbsa.obj: $(BUTC)/butc_xbsa.c=0A=
+$(OJT)\butc_xbsa.obj: $(BUTC)/butc_xbsa.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
 #----------------------------------------------- BUCOORD=0A=
 =0A=
-ubik_db_if.obj: $(BUCOORD)/ubik_db_if.c=0A=
-	$(C2OBJ) $**=0A=
+$(OJT)\ubik_db_if.obj: $(BUCOORD)/ubik_db_if.c=0A=
+	$(C2OBJ) -I$(BUCOORD) $**=0A=
 =0A=
 #----------------------------------------------- VOLSER=0A=
 # Build the afstvolser.lib library here. The file compiled=0A=
 # for is is vsprocs.c. The rest are from the VOLSER dir.=0A=
 =0A=
-afstvolser.lib: $(VOLSERLIBOBJ)=0A=
+$(OJT)\afstvolser.lib: $(VOLSERLIBOBJ)=0A=
 	$(LIBARCH)=0A=
 =0A=
-vsprocs.obj: $(VOLSER)/vsprocs.c=0A=
+$(OJT)\vsprocs.obj: $(VOLSER)/vsprocs.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
 #----------------------------------------------- LWP=0A=
 =0A=
-lock.obj: $(LWP)/lock.c=0A=
+$(OJT)\lock.obj: $(LWP)/lock.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
 #----------------------------------------------- BUTC=0A=
 =0A=
-file_tm.obj: $(BUTM)/file_tm.c=0A=
-=0A=
-file_tm.obj: $(BUTM)/file_tm.c=0A=
+$(OJT)\file_tm.obj: $(BUTM)/file_tm.c=0A=
 	$(C2OBJ) $**=0A=
 =0A=
-afstbutm.lib: $(BUTMOBJS)=0A=
+$(OJT)\afstbutm.lib: $(BUTMOBJS)=0A=
 	$(LIBARCH)=0A=
 =0A=
 #-----------------------------------------------=0A=
@@ -166,3 +165,6 @@=0A=
 install: all=0A=
 =0A=
 noversion: install=0A=
+=0A=
+mkdir:=0A=
+	=0A=
Binary files bas/src/tests/t.uniq-bad and upd/src/tests/t.uniq-bad differ=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/tviced/NTMakefile =
upd/src/tviced/NTMakefile=0A=
--- bas/src/tviced/NTMakefile	2002-01-08 12:45:00.000000000 -0800=0A=
+++ upd/src/tviced/NTMakefile	2003-03-10 16:20:30.000000000 -0800=0A=
@@ -26,27 +26,30 @@=0A=
 DIR =3D ..\dir=0A=
 VOL =3D ..\vol=0A=
 FSINT =3D ..\fsint=0A=
+RX =3D ..\rx=0A=
 =0A=
-VICEDOBJS =3D viced.obj afsfileprocs.obj host.obj physio.obj =
callback.obj	\=0A=
-		$(VICED)\fileserver.res=0A=
+RXOBJS =3D $(OJT)\xdr_int64.obj $(OJT)\xdr_int32.obj=0A=
 =0A=
-VLSERVEROBJS =3D vldbint.cs.obj vldbint.xdr.obj=0A=
+VICEDOBJS =3D $(OJT)\viced.obj $(OJT)\afsfileprocs.obj $(OJT)\host.obj =
$(OJT)\physio.obj $(OJT)\callback.obj=0A=
+VICEDRES =3D	$(OJT)\$(VICED)\fileserver.res=0A=
 =0A=
-LWPOBJS =3D lock.obj fasttime.obj threadname.obj=0A=
+VLSERVEROBJS =3D $(OJT)\vldbint.cs.obj $(OJT)\vldbint.xdr.obj=0A=
 =0A=
-LIBACLOBJS =3D aclprocs.obj netprocs.obj=0A=
+LWPOBJS =3D $(OJT)\lock.obj $(OJT)\fasttime.obj $(OJT)\threadname.obj=0A=
 =0A=
-UTILOBJS =3D assert.obj uuid.obj serverLog.obj fileutil.obj=0A=
+LIBACLOBJS =3D $(OJT)\aclprocs.obj $(OJT)\netprocs.obj=0A=
 =0A=
-DIROBJS =3D buffer.obj dir.obj salvage.obj=0A=
+UTILOBJS =3D $(OJT)\assert.obj $(OJT)\uuid.obj $(OJT)\serverLog.obj =
$(OJT)\fileutil.obj =0A=
 =0A=
-VOLOBJS =3D vnode.obj volume.obj vutil.obj partition.obj fssync.obj =
purge.obj \=0A=
-	  clone.obj common.obj ihandle.obj ntops.obj=0A=
+DIROBJS =3D $(OJT)\buffer.obj $(OJT)\dir.obj $(OJT)\salvage.obj=0A=
 =0A=
-FSINTOBJS =3D afsaux.obj afscbint.cs.obj afsint.ss.obj afsint.xdr.obj=0A=
+VOLOBJS =3D $(OJT)\vnode.obj $(OJT)\volume.obj $(OJT)\vutil.obj =
$(OJT)\partition.obj $(OJT)\fssync.obj $(OJT)\purge.obj \=0A=
+	  $(OJT)\clone.obj $(OJT)\common.obj $(OJT)\ihandle.obj =
$(OJT)\ntops.obj=0A=
 =0A=
-EXEOBJS =3D $(VICEDOBJS) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) \=0A=
-	 $(UTILOBJS) $(DIROBJS) $(VOLOBJS) $(FSINTOBJS)=0A=
+FSINTOBJS =3D $(OJT)\afsaux.obj $(OJT)\afscbint.cs.obj =
$(OJT)\afsint.ss.obj $(OJT)\afsint.xdr.obj=0A=
+=0A=
+EXEOBJS =3D $(VICEDOBJS) $(VICEDRES) $(VLSERVEROBJS) $(LWPOBJS) =
$(LIBACLOBJS) \=0A=
+	 $(UTILOBJS) $(DIROBJS) $(VOLOBJS) $(FSINTOBJS) $(RXOBJS)=0A=
 =0A=
 =0A=
 =0A=
@@ -54,132 +57,32 @@=0A=
 =0A=
 all: fileserver=0A=
 =0A=
+$(RXOBJS): $(RX)\$$(@B).c=0A=
+	$(C2OBJ) -I$(RX) $**=0A=
 =0A=
-########################################################################=
####=0A=
-# VICED package=0A=
-viced.obj: $(VICED)/viced.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-afsfileprocs.obj: $(VICED)/afsfileprocs.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-host.obj: $(VICED)/host.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-physio.obj: $(VICED)/physio.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-callback.obj: $(VICED)/callback.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-########################################################################=
####=0A=
-# UTIL package=0A=
-assert.obj: $(UTIL)/assert.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-uuid.obj: $(UTIL)/uuid.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-serverLog.obj: $(UTIL)/serverLog.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-fileutil.obj: $(UTIL)/fileutil.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-########################################################################=
####=0A=
-# LWP package=0A=
-lock.obj: $(LWP)/lock.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-fasttime.obj: $(LWP)/fasttime.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-threadname.obj: $(LWP)/threadname.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-########################################################################=
####=0A=
-# LIBACL package=0A=
-aclprocs.obj: $(LIBACL)/aclprocs.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-netprocs.obj: $(LIBACL)/netprocs.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-########################################################################=
####=0A=
-# VLSERVER package=0A=
-vldbint.cs.obj: $(VLSERVER)/vldbint.cs.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-vldbint.xdr.obj: $(VLSERVER)/vldbint.xdr.c=0A=
-	$(C2OBJ) $**=0A=
+$(VICEDOBJS): $(VICED)\$$(@B).c=0A=
+	$(C2OBJ) -I$(VICED) -I$(UTIL) $**=0A=
 =0A=
-########################################################################=
####=0A=
-# DIR package=0A=
-buffer.obj: $(DIR)/buffer.c=0A=
-	$(C2OBJ) $**=0A=
+$(UTILOBJS): $(UTIL)\$$(@B).c=0A=
+	$(C2OBJ) -I$(UTIL) $**=0A=
 =0A=
-dir.obj: $(DIR)/dir.c=0A=
-	$(C2OBJ) $**=0A=
+$(LWPOBJS): $(LWP)\$$(@B).C=0A=
+	$(C2OBJ) -I$(LWP) $**=0A=
 =0A=
-salvage.obj: $(DIR)/salvage.c=0A=
-	$(C2OBJ) $**=0A=
+$(LIBACLOBJS): $(LIBACL)\$$(@B).C=0A=
+	$(C2OBJ) -I$(LIBACL) $**=0A=
 =0A=
-########################################################################=
####=0A=
-# VOL package=0A=
-vnode.obj: $(VOL)/vnode.c=0A=
-	$(C2OBJ) $**=0A=
+$(VLSERVEROBJS): $(VLSERVER)\$$(@B).C=0A=
+	$(C2OBJ) -I$(VLSERVER) $**=0A=
 =0A=
-volume.obj: $(VOL)/volume.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-vutil.obj: $(VOL)/vutil.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-partition.obj: $(VOL)/partition.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-fssync.obj: $(VOL)/fssync.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-purge.obj: $(VOL)/purge.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-clone.obj: $(VOL)/clone.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-nuke.obj: $(VOL)/nuke.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-common.obj: $(VOL)/common.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-ihandle.obj: $(VOL)/ihandle.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-ntops.obj: $(VOL)/ntops.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-########################################################################=
####=0A=
-# FSINT package=0A=
-afsaux.obj: $(FSINT)/afsaux.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-afscbint.cs.obj: $(FSINT)/afscbint.cs.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-afscbint.ss.obj: $(FSINT)/afscbint.ss.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-afsint.cs.obj: $(FSINT)/afsint.cs.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-afsint.ss.obj: $(FSINT)/afsint.ss.c=0A=
-	$(C2OBJ) $**=0A=
-=0A=
-afsint.xdr.obj: $(FSINT)/afsint.xdr.c=0A=
-	$(C2OBJ) $**=0A=
+$(DIROBJS): $(DIR)\$$(@B).C=0A=
+	$(C2OBJ) -I$(DIR) $**=0A=
 =0A=
+$(VOLOBJS): $(VOL)\$$(@B).C=0A=
+	$(C2OBJ) -I$(VOL) $**=0A=
 =0A=
+$(FSINTOBJS): $(FSINT)\$$(@B).C=0A=
+	$(C2OBJ) -I$(FSINT) $**=0A=
 =0A=
 EXELIBS =3D \=0A=
 	$(DESTDIR)\lib\afsauthent.lib \=0A=
@@ -198,3 +101,6 @@=0A=
 	$(EXEPREP) =0A=
 =0A=
 install:  $(EXEFILE)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/ubik/NTMakefile =
upd/src/ubik/NTMakefile=0A=
--- bas/src/ubik/NTMakefile	2001-09-17 13:35:24.000000000 -0700=0A=
+++ upd/src/ubik/NTMakefile	2003-03-10 16:20:30.000000000 -0800=0A=
@@ -26,24 +26,24 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afsubik.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	disk.obj \=0A=
-	remote.obj \=0A=
-	beacon.obj \=0A=
-	recovery.obj \=0A=
-	ubik.obj \=0A=
-	vote.obj \=0A=
-	lock.obj \=0A=
-	phys.obj \=0A=
-	ubik_int.cs.obj \=0A=
-	ubik_int.ss.obj \=0A=
-	ubik_int.xdr.obj \=0A=
-	ubikcmd.obj \=0A=
-	ubikclient.obj \=0A=
-	uerrors.obj	\=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\disk.obj \=0A=
+	$(OJT)\remote.obj \=0A=
+	$(OJT)\beacon.obj \=0A=
+	$(OJT)\recovery.obj \=0A=
+	$(OJT)\ubik.obj \=0A=
+	$(OJT)\vote.obj \=0A=
+	$(OJT)\lock.obj \=0A=
+	$(OJT)\phys.obj \=0A=
+	$(OJT)\ubik_int.cs.obj \=0A=
+	$(OJT)\ubik_int.ss.obj \=0A=
+	$(OJT)\ubik_int.xdr.obj \=0A=
+	$(OJT)\ubikcmd.obj \=0A=
+	$(OJT)\ubikclient.obj \=0A=
+	$(OJT)\uerrors.obj	\=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 =0A=
-$(LIBFILE): $(LIBOBJS) =0A=
+$(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH) =0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -53,8 +53,8 @@=0A=
 CL_UDBG_EXEFILE =3D $(DESTDIR)\bin\udebug.exe=0A=
 =0A=
 UDBG_EXEOBJS =3D\=0A=
-	udebug.obj \=0A=
-	udebug.res=0A=
+	$(OJT)\udebug.obj \=0A=
+	$(OJT)\udebug.res=0A=
 =0A=
 UDBG_EXELIBS =3D\=0A=
 	$(DESTDIR)\lib\afsubik.lib \=0A=
@@ -76,23 +76,24 @@=0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
 =0A=
-udebug.res: udebug.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\udebug.res: AFS_component_version_number.h=0A=
+#	$(RC) $*.rc=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # rxgen on ubik_int.xg=0A=
 =0A=
-ubik_int.ss.c ubik_int.cs.c ubik_int.xdr.c $(INCFILEDIR)\ubik_int.h: =
ubik_int.xg=0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
+=0A=
+ubik_int.ss.c ubik_int.cs.c ubik_int.xdr.c ubik_int.h: ubik_int.xg=0A=
 	$(RXGEN) -x $**=0A=
-	$(COPY) ubik_int.h $(INCFILEDIR)\ubik_int.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # compile_et on uerrors.et=0A=
 =0A=
-uerrors.c $(INCFILEDIR)\ubik.h: uerrors.et ubik.p.h=0A=
+uerrors.c ubik.h: uerrors.et ubik.p.h=0A=
 	$(DEL)  ubik.h uerrors.c=0A=
 	$(COMPILE_ET) uerrors -h ubik=0A=
-	$(COPY) ubik.h $(INCFILEDIR)\ubik.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install target; primary makefile target=0A=
@@ -104,7 +105,7 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) ubik_int.ss.c ubik_int.cs.c ubik_int.xdr.c =0A=
-	$(DEL) $(INCFILEDIR)\ubik_int.h	uerrors.c $(INCFILEDIR)\ubik.h=0A=
+	$(DEL) uerrors.c $(INCFILES)=0A=
 	$(DEL) ubik_int.h ubik.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -112,14 +113,17 @@=0A=
 =0A=
 test tests: utst_server utst_client $(EXEFILE) =0A=
 =0A=
-utst_server: utst_server.obj utst_int.ss.obj utst_int.xdr.obj  =
$(EXELIBS)=0A=
+utst_server: $(OJT)\utst_server.obj $(OJT)\utst_int.ss.obj =
$(OJT)\utst_int.xdr.obj  $(EXELIBS)=0A=
 	$(EXECONLINK) =0A=
 	=0A=
-utst_client: utst_client.obj utst_int.cs.obj utst_int.xdr.obj $(EXELIBS)=0A=
+utst_client: $(OJT)\utst_client.obj $(OJT)\utst_int.cs.obj =
$(OJT)\utst_int.xdr.obj $(EXELIBS)=0A=
 	$(EXECONLINK) =0A=
 	=0A=
 # rxgen on utst_int.xg=0A=
 utst_int.ss.c utst_int.cs.c utst_int.xdr.c utst_int.h: utst_int.xg=0A=
 	$(RXGEN)  utst_int.xg=0A=
 =0A=
-utst_server.obj utst_client.obj : utst_int.h =0A=
+$(OJT)\utst_server.obj $(OJT)\utst_client.obj : utst_int.h =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/update/NTMakefile =
upd/src/update/NTMakefile=0A=
--- bas/src/update/NTMakefile	2001-10-31 19:40:32.000000000 -0800=0A=
+++ upd/src/update/NTMakefile	2003-03-10 16:20:30.000000000 -0800=0A=
@@ -35,11 +35,11 @@=0A=
 UPSERVER =3D $(DESTDIR)\root.server\usr\afs\bin\upserver.exe=0A=
 =0A=
 USVR_OBJS =3D \=0A=
-	AFS_component_version_number.obj \=0A=
-	server.obj \=0A=
-	utils.obj \=0A=
-	update.ss.obj \=0A=
-	upserver.res=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\server.obj \=0A=
+	$(OJT)\utils.obj \=0A=
+	$(OJT)\update.ss.obj \=0A=
+	$(OJT)\upserver.res=0A=
 =0A=
 $(UPSERVER):  $(USVR_OBJS) $(LIBS)=0A=
 	$(EXECONLINK)=0A=
@@ -50,11 +50,11 @@=0A=
 UPCLIENT =3D $(DESTDIR)\root.server\usr\afs\bin\upclient.exe=0A=
 =0A=
 UCLNT_OBJS =3D \=0A=
-	AFS_component_version_number.obj \=0A=
-	client.obj \=0A=
-	utils.obj \=0A=
-	update.cs.obj \=0A=
-	upclient.res=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\client.obj \=0A=
+	$(OJT)\utils.obj \=0A=
+	$(OJT)\update.cs.obj \=0A=
+	$(OJT)\upclient.res=0A=
 =0A=
 $(UPCLIENT):  $(UCLNT_OBJS)  $(LIBS)=0A=
 	$(EXECONLINK)=0A=
@@ -63,10 +63,9 @@=0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
 =0A=
-upserver.res: upserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-upclient.res: upclient.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\upserver.res: AFS_component_version_number.h=0A=
+=0A=
+$(OJT)\upclient.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install update executables.=0A=
@@ -79,3 +78,7 @@=0A=
 =0A=
 clean::=0A=
 	$(DEL) update.cs.c update.ss.c update.xdr.c update.h=0A=
+=0A=
+mkdir:=0A=
+	 copy home $(OJT)\.=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/usd/NTMakefile =
upd/src/usd/NTMakefile=0A=
--- bas/src/usd/NTMakefile	2001-04-30 01:05:18.000000000 -0700=0A=
+++ upd/src/usd/NTMakefile	2003-03-10 16:20:30.000000000 -0800=0A=
@@ -26,8 +26,8 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsusd.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	usd_nt.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\usd_nt.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS) =0A=
 	$(LIBARCH) =0A=
@@ -47,4 +47,5 @@=0A=
 	$(MAKECMD) /fNTMakefile test=0A=
 	$(CD) ..=0A=
 =0A=
-=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/usd/test/NTMakefile =
upd/src/usd/test/NTMakefile=0A=
--- bas/src/usd/test/NTMakefile	2000-11-04 02:05:58.000000000 -0800=0A=
+++ upd/src/usd/test/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -16,8 +16,8 @@=0A=
 test tests: usd_test.exe=0A=
 =0A=
 # make usd_test.exe=0A=
-usd_test.exe: usd_test.obj $(LIBFILE) $(LIBUTIL)=0A=
+$(OJT)\usd_test.exe: $(OJT)\usd_test.obj $(LIBFILE) $(LIBUTIL)=0A=
 	$(EXECONLINK)=0A=
-	=0A=
-=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/util/NTMakefile =
upd/src/util/NTMakefile=0A=
--- bas/src/util/NTMakefile	2002-05-16 07:54:42.000000000 -0700=0A=
+++ upd/src/util/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -24,12 +24,16 @@=0A=
 	$(INCFILEDIR)\dirpath.h \=0A=
 	$(INCFILEDIR)\ktime.h \=0A=
 	$(INCFILEDIR)\fileutil.h \=0A=
+	$(INCFILEDIR)\afsutil_prototypes.h \=0A=
 	$(INCFILEDIR)\secutil_nt.h=0A=
 =0A=
-$(DESTDIR)\include\afs\dirent.h: dirent_nt.h=0A=
+$(INCFILEDIR)\dirent.h: dirent_nt.h=0A=
 	$(COPY) $** $@=0A=
 =0A=
-$(DESTDIR)\include\afs\dirpath.h: dirpath_nt.h=0A=
+$(INCFILEDIR)\afsconfig.h: ..\libadmin\adminutil\afscoinfig.h=0A=
+	$(COPY) $** $@=0A=
+=0A=
+$(INCFILEDIR)\dirpath.h: dirpath_nt.h=0A=
 	$(COPY) $** $@=0A=
 =0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsutil.lib=0A=
@@ -54,6 +58,10 @@=0A=
 	fileutil.obj \=0A=
 	secutil_nt.obj=0A=
 =0A=
+$(LIBOBJS): $$(@B).c=0A=
+	$(C2OBJ) -I..\libadmin\adminutil $**=0A=
+=0A=
+$(LIBOBJS):=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/util/softsig.c =
upd/src/util/softsig.c=0A=
--- bas/src/util/softsig.c	2003-02-03 15:10:46.000000000 -0800=0A=
+++ upd/src/util/softsig.c	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -8,11 +8,16 @@=0A=
  */=0A=
 =0A=
 #define _POSIX_PTHREAD_SEMANTICS=0A=
+#include <afs\param.h>=0A=
 #include <assert.h>=0A=
 #include <stdio.h>=0A=
+#ifndef  AFS_NT40_ENV=0A=
 #include <signal.h>=0A=
-#include <pthread.h>=0A=
 #include <unistd.h>=0A=
+#else=0A=
+#include <afs\procmgmt.h>=0A=
+#endif=0A=
+#include <pthread.h>=0A=
 =0A=
 static pthread_t softsig_tid;=0A=
 static struct {=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/util/test/NTMakefile =
upd/src/util/test/NTMakefile=0A=
--- bas/src/util/test/NTMakefile	2000-11-04 02:06:08.000000000 -0800=0A=
+++ upd/src/util/test/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -12,14 +12,13 @@=0A=
 	$(DESTDIR)\lib\afs\afsutil.lib \=0A=
 	$(DESTDIR)\lib\afs\afsreg.lib=0A=
 =0A=
-dirpath_test.exe: dirpath_test.obj $(LIBS)=0A=
+$(OJT)\dirpath_test.exe: $(OJT)\dirpath_test.obj $(LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
-test tests: dirpath_test.exe=0A=
+test tests: $(OJT)\dirpath_test.exe=0A=
 =0A=
 clean::=0A=
-	$(DEL) dirpath_test.exe=0A=
-=0A=
-=0A=
-=0A=
+	$(DEL) $(OJT)\dirpath_test.exe=0A=
 =0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/viced/NTMakefile =
upd/src/viced/NTMakefile=0A=
--- bas/src/viced/NTMakefile	2000-11-04 02:06:14.000000000 -0800=0A=
+++ upd/src/viced/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -26,13 +26,13 @@=0A=
 EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\fileserver.exe=0A=
 =0A=
 EXEOBJS =3D\=0A=
-	afsfileprocs.obj \=0A=
-	callback.obj \=0A=
-	host.obj \=0A=
-	physio.obj \=0A=
-	viced.obj \=0A=
-	AFS_component_version_number.obj \=0A=
-	fileserver.res=0A=
+	$(OJT)\afsfileprocs.obj \=0A=
+	$(OJT)\callback.obj \=0A=
+	$(OJT)\host.obj \=0A=
+	$(OJT)\physio.obj \=0A=
+	$(OJT)\viced.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\fileserver.res=0A=
 =0A=
 EXELIBS =3D \=0A=
 	$(DESTDIR)\lib\afs\afscmd.lib \=0A=
@@ -63,18 +63,19 @@=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
-fileserver.res: fileserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\fileserver.res: AFS_component_version_number.h=0A=
 =0A=
-=0A=
-install:  $(INCFILES) fileserver.res=0A=
+install:  $(INCFILES) $(OJT)\fileserver.res=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Build cbd - not generally distributed debugging program=0A=
-CBD =3D cbd.exe=0A=
+CBD =3D $(OJT)\cbd.exe=0A=
 =0A=
-cbd.obj: callback.c=0A=
-	$(C2OBJ) /Focbd.obj -DINTERPRET_DUMP callback.c=0A=
+$(OJT)\cbd.obj: callback.c=0A=
+	$(C2OBJ) $** -DINTERPRET_DUMP=0A=
 =0A=
-$(CBD): cbd.obj =0A=
+$(CBD): $(OJT)\cbd.obj =0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/viced/viced.c =
upd/src/viced/viced.c=0A=
--- bas/src/viced/viced.c	2003-02-15 06:17:16.000000000 -0800=0A=
+++ upd/src/viced/viced.c	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -243,13 +243,13 @@=0A=
 =0A=
 #if defined(AFS_HPUX_ENV)=0A=
     signo =3D SIGPOLL;=0A=
-#elsif defined(AFS_NT40_ENV)=0A=
+#elif defined(AFS_NT40_ENV)=0A=
     signo =3D SIGUSR2;=0A=
 #else=0A=
     signo =3D SIGXCPU;=0A=
 #endif=0A=
 =0A=
-#if defined(AFS_PTHREAD_ENV)=0A=
+#if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)=0A=
     softsig_signal(signo, CheckSignal_Signal);=0A=
 #else=0A=
     signal(signo, CheckSignal_Signal);=0A=
@@ -335,7 +335,7 @@=0A=
 =0A=
 static void setThreadId(char *s)=0A=
 {=0A=
-#ifdef AFS_PTHREAD_ENV=0A=
+#if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)=0A=
     /* set our 'thread-id' so that the host hold table works */=0A=
     MUTEX_ENTER(&rx_stats_mutex);   /* protects rxi_pthread_hinum */ =0A=
     ++rxi_pthread_hinum;=0A=
@@ -1442,7 +1442,7 @@=0A=
     ViceLog(0, ("File server starting\n"));=0A=
 #endif=0A=
 =0A=
-#if defined(AFS_PTHREAD_ENV)=0A=
+#if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)=0A=
     /* initialize the pthread soft signal handler thread */=0A=
     softsig_init();=0A=
 #endif=0A=
@@ -1696,7 +1696,7 @@=0A=
     /* Install handler to catch the shutdown signal;=0A=
      * bosserver assumes SIGQUIT shutdown=0A=
      */=0A=
-#if defined(AFS_PTHREAD_ENV)=0A=
+#if defined(AFS_PTHREAD_ENV) && !defined(AFS_NT40_ENV)=0A=
     softsig_signal(SIGQUIT, ShutDown_Signal);=0A=
 #else=0A=
     signal(SIGQUIT, ShutDown_Signal);=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/vlserver/NTMakefile =
upd/src/vlserver/NTMakefile=0A=
--- bas/src/vlserver/NTMakefile	2001-10-31 19:40:32.000000000 -0800=0A=
+++ upd/src/vlserver/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -14,7 +14,7 @@=0A=
 =
#########################################################################=
###=0A=
 # Definitions for installing header files=0A=
 =0A=
-INCFILEDIR =3D $(DESTDIR)\include =0A=
+INCFILEDIR =3D $(DESTDIR)\include\afs =0A=
 =0A=
 INCFILES =3D \=0A=
 	$(INCFILEDIR)\afs\vl_opcodes.h \=0A=
@@ -27,11 +27,10 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsvldb.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	vl_errors.obj \=0A=
-	vldbint.cs.obj \=0A=
-	vldbint.xdr.obj \=0A=
-	AFS_component_version_number.obj=0A=
-=0A=
+	$(OJT)\vl_errors.obj \=0A=
+	$(OJT)\vldbint.cs.obj \=0A=
+	$(OJT)\vldbint.xdr.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)  =0A=
 	$(LIBARCH) =0A=
@@ -42,19 +41,19 @@=0A=
 MT_LIBFILE =3D $(DESTDIR)\lib\afs\mtafsvldb.lib=0A=
 =0A=
 MT_LIBOBJS =3D\=0A=
-	vl_errors_mt.obj \=0A=
-	vldbint.cs_mt.obj \=0A=
-	vldbint.xdr_mt.obj \=0A=
-	AFS_component_version_number.obj=0A=
+	$(OJT)\vl_errors_mt.obj \=0A=
+	$(OJT)\vldbint.cs_mt.obj \=0A=
+	$(OJT)\vldbint.xdr_mt.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj=0A=
 =0A=
-vl_errors_mt.obj:vl_errors.c=0A=
-	$(C2OBJ) vl_errors.c -DAFS_PTHREAD_ENV /Fovl_errors_mt.obj=0A=
+$(OJT)\vl_errors_mt.obj:vl_errors.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV=0A=
 =0A=
-vldbint.cs_mt.obj:vldbint.cs.c=0A=
-	$(C2OBJ) vldbint.cs.c -DAFS_PTHREAD_ENV /Fovldbint.cs_mt.obj=0A=
+$(OJT)\vldbint.cs_mt.obj:vldbint.cs.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV=0A=
 =0A=
-vldbint.xdr_mt.obj:vldbint.xdr.c=0A=
-	$(C2OBJ) vldbint.xdr.c -DAFS_PTHREAD_ENV /Fovldbint.xdr_mt.obj=0A=
+$(OJT)\vldbint.xdr_mt.obj:vldbint.xdr.c=0A=
+	$(C2OBJ) $** -DAFS_PTHREAD_ENV=0A=
 =0A=
 $(MT_LIBFILE): $(MT_LIBOBJS)  =0A=
 	$(LIBARCH) =0A=
@@ -65,12 +64,12 @@=0A=
 VLSERVER =3D $(DESTDIR)\root.server\usr\afs\bin\vlserver.exe=0A=
 =0A=
 VLSERVER_EXEOBJS =3D\=0A=
-	vldbint.ss.obj \=0A=
-	vldbint.xdr.obj \=0A=
-	vlprocs.obj \=0A=
-	vlserver.obj \=0A=
-	vlutils.obj \=0A=
-	vlserver.res=0A=
+	$(OJT)\vldbint.ss.obj \=0A=
+	$(OJT)\vldbint.xdr.obj \=0A=
+	$(OJT)\vlprocs.obj \=0A=
+	$(OJT)\vlserver.obj \=0A=
+	$(OJT)\vlutils.obj \=0A=
+	$(OJT)\vlserver.res=0A=
 =0A=
 VLSERVER_EXECLIBS =3D \=0A=
 	$(DESTDIR)\lib\afsubik.lib \=0A=
@@ -95,13 +94,16 @@=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
-vlserver.res: vlserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\vlserver.res: AFS_component_version_number.h=0A=
+#	$(RC) $*.rc=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # rxgen on vldbint.xg=0A=
 =0A=
-vldbint.ss.c vldbint.cs.c vldbint.xdr.c =
$(DESTDIR)\include\afs\vldbint.h: vldbint.xg=0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
+=0A=
+vldbint.ss.c vldbint.cs.c vldbint.xdr.c vldbint.h: vldbint.xg=0A=
 	$(RXGEN) -x $**=0A=
 	$(COPY) vldbint.h $(DESTDIR)\include\afs\vldbint.h=0A=
 =0A=
@@ -109,7 +111,7 @@=0A=
 # Definitions for generating files via COMPILE_ET=0A=
 # Need an explicit copy here, since we've fussed with the general rule.=0A=
 =0A=
-$(INCFILEDIR)\afs\vlserver.h vl_errors.c: vl_errors.et vlserver.p.h=0A=
+vlserver.h vl_errors.c: vl_errors.et vlserver.p.h=0A=
 	$(DEL) vlserver.h vl_errors.c=0A=
 	$(COMPILE_ET) vl_errors  -h vlserver=0A=
 	$(COPY) vlserver.h $(INCFILEDIR)\afs\vlserver.h=0A=
@@ -123,7 +125,7 @@=0A=
 	$(DESTDIR)\lib\afs\afseventlog.lib \=0A=
 	$(DESTDIR)\lib\afs\afscmd.lib=0A=
 =0A=
-vldb_check.exe: vldb_check.obj $(VLDB_CHECK_LIBS)=0A=
+$(OJT)\vldb_check.exe: $(OJT)\vldb_check.obj $(VLDB_CHECK_LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
 =
#########################################################################=
###=0A=
@@ -132,14 +134,14 @@=0A=
 	$(DESTDIR)\lib\afs\afscmd.lib \=0A=
 	$(DESTDIR)\lib\afs\afspioctl.lib=0A=
 =0A=
-vlclient.exe: vlclient.obj  $(LIBFILE) $(VLSERVER_EXECLIBS) =
$(VLCLIENT_LIBS)=0A=
+$(OJT)\vlclient.exe: $(OJT)\vlclient.obj  $(LIBFILE) =
$(VLSERVER_EXECLIBS) $(VLCLIENT_LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
 =0A=
 =
#########################################################################=
###=0A=
 # install vlserver components=0A=
 =0A=
-install: $(INCFILES) $(LIBFILE) $(VLSERVER) vldb_check.exe vlclient.exe =
\=0A=
+install: $(INCFILES) $(LIBFILE) $(VLSERVER) $(OJT)\vldb_check.exe =
$(OJT)\vlclient.exe \=0A=
 	 $(MT_LIBFILE)=0A=
 =0A=
 install9x: install=0A=
@@ -150,5 +152,8 @@=0A=
 # clean up=0A=
 =0A=
 clean::=0A=
-	$(DEL) vldbint.cs.c vldbint.ss.c vldbint.xdr.c vldbint.h=0A=
-	$(DEL) vlserver.h vl_errors.c=0A=
+	$(DEL) vldbint.cs.c vldbint.ss.c vldbint.xdr.c vldbint.h$$ =0A=
+	$(DEL) vlserver.h vl_errors.c $(INCFILES)=0A=
+=0A=
+mkdir:=0A=
+=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/vol/NTMakefile =
upd/src/vol/NTMakefile=0A=
--- bas/src/vol/NTMakefile	2002-01-08 12:45:00.000000000 -0800=0A=
+++ upd/src/vol/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -32,18 +32,18 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsvol.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	common.obj \=0A=
-	clone.obj \=0A=
-	fssync.obj \=0A=
-	ntops.obj \=0A=
-	nuke.obj \=0A=
-	partition.obj \=0A=
-	purge.obj \=0A=
-	vnode.obj \=0A=
-	volume.obj \=0A=
-	vutil.obj \=0A=
-	ihandle.obj \=0A=
-	AFS_component_version_number.obj	=0A=
+	$(OJT)\common.obj \=0A=
+	$(OJT)\clone.obj \=0A=
+	$(OJT)\fssync.obj \=0A=
+	$(OJT)\ntops.obj \=0A=
+	$(OJT)\nuke.obj \=0A=
+	$(OJT)\partition.obj \=0A=
+	$(OJT)\purge.obj \=0A=
+	$(OJT)\vnode.obj \=0A=
+	$(OJT)\volume.obj \=0A=
+	$(OJT)\vutil.obj \=0A=
+	$(OJT)\ihandle.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj	=0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
@@ -70,10 +70,10 @@=0A=
 SALVAGER =3D $(DESTDIR)\root.server\usr\afs\bin\salvager.exe=0A=
 =0A=
 SALVAGER_EXEOBJS =3D\=0A=
-	vol-salvage.obj \=0A=
-	physio.obj \=0A=
-	AFS_component_version_number.obj \=0A=
-	salvager.res=0A=
+	$(OJT)\vol-salvage.obj \=0A=
+	$(OJT)\physio.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj \=0A=
+	$(OJT)\salvager.res=0A=
 =0A=
 $(SALVAGER): $(SALVAGER_EXEOBJS) $(EXEC_LIBS)=0A=
 	$(EXECONLINK)=0A=
@@ -84,16 +84,19 @@=0A=
 # build volinfo=0A=
 VOLINFO =3D $(DESTDIR)\root.server\usr\afs\bin\volinfo.exe=0A=
 =0A=
-$(VOLINFO): vol-info.obj physio.obj volinfo.res $(EXEC_LIBS)=0A=
+$(VOLINFO): $(OJT)\vol-info.obj $(OJT)\physio.obj $(OJT)\volinfo.res =
$(EXEC_LIBS)=0A=
 	$(EXECONLINK)=0A=
 	$(EXEPREP)=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # generate versioninfo resources=0A=
-salvager.res: salvager.rc AFS_component_version_number.h=0A=
+$(OJT)\salvager.res: salvager.rc AFS_component_version_number.h=0A=
 =0A=
-volinfo.res: volinfo.rc AFS_component_version_number.h=0A=
+$(OJT)\volinfo.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Install targets=0A=
 install: $(INCFILES) $(LIBFILE) $(SALVAGER) $(VOLINFO) =0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/vol/fssync.c =
upd/src/vol/fssync.c=0A=
--- bas/src/vol/fssync.c	2003-02-03 12:45:54.000000000 -0800=0A=
+++ upd/src/vol/fssync.c	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -82,6 +82,11 @@=0A=
 #include "volume.h"=0A=
 #include "partition.h"=0A=
 =0A=
+#ifdef osi_Assert=0A=
+#undef osi_Assert=0A=
+#endif=0A=
+#define osi_Assert(e) (void)(e)=0A=
+=0A=
 extern int LogLevel; /* Vice loglevel */=0A=
 int (*V_BreakVolumeCallbacks)();=0A=
 =0A=
diff -NurEB --exclude-from=3Dexclude bas/src/vol/test/NTMakefile =
upd/src/vol/test/NTMakefile=0A=
--- bas/src/vol/test/NTMakefile	2000-11-04 02:06:30.000000000 -0800=0A=
+++ upd/src/vol/test/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -24,15 +24,18 @@=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # build inode lister=0A=
-ILIST =3D ilist.exe=0A=
+ILIST =3D $(OJT)\ilist.exe=0A=
 =0A=
-$(ILIST): ilist_nt.obj $(EXEC_LIBS)=0A=
+$(ILIST): $(OJT)\ilist_nt.obj $(EXEC_LIBS)=0A=
 	$(EXECONLINK)=0A=
 =0A=
 =0A=
 =
#########################################################################=
###=0A=
 # build link table lister=0A=
-LTLIST =3D ltlist.exe=0A=
+LTLIST =3D $(OJT)\ltlist.exe=0A=
 =0A=
-$(LTLIST): ltlist.obj $(EXEC_LIBS)=0A=
+$(LTLIST): $(OJT)\ltlist.obj $(EXEC_LIBS)=0A=
 	$(EXECONLINK)=0A=
+=0A=
+mkdir:=0A=
+	=0A=
diff -NurEB --exclude-from=3Dexclude bas/src/volser/NTMakefile =
upd/src/volser/NTMakefile=0A=
--- bas/src/volser/NTMakefile	2001-10-31 19:40:34.000000000 -0800=0A=
+++ upd/src/volser/NTMakefile	2003-03-10 16:20:32.000000000 -0800=0A=
@@ -15,6 +15,7 @@=0A=
 INCFILEDIR =3D $(DESTDIR)\include\afs  # header file install directory=0A=
 =0A=
 INCFILES =3D \=0A=
+	$(INCFILEDIR)\volser_prototypes.h \=0A=
 	$(INCFILEDIR)\volser.h \=0A=
 	$(INCFILEDIR)\volint.h=0A=
 =0A=
@@ -29,14 +30,14 @@=0A=
 LIBFILE =3D $(DESTDIR)\lib\afs\afsvolser.lib=0A=
 =0A=
 LIBOBJS =3D\=0A=
-	lockprocs.obj \=0A=
-	volerr.obj \=0A=
-	volint.cs.obj \=0A=
-	volint.ss.obj \=0A=
-	volint.xdr.obj \=0A=
-	vsprocs.obj \=0A=
-	vsutils.obj \=0A=
-	AFS_component_version_number.obj =0A=
+	$(OJT)\lockprocs.obj \=0A=
+	$(OJT)\volerr.obj \=0A=
+	$(OJT)\volint.cs.obj \=0A=
+	$(OJT)\volint.ss.obj \=0A=
+	$(OJT)\volint.xdr.obj \=0A=
+	$(OJT)\vsprocs.obj \=0A=
+	$(OJT)\vsutils.obj \=0A=
+	$(OJT)\AFS_component_version_number.obj =0A=
 =0A=
 $(LIBFILE): $(LIBOBJS)=0A=
 	$(LIBARCH)=0A=
@@ -74,17 +75,17 @@=0A=
 VOLSERVER_EXEFILE =3D $(DESTDIR)\root.server\usr\afs\bin\volserver.exe=0A=
 =0A=
 VOLSERVER_EXEOBJS =3D \=0A=
-	common.obj \=0A=
-	dumpstuff.obj \=0A=
-	physio.obj \=0A=
-	volerr.obj \=0A=
-	volint.cs.obj \=0A=
-	volint.ss.obj \=0A=
-	volint.xdr.obj \=0A=
-	volmain.obj \=0A=
-	volprocs.obj \=0A=
-	voltrans.obj \=0A=
-	volserver.res=0A=
+	$(OJT)\common.obj \=0A=
+	$(OJT)\dumpstuff.obj \=0A=
+	$(OJT)\physio.obj \=0A=
+	$(OJT)\volerr.obj \=0A=
+	$(OJT)\volint.cs.obj \=0A=
+	$(OJT)\volint.ss.obj \=0A=
+	$(OJT)\volint.xdr.obj \=0A=
+	$(OJT)\volmain.obj \=0A=
+	$(OJT)\volprocs.obj \=0A=
+	$(OJT)\voltrans.obj \=0A=
+	$(OJT)\volserver.res=0A=
 	=0A=
 =0A=
 VOLSERVER_EXELIBS =3D \=0A=
@@ -102,13 +103,13 @@=0A=
 CL_VOS_EXEFILE =3D $(DESTDIR)\etc\vos.exe=0A=
 =0A=
 VOS_EXEOBJS =3D \=0A=
-	vos.obj \=0A=
-	vsprocs.obj \=0A=
-	vsutils.obj \=0A=
-	lockprocs.obj \=0A=
-	volint.xdr.obj \=0A=
-	volerr.obj \=0A=
-	vos.res=0A=
+	$(OJT)\vos.obj \=0A=
+	$(OJT)\vsprocs.obj \=0A=
+	$(OJT)\vsutils.obj \=0A=
+	$(OJT)\lockprocs.obj \=0A=
+	$(OJT)\volint.xdr.obj \=0A=
+	$(OJT)\volerr.obj \=0A=
+	$(OJT)\vos.res=0A=
 =0A=
 VOS_EXELIBS =3D \=0A=
 	$(DESTDIR)\lib\afsubik.lib \=0A=
@@ -125,14 +126,15 @@=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Generate versioninfo resources=0A=
-volserver.res: volserver.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
-vos.res: vos.rc AFS_component_version_number.h=0A=
-	$(RC) $*.rc=0A=
+$(OJT)\volserver.res: AFS_component_version_number.h=0A=
+=0A=
+$(OJT)\vos.res: AFS_component_version_number.h=0A=
 =0A=
 =
#########################################################################=
###=0A=
 # Definitions for generating files via RXGEN=0A=
 =0A=
+$(INCFILES):$$(@F)=0A=
+	 $(COPY)  $** $(INCFILEDIR)\.=0A=
 =0A=
 volint.h volint.cs.c volint.ss.c volint.xdr.c: volint.xg=0A=
 	$(RXGEN) -x $**=0A=
@@ -159,5 +161,8 @@=0A=
 # Local clean target; augments predefined clean target=0A=
 =0A=
 clean::=0A=
-	$(DEL) volerr.c volser.h=0A=
+	$(DEL) volerr.c volser.h $(INCFILES)=0A=
 	$(DEL) volint.cs.c volint.h volint.ss.c volint.xdr.c volser.h=0A=
+=0A=
+mkdir:=0A=
+	=0A=

------=_NextPart_000_0258_01C2E767.368AA9A0
Content-Type: application/x-zip-compressed;
	name="BuildScriptSnapShot2003-02-25.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="BuildScriptSnapShot2003-02-25.zip"

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
AQBUAAAAVfQAAAAA

------=_NextPart_000_0258_01C2E767.368AA9A0--