SOLARIS: provide cache manager stats via kstat
[openafs.git] / src / libafs / MakefileProto.SOLARIS.in
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 srcdir=@srcdir@
9 include @TOP_OBJDIR@/src/config/Makefile.config
10 INSTALL = @INSTALL@
11 INSTALL_DATA = @INSTALL_DATA@
12 INSTALL_PROGRAM = @INSTALL_PROGRAM@
13 INSTALL_SCRIPT = @INSTALL_SCRIPT@
14
15
16 # OS specific object files:
17 AFS_OS_OBJS = \
18         osi_crypto.o \
19         osi_gcpags.o \
20         osi_groups.o \
21         osi_inode.o \
22 <sunx86_511 sun4x_511>
23         osi_ioctl.o \
24 <all>
25         osi_file.o \
26         osi_kstat.o \
27         osi_sleep.o \
28         osi_vcache.o \
29         osi_vm.o \
30         osi_vnodeops.o \
31         rand-fortuna-kernel.o
32
33 AFS_OS_NFSOBJS = \
34         osi_vfsops_nfs.o
35
36 AFS_OS_NONFSOBJS = \
37         osi_vfsops.o
38
39 # System specific build commands and flags
40 DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT
41 #These are redundant
42 #LD = /usr/ccs/bin/ld
43 #CC = /opt/SUNWspro/bin/cc
44 KDEFS= -D_KERNEL -DSYSV -dn ${ARCH_DEFS}
45 <sunx86_510 sunx86_511>
46 DBUG= -Wu,-save_args
47
48 <sun4x_58 sun4x_59 sun4x_510 sun4x_511>
49 KDEFS_32 = -xarch=v8
50 KDEFS_64 = -xarch=v9 
51
52 <sunx86_58 sunx86_59 sunx86_510>
53 KDEFS_32 = 
54 KDEFS_64 = -xarch=amd64 -xmodel=kernel
55
56 <sunx86_511>
57 KDEFS_32 =
58 KDEFS_64 = -m64 -xmodel=kernel
59
60 <all>
61 CFLAGS=-I. -I.. -I${TOP_OBJDIR}/src/config ${FSINCLUDES} $(DEFINES) $(KDEFS) @SOLARIS_CC_KOPTS@ ${DBUG}
62
63 <sun4x_58 sunx86_58 sun4x_59 sunx86_59>
64 LDFLAGS=-r -dy -N drv/ip -N drv/udp -N strmod/rpcmod
65
66 <all -sun4x_58 -sunx86_58 -sun4x_59 -sunx86_59>
67 LDFLAGS=-r -dy -N drv/ip -N drv/udp -N strmod/rpcmod -N fs/ufs
68
69 # Name of directory to hold object files and libraries.
70 <all -sun4x_510 -sun4x_511 -sunx86_511>
71 KOBJ = MODLOAD32 MODLOAD64
72 <sun4x_510 sun4x_511 sunx86_511>
73 KOBJ = MODLOAD64
74
75 # This tells Makefile.common to use it's single directory build target.
76 <all>
77 COMPDIRS = solaris_compdirs
78 INSTDIRS = solaris_instdirs
79 DESTDIRS = solaris_destdirs
80
81 include Makefile.common
82
83
84 setup:
85         -$(RM) -f  h net netinet rpc ufs nfs  machine sys inet
86         -ln -fs /usr/include/sys h
87         -ln -fs /usr/include/net net
88         -ln -fs /usr/include/netinet netinet
89         -ln -fs /usr/include/rpc rpc
90         -ln -fs /usr/include/sys sys
91         -ln -fs /usr/include/nfs nfs
92         -ln -fs /usr/include/inet inet
93         -ln -fs /usr/include/ufs ufs
94         for t in ${KOBJ} ; do \
95                 echo Making directory: $$t; \
96                 mkdir -p $$t; \
97                 $(RM) -f $$t/Makefile.common $$t/Makefile $$t/config ; \
98                 ln -fs ../Makefile.common $$t/Makefile.common ; \
99                 ln -fs ../Makefile $$t/Makefile ;\
100                 ln -fs ../config $$t/config ;\
101         done
102
103
104 ## This is the target for a Solaris 7. Here we build both the 32 bit and
105 ## the 64 bit libafs in MODLOAD32 and MODLOAD64 directories respectively
106
107 ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}: setup
108         for t in ${KOBJ} ; do \
109                 echo Building directory: $$t ; \
110                 case $$t in \
111                         MODLOAD32) \
112                          ARCH_DEFS="${KDEFS_32}" ; \
113                          BITS="" ;; \
114                         MODLOAD64) \
115                          ARCH_DEFS="${KDEFS_64}" ; \
116                          BITS="64" ;; \
117                 esac ; \
118                 export ARCH_DEFS ; \
119                 export BITS ; \
120                 ( cd $$t && $(MAKE) $@_libafs ) || exit $$? ; \
121         done
122
123 solaris_compdirs_libafs: depsrcs libafs
124 solaris_instdirs_libafs: install_libafs
125 solaris_destdirs_libafs: dest_libafs
126
127 # Below this line are targets when in the COMMON directory:
128 LIBAFS = libafs.o
129 LIBAFSNONFS = libafs.nonfs.o
130
131 INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/libafs${BITS}.nonfs.o
132 INST_LIBAFS = ${DESTDIR}${afskerneldir}/libafs${BITS}.o
133
134 DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/modload/libafs${BITS}.nonfs.o
135 DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/libafs${BITS}.o
136
137 # Without this line, gmake tries to build libafs.o
138 .PHONY: libafs
139
140 libafs: $(LIBAFSNONFS) $(LIBAFS)
141
142 install_libafs: $(LIBAFS) $(LIBAFSNONFS)
143         ${INSTALL} -d ${DESTDIR}${afskerneldir}
144         ${INSTALL} -m 644 $(LIBAFS) $(INST_LIBAFS)
145         ${INSTALL} -m 644 $(LIBAFSNONFS) $(INST_LIBAFSNONFS)
146
147 dest_libafs: $(LIBAFS) $(LIBAFSNONFS)
148         ${INSTALL} -d ${DEST}/root.client/usr/vice/etc/modload
149         ${INSTALL} -m 644 $(LIBAFS) $(DEST_LIBAFS)
150         ${INSTALL} -m 644 $(LIBAFSNONFS) $(DEST_LIBAFSNONFS)
151
152 # See $TOP_SRCDIR/config/cc-wrapper for an explanation/usage of
153 # OPENAFS_CC_WRAPPER_DEBUG_FLAG
154
155 ${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
156         $(RM) -f $@
157         OPENAFS_CC_WRAPPER_DEBUG_FLAG="$(KERN_DBG)" $(LD_WRAPPER) $(LD) $(LDFLAGS) -o $@ $(AFSAOBJS) ${AFSNFSOBJS}
158
159 ${LIBAFSNONFS}:  $(AFSAOBJS) $(AFSNONFSOBJS)
160         $(RM) -f $@
161         OPENAFS_CC_WRAPPER_DEBUG_FLAG="$(KERN_DBG)" $(LD_WRAPPER) $(LD) $(LDFLAGS) -o $@ $(AFSAOBJS) ${AFSNONFSOBJS}