Improve Windows Build System By Using MT-safe Versions of Libraries
[openafs.git] / src / tvolser / NTMakefile
index 64bcb2d..cad8a55 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: