eb470edfa053b3d11c82656085df26948c3b8ebb
[openafs.git] / src / kopenafs / 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 # Portions Copyright (c) 2003 Apple Computer, Inc.
9
10 srcdir=@srcdir@
11 include @TOP_OBJDIR@/src/config/Makefile.config
12
13 # API version. When something changes, increment as appropriate. 
14 # Ignore at your own risk.
15 MAJOR           = 1
16 MINOR           = 0
17
18 CC              = ${MT_CC}
19 INCLUDES        = -I. -I${srcdir} -I../sys
20 CFLAGS          = ${COMMON_CFLAGS} ${INCLUDES} ${MT_CFLAGS} ${SHLIB_CFLAGS}
21
22 SYS             = ${srcdir}/../sys
23 SYSOBJS         = glue.o pioctl.o setpag.o syscall.o
24 LIBOBJS         = kopenafs.o ${SYSOBJS} AFS_component_version_number.o
25
26 LIBKOPENAFS     = libkopenafs.${SHLIB_SUFFIX}.${MAJOR}.${MINOR}
27
28 all: ${TOP_LIBDIR}/${LIBKOPENAFS} ${TOP_LIBDIR}/libkopenafs.a \
29                 ${TOP_INCDIR}/kopenafs.h
30
31 ${TOP_LIBDIR}/${LIBKOPENAFS}: ${LIBKOPENAFS}
32         ${INSTALL_DATA} ${LIBKOPENAFS} ${TOP_LIBDIR}/${LIBKOPENAFS}
33         -ln -f -s ${LIBKOPENAFS} \
34                 ${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX}
35         -ln -f -s ${LIBKOPENAFS} \
36                 ${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX}.${MAJOR}
37
38 ${TOP_LIBDIR}/libkopenafs.a: libkopenafs.a
39         ${INSTALL_DATA} libkopenafs.a $@
40
41 ${TOP_INCDIR}/kopenafs.h: kopenafs.h
42         ${INSTALL_DATA} kopenafs.h $@
43
44 glue.o: ${SYS}/glue.c ${SYS}/afssyscalls.h
45         ${CCOBJ} ${CFLAGS} -c ${SYS}/glue.c
46
47 pioctl.o: ${SYS}/pioctl.c ${SYS}/afssyscalls.h
48         ${CCOBJ} ${CFLAGS} -c ${SYS}/pioctl.c
49
50 setpag.o: ${SYS}/setpag.c ${SYS}/afssyscalls.h
51         ${CCOBJ} ${CFLAGS} -c ${SYS}/setpag.c
52
53 # This file is only actually used on SGI and AIX, but some systems can't cope
54 # with an empty .o file being included in a link.
55 syscall.o: ${SYS}/syscall.s
56         @set -x; case "$(SYS_NAME)" in \
57         sgi_*) \
58                 ${CC} ${CFLAGS} -c ${SYS}/syscall.s; \
59                 ;; \
60         *fbsd* | *obsd* | *nbsd*) \
61                 ${CCOBJ} -E ${SFLAGS} syscall.s > syscall.S ; \
62                 ${AS} syscall.S -o syscall.o ; \
63                 $(RM) -f syscall.S; \
64                 ;; \
65         rs_aix*) \
66                 /lib/cpp -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
67                 as -o syscall.o syscall.ss; \
68                 $(RM) syscall.ss; \
69                 ;; \
70         *) \
71                 touch syscall.o; \
72                 ;; \
73         esac
74
75 libkopenafs.a: ${LIBOBJS}
76         ${RM} -f $@
77         ${AR} crv $@ ${LIBOBJS}
78         ${RANLIB} $@
79
80 ${LIBKOPENAFS}: ${LIBOBJS}
81         case ${SYS_NAME} in \
82         rs_aix*) \
83                 ${SHLIB_LINKER} -o ${LIBKOPENAFS} ${LIBOBJS} \
84                         -bE:${srcdir}/kopenafs.exp ${MT_LIBS}; \
85                 ;; \
86         sun*_5*) \
87                 ${SHLIB_LINKER} -h libafsrpc.${SHLIB_SUFFIX}.${MAJOR} \
88                         -o ${LIBKOPENAFS} ${LIBOBJS} ${MT_LIBS}; \
89                 ;; \
90         *_linux*) \
91                 ${SHLIB_LINKER} -Wl,-h,libafsrpc.${SHLIB_SUFFIX}.${MAJOR} \
92                         -Wl,--version-script=${srcdir}/mapfile \
93                         -o ${LIBKOPENAFS} ${LIBOBJS} ${MT_LIBS}; \
94                 ;; \
95         *) \
96                 ${SHLIB_LINKER} -o ${LIBKOPENAFS} ${LIBOBJS} ${MT_LIBS}; \
97                 ;; \
98         esac
99
100 test-unlog: test-unlog.o libkopenafs.a
101         ${CC} -o test-unlog test-unlog.o libkopenafs.a ${XLIBS} ${CFLAGS}
102
103 test-setpag: test-setpag.o libkopenafs.a
104         ${CC} -o test-setpag test-setpag.o libkopenafs.a ${XLIBS} ${CFLAGS}
105
106 #
107 # Installation targets
108 #
109 install: ${LIBKOPENAFS}
110         ${INSTALL} -d ${DESTDIR}${libdir}
111         ${INSTALL} -d ${DESTDIR}${includedir}
112         ${INSTALL_DATA} libkopenafs.a ${DESTDIR}${libdir}/libkopenafs.a
113         ${INSTALL_DATA} ${LIBKOPENAFS} ${DESTDIR}${libdir}/${LIBKOPENAFS}
114         -ln -f -s ${LIBKOPENAFS} \
115                 ${DESTDIR}${libdir}/libkopenafs.${SHLIB_SUFFIX}
116         -ln -f -s ${LIBKOPENAFS} \
117                 ${DESTDIR}${libdir}/libkopenafs.${SHLIB_SUFFIX}.${MAJOR}
118         ${INSTALL_DATA} kopenafs.h ${DESTDIR}${includedir}/kopenafs.h
119
120 dest: ${LIBKOPENAFS}
121         ${INSTALL} -d ${DEST}/lib
122         ${INSTALL} -d ${DEST}/include
123         ${INSTALL_DATA} libkopenafs.a ${DEST}/lib/libkopenafs.a
124         ${INSTALL_DATA} ${LIBKOPENAFS} ${DEST}/lib/${LIBKOPENAFS}
125         -ln -f -s ${LIBKOPENAFS} \
126                 ${DEST}/lib/libkopenafs.${SHLIB_SUFFIX}
127         -ln -f -s ${LIBKOPENAFS} \
128                 ${DEST}/lib/libkopenafs.${SHLIB_SUFFIX}.${MAJOR}
129         ${INSTALL_DATA} kopenafs.h ${DEST}/include/kopenafs.h
130
131 #
132 # Misc targets
133 #
134 clean:
135         $(RM) -f *.o *.a ${LIBKOPENAFS} AFS_component_version_number.c
136
137 include ../config/Makefile.version