windows-libafsrpc-makefile-20081227
[openafs.git] / src / libafsrpc / NTMakefile
1 # Copyright 2000, International Business Machines Corporation and others.
2 # All Rights Reserved.
3
4 # This software has been released under the terms of the IBM Public
5 # License.  For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
7
8 RELDIR=libafsrpc
9 AFSDEV_AUXCDEFINES = $(AFSDEV_AUXCDEFINES) -DNOGDI -DWIN32_LEAN_AND_MEAN
10 !include ..\config\NTMakefile.$(SYS_NAME)
11 !include ..\config\NTMakefile.version
12
13 RX = ..\rx
14 RXSTAT = ..\rxstat
15 RXKAD = ..\rxkad
16 DES = ..\des
17 UTIL = ..\util
18 FSINT = ..\fsint
19 COMERR = ..\comerr
20
21 # Additional debugging flag for RX.
22 AFSDEV_AUXCDEFINES = $(AFSDEV_AUXCDEFINES) -DRXDEBUG -DAFS_PTHREAD_ENV
23
24 LIBFILE = $(DESTDIR)\lib\afsrpc.dll
25
26 # Object files by category.
27 MULTIOBJS = $(OUT)\rx_multi.obj
28
29 XDROBJS = $(OUT)\xdr.obj $(OUT)\xdr_array.obj $(OUT)\xdr_arrayn.obj $(OUT)\xdr_float.obj $(OUT)\xdr_mem.obj \
30         $(OUT)\xdr_rec.obj  $(OUT)\xdr_refernce.obj $(OUT)\xdr_rx.obj $(OUT)\xdr_update.obj \
31         $(OUT)\xdr_afsuuid.obj $(OUT)\xdr_int64.obj $(OUT)\xdr_int32.obj
32
33 RXOBJS = $(OUT)\rx_event.obj $(OUT)\rx_user.obj $(OUT)\rx_pthread.obj $(OUT)\rx.obj $(OUT)\rx_clock_nt.obj \
34         $(OUT)\rx_null.obj $(OUT)\rx_globals.obj $(OUT)\rx_getaddr.obj $(OUT)\rx_misc.obj $(OUT)\rx_packet.obj \
35         $(OUT)\rx_rdwr.obj $(OUT)\rx_trace.obj $(OUT)\rx_xmit_nt.obj $(OUT)\rx_conncache.obj
36
37 RXSTATBJS = $(OUT)\rxstat.obj $(OUT)\rxstat.ss.obj $(OUT)\rxstat.xdr.obj $(OUT)\rxstat.cs.obj
38
39 LIBRXKAD_OBJS = $(OUT)\rxkad_client.obj $(OUT)\rxkad_server.obj $(OUT)\rxkad_common.obj $(OUT)\ticket.obj \
40         $(OUT)\ticket5.obj $(OUT)\crc.obj $(OUT)\md4.obj $(OUT)\md5.obj $(OUT)\AFS_component_version_number.obj
41
42 LIBRXKAD_REGOBJS = $(OUT)\bg-fcrypt.obj
43
44 DESOBJS_INT = $(OUT)\des.obj $(OUT)\cbc_encrypt.obj $(OUT)\pcbc_encrypt.obj $(OUT)\cksum.obj $(OUT)\new_rnd_key.obj \
45         $(OUT)\key_sched.obj $(OUT)\debug_decl.obj $(OUT)\quad_cksum.obj $(OUT)\key_parity.obj \
46         $(OUT)\weak_key.obj $(OUT)\strng_to_key.obj $(OUT)\util.obj
47
48 DESOBJS = $(DESOBJS_INT) $(OUT)\misc.obj 
49
50 UTILOBJS = $(OUT)\casestrcpy.obj $(OUT)\winsock_nt.obj
51
52 COMERRBJS = $(OUT)\error_msg.obj $(OUT)\et_name.obj $(OUT)\com_err.obj
53
54 FSINTBJS = $(OUT)\afsint.cs.obj $(OUT)\afsint.xdr.obj $(OUT)\afscbint.cs.obj $(OUT)\afscbint.xdr.obj \
55         $(OUT)\afsaux.obj
56
57 DLLOBJS = $(MULTIOBJS) $(RXOBJS) $(XDROBJS) $(RXSTATBJS) $(LIBRXKAD_OBJS) \
58         $(DESOBJS) $(LIBRXKAD_REGOBJS) $(UTILBJS) $(COMERRBJS) \
59         $(FSINTBJS) $(OUT)\afsrpc.res
60
61 $(MULTIOBJS) $(RXOBJS) $(XDROBJS):$(RX)\$$(@B).c
62         $(C2OBJ) $** -I$(RX) 
63
64 $(RXSTATBJS):$(RXSTAT)\$$(@B).c
65         $(C2OBJ) $** -I$(RXSTAT)
66
67 $(LIBRXKAD_REGOBJS) $(LIBRXKAD_OBJS):$(RXKAD)\$$(@B).c
68         $(C2OBJ) $** -I$(RXKAD)
69
70 $(DESOBJS_INT):$(DES)\$$(@B).c
71         $(C2OBJ) $** -I$(DES)
72
73 $(OUT)\misc.obj:$(DES)\misc.c
74         $(C2OBJ) $** -DDONT_INCL_MAIN -I$(DES)
75
76 $(COMERRBJS):$(COMERR)\$$(@B).c
77         $(C2OBJ) $** -I$(COMERR)
78
79 $(FSINTBJS):$(FSINT)\$$(@B).c
80         $(C2OBJ) $** -I$(FSINT)
81
82 $(UTILOBJS):$(UTIL)\$$(@B).c
83         $(C2OBJ) $** -I$(UTIL)
84
85 NTMAKE = nmake /nologo /f ntmakefile
86
87
88 DLLLIBS =\
89 !IF (("$(SYS_NAME)"=="i386_win95" ) || ("$(SYS_NAME)"=="I386_WIN95" ))
90         $(DESTDIR)\lib\win95\afspthread.lib \
91 !ELSE
92         $(DESTDIR)\lib\afspthread.lib \
93 !ENDIF
94         $(DESTDIR)\lib\afs\afsutil.lib \
95         $(DESTDIR)\lib\afs\afsreg.lib
96
97 $(LIBFILE): $(DLLOBJS) $(DLLLIBS)
98         $(DLLCONLINK) /DEF:afsrpc.def iphlpapi.lib
99         $(_VC_MANIFEST_EMBED_DLL)
100         $(DLLPREP)
101         $(CODESIGN_USERLAND)
102
103 # Definitions for generating versioninfo resources
104 $(OUT)\afsrpc.res: AFS_component_version_number.h
105
106 install:
107 !       IF (EXIST(..\..\src\des\NTMakefile))
108                 $(NTMAKE) $(LIBFILE)
109 !       else
110                 $(NTMAKE) libstub
111 !       endif
112
113 install9x: install
114
115 !IF (EXIST(..\..\src\des\NTMakefile))
116 !ELSE IF (EXIST(..\..\DESLIB))
117 DESPAR = ..\..\DESLIB\dest
118 !ELSE IF (EXIST(..\..\..\DESLIB))
119 DESPAR = ..\..\..\DESLIB\dest
120 !ELSE
121 !ERROR Must create DESLIB link in the same directory as PARENT link.
122 !ENDIF
123
124 libstub:
125         $(COPY) $(DESPAR)\lib\afsrpc.dll \
126                 $(DESTDIR)\lib\afsrpc.dll
127         $(COPY) $(DESPAR)\lib\afsrpc.lib \
128                 $(DESTDIR)\lib\afsrpc.lib
129         $(COPY) $(DESPAR)\lib\afsrpc.exp \
130                 $(DESTDIR)\lib\afsrpc.exp
131
132 clean::
133         $(DEL) $(DESTDIR)\lib\afsrpc.dll $(DESTDIR)\lib\afsrpc.lib $(DESTDIR)\lib\afsrpc.exp