jafs-library-20020725
[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 DEST=@DEST@
9 TOP_SRCDIR=@TOP_SRCDIR@
10 TOP_INCDIR=@TOP_INCDIR@
11 TOP_LIBDIR=@TOP_LIBDIR@
12 TOP_JLIBDIR=@TOP_JLIBDIR@
13 JAVA_HOME=@JAVA_HOME@
14 JNI_INC=@JNI_INC@
15 prefix=@prefix@
16 exec_prefix=@exec_prefix@
17 bindir=@bindir@
18 sbindir=@sbindir@
19 libexecdir=@libexecdir@
20 libdir=@libdir@
21 includedir=@includedir@
22 mandir=@mandir@
23 afssrvbindir=@afssrvbindir@
24 afssrvsbindir=@afssrvsbindir@
25 afssrvlibexecdir=@afssrvlibexecdir@
26 COMPILE_ET=${TOP_SRCDIR}/comerr/compile_et
27 RXGEN=${TOP_SRCDIR}/rxgen/rxgen
28 SYS_NAME=@AFS_SYSNAME@
29
30
31 CC = ${MT_CC}
32 SHARED_FLAGS = -shared
33 OBJECT_FLAGS = -fPIC -c
34
35 ifeq "$(BUILD_TYPE)" "admin"
36         INC := -I${TOP_INCDIR} -I${TOP_INCDIR}/afs/ -I${JAVA_HOME}/include ${JNI_INC}
37         CFLAGS := ${INC} ${OPTMZ} ${DBG} -I${TOP_SRCDIR}/config ${MT_CFLAGS}
38 else
39         INC := -I${TOP_SRCDIR}/libuafs -I${TOP_INCDIR} -I${JAVA_HOME}/include ${JNI_INC}
40         CFLAGS := ${INC} ${FSINCLUDES} -D_REENTRANT -DLIBJUAFS ${DBUG} ${MT_CFLAGS}
41 endif
42
43
44 LIBJAFSADMDIR = ./
45 ROOTPACKAGEDIR = ../classes
46 RELPACKAGEDIR = org/openafs/jafs/
47 PACKAGEDIR = ${ROOTPACKAGEDIR}/${RELPACKAGEDIR}
48 JAVADOCSDIR = javadocs/
49
50 JAVAH = ${JAVA_HOME}/bin/javah -classpath ${ROOTPACKAGEDIR} -jni -d ${LIBJAFSADMDIR}
51 JAVAC = ${JAVA_HOME}/bin/javac -classpath ${ROOTPACKAGEDIR}
52
53 J_NATIVE_PREFIX = org.openafs.jafs.
54 C_NATIVE_PREFIX = org_openafs_jafs_
55
56 PACKAGE =\
57         ${PACKAGEDIR}ACL.class \
58         ${PACKAGEDIR}AFSException.class \
59         ${PACKAGEDIR}AFSFileException.class \
60         ${PACKAGEDIR}AFSSecurityException.class \
61         ${PACKAGEDIR}Cell.class \
62         ${PACKAGEDIR}File.class \
63         ${PACKAGEDIR}FileInputStream.class \
64         ${PACKAGEDIR}FileOutputStream.class \
65         ${PACKAGEDIR}Group.class \
66         ${PACKAGEDIR}Key.class \
67         ${PACKAGEDIR}Partition.class \
68         ${PACKAGEDIR}Process.class \
69         ${PACKAGEDIR}Server.class \
70         ${PACKAGEDIR}Token.class \
71         ${PACKAGEDIR}User.class \
72         ${PACKAGEDIR}Volume.class
73
74 LIBJAFS_OBJS =\
75         ${LIBJAFSADMDIR}ACL.o \
76         ${LIBJAFSADMDIR}File.o \
77         ${LIBJAFSADMDIR}FileInputStream.o \
78         ${LIBJAFSADMDIR}FileOutputStream.o \
79         ${LIBJAFSADMDIR}Internal.o \
80         ${LIBJAFSADMDIR}UserToken.o
81
82 LIBJAFSADM_OBJS =\
83         ${LIBJAFSADMDIR}AdminToken.o \
84         ${LIBJAFSADMDIR}Cell.o \
85         ${LIBJAFSADMDIR}Group.o \
86         ${LIBJAFSADMDIR}Internal.o \
87         ${LIBJAFSADMDIR}Key.o \
88         ${LIBJAFSADMDIR}Partition.o \
89         ${LIBJAFSADMDIR}Process.o \
90         ${LIBJAFSADMDIR}Server.o \
91         ${LIBJAFSADMDIR}User.o \
92         ${LIBJAFSADMDIR}Volume.o
93
94 CORRELATING_SOURCE_FILES =\
95         ${LIBJAFSADMDIR}ACL.c \
96         ${LIBJAFSADMDIR}Cell.c \
97         ${LIBJAFSADMDIR}File.c \
98         ${LIBJAFSADMDIR}FileInputStream.c \
99         ${LIBJAFSADMDIR}FileOutputStream.c \
100         ${LIBJAFSADMDIR}Group.c \
101         ${LIBJAFSADMDIR}Key.c \
102         ${LIBJAFSADMDIR}Partition.c \
103         ${LIBJAFSADMDIR}Process.c \
104         ${LIBJAFSADMDIR}Server.c \
105         ${LIBJAFSADMDIR}User.c \
106         ${LIBJAFSADMDIR}Volume.c
107
108 JAVA_HEADERS = ${PACKAGE:${PACKAGEDIR}%.class=${C_NATIVE_PREFIX}%.h}
109
110 BOSADMINLIB = ${TOP_LIBDIR}/libbosadmin.a
111 VOSADMINLIB = ${TOP_LIBDIR}/libvosadmin.a
112 PTSADMINLIB = ${TOP_LIBDIR}/libptsadmin.a
113 KASADMINLIB = ${TOP_LIBDIR}/libkasadmin.a
114 CFGADMINLIB = ${TOP_LIBDIR}/libcfgadmin.a
115 UTILADMINLIB = ${TOP_LIBDIR}/libafsadminutil.a
116 CLIENTADMINLIB = ${TOP_LIBDIR}/libclientadmin.a
117
118 LIBJAFS_LIBS =\
119         ${TOP_LIBDIR}/libjuafs.a \
120         ${TOP_LIBDIR}/libdes.a \
121         -lresolv \
122         -lpthread
123
124 LIBJAFSADM_LIBS =\
125         ${CLIENTADMINLIB} \
126         ${VOSADMINLIB} \
127         ${BOSADMINLIB} \
128         ${PTSADMINLIB} \
129         ${KASADMINLIB} \
130         ${CFGADMINLIB} \
131         ${UTILADMINLIB} \
132         ${TOP_LIBDIR}/libafsauthent.a \
133         ${TOP_LIBDIR}/libafsrpc.a \
134         ${TOP_LIBDIR}/libcmd.a \
135         -lresolv \
136         -lpthread
137
138
139 JARFILE = jafs.jar
140
141 include ../../config/Makefile.${SYS_NAME}
142
143 all:  ${TOP_JLIBDIR} libjafs libjafsadm ${PACKAGE} all_jar
144
145 install:  all ${DESTDIR}${libdir}/libjafs.so ${DESTDIR}${libdir}/libjafsadm.so ${PACKAGE} install_jar
146         if [ ! -e /usr/afswsp ]; then \
147           mkdir -p /usr/afswsp/; \
148         fi; \
149         if [ ! -e /usr/afswsp/etc ]; then \
150           mkdir -p /usr/afswsp/etc/; \
151           cp ./etc/CacheConfig /usr/afswsp/etc/; \
152         fi; \
153         if [ ! -e /usr/afswsp/log ]; then \
154           mkdir -p /usr/afswsp/log/; \
155         fi; \
156         if [ ! -e /usr/afswsp/cache ]; then \
157           mkdir -p /usr/afswsp/cache/; \
158         fi; \
159         if [ ! -L /usr/vice/etc/CellServDB ]; then \
160           ln -s /usr/vice/etc/CellServDB /usr/afswsp/etc/; \
161         fi; \
162         if [ ! -L /usr/vice/etc/ThisCell ]; then \
163           ln -s /usr/vice/etc/ThisCell /usr/afswsp/etc/; \
164         fi
165
166 clean:
167         ${RM} -f ${PACKAGEDIR}*.class ${LIBJAFSADMDIR}*.o ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}*.h
168
169 setup:  FORCE
170         if [ ! -e ./h ]; then \
171           ln -s /usr/include/sys h; \
172         fi; \
173
174 ${TOP_JLIBDIR}:
175         mkdir -p $@
176
177 FORCE: ;
178
179 ############# Shared library ###############################
180
181 libjafs: setup
182         ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
183         export BUILD_TYPE=user; \
184         ${MAKE} ${TOP_LIBDIR}/libjafs.so
185
186 libjafsadm:
187         ${RM} -f ${LIBJAFSADMDIR}Internal.o; \
188         export BUILD_TYPE=admin; \
189         ${MAKE} ${TOP_LIBDIR}/libjafsadm.so
190
191 ${TOP_LIBDIR}/libjafs.so: ${LIBJAFS_OBJS}
192         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
193
194 ${DESTDIR}${libdir}/libjafs.so: ${LIBJAFS_OBJS}
195         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFS_LIBS}
196
197 ${TOP_LIBDIR}/libjafsadm.so: ${LIBJAFSADM_OBJS}
198         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
199
200 ${DESTDIR}${libdir}/libjafsadm.so: ${LIBJAFSADM_OBJS}
201         ${CC} ${CFLAGS} ${SHARED_FLAGS} -o $@ $^ ${LIBJAFSADM_LIBS}
202
203 ############## Object files ################################
204
205 ${LIBJAFSADM_OBJS}: %.o: %.c
206         ${CC} ${CFLAGS} ${OBJECT_FLAGS} -o $@ $<
207
208 ############## C files #####################################
209
210 ${CORRELATING_SOURCE_FILES}: ${LIBJAFSADMDIR}%.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}%.h ${LIBJAFSADMDIR}Internal.h
211
212 ${LIBJAFSADMDIR}AdminToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Cell.h
213
214 ${LIBJAFSADMDIR}Internal.c: ${LIBJAFSADMDIR}Internal.h
215
216 ${LIBJAFSADMDIR}UserToken.c: ${LIBJAFSADMDIR}${C_NATIVE_PREFIX}Token.h
217
218 ############## Package javac section #########################
219
220 ${PACKAGEDIR}%.class: ${PACKAGEDIR}%.java
221         ${JAVAC} $<
222
223 ############## Javah section ###############################
224
225 ${JAVA_HEADERS}: ${C_NATIVE_PREFIX}%.h: ${PACKAGEDIR}%.class
226         ${JAVAH} ${J_NATIVE_PREFIX}$*
227
228 ############# JAR file #####################################
229
230 all_jar: clean_jar
231         cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${TOP_JLIBDIR}/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
232
233 install_jar: clean_jar
234         cd ${ROOTPACKAGEDIR}; ${JAVA_HOME}/bin/jar -cMf ${JAVA_HOME}/lib/${JARFILE} *.properties ${RELPACKAGEDIR}*.class
235
236 clean_jar:
237         ${RM} -f ${TOP_JLIBDIR}/${JARFILE}
238
239
240