autoconf-datarootdir-20060623
[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=${JAVA_HOME}/include
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_INCDIR} -I${TOP_INCDIR}/afs/ -I${JAVA_HOME}/include -I ${JNI_INC}
40         CFLAGS := ${INC} ${DBG} ${OPTMZ} -I${TOP_SRCDIR}/config ${MT_CFLAGS}
41 else
42         INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} -I${JAVA_HOME}/include -I ${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 -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/AFS_component_version_number.o \
98         ${TOP_SRCDIR}/libuafs/UAFS/xdr_int32.o \
99         ${TOP_SRCDIR}/util/rxkstats.o
100
101 ifeq (${SYS_NAME}, ppc64_linux26)
102 LIBJAFSADM_OBJS =\
103         ${LIBJAFSADMDIR}GetNativeString.o \
104         ${LIBJAFSADMDIR}ACL.o
105 else
106 ifeq (${SYS_NAME}, s390x_linux26)
107 LIBJAFSADM_OBJS =\
108         ${LIBJAFSADMDIR}GetNativeString.o \
109         ${LIBJAFSADMDIR}ACL.o
110 else
111 LIBJAFSADM_OBJS =
112 endif
113 endif
114
115 LIBJAFSADM_OBJS +=\
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
128
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
143
144
145 JAVA_HEADERS = ${PACKAGE:${PACKAGEDIR}%.class=${C_NATIVE_PREFIX}%.h}
146
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
154
155 LIBJAFS_LIBS =\
156         ${TOP_LIBDIR}/libjuafs.a \
157         ${TOP_LIBDIR}/libdes.a \
158         -lresolv \
159         -lpthread
160
161 LIBJAFSADM_LIBS =\
162         ${CLIENTADMINLIB} \
163         ${VOSADMINLIB} \
164         ${BOSADMINLIB} \
165         ${PTSADMINLIB} \
166         ${KASADMINLIB} \
167         ${CFGADMINLIB} \
168         ${UTILADMINLIB} \
169         ${TOP_LIBDIR}/libafsauthent.a \
170         ${TOP_LIBDIR}/libafsrpc.a \
171         ${TOP_LIBDIR}/libcmd.a \
172         ${TOP_LIBDIR}/util.a \
173         -lresolv \
174         -lpthread
175
176
177 JARFILE = jafs.jar
178
179 all:  ${TOP_JLIBDIR} libjafs libjafsadm ${PACKAGE} all_jar
180
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/; \
184         fi; \
185         if [ ! -e /usr/afswsp/etc ]; then \
186           mkdir -p /usr/afswsp/etc/; \
187           cp ./etc/CacheConfig /usr/afswsp/etc/; \
188         fi; \
189         if [ ! -e /usr/afswsp/log ]; then \
190           mkdir -p /usr/afswsp/log/; \
191         fi; \
192         if [ ! -e /usr/afswsp/cache ]; then \
193           mkdir -p /usr/afswsp/cache/; \
194         fi; \
195         if [ ! -L /usr/vice/etc/CellServDB ]; then \
196           ln -s /usr/vice/etc/CellServDB /usr/afswsp/etc/; \
197         fi; \
198         if [ ! -L /usr/vice/etc/ThisCell ]; then \
199           ln -s /usr/vice/etc/ThisCell /usr/afswsp/etc/; \
200         fi
201
202 clean:
203         ${RM} -f ${PACKAGEDIR}*.class ${LIBJAFSADMDIR}*.o ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}*.h
204
205 setup:  FORCE
206         if [ ! -e ./h ]; then \
207           ln -s /usr/include/sys h; \
208         fi; \
209
210 ${TOP_JLIBDIR}:
211         mkdir -p $@
212
213 FORCE: ;
214
215 ############# Shared library ###############################
216
217 libjafs: setup
218         ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
219         export BUILD_TYPE=user; \
220         ${MAKE} ${TOP_LIBDIR}/libjafs.so
221
222 libjafsadm:
223         ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
224         export BUILD_TYPE=admin; \
225         ${MAKE} ${TOP_LIBDIR}/libjafsadm.so
226
227 ${TOP_LIBDIR}/libjafs.so: ${LIBJAFS_OBJS}
228         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
229
230 ${DESTDIR}${libdir}/libjafs.so: ${LIBJAFS_OBJS}192.168.13.10
231         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
232
233 ${TOP_LIBDIR}/libjafsadm.so: ${LIBJAFSADM_OBJS}
234         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
235
236 ${DESTDIR}${libdir}/libjafsadm.so: ${LIBJAFSADM_OBJS}
237         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
238
239 ############## Object files ################################
240
241 ${LIBJAFSADM_OBJS}: %.o: %.c
242         ${CC} ${CFLAGS} ${OBJECT_FLAGS} -o $@ $<
243
244 ############## C files #####################################
245
246 ${CORRELATING_SOURCE_FILES}: ${LIBJAFSADMDIR}%.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}%.h ${LIBJAFSADMDIR}Internal.h
247
248 ${LIBJAFSADMDIR}AdminToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Cell.h
249
250 ${LIBJAFSADMDIR}Internal.c: ${LIBJAFSADMDIR}Internal.h
251
252 ${LIBJAFSADMDIR}Version2.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}VersionInfo.h ${LIBJAFSADMDIR}JAFS_Version.h
253
254 ${LIBJAFSADMDIR}UserToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h
255
256 ############## Package javac section #########################
257
258 ${PACKAGEDIR}%.class: ${PACKAGEDIR}%.java
259         ${JAVAC} $<
260
261 ############## Javah section ###############################
262
263 ${JAVA_HEADERS}: ${C_NATIVE_PREFIX}%.h: ${PACKAGEDIR}%.class
264         ${JAVAH} ${J_NATIVE_PREFIX}$*
265
266 ############# JAR file #####################################
267
268 all_jar: clean_jar
269         cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${TOP_JLIBDIR}/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
270
271 install_jar: clean_jar
272         cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${JAVA_HOME}/lib/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
273
274 clean_jar:
275         ${RM} -f ${TOP_JLIBDIR}/${JARFILE}
276
277
278