1 # Copyright 2000, International Business Machines Corporation and others.
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
8 include ../../config/Makefile.config
12 TOP_SRCDIR=@TOP_SRCDIR@
13 TOP_INCDIR=@TOP_INCDIR@
14 TOP_LIBDIR=@TOP_LIBDIR@
15 TOP_JLIBDIR=@TOP_SRCDIR@/JAVA/libjafs
16 JNI_INC=-I ${JAVA_HOME}/include -I `dirname ${JAVA_HOME}/include/*/jni_md.h`
18 exec_prefix=@exec_prefix@
19 datarootdir=@datarootdir@
22 libexecdir=@libexecdir@
24 includedir=@includedir@
26 afssrvbindir=@afssrvbindir@
27 afssrvsbindir=@afssrvsbindir@
28 afssrvlibexecdir=@afssrvlibexecdir@
29 COMPILE_ET=${TOP_SRCDIR}/comerr/compile_et
30 RXGEN=${TOP_SRCDIR}/rxgen/rxgen
31 SYS_NAME=@AFS_SYSNAME@
35 SHARED_FLAGS = -shared -Xlinker -Bsymbolic
36 OBJECT_FLAGS = -fPIC -c
38 ifeq "$(BUILD_TYPE)" "admin"
39 INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ ${JNI_INC}
40 CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS}
42 INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} ${JNI_INC}
43 CFLAGS := ${INC} ${DBG} ${OPTMZ} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${MT_CFLAGS}
48 ROOTPACKAGEDIR = ../classes
49 RELPACKAGEDIR = org/openafs/jafs/
50 PACKAGEDIR = ${ROOTPACKAGEDIR}/${RELPACKAGEDIR}
51 JAVADOCSDIR = javadocs/
53 JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR}
54 JAVAC = ${JAVA_HOME}/bin/javac -source 1.4 -classpath ${ROOTPACKAGEDIR}
56 J_NATIVE_PREFIX = org.openafs.jafs.
57 C_NATIVE_PREFIX = org_openafs_jafs_
60 ${PACKAGEDIR}ACL.class \
61 ${PACKAGEDIR}AFSException.class \
62 ${PACKAGEDIR}AFSFileException.class \
63 ${PACKAGEDIR}AFSSecurityException.class \
64 ${PACKAGEDIR}Cell.class \
65 ${PACKAGEDIR}File.class \
66 ${PACKAGEDIR}FileInputStream.class \
67 ${PACKAGEDIR}FileOutputStream.class \
68 ${PACKAGEDIR}Group.class \
69 ${PACKAGEDIR}Key.class \
70 ${PACKAGEDIR}Partition.class \
71 ${PACKAGEDIR}Process.class \
72 ${PACKAGEDIR}Server.class \
73 ${PACKAGEDIR}Token.class \
74 ${PACKAGEDIR}User.class \
75 ${PACKAGEDIR}Volume.class \
76 ${PACKAGEDIR}VersionInfo.class
78 ifeq (${SYS_NAME}, ppc64_linux26)
81 ifeq (${SYS_NAME}, s390x_linux26)
85 ${LIBJAFSADMDIR}GetNativeString.o \
91 ${LIBJAFSADMDIR}File.o \
92 ${LIBJAFSADMDIR}FileInputStream.o \
93 ${LIBJAFSADMDIR}FileOutputStream.o \
94 ${LIBJAFSADMDIR}Internal.o \
95 ${LIBJAFSADMDIR}UserToken.o \
96 ${LIBJAFSADMDIR}VersionInfo.o \
97 ${TOP_SRCDIR}/libuafs/UAFS/AFS_component_version_number.o \
98 ${TOP_SRCDIR}/libuafs/UAFS/xdr_int32.o \
99 ${TOP_SRCDIR}/util/rxkstats.o
101 ifeq (${SYS_NAME}, ppc64_linux26)
103 ${LIBJAFSADMDIR}GetNativeString.o \
104 ${LIBJAFSADMDIR}ACL.o
106 ifeq (${SYS_NAME}, s390x_linux26)
108 ${LIBJAFSADMDIR}GetNativeString.o \
109 ${LIBJAFSADMDIR}ACL.o
116 ${LIBJAFSADMDIR}AdminToken.o \
117 ${LIBJAFSADMDIR}Cell.o \
118 ${LIBJAFSADMDIR}Group.o \
119 ${LIBJAFSADMDIR}Internal.o \
120 ${LIBJAFSADMDIR}Key.o \
121 ${LIBJAFSADMDIR}Partition.o \
122 ${LIBJAFSADMDIR}Process.o \
123 ${LIBJAFSADMDIR}Server.o \
124 ${LIBJAFSADMDIR}User.o \
125 ${LIBJAFSADMDIR}Version2.o \
126 ${TOP_SRCDIR}/libuafs/UAFS/AFS_component_version_number.o \
127 ${LIBJAFSADMDIR}Volume.o
129 CORRELATING_SOURCE_FILES =\
130 ${LIBJAFSADMDIR}ACL.c \
131 ${LIBJAFSADMDIR}Cell.c \
132 ${LIBJAFSADMDIR}File.c \
133 ${LIBJAFSADMDIR}FileInputStream.c \
134 ${LIBJAFSADMDIR}FileOutputStream.c \
135 ${LIBJAFSADMDIR}Group.c \
136 ${LIBJAFSADMDIR}Key.c \
137 ${LIBJAFSADMDIR}Partition.c \
138 ${LIBJAFSADMDIR}Process.c \
139 ${LIBJAFSADMDIR}Server.c \
140 ${LIBJAFSADMDIR}User.c \
141 ${LIBJAFSADMDIR}Volume.c \
142 ${LIBJAFSADMDIR}VersionInfo.c
145 JAVA_HEADERS = ${PACKAGE:${PACKAGEDIR}%.class=${C_NATIVE_PREFIX}%.h}
147 BOSADMINLIB = ${TOP_LIBDIR}/libbosadmin.a
148 VOSADMINLIB = ${TOP_LIBDIR}/libvosadmin.a
149 PTSADMINLIB = ${TOP_LIBDIR}/libptsadmin.a
150 KASADMINLIB = ${TOP_LIBDIR}/libkasadmin.a
151 CFGADMINLIB = ${TOP_LIBDIR}/libcfgadmin.a
152 UTILADMINLIB = ${TOP_LIBDIR}/libafsadminutil.a
153 CLIENTADMINLIB = ${TOP_LIBDIR}/libclientadmin.a
156 ${TOP_LIBDIR}/libjuafs.a \
157 ${TOP_LIBDIR}/libafsutil.a \
169 ${TOP_LIBDIR}/libafsauthent.a \
170 ${TOP_LIBDIR}/libafsrpc.a \
171 ${TOP_LIBDIR}/libcmd.a \
172 ${TOP_LIBDIR}/util.a \
179 all: ${TOP_JLIBDIR} libjafs libjafsadm ${PACKAGE} all_jar
181 install: all ${DESTDIR}${libdir}/libjafs.so ${DESTDIR}${libdir}/libjafsadm.so ${PACKAGE} install_jar
182 if [ ! -e /usr/afswsp ]; then \
183 mkdir -p /usr/afswsp/; \
185 if [ ! -e /usr/afswsp/etc ]; then \
186 mkdir -p /usr/afswsp/etc/; \
187 cp ./etc/CacheConfig /usr/afswsp/etc/; \
189 if [ ! -e /usr/afswsp/log ]; then \
190 mkdir -p /usr/afswsp/log/; \
192 if [ ! -e /usr/afswsp/cache ]; then \
193 mkdir -p /usr/afswsp/cache/; \
195 if [ ! -L /usr/vice/etc/CellServDB ]; then \
196 ln -s /usr/vice/etc/CellServDB /usr/afswsp/etc/; \
198 if [ ! -L /usr/vice/etc/ThisCell ]; then \
199 ln -s /usr/vice/etc/ThisCell /usr/afswsp/etc/; \
203 ${RM} -f ${PACKAGEDIR}*.class ${LIBJAFSADMDIR}*.o ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}*.h
206 if [ ! -e ./h ]; then \
207 ln -s /usr/include/sys h; \
215 ############# Shared library ###############################
218 ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
219 export BUILD_TYPE=user; \
220 ${MAKE} ${TOP_LIBDIR}/libjafs.so
223 ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
224 export BUILD_TYPE=admin; \
225 ${MAKE} ${TOP_LIBDIR}/libjafsadm.so
227 ${TOP_LIBDIR}/libjafs.so: ${LIBJAFS_OBJS}
228 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
230 ${DESTDIR}${libdir}/libjafs.so: ${LIBJAFS_OBJS}192.168.13.10
231 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
233 ${TOP_LIBDIR}/libjafsadm.so: ${LIBJAFSADM_OBJS}
234 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
236 ${DESTDIR}${libdir}/libjafsadm.so: ${LIBJAFSADM_OBJS}
237 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
239 ############## Object files ################################
241 ${LIBJAFSADM_OBJS}: %.o: %.c
242 ${CC} ${CFLAGS} ${OBJECT_FLAGS} -o $@ $<
244 ############## C files #####################################
246 ${CORRELATING_SOURCE_FILES}: ${LIBJAFSADMDIR}%.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}%.h ${LIBJAFSADMDIR}Internal.h
248 ${LIBJAFSADMDIR}AdminToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Cell.h
250 ${LIBJAFSADMDIR}Internal.c: ${LIBJAFSADMDIR}Internal.h
252 ${LIBJAFSADMDIR}Version2.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}VersionInfo.h ${LIBJAFSADMDIR}JAFS_Version.h
254 ${LIBJAFSADMDIR}UserToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h
256 ############## Package javac section #########################
258 ${PACKAGEDIR}%.class: ${PACKAGEDIR}%.java
261 ############## Javah section ###############################
263 ${JAVA_HEADERS}: ${C_NATIVE_PREFIX}%.h: ${PACKAGEDIR}%.class
264 ${JAVAH} ${J_NATIVE_PREFIX}$*
266 ############# JAR file #####################################
269 cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${TOP_JLIBDIR}/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
271 install_jar: clean_jar
272 cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${JAVA_HOME}/lib/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
275 ${RM} -f ${TOP_JLIBDIR}/${JARFILE}