# Copyright 2000, International Business Machines Corporation and others.
# All Rights Reserved.
# 
# This software has been released under the terms of the IBM Public
# License.  For details, see the LICENSE file in the top-level source
# directory or online at http://www.openafs.org/dl/license10.html

# This is a pthread safe library containing ubikclient, auth, kauth.

srcdir=@srcdir@
include @TOP_OBJDIR@/src/config/Makefile.config

CC=${MT_CC}
CFLAGS=${COMMON_CFLAGS} ${MT_CFLAGS} -I../auth -I../kauth -I../ptserver -I../sys
CCRULE = ${CC} ${CFLAGS} -c $?

AUDIT= ../audit
AUTH = ../auth
KAUTH = ../kauth
UBIK = ../ubik
UTIL = ../util
RXKAD = ../rxkad
PTSERVER = ../ptserver
SYS = ../sys

AUDITOBJS = audit.o

AUTHOBJS = \
	cellconfig.o \
	ktc.o \
	userok.o \
	writeconfig.o \
	authcon.o \
	ktc_errors.o \
	acfg_errors.o

KAUTHOBJS = \
	kauth.xdr.o \
	kauth.cs.o \
	kaaux.o \
	client.o \
	authclient.o \
	token.o \
	kautils.o \
	kalocalcell.o \
	kaerrors.o \
	user.o \
	read_passwd.o

UBIKOBJS = \
	uinit.o \
	ubikclient.o \
	uerrors.o \
	ubik_int.cs.o \
	ubik_int.xdr.o

UTILOBJS = \
	pthread_glock.o \
	get_krbrlm.o \
	dirpath.o \
	serverLog.o \
	snprintf.o \
	fileutil.o

RXKADOBJS = \
	rxkad_errs.o

SYSOBJS = \
	rmtsysc.o \
	rmtsys.xdr.o \
	rmtsys.cs.o \
	afssyscalls.o \
	rmtsysnet.o

PTSERVEROBJS = \
	ptclient.o \
	ptint.cs.o \
	ptint.xdr.o \
	ptuser.o \
	display.o \
	pterror.o

LIBOBJS = \
	${AUDITOBJS} \
	${AUTHOBJS} \
	${KAUTHOBJS} \
	${UBIKOBJS} \
	${UTILOBJS} \
	${RXKADOBJS} \
	${PTSERVEROBJS} \
	${SYSOBJS}

all: ${TOP_LIBDIR}/libafsauthent.a

install: ${DESTDIR}${libdir}/libafsauthent.a

${DEST}/lib/libafsauthent.a: libafsauthent.a
	${INSTALL} $? $@

libafsauthent.a: ${LIBOBJS}
	$(RM) -f $@
	$(AR) crv $@ ${LIBOBJS}
	$(RANLIB) $@

audit.o: ${AUDIT}/audit.c
	${CCRULE}

cellconfig.o: ${AUTH}/cellconfig.c
	${CCRULE}

ktc.o: ${AUTH}/ktc.c
	${CCRULE}

userok.o: ${AUTH}/userok.c
	${CCRULE}

writeconfig.o: ${AUTH}/writeconfig.c
	${CCRULE}

authcon.o: ${AUTH}/authcon.c
	${CCRULE}

ktc_errors.o: ${AUTH}/ktc_errors.c
	${CCRULE}

acfg_errors.o: ${AUTH}/acfg_errors.c
	${CCRULE}

kauth.xdr.o: ${KAUTH}/kauth.xdr.c
	${CCRULE}

kauth.cs.o: ${KAUTH}/kauth.cs.c
	${CCRULE}

kaaux.o: ${KAUTH}/kaaux.c
	${CCRULE}

client.o: ${KAUTH}/client.c
	${CCRULE}

authclient.o: ${KAUTH}/authclient.c
	${CCRULE}

token.o: ${KAUTH}/token.c
	${CCRULE}

kautils.o: ${KAUTH}/kautils.c
	${CCRULE}

kalocalcell.o: ${KAUTH}/kalocalcell.c
	${CCRULE}

kaerrors.o: ${KAUTH}/kaerrors.c
	${CCRULE}

user.o: ${KAUTH}/user.c
	${CCRULE}

read_passwd.o: ${KAUTH}/read_passwd.c
	${CCRULE}

ubikclient.o: ${UBIK}/ubikclient.c
	${CCRULE}

uinit.o: ${UBIK}/uinit.c
	${CCRULE}

uerrors.o: ${UBIK}/uerrors.c
	${CCRULE}

ubik_int.cs.o: ${UBIK}/ubik_int.cs.c
	${CCRULE}

ubik_int.xdr.o: ${UBIK}/ubik_int.xdr.c
	${CCRULE}

get_krbrlm.o: ${UTIL}/get_krbrlm.c
	${CCRULE}

dirpath.o: ${UTIL}/dirpath.c
	${CCRULE}

serverLog.o: ${UTIL}/serverLog.c
	${CCRULE}

snprintf.o: ${UTIL}/snprintf.c
	${CCRULE}

fileutil.o: ${UTIL}/fileutil.c
	${CCRULE}

pthread_glock.o: ${UTIL}/pthread_glock.c
	${CCRULE}

rxkad_errs.o: ${RXKAD}/rxkad_errs.c
	${CCRULE}

ptclient.o: ${PTSERVER}/ptclient.c
	${CCRULE}

# The special treatment of this file for hp_ux110 is because of a bug
# in version A.11.01.00 of the HP C compiler.  This bug appears to be
# fixed in version A.11.01.02 of the HP C compiler, however this version
# of the compiler is not installed on all of our build machines.
# The symptom of the problem is an error when linking the pthread fileserver:
# /usr/ccs/bin/ld: TP override with DATA_ONE_SYM fixup for non thread local
# storage symbol pr_Initialize in file DEST/lib/libafsauthent.a(ptuser.o)
ptuser.o: ${PTSERVER}/ptuser.c
	set -x; \
	case ${SYS_NAME} in \
	hp_ux11*) \
		set X `echo ${CCRULE} | sed s/-g//`; shift; \
		"$$@" \
		;; \
	*) \
		${CCRULE} \
		;; \
	esac

display.o: ${PTSERVER}/display.c
	${CCRULE}

ptint.cs.o: ${PTSERVER}/ptint.cs.c
	${CCRULE}

ptint.xdr.o: ${PTSERVER}/ptint.xdr.c
	${CCRULE}

pterror.o: ${PTSERVER}/pterror.c
	${CCRULE}

rmtsysc.o: ${SYS}/rmtsysc.c
	${CCRULE}

rmtsys.xdr.o: ${SYS}/rmtsys.xdr.c
	${CCRULE}

rmtsys.cs.o: ${SYS}/rmtsys.cs.c
	${CCRULE}

afssyscalls.o: ${SYS}/afssyscalls.c
	${CCRULE}

rmtsysnet.o: ${SYS}/rmtsysnet.c
	${CCRULE}

clean:
	$(RM) -f *.o *.a libafsauthent*

${DESTDIR}${libdir}/libafsauthent.a: libafsauthent.a
	${INSTALL} $? $@

${TOP_LIBDIR}/libafsauthent.a: libafsauthent.a
	${INSTALL} $? $@

dest: ${DEST}/lib/libafsauthent.a

