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=${JAVA_HOME}/include
18 exec_prefix=@exec_prefix@
21 libexecdir=@libexecdir@
23 includedir=@includedir@
25 afssrvbindir=@afssrvbindir@
26 afssrvsbindir=@afssrvsbindir@
27 afssrvlibexecdir=@afssrvlibexecdir@
28 COMPILE_ET=${TOP_SRCDIR}/comerr/compile_et
29 RXGEN=${TOP_SRCDIR}/rxgen/rxgen
30 SYS_NAME=@AFS_SYSNAME@
34 SHARED_FLAGS = -shared -Xlinker -Bsymbolic
35 OBJECT_FLAGS = -fPIC -c
37 ifeq "$(BUILD_TYPE)" "admin"
38 INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ -I${JAVA_HOME}/include -I ${JNI_INC}
39 CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS}
41 INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} -I${JAVA_HOME}/include -I ${JNI_INC}
42 CFLAGS := ${INC} ${DBG} ${OPTMZ} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${MT_CFLAGS}
47 ROOTPACKAGEDIR = ../classes
48 RELPACKAGEDIR = org/openafs/jafs/
49 PACKAGEDIR = ${ROOTPACKAGEDIR}/${RELPACKAGEDIR}
50 JAVADOCSDIR = javadocs/
52 JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR}
53 JAVAC = ${JAVA_HOME}/bin/javac -classpath ${ROOTPACKAGEDIR}
55 J_NATIVE_PREFIX = org.openafs.jafs.
56 C_NATIVE_PREFIX = org_openafs_jafs_
59 ${PACKAGEDIR}ACL.class \
60 ${PACKAGEDIR}AFSException.class \
61 ${PACKAGEDIR}AFSFileException.class \
62 ${PACKAGEDIR}AFSSecurityException.class \
63 ${PACKAGEDIR}Cell.class \
64 ${PACKAGEDIR}File.class \
65 ${PACKAGEDIR}FileInputStream.class \
66 ${PACKAGEDIR}FileOutputStream.class \
67 ${PACKAGEDIR}Group.class \
68 ${PACKAGEDIR}Key.class \
69 ${PACKAGEDIR}Partition.class \
70 ${PACKAGEDIR}Process.class \
71 ${PACKAGEDIR}Server.class \
72 ${PACKAGEDIR}Token.class \
73 ${PACKAGEDIR}User.class \
74 ${PACKAGEDIR}Volume.class \
75 ${PACKAGEDIR}VersionInfo.class
77 ifeq (${SYS_NAME}, ppc64_linux26)
80 ifeq (${SYS_NAME}, s390x_linux26)
84 ${LIBJAFSADMDIR}GetNativeString.o \
90 ${LIBJAFSADMDIR}File.o \
91 ${LIBJAFSADMDIR}FileInputStream.o \
92 ${LIBJAFSADMDIR}FileOutputStream.o \
93 ${LIBJAFSADMDIR}Internal.o \
94 ${LIBJAFSADMDIR}UserToken.o \
95 ${LIBJAFSADMDIR}VersionInfo.o \
96 ${TOP_SRCDIR}/libuafs/UAFS/AFS_component_version_number.o \
97 ${TOP_SRCDIR}/libuafs/UAFS/xdr_int32.o \
98 ${TOP_SRCDIR}/util/rxkstats.o
100 ifeq (${SYS_NAME}, ppc64_linux26)
102 ${LIBJAFSADMDIR}GetNativeString.o \
103 ${LIBJAFSADMDIR}ACL.o
105 ifeq (${SYS_NAME}, s390x_linux26)
107 ${LIBJAFSADMDIR}GetNativeString.o \
108 ${LIBJAFSADMDIR}ACL.o
115 ${LIBJAFSADMDIR}AdminToken.o \
116 ${LIBJAFSADMDIR}Cell.o \
117 ${LIBJAFSADMDIR}Group.o \
118 ${LIBJAFSADMDIR}Internal.o \
119 ${LIBJAFSADMDIR}Key.o \
120 ${LIBJAFSADMDIR}Partition.o \
121 ${LIBJAFSADMDIR}Process.o \
122 ${LIBJAFSADMDIR}Server.o \
123 ${LIBJAFSADMDIR}User.o \
124 ${LIBJAFSADMDIR}Version2.o \
125 ${TOP_SRCDIR}/libuafs/UAFS/AFS_component_version_number.o \
126 ${LIBJAFSADMDIR}Volume.o
128 CORRELATING_SOURCE_FILES =\
129 ${LIBJAFSADMDIR}ACL.c \
130 ${LIBJAFSADMDIR}Cell.c \
131 ${LIBJAFSADMDIR}File.c \
132 ${LIBJAFSADMDIR}FileInputStream.c \
133 ${LIBJAFSADMDIR}FileOutputStream.c \
134 ${LIBJAFSADMDIR}Group.c \
135 ${LIBJAFSADMDIR}Key.c \
136 ${LIBJAFSADMDIR}Partition.c \
137 ${LIBJAFSADMDIR}Process.c \
138 ${LIBJAFSADMDIR}Server.c \
139 ${LIBJAFSADMDIR}User.c \
140 ${LIBJAFSADMDIR}Volume.c \
141 ${LIBJAFSADMDIR}VersionInfo.c
144 JAVA_HEADERS = ${PACKAGE:${PACKAGEDIR}%.class=${C_NATIVE_PREFIX}%.h}
146 BOSADMINLIB = ${TOP_LIBDIR}/libbosadmin.a
147 VOSADMINLIB = ${TOP_LIBDIR}/libvosadmin.a
148 PTSADMINLIB = ${TOP_LIBDIR}/libptsadmin.a
149 KASADMINLIB = ${TOP_LIBDIR}/libkasadmin.a
150 CFGADMINLIB = ${TOP_LIBDIR}/libcfgadmin.a
151 UTILADMINLIB = ${TOP_LIBDIR}/libafsadminutil.a
152 CLIENTADMINLIB = ${TOP_LIBDIR}/libclientadmin.a
155 ${TOP_LIBDIR}/libjuafs.a \
156 ${TOP_LIBDIR}/libdes.a \
168 ${TOP_LIBDIR}/libafsauthent.a \
169 ${TOP_LIBDIR}/libafsrpc.a \
170 ${TOP_LIBDIR}/libcmd.a \
171 ${TOP_LIBDIR}/util.a \
178 all: ${TOP_JLIBDIR} libjafs libjafsadm ${PACKAGE} all_jar
180 install: all ${DESTDIR}${libdir}/libjafs.so ${DESTDIR}${libdir}/libjafsadm.so ${PACKAGE} install_jar
181 if [ ! -e /usr/afswsp ]; then \
182 mkdir -p /usr/afswsp/; \
184 if [ ! -e /usr/afswsp/etc ]; then \
185 mkdir -p /usr/afswsp/etc/; \
186 cp ./etc/CacheConfig /usr/afswsp/etc/; \
188 if [ ! -e /usr/afswsp/log ]; then \
189 mkdir -p /usr/afswsp/log/; \
191 if [ ! -e /usr/afswsp/cache ]; then \
192 mkdir -p /usr/afswsp/cache/; \
194 if [ ! -L /usr/vice/etc/CellServDB ]; then \
195 ln -s /usr/vice/etc/CellServDB /usr/afswsp/etc/; \
197 if [ ! -L /usr/vice/etc/ThisCell ]; then \
198 ln -s /usr/vice/etc/ThisCell /usr/afswsp/etc/; \
202 ${RM} -f ${PACKAGEDIR}*.class ${LIBJAFSADMDIR}*.o ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}*.h
205 if [ ! -e ./h ]; then \
206 ln -s /usr/include/sys h; \
214 ############# Shared library ###############################
217 ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
218 export BUILD_TYPE=user; \
219 ${MAKE} ${TOP_LIBDIR}/libjafs.so
222 ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
223 export BUILD_TYPE=admin; \
224 ${MAKE} ${TOP_LIBDIR}/libjafsadm.so
226 ${TOP_LIBDIR}/libjafs.so: ${LIBJAFS_OBJS}
227 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
229 ${DESTDIR}${libdir}/libjafs.so: ${LIBJAFS_OBJS}192.168.13.10
230 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
232 ${TOP_LIBDIR}/libjafsadm.so: ${LIBJAFSADM_OBJS}
233 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
235 ${DESTDIR}${libdir}/libjafsadm.so: ${LIBJAFSADM_OBJS}
236 ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
238 ############## Object files ################################
240 ${LIBJAFSADM_OBJS}: %.o: %.c
241 ${CC} ${CFLAGS} ${OBJECT_FLAGS} -o $@ $<
243 ############## C files #####################################
245 ${CORRELATING_SOURCE_FILES}: ${LIBJAFSADMDIR}%.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}%.h ${LIBJAFSADMDIR}Internal.h
247 ${LIBJAFSADMDIR}AdminToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Cell.h
249 ${LIBJAFSADMDIR}Internal.c: ${LIBJAFSADMDIR}Internal.h
251 ${LIBJAFSADMDIR}Version2.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}VersionInfo.h ${LIBJAFSADMDIR}JAFS_Version.h
253 ${LIBJAFSADMDIR}UserToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h
255 ############## Package javac section #########################
257 ${PACKAGEDIR}%.class: ${PACKAGEDIR}%.java
260 ############## Javah section ###############################
262 ${JAVA_HEADERS}: ${C_NATIVE_PREFIX}%.h: ${PACKAGEDIR}%.class
263 ${JAVAH} ${J_NATIVE_PREFIX}$*
265 ############# JAR file #####################################
268 cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${TOP_JLIBDIR}/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
270 install_jar: clean_jar
271 cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${JAVA_HOME}/lib/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
274 ${RM} -f ${TOP_JLIBDIR}/${JARFILE}