]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Improve Windows Build System By Using MT-safe Versions of Libraries
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 14 Jul 2009 01:24:58 +0000 (21:24 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Wed, 15 Jul 2009 03:46:56 +0000 (21:46 -0600)
For many years the Windows Build System has incorrectly mixed
some Pthread and LWP code.  One of the side effects of this
mixing was the need for the EXT2 extern macro definition in
src/rx/rx_globals.h which permitted the LWP compiled routines
to link with the Pthreaded afsrpc library.

This commit creates or modifies multi-threaded versions of various
libraries including mtafsubik.lib, mtafsutil.lib, mtafsvldb.lib,
and mtafsvol.lib.

All of the threaded servers now make use of these libraries.
This reduces the number of times that many source files were
recompiled for each server directory.

util_GetInt32 was defined in both src/util/volparse.c and
src/WINNT/afsd/fs_utils.c.  Now that mtafsutil.lib is being
used within src/WINNT/afsd there is no need to maintain the
duplicate copy.

The export list for afsauthent.def now includes all of the
ubik_PR_xxxx function variants and afsrpc.def now include
rxi_CallError as it is linked to outside the rx library.

The top-level NTMakefile has been modified to permit the
tree to build with the new header and library dependencies.

The threaded volserver which never built before now does.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/77
Verified-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Russ Allbery <rra@stanford.edu>
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Asanka Herath <asanka@secure-endpoints.com>
Verified-by: Asanka Herath <asanka@secure-endpoints.com>
Verified-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
13 files changed:
src/NTMakefile
src/WINNT/afsd/NTMakefile
src/WINNT/afsd/fs_utils.c
src/config/NTMakefile
src/libafsauthent/afsauthent.def
src/libafsrpc/afsrpc.def
src/rx/rx_globals.h
src/tbutc/NTMakefile
src/tviced/NTMakefile
src/tvolser/NTMakefile
src/ubik/NTMakefile
src/util/NTMakefile
src/vol/NTMakefile

index 59c640eb0ef93d583bd95a65909cb3287393965c..1e8bd86ed58ba5defd4cf2842d711c293c87dafe 100644 (file)
@@ -81,7 +81,21 @@ rx_headers:
        $(NTMAKE_HEADERS)
        $(CD) ..\..
 
-util: procmgmt_headers afsreg_headers lwp_headers rx_headers
+util_headers:
+     @echo ***** $@
+       $(DOCD) $(SRC)\util
+       $(CD) $(SRC)\util
+       $(NTMAKE_HEADERS)
+       $(CD) ..\..
+
+pthread: util_headers
+     @echo ***** $@
+       $(DOCD) $(SRC)\WINNT\$@
+       $(CD) $(SRC)\WINNT\$@
+       $(NTMAKE)
+       $(CD) ..\..\..
+
+util: procmgmt_headers afsreg_headers lwp_headers rx_headers pthread
      @echo ***** $@
        $(DOCD) $(SRC)\$@
        $(CD) $(SRC)\$@
@@ -186,14 +200,7 @@ rxkad: rxstat
        $(NTMAKE)
        $(CD) ..\..
 
-pthread: rxkad
-     @echo ***** $@
-       $(DOCD) $(SRC)\WINNT\$@
-       $(CD) $(SRC)\WINNT\$@
-       $(NTMAKE)
-       $(CD) ..\..\..
-
-procmgmt: pthread
+procmgmt: rxkad
      @echo ***** $@
        $(DOCD) $(SRC)\$@
        $(CD) $(SRC)\$@
@@ -423,7 +430,14 @@ tviced: libafsauthent
        $(NTMAKE)
        $(CD) ..\..
 
-tbutc:  tviced
+tvolser: tviced
+     @echo ***** $@
+       $(DOCD) $(SRC)\$@
+       $(CD) $(SRC)\$@
+       $(NTMAKE)
+       $(CD) ..\..
+
+tbutc:  tvolser
      @echo ***** $@
      $(DOCD) $(SRC)\$@
      $(CD) $(SRC)\$@
index 3ff512254987797d658f89779854a6f7b6df26ec..5a59510d196cae7d54340c97ac5916346768a9d0 100644 (file)
@@ -380,7 +380,7 @@ AFSD_EXELIBS =\
        $(DESTDIR)\lib\afs\mtafsvldb.lib \
        $(DESTDIR)\lib\afs\mtafsint.lib \
        $(DESTDIR)\lib\afsrpc.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib \
+       $(DESTDIR)\lib\afs\mtafsutil.lib \
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\libafsconf.lib \
        $(DESTDIR)\lib\afs\afsreg.lib \
@@ -453,10 +453,9 @@ KPASSWD_OBJS =\
 KPASSWD_LIBS =\
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
-        $(DESTDIR)\lib\afsrx.lib \
        $(DESTDIR)\lib\afs\afscmd.lib \
        $(DESTDIR)\lib\afsdes.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib
+       $(DESTDIR)\lib\afs\mtafsutil.lib
 
 $(OUT)\kpasswd.obj: $(KAUTH)/kpasswd.c
        $(C2OBJ) -DAFS_PTHREAD_ENV /Fo$@ $**
index 84c990a7f6929aa3618dbb94c5caadbdb7cd3966..9f18f787588d76c09e128f0204af1cae98fc9eb0 100644 (file)
@@ -140,51 +140,6 @@ static int getmeta(int ac) {
     return 0;
 }
 
-afs_int32 util_GetInt32 (char *as, afs_int32 *aval)
-{
-    register long total;
-    register int tc;
-    int base;
-    int negative;
-
-    total = 0; /* initialize things */
-    negative = 0;
-
-    /* skip over leading spaces */
-    while (tc = *as) {
-       if (tc != ' ' && tc != '\t') break;
-    }
-
-    /* compute sign */
-    if (*as == '-') {
-       negative = 1;
-       as++;   /* skip over character */
-    }
-
-    /* compute the base */
-    if (*as == '0') {
-       as++;
-       if (*as == 'x' || *as == 'X') {
-           base = 16;
-           as++;
-       }
-       else base = 8;
-    }
-    else base = 10;
-
-    /* compute the # itself */
-    while(tc = *as) {
-       if (!ismeta(base, tc)) return -1;
-       total *= base;
-       total += getmeta(tc);
-       as++;
-    }
-
-    if (negative) *aval = -total;
-    else *aval = total;
-    return 0;
-}
-
 char *cm_mount_root="afs"; 
 char *cm_slash_mount_root="/afs";
 char *cm_back_slash_mount_root="\\afs";
index 52b6a2a28e282ceb787aaea974d97bf2bcd802da..8b9aa88a49b4c8c6b84ba8d5bf118c7aa786f120 100644 (file)
@@ -200,6 +200,9 @@ idirs: doclink
 !      IF (!EXIST($(OJT)\tviced))
                $(MKDIR) $(OJT)\tviced
 !      ENDIF
+!      IF (!EXIST($(OJT)\tvolser))
+               $(MKDIR) $(OJT)\tvolser
+!      ENDIF
 !      IF (!EXIST($(OJT)\ubik))
                $(MKDIR) $(OJT)\ubik
 !      ENDIF
index 7cb09b09f6c9d19db47c5f0b5f76b650b613be95..cd33f9f628d8455416e149afbfc170a70c2d1717 100644 (file)
@@ -54,7 +54,7 @@ EXPORTS
        pthread_recursive_mutex_unlock                  @53
        grmutex                                         @54 DATA
        initAFSDirPath                                  @55
-       renamefile                                      @56
+;      renamefile                                      @56
        opendir                                         @57
        readdir                                         @58
        closedir                                        @59
@@ -116,3 +116,26 @@ EXPORTS
        ubik_RefreshConn                                @114
         rx_SetSecurityConfiguration                     @115
         pioctl_utf8                                     @116
+        ubik_PR_INewEntry                              @117
+        ubik_PR_WhereIsIt                              @118
+        ubik_PR_DumpEntry                              @119
+        ubik_PR_AddToGroup                             @120
+        ubik_PR_NameToID                               @121
+        ubik_PR_IDToName                               @122
+        ubik_PR_Delete                                 @123
+        ubik_PR_RemoveFromGroup                                @124
+        ubik_PR_GetCPS                                 @125
+        ubik_PR_NewEntry                               @126
+        ubik_PR_ListMax                                        @127
+        ubik_PR_SetMax                                 @128
+        ubik_PR_ListEntry                              @129
+        ubik_PR_ChangeEntry                            @130
+        ubik_PR_ListElements                           @131
+        ubik_PR_IsAMemberOf                            @132
+        ubik_PR_SetFieldsEntry                         @133
+        ubik_PR_ListOwned                              @134
+        ubik_PR_GetCPS2                                        @135
+        ubik_PR_GetHostCPS                             @136
+        ubik_PR_UpdateEntry                            @137
+        ubik_PR_ListEntries                            @138
+        ubik_PR_ListSuperGroups                                @139
index f0e7d4e80aa23f7bb0c23a92c416ef61e7a7f69d..e727d04cb7c12a30291f3d7528e417ad81e2ddb3 100644 (file)
@@ -246,6 +246,7 @@ EXPORTS
         rx_WriteProc32                          @251
         xdr_free                                @252
         RXAFS_FsCmd                             @253
+        rxi_CallError                           @254
 
 ; for performance testing
         rx_TSFPQGlobSize                        @2001 DATA
index 2ebeea3a6b4ebefc8759dec07f5d2ffbce23c55f..94b544fed10ba9198cc884ce237b5c7e82c13780 100644 (file)
 #define RX_STATS_INTERLOCKED 1
 #if defined(AFS_PTHREAD_ENV)
 #define EXT __declspec(dllimport) extern
-#else
+#else /* AFS_PTHREAD_ENV */
 #define        EXT extern
-#endif
-#define EXT2 __declspec(dllimport) extern
-#else
-#define EXT2 extern
+#endif /* AFS_PTHREAD_ENV */
+#else /* AFS_NT40_ENV */
 #define EXT extern
-#endif
+#endif /* AFS_NT40_ENV */
 #endif /* !GLOBALSINIT */
 
 /* Basic socket for client requests; other sockets (for receiving server requests) are in the service structures */
@@ -617,7 +615,7 @@ EXT afs_kmutex_t rx_pthread_mutex;  /* used to protect pthread counters */
 EXT afs_kmutex_t rx_packets_mutex;     /* used to protect packet counters */
 #endif
 
-EXT2 int rx_enable_stats GLOBALSINIT(0);
+EXT int rx_enable_stats GLOBALSINIT(0);
 
 /*
  * Set this flag to enable the listener thread to trade places with an idle
index 11b4500baf02fb41d71775fa61981c7d11ea6223..bd04c807a270a5885bd5346d0bbf26787a8cae43 100644 (file)
@@ -29,7 +29,7 @@ FSINT   =..\fsint
 BUTM    =..\butm
 BUTC    =..\butc
 BUCOORD = ..\bucoord
-VOLSER  = ..\volser
+VOLSER  = ..\tvolser
 
 BUCOORDOBJS = $(OUT)\ubik_db_if.obj \
     $(OUT)\$(BUCOORD)\volstub.obj \
@@ -37,16 +37,6 @@ BUCOORDOBJS = $(OUT)\ubik_db_if.obj \
        $(OUT)\$(BUCOORD)\status.obj \
     $(OUT)\$(BUCOORD)\bucoord_errs.obj
 
-VOLSERLIBOBJ = $(OUT)\$(VOLSER)\volint.cs.obj  \
-               $(OUT)\vsprocs.obj \
-               $(OUT)\$(VOLSER)\vsutils.obj \
-               $(OUT)\$(VOLSER)\lockprocs.obj  \
-               $(OUT)\$(VOLSER)\volint.xdr.obj \
-               $(OUT)\$(VOLSER)\volerr.obj  \
-               $(OUT)\$(VOLSER)\volint.ss.obj  \
-               $(OUT)\AFS_component_version_number.obj 
-VOLSERLIBS  = $(OUT)\afstvolser.lib
-
 LWPOBJS     = $(OUT)\lock.obj
 
 BUTMOBJS    = $(OUT)\file_tm.obj \
@@ -72,14 +62,14 @@ BUTCRES = $(OUT)\butc.res
 BUTCINCLUDE= -I. -I$(DESTDIR)\include -I$(XBSADIR)
 BUTCLIBS=$(DESTDIR)\lib\afs\afsbudb.lib  \
             $(DESTDIR)\lib\afs\afsbubasics.lib \
-            $(VOLSERLIBS) \
+            $(DESTDIR)\lib\afs\afstvolser.lib \
              $(BUTMLIBS) \
-            $(DESTDIR)\lib\afs\afsvldb.lib \
+            $(DESTDIR)\lib\afs\mtafsvldb.lib \
             $(DESTDIR)\lib\afs\afskauth.lib \
             $(DESTDIR)\lib\afs\afsauth.lib \
             $(DESTDIR)\lib\afsrpc.lib \
              $(DESTDIR)\lib\afsrxkad.lib \
-            $(DESTDIR)\lib\afsubik.lib \
+            $(DESTDIR)\lib\afs\mtafsubik.lib \
              $(DESTDIR)\lib\afs\afsutil.lib \
              $(DESTDIR)\lib\afs\afsusd.lib \
             $(DESTDIR)\lib\afs\afspioctl.lib \
@@ -147,16 +137,6 @@ $(OUT)\butc_xbsa.obj: $(BUTC)/butc_xbsa.c
 $(OUT)\ubik_db_if.obj: $(BUCOORD)/ubik_db_if.c
        $(C2OBJ) -I$(BUCOORD) $**
 
-#----------------------------------------------- VOLSER
-# Build the afstvolser.lib library here. The file compiled
-# for is is vsprocs.c. The rest are from the VOLSER dir.
-
-$(OUT)\afstvolser.lib: $(VOLSERLIBOBJ)
-       $(LIBARCH)
-
-$(OUT)\vsprocs.obj: $(VOLSER)/vsprocs.c
-       $(C2OBJ) $**
-
 #----------------------------------------------- LWP
 
 $(OUT)\lock.obj: $(LWP)/lock.c
index 5acfd10da790c12531472a6867e51819ad70e27d..0cf3ebe55d748aaae6c1ea9479b7da5da56e7b4c 100644 (file)
@@ -20,12 +20,9 @@ EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\fileserver.exe
 
 VICED = ..\viced
 TVICED = .
-VLSERVER = ..\vlserver
 LWP = ..\lwp
 LIBACL = ..\libacl
-UTIL = ..\util
 DIR = ..\dir
-VOL = ..\vol
 FSINT = ..\fsint
 RX = ..\rx
 
@@ -33,28 +30,21 @@ RXOBJS = $(OUT)\xdr_int64.obj \
          $(OUT)\xdr_int32.obj
 
 VICEDOBJS = $(OUT)\viced.obj $(OUT)\afsfileprocs.obj $(OUT)\host.obj $(OUT)\physio.obj $(OUT)\callback.obj 
+
 TVICEDRES =  $(OUT)\fileserver.res
 
 TVICEDOBJS = $(OUT)\serialize_state.obj
 
-VLSERVEROBJS = $(OUT)\vldbint.cs.obj $(OUT)\vldbint.xdr.obj
-
 LWPOBJS = $(OUT)\lock.obj $(OUT)\fasttime.obj $(OUT)\threadname.obj
 
 LIBACLOBJS = $(OUT)\aclprocs.obj $(OUT)\netprocs.obj
 
-UTILOBJS = $(OUT)\assert.obj $(OUT)\uuid.obj $(OUT)\serverLog.obj $(OUT)\fileutil.obj 
-
 DIROBJS = $(OUT)\buffer.obj $(OUT)\dir.obj $(OUT)\salvage.obj
 
-VOLOBJS = $(OUT)\vnode.obj $(OUT)\volume.obj $(OUT)\vutil.obj $(OUT)\partition.obj \
-         $(OUT)\clone.obj $(OUT)\common.obj $(OUT)\ihandle.obj $(OUT)\ntops.obj \
-         $(OUT)\fssync-server.obj $(OUT)\fssync-client.obj $(OUT)\daemon_com.obj
-
 FSINTOBJS = $(OUT)\afsaux.obj $(OUT)\afscbint.cs.obj $(OUT)\afsint.ss.obj $(OUT)\afsint.xdr.obj
 
-EXEOBJS = $(VICEDOBJS) $(TVICEDRES) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) \
-        $(UTILOBJS) $(DIROBJS) $(VOLOBJS) $(FSINTOBJS) $(RXOBJS) #$(TVICEDOBJS)
+EXEOBJS = $(VICEDOBJS) $(TVICEDRES) $(LWPOBJS) $(LIBACLOBJS) \
+         $(DIROBJS) $(FSINTOBJS) $(RXOBJS) #$(TVICEDOBJS)
 
 noversion: install
 
@@ -64,16 +54,13 @@ $(RXOBJS): $(RX)\$$(@B).c
        $(C2OBJ) -I$(RX) $**
 
 $(VICEDOBJS): $(VICED)\$$(@B).c
-       $(C2OBJ) -I$(VICED) -I$(UTIL) $**
+       $(C2OBJ) -I$(VICED) $**
 
 $(TVICEDRES): $(VICED)\fileserver.rc AFS_component_version_number.h
        $(RC) /fo $(TVICEDRES) $(VICED)\fileserver.rc 
 
 $(TVICEDOBJS): $(TVICED)\$$(@B).c
-       $(C2OBJ) -I$(TVICED) -I$(UTIL) $**
-
-$(UTILOBJS): $(UTIL)\$$(@B).c
-       $(C2OBJ) -I$(UTIL) $**
+       $(C2OBJ) -I$(TVICED) $**
 
 $(LWPOBJS): $(LWP)\$$(@B).C
        $(C2OBJ) -I$(LWP) $**
@@ -81,21 +68,14 @@ $(LWPOBJS): $(LWP)\$$(@B).C
 $(LIBACLOBJS): $(LIBACL)\$$(@B).C
        $(C2OBJ) -I$(LIBACL) $**
 
-$(VLSERVEROBJS): $(VLSERVER)\$$(@B).C
-       $(C2OBJ) -I$(VLSERVER) $**
-
 $(DIROBJS): $(DIR)\$$(@B).C
        $(C2OBJ) -I$(DIR) $**
 
-$(VOLOBJS): $(VOL)\$$(@B).C
-       $(C2OBJ) -I$(VOL) $**
-
 $(FSINTOBJS): $(FSINT)\$$(@B).C
        $(C2OBJ) -I$(FSINT) $**
 
 EXELIBS = \
        $(DESTDIR)\lib\afsauthent.lib \
-       $(DESTDIR)\lib\afs\afsprot.lib \
        $(DESTDIR)\lib\afsrpc.lib \
        $(DESTDIR)\lib\afs\afscmd.lib \
        $(DESTDIR)\lib\afs\afsaudit.lib \
@@ -103,7 +83,9 @@ EXELIBS = \
        $(DESTDIR)\lib\afs\afsreg.lib \
        $(DESTDIR)\lib\afs\afsprocmgmt.lib \
        $(DESTDIR)\lib\afs\afseventlog.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib \
+       $(DESTDIR)\lib\afs\mtafsutil.lib \
+        $(DESTDIR)\lib\afs\mtafsvol.lib \
+        $(DESTDIR)\lib\afs\mtafsvldb.lib \
        $(DESTDIR)\lib\afspthread.lib
 
 $(EXEFILE): $(EXEOBJS) $(EXELIBS)
index 64bcb2d3b7c8d20bda0e9e41ad1575118c0d92cf..cad8a5521500f72f7ee1309906ae750a52207ce6 100644 (file)
@@ -10,15 +10,16 @@ AFSDEV_AUXCDEFINES = -DAFS_PTHREAD_ENV -DRXDEBUG -DFSSYNC_BUILD_CLIENT
 RELDIR=tvolser
 !INCLUDE ..\config\NTMakefile.$(SYS_NAME)
 !INCLUDE ..\config\NTMakefile.version
+
 SRC_DIR = ..\volser
 
-VICED = ..\viced
+VOLSER = ..\volser
+TVOLSER = .
 VLSERVER = ..\vlserver
 LWP = ..\lwp
 LIBACL = ..\libacl
 UTIL = ..\util
 DIR = ..\dir
-VOLSER = ..\volser
 VOL = ..\vol
 FSINT = ..\fsint
 RX = ..\rx
@@ -33,87 +34,115 @@ INCFILES = \
        $(INCFILEDIR)\volser.h \
        $(INCFILEDIR)\volint.h
 
-
 LOCAL_INCFILES = \
        volser.h \
        volint.h
 
+############################################################################
+# Build afstvolser.lib
+
+LIBFILE = $(DESTDIR)\lib\afs\afstvolser.lib
+
+LIBOBJS = $(OUT)\volint.cs.obj  \
+          $(OUT)\vsprocs.obj \
+          $(OUT)\vsutils.obj \
+          $(OUT)\lockprocs.obj  \
+          $(OUT)\volint.xdr.obj \
+          $(OUT)\volerr.obj  \
+          $(OUT)\volint.ss.obj  \
+          $(OUT)\AFS_component_version_number.obj 
+
+$(LIBOBJS): $(VOLSER)\$$(@B).c
+        $(C2OBJ) -I$(TVOLSER) -I$(UTIL) $**
+
+$(LIBFILE): $(LIBOBJS)
+       $(LIBARCH)
+
+
 ############################################################################
 # Build volserver
 
 VOLSERVER_EXEFILE = $(DESTDIR)\root.server\usr\afs\bin\volserver.exe
 
-VOLSEROBJS=$(OUT)\volmain.obj $(OUT)\volprocs.obj $(OUT)\physio.obj $(OUT)\voltrans.obj $(OUT)\volerr.obj $(OUT)\volint.cs.obj $(OUT)\dumpstuff.obj  $(OUT)\volint.ss.obj $(OUT)\volint.xdr.obj $(OUT)\vscommon.obj
+VOLSEROBJS=$(OUT)\volmain.obj $(OUT)\volprocs.obj $(OUT)\physio.obj $(OUT)\voltrans.obj $(OUT)\dumpstuff.obj
 
-LWPOBJS=$(OUT)\lock.obj $(OUT)\threadname.obj
+LWPOBJS=$(OUT)\lock.obj $(OUT)\threadname.obj $(OUT)\fasttime.obj
 
 LIBACLOBJS=$(OUT)\aclprocs.obj $(OUT)\netprocs.obj
 
-UTILOBJS=$(OUT)\assert.obj $(OUT)\uuid.obj $(OUT)\serverLog.obj $(OUT)\fileutil.obj $(OUT)\netutils.obj $(OUT)\dirpath.obj $(OUT)\volparse.obj $(OUT)\flipbase64.obj $(OUT)\softsig.obj
-
 DIROBJS=$(OUT)\buffer.obj $(OUT)\dir.obj $(OUT)\salvage.obj
 
-VOLOBJS= $(OUT)\vnode.obj $(OUT)\volume.obj $(OUT)\vutil.obj $(OUT)\partition.obj $(OUT)\fssync-client.obj $(OUT)\purge.obj $(OUT)\clone.obj $(OUT)\devname.obj $(OUT)\common.obj $(OUT)\ihandle.obj $(OUT)\listinodes.obj $(OUT)\namei_ops.obj $(OUT)\nuke.obj $(OUT)\salvsync-client.obj $(OUT)\daemon_com.obj
-
-
-VOLSERVER_EXEOBJS = $(VOLSEROBJS) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) $(UTILOBJS) $(DIROBJS) $(VOLOBJS) $(FSINTOBJS)
+VOLSERVER_EXEOBJS = $(VOLSEROBJS) $(VLSERVEROBJS) $(LWPOBJS) $(LIBACLOBJS) $(DIROBJS) $(FSINTOBJS) $(OUT)\vscommon.obj
 
 VOLSERVER_EXELIBS = \
        $(DESTDIR)\lib\afsauthent.lib \
        $(DESTDIR)\lib\afsrpc.lib \
+        $(DESTDIR)\lib\afs\afstvolser.lib \
+        $(DESTDIR)\lib\afs\mtafsvol.lib \
        $(DESTDIR)\lib\afs\afscmd.lib \
        $(DESTDIR)\lib\afs\afsaudit.lib \
        $(DESTDIR)\lib/afs/afscom_err.lib \
        $(DESTDIR)\lib\afs\afsreg.lib \
        $(DESTDIR)\lib\afs\afsprocmgmt.lib \
        $(DESTDIR)\lib\afs\afseventlog.lib \
-       $(DESTDIR)\lib\afs\afsutil.lib \
+       $(DESTDIR)\lib\afs\mtafsutil.lib \
        $(DESTDIR)\lib\afspthread.lib
 
 $(VOLSERVER_EXEFILE): $(VOLSERVER_EXEOBJS) $(VOLSERVER_EXELIBS) 
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
         $(CODESIGN_USERLAND)
 
+$(OUT)\vscommon.obj: $(VOLSER)\common.c
+        $(C2OBJ) /Fo$(OUT)\vscommon.obj -I$(VOLSER) -I$(UTIL) $**
+
 $(VOLSEROBJS): $(VOLSER)\$$(@B).c
         $(C2OBJ) -I$(VOLSER) -I$(UTIL) $**
 
-$(VICEDOBJS): $(VICED)\$$(@B).c
-       $(C2OBJ) -I$(VICED) -I$(UTIL) $**
-
-$(UTILOBJS): $(UTIL)\$$(@B).c
-       $(C2OBJ) -I$(UTIL) $**
-
 $(LWPOBJS): $(LWP)\$$(@B).C
        $(C2OBJ) -I$(LWP) $**
 
 $(LIBACLOBJS): $(LIBACL)\$$(@B).C
        $(C2OBJ) -I$(LIBACL) $**
 
-$(UTILOBJS): $(UTILACL)\$$(@B).C
-       $(C2OBJ) -I$(UTILACL) $**
-
-$(VLSERVEROBJS): $(VLSERVER)\$$(@B).C
-       $(C2OBJ) -I$(VLSERVER) $**
-
 $(DIROBJS): $(DIR)\$$(@B).C
        $(C2OBJ) -I$(DIR) $**
 
-$(VOLOBJS): $(VOL)\$$(@B).C
-       $(C2OBJ) -I$(VOL) $**
-
-$(FSINTOBJS): $(FSINT)\$$(@B).C
-       $(C2OBJ) -I$(FSINT) $**
-
 ############################################################################
 # Generate versioninfo resources
 $(OUT)\volserver.res: AFS_component_version_number.h
 
+############################################################################
+# Definitions for generating files via RXGEN
+
+volint.cs.c: $(VOLSER)\volint.xg volint.h
+       $(RXGEN) -x -C -o $@ $(VOLSER)\volint.xg
+
+volint.ss.c: $(VOLSER)\volint.xg volint.h
+       $(RXGEN) -x -S -o $@ $(VOLSER)\volint.xg
+
+volint.xdr.c: $(VOLSER)\volint.xg volint.h
+       $(RXGEN) -x -c -o $@ $(VOLSER)\volint.xg
+
+volint.h: $(VOLSER)\volint.xg
+       $(RXGEN) -x -h -o $@ $(VOLSER)\volint.xg
+
+############################################################################
+# Definitions for generating files via COMPILE_ET
+
+volser.h volerr.c: $(VOLSER)\volerr.et $(VOLSER)\volser.p.h
+       $(DEL) volerr.c volser.h
+        $(COPY) $(VOLSER)\volerr.et .
+        $(COPY) $(VOLSER)\volser.p.h .
+       $(COMPILE_ET) volerr -h volser
+
 ############################################################################
 # Install target; primary makefile target
 
-install: $(LOCAL_INCFILES) $(LIBFILE) $(VOLSERVER_EXEFILE) $(CL_VOS_EXEFILE) \
+install_lib: $(LIBFILE) 
+
+install: install_lib $(VOLSERVER_EXEFILE) $(CL_VOS_EXEFILE) \
                $(INCFILES)
 
 
@@ -121,7 +150,7 @@ install: $(LOCAL_INCFILES) $(LIBFILE) $(VOLSERVER_EXEFILE) $(CL_VOS_EXEFILE) \
 # Local clean target; augments predefined clean target
 
 clean::
-       $(DEL) volerr.c volser.h $(INCFILES)
-       $(DEL) volint.cs.c volint.h volint.ss.c volint.xdr.c volser.h
+       $(DEL) volerr.c volser.h volerr.et volser.p.h $(INCFILES)
+       $(DEL) volint.cs.c volint.h volint.ss.c volint.xdr.c
 
 mkdir:
index ac1a40cc3e3e457262e04adb610c33f009fbae93..17118b378c16aae1f518cb04015e800898e83652 100644 (file)
@@ -47,6 +47,44 @@ LIBOBJS =\
 $(LIBFILE): $(LIBOBJS)
        $(LIBARCH) 
 
+############################################################################
+# build mtafsubik.lib
+
+MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsubik.lib
+
+MT_LIBOBJS =\
+       $(OUT)\disk.obj \
+       $(OUT)\remote.obj \
+       $(OUT)\beacon.obj \
+       $(OUT)\recovery.obj \
+       $(OUT)\ubik.obj \
+       $(OUT)\uinit.obj \
+       $(OUT)\vote.obj \
+       $(OUT)\lock.obj \
+       $(OUT)\phys.obj \
+       $(OUT)\ubik_int_mt.cs.obj \
+       $(OUT)\ubik_int_mt.ss.obj \
+       $(OUT)\ubik_int_mt.xdr.obj \
+       $(OUT)\ubikcmd.obj \
+       $(OUT)\ubikclient.obj \
+       $(OUT)\uerrors_mt.obj   \
+       $(OUT)\AFS_component_version_number.obj
+
+$(OUT)\uerrors_mt.obj:uerrors.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\ubik_int_mt.cs.obj:ubik_int.cs.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\ubik_int_mt.ss.obj:ubik_int.ss.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\ubik_int_mt.xdr.obj:ubik_int.xdr.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(MT_LIBFILE): $(MT_LIBOBJS)  
+       $(LIBARCH) 
+
 ############################################################################
 # Definitions for building a EXE.
 
@@ -112,7 +150,7 @@ uerrors.c ubik.h: uerrors.et ubik.p.h
 
 install9X: $(INCFILES) $(LIBFILE)
 
-install: $(INCFILES) $(LIBFILE)  $(CL_UDBG_EXEFILE)
+install: $(INCFILES) $(LIBFILE) $(MT_LIBFILE) $(CL_UDBG_EXEFILE)
 
 
 clean::
index cdcbf79be1b79b1ff048e47ce8f7262dd830941e..6cd906366369e0d74eda11cc4aae51f0b6c8d019 100644 (file)
@@ -27,7 +27,8 @@ INCFILES =\
        $(INCFILEDIR)\ktime.h \
        $(INCFILEDIR)\fileutil.h \
        $(INCFILEDIR)\afsutil_prototypes.h \
-       $(INCFILEDIR)\secutil_nt.h
+       $(INCFILEDIR)\secutil_nt.h \
+        $(INCFILEDIR)\softsig.h
 
 $(DESTDIR)\include\afs\dirent.h: dirent_nt.h
        $(COPY) $** $@
@@ -37,6 +38,8 @@ $(DESTDIR)\include\afs\dirpath.h: dirpath_nt.h
 
 LIBFILE = $(DESTDIR)\lib\afs\afsutil.lib
 
+MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsutil.lib
+
 LIBOBJS = \
        $(OUT)\assert.obj \
        $(OUT)\base32.obj \
@@ -62,13 +65,49 @@ LIBOBJS = \
        $(OUT)\fileutil.obj \
        $(OUT)\secutil_nt.obj
 
+MT_LIBOBJS = \
+       $(OUT)\assert.obj \
+       $(OUT)\base32.obj \
+       $(OUT)\casestrcpy.obj \
+       $(OUT)\get_krbrlm.obj \
+       $(OUT)\hostparse.obj \
+       $(OUT)\isathing.obj \
+       $(OUT)\kreltime.obj \
+       $(OUT)\ktime.obj \
+        $(OUT)\netutils.obj \
+       $(OUT)\regex.obj \
+       $(OUT)\readdir_nt.obj \
+       $(OUT)\serverLog_mt.obj \
+       $(OUT)\snprintf.obj \
+       $(OUT)\strlcat.obj \
+       $(OUT)\uuid.obj \
+       $(OUT)\volparse.obj \
+       $(OUT)\winsock_nt.obj \
+       $(OUT)\errmap_nt.obj \
+       $(OUT)\dirpath_mt.obj \
+       $(OUT)\strnlen.obj \
+       $(OUT)\strlcpy.obj \
+       $(OUT)\fileutil.obj \
+       $(OUT)\secutil_nt.obj
+
 $(LIBOBJS): $$(@B).c
     $(C2OBJ) $**
 
+$(OUT)\dirpath_mt.obj:dirpath.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\serverLog_mt.obj:serverLog.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
 $(LIBFILE): $(LIBOBJS)
        $(LIBARCH)
 
-install: $(INCFILES) $(LIBOBJS) $(LIBFILE)
+$(MT_LIBFILE): $(MT_LIBOBJS)
+       $(LIBARCH)
+
+install_headers: $(INCFILES) 
+
+install: install_headers $(LIBOBJS) $(LIBFILE) $(MT_LIBFILE)
 
 install9x: install
 
index 4141402247a98612fbf98ce44a40986031f292fb..c48d7fdbb58b5c62a3a8deb57be062fcd6a32882 100644 (file)
@@ -36,6 +36,8 @@ INCFILES =\
 
 LIBFILE = $(DESTDIR)\lib\afs\afsvol.lib
 
+MT_LIBFILE = $(DESTDIR)\lib\afs\mtafsvol.lib
+
 LIBOBJS =\
        $(OUT)\common.obj \
        $(OUT)\clone.obj \
@@ -52,10 +54,57 @@ LIBOBJS =\
        $(OUT)\ihandle.obj \
        $(OUT)\AFS_component_version_number.obj 
 
+MT_LIBOBJS =\
+       $(OUT)\common.obj \
+       $(OUT)\clone_mt.obj \
+       $(OUT)\fssync-client_mt.obj \
+       $(OUT)\fssync-server_mt.obj \
+       $(OUT)\daemon_com_mt.obj \
+       $(OUT)\ntops.obj \
+       $(OUT)\nuke_mt.obj \
+       $(OUT)\partition_mt.obj \
+       $(OUT)\purge.obj \
+       $(OUT)\vnode_mt.obj \
+       $(OUT)\volume_mt.obj \
+       $(OUT)\vutil_mt.obj \
+       $(OUT)\ihandle_mt.obj \
+       $(OUT)\AFS_component_version_number.obj 
+
+$(OUT)\clone_mt.obj:clone.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\daemon_com_mt.obj:daemon_com.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\fssync-client_mt.obj:fssync-client.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\fssync-server_mt.obj:fssync-server.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\ihandle_mt.obj:ihandle.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\nuke_mt.obj:nuke.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\partition_mt.obj:partition.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\vnode_mt.obj:vnode.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\volume_mt.obj:volume.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
+$(OUT)\vutil_mt.obj:vutil.c
+       $(C2OBJ) $** -DAFS_PTHREAD_ENV
+
 $(LIBFILE): $(LIBOBJS)
        $(LIBARCH)
 
-
+$(MT_LIBFILE): $(MT_LIBOBJS)
+       $(LIBARCH)
 
 ############################################################################
 # External libraries
@@ -133,7 +182,7 @@ $(OUT)\volinfo.res: AFS_component_version_number.h
 
 ############################################################################
 # Install targets
-install: $(INCFILES) $(LIBFILE) $(SALVAGER) $(VOLINFO) 
+install: $(INCFILES) $(LIBFILE) $(MT_LIBFILE) $(SALVAGER) $(VOLINFO) 
 
 mkdir: