1a764db7238a94414be8b20bb7bfb2c96ebb968a
[openafs.git] / src / JAVA / libjafs / Makefile.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 include ../../config/Makefile.config
9 #${SYS_NAME}
10
11 DEST=@DEST@
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`
17 prefix=@prefix@
18 exec_prefix=@exec_prefix@
19 datarootdir=@datarootdir@
20 bindir=@bindir@
21 sbindir=@sbindir@
22 libexecdir=@libexecdir@
23 libdir=@libdir@
24 includedir=@includedir@
25 mandir=@mandir@
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@
32
33
34 CC = ${MT_CC}
35 SHARED_FLAGS = -shared -Xlinker -Bsymbolic
36 OBJECT_FLAGS = -fPIC -c
37
38 ifeq "$(BUILD_TYPE)" "admin"
39         INC := -I${TOP_SRCDIR}/config -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ ${JNI_INC}
40         CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS}
41 else
42         INC := -I${TOP_SRCDIR}/config -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} ${JNI_INC}
43         CFLAGS := ${INC} ${DBG} ${OPTMZ} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${MT_CFLAGS}
44 endif
45
46
47 LIBJAFSADMDIR = ./
48 ROOTPACKAGEDIR = ../classes
49 RELPACKAGEDIR = org/openafs/jafs/
50 PACKAGEDIR = ${ROOTPACKAGEDIR}/${RELPACKAGEDIR}
51 JAVADOCSDIR = javadocs/
52
53 JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR}
54 JAVAC = ${JAVA_HOME}/bin/javac -source 1.4 -classpath ${ROOTPACKAGEDIR}
55
56 J_NATIVE_PREFIX = org.openafs.jafs.
57 C_NATIVE_PREFIX = org_openafs_jafs_
58
59 PACKAGE =\
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
77
78 ifeq (${SYS_NAME}, ppc64_linux26)
79 LIBJAFS_OBJS =
80 else
81 ifeq (${SYS_NAME}, s390x_linux26)
82 LIBJAFS_OBJS =
83 else
84 LIBJAFS_OBJS =\
85         ${LIBJAFSADMDIR}GetNativeString.o \
86         ${LIBJAFSADMDIR}ACL.o
87 endif
88 endif
89
90 LIBJAFS_OBJS +=\
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/xdr_int32.o
98
99 ifeq (${SYS_NAME}, ppc64_linux26)
100 LIBJAFSADM_OBJS =\
101         ${LIBJAFSADMDIR}GetNativeString.o \
102         ${LIBJAFSADMDIR}ACL.o
103 else
104 ifeq (${SYS_NAME}, s390x_linux26)
105 LIBJAFSADM_OBJS =\
106         ${LIBJAFSADMDIR}GetNativeString.o \
107         ${LIBJAFSADMDIR}ACL.o
108 else
109 LIBJAFSADM_OBJS =
110 endif
111 endif
112
113 LIBJAFSADM_OBJS +=\
114         ${LIBJAFSADMDIR}AdminToken.o \
115         ${LIBJAFSADMDIR}Cell.o \
116         ${LIBJAFSADMDIR}Group.o \
117         ${LIBJAFSADMDIR}Internal.o \
118         ${LIBJAFSADMDIR}Key.o \
119         ${LIBJAFSADMDIR}Partition.o \
120         ${LIBJAFSADMDIR}Process.o \
121         ${LIBJAFSADMDIR}Server.o \
122         ${LIBJAFSADMDIR}User.o \
123         ${LIBJAFSADMDIR}Version2.o \
124         ${LIBJAFSADMDIR}Volume.o
125
126 CORRELATING_SOURCE_FILES =\
127         ${LIBJAFSADMDIR}ACL.c \
128         ${LIBJAFSADMDIR}Cell.c \
129         ${LIBJAFSADMDIR}File.c \
130         ${LIBJAFSADMDIR}FileInputStream.c \
131         ${LIBJAFSADMDIR}FileOutputStream.c \
132         ${LIBJAFSADMDIR}Group.c \
133         ${LIBJAFSADMDIR}Key.c \
134         ${LIBJAFSADMDIR}Partition.c \
135         ${LIBJAFSADMDIR}Process.c \
136         ${LIBJAFSADMDIR}Server.c \
137         ${LIBJAFSADMDIR}User.c \
138         ${LIBJAFSADMDIR}Volume.c \
139         ${LIBJAFSADMDIR}VersionInfo.c
140
141
142 JAVA_HEADERS = ${PACKAGE:${PACKAGEDIR}%.class=${C_NATIVE_PREFIX}%.h}
143
144 BOSADMINLIB = ${TOP_LIBDIR}/libbosadmin.a
145 VOSADMINLIB = ${TOP_LIBDIR}/libvosadmin.a
146 PTSADMINLIB = ${TOP_LIBDIR}/libptsadmin.a
147 KASADMINLIB = ${TOP_LIBDIR}/libkasadmin.a
148 CFGADMINLIB = ${TOP_LIBDIR}/libcfgadmin.a
149 UTILADMINLIB = ${TOP_LIBDIR}/libafsadminutil.a
150 CLIENTADMINLIB = ${TOP_LIBDIR}/libclientadmin.a
151
152 LIBJAFS_LIBS =\
153         ${TOP_LIBDIR}/libjuafs.a \
154         ${TOP_LIBDIR}/libafsutil.a \
155         -lresolv \
156         -lpthread
157
158 LIBJAFSADM_LIBS =\
159         ${CLIENTADMINLIB} \
160         ${VOSADMINLIB} \
161         ${BOSADMINLIB} \
162         ${PTSADMINLIB} \
163         ${KASADMINLIB} \
164         ${CFGADMINLIB} \
165         ${UTILADMINLIB} \
166         ${TOP_LIBDIR}/libafsauthent.a \
167         ${TOP_LIBDIR}/libafsrpc.a \
168         ${TOP_LIBDIR}/libcmd.a \
169         ${TOP_LIBDIR}/util.a \
170         -lresolv \
171         -lpthread
172
173
174 JARFILE = jafs.jar
175
176 all:  ${TOP_JLIBDIR} libjafs libjafsadm ${PACKAGE} all_jar
177
178 install:  all ${DESTDIR}${libdir}/libjafs.so ${DESTDIR}${libdir}/libjafsadm.so ${PACKAGE} install_jar
179         if [ ! -e /usr/afswsp ]; then \
180           mkdir -p /usr/afswsp/; \
181         fi; \
182         if [ ! -e /usr/afswsp/etc ]; then \
183           mkdir -p /usr/afswsp/etc/; \
184           cp ./etc/CacheConfig /usr/afswsp/etc/; \
185         fi; \
186         if [ ! -e /usr/afswsp/log ]; then \
187           mkdir -p /usr/afswsp/log/; \
188         fi; \
189         if [ ! -e /usr/afswsp/cache ]; then \
190           mkdir -p /usr/afswsp/cache/; \
191         fi; \
192         if [ ! -L /usr/vice/etc/CellServDB ]; then \
193           ln -s /usr/vice/etc/CellServDB /usr/afswsp/etc/; \
194         fi; \
195         if [ ! -L /usr/vice/etc/ThisCell ]; then \
196           ln -s /usr/vice/etc/ThisCell /usr/afswsp/etc/; \
197         fi
198
199 clean:
200         ${RM} -f ${PACKAGEDIR}*.class ${LIBJAFSADMDIR}*.o ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}*.h
201
202 setup:  FORCE
203         if [ ! -e ./h ]; then \
204           ln -s /usr/include/sys h; \
205         fi; \
206
207 ${TOP_JLIBDIR}:
208         mkdir -p $@
209
210 FORCE: ;
211
212 ############# Shared library ###############################
213
214 libjafs: setup
215         ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
216         export BUILD_TYPE=user; \
217         ${MAKE} ${TOP_LIBDIR}/libjafs.so
218
219 libjafsadm:
220         ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
221         export BUILD_TYPE=admin; \
222         ${MAKE} ${TOP_LIBDIR}/libjafsadm.so
223
224 ${TOP_LIBDIR}/libjafs.so: ${LIBJAFS_OBJS}
225         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
226
227 ${DESTDIR}${libdir}/libjafs.so: ${LIBJAFS_OBJS}192.168.13.10
228         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
229
230 ${TOP_LIBDIR}/libjafsadm.so: ${LIBJAFSADM_OBJS}
231         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
232
233 ${DESTDIR}${libdir}/libjafsadm.so: ${LIBJAFSADM_OBJS}
234         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
235
236 ############## Object files ################################
237
238 ${LIBJAFSADM_OBJS}: %.o: %.c
239         ${CC} ${CFLAGS} ${OBJECT_FLAGS} -o $@ $<
240
241 ############## C files #####################################
242
243 ${CORRELATING_SOURCE_FILES}: ${LIBJAFSADMDIR}%.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}%.h ${LIBJAFSADMDIR}Internal.h
244
245 ${LIBJAFSADMDIR}AdminToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Cell.h
246
247 ${LIBJAFSADMDIR}Internal.c: ${LIBJAFSADMDIR}Internal.h
248
249 ${LIBJAFSADMDIR}Version2.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}VersionInfo.h ${LIBJAFSADMDIR}JAFS_Version.h
250
251 ${LIBJAFSADMDIR}UserToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h
252
253 ############## Package javac section #########################
254
255 ${PACKAGEDIR}%.class: ${PACKAGEDIR}%.java
256         ${JAVAC} $<
257
258 ############## Javah section ###############################
259
260 ${JAVA_HEADERS}: ${C_NATIVE_PREFIX}%.h: ${PACKAGEDIR}%.class
261         ${JAVAH} ${J_NATIVE_PREFIX}$*
262
263 ############# JAR file #####################################
264
265 all_jar: clean_jar
266         cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${TOP_JLIBDIR}/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
267
268 install_jar: clean_jar
269         cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${JAVA_HOME}/lib/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
270
271 clean_jar:
272         ${RM} -f ${TOP_JLIBDIR}/${JARFILE}
273
274
275