# BuildSystemHeader added automatically
# $Header: [Makefile,v 1.1.1.1 91/08/07 12:57:25 afuller Exp ]$
# @(#)Makefile	1.7  (ULTRIX)  8/10/90

AWK =		awk
CHMOD =		chmod
INSTALL =	install
LINT =		lint
MKDIR =		mkdir
NIDL =		nidl
RANLIB =	ranlib
TOUCH =		touch
MAKEDEPEND =	../../../util/makedepend/makedepend

# nidl

NINCLUDES =	-idir ./ -idir /usr/include/idl
NFLAGS =	$(NDEFINES) $(NINCLUDES) $(NDEBUGFLAGS) -m

# cc

CINCLUDES =	-I. -I/usr/include -I/usr/include/idl/c	\
		-I../uam
CFLAGS =	$(CDEFINES) $(CINCLUDES) $(CDEBUGFLAGS) 

# libs

NCKLIB =	-lnck
KRBLIBS =	-lkrb -lknet -lkdb -ldes -lacl

#
# rpc interface stubs
#

# pwfile

PWFILE_CSRCS =		pwfile_cstub.c pwfile_cswtch.c
PWFILE_COBJS =		$(PWFILE_CSRCS:.c=.o)

PWFILE_SSRCS =		pwfile_sstub.c
PWFILE_SOBJS =		$(PWFILE_SSRCS:.c=.o)

PWFILE_SRCS =		$(PWFILE_CSRCS) $(PWFILE_SSRCS) pwfile.h

# grfile

GRFILE_CSRCS =		grfile_cstub.c grfile_cswtch.c
GRFILE_COBJS =		$(GRFILE_CSRCS:.c=.o)

GRFILE_SSRCS =		grfile_sstub.c
GRFILE_SOBJS =		$(GRFILE_SSRCS:.c=.o)

GRFILE_SRCS =		$(GRFILE_CSRCS) $(GRFILE_SSRCS) grfile.h

# authfile

AUTHFILE_CSRCS =	authfile_cstub.c authfile_cswtch.c
AUTHFILE_COBJS =	$(AUTHFILE_CSRCS:.c=.o)

AUTHFILE_SSRCS =	authfile_sstub.c
AUTHFILE_SOBJS =	$(AUTHFILE_SSRCS:.c=.o)

AUTHFILE_SRCS =		$(AUTHFILE_CSRCS) $(AUTHFILE_SSRCS) authfile.h

# home

HOME_CSRCS =		home_cstub.c home_cswtch.c
HOME_COBJS =		$(HOME_CSRCS:.c=.o)

HOME_SSRCS =		home_sstub.c
HOME_SOBJS =		$(HOME_SSRCS:.c=.o)

HOME_SRCS =		$(HOME_CSRCS) $(HOME_SSRCS) home.h

# filesys

FILESYS_CSRCS =		filesys_cstub.c filesys_cswtch.c
FILESYS_COBJS =		$(FILESYS_CSRCS:.c=.o)

FILESYS_SSRCS =		filesys_sstub.c
FILESYS_SOBJS =		$(FILESYS_SSRCS:.c=.o)

FILESYS_SRCS =		$(FILESYS_CSRCS) $(FILESYS_SSRCS) filesys.h

# all interface stubs

STUB_SRCS =		common.h \
			$(PWFILE_SRCS) \
			$(GRFILE_SRCS) \
			$(AUTHFILE_SRCS) \
			$(HOME_SRCS) \
			$(FILESYS_SRCS)

#
# libclient.a (client stub library)
#

LIBCLIENT =		libclient.a

COBJS =			$(PWFILE_COBJS) \
			$(GRFILE_COBJS) \
			$(AUTHFILE_COBJS) \
			$(HOME_COBJS) \
			$(FILESYS_COBJS)

#
# libserver.a (server stub library)
#

LIBSERVER =		libserver.a

SOBJS =			$(PWFILE_SOBJS) \
			$(GRFILE_SOBJS) \
			$(AUTHFILE_SOBJS) \
			$(HOME_SOBJS) \
			$(FILESYS_SOBJS)

#
# libuamd.a (uamd library)
#

LIBUAMD =		libuamd.a

USRCS =			sa_acctd.c register.c uamd_utils.c \
			uamd_common.c kerb_server.c etcfileint.c \
			pwfile.c \
			grfile.c \
			authfile.c \
			home.c \
			filesys.c

UOBJS =			$(USRCS:.c=.o)

#
# libmsg.a (message library)
#

LIBMSG =		libmsg.a

MSRCS =			home_msg.c \
			filesys_msg.c

MOBJS =			pwfile_msg.o grfile_msg.o authfile_msg.o \
			$(MSRCS:.c=.o)

#
# dependencies
#

all:			$(STUB_SRCS) $(LIBMSG) $(LIBUAMD)

rall:			$(STUB_SRCS) $(LIBMSG) $(LIBCLIENT) uamd uamd_reset

# idl files

common.h:		common.idl
	$(NIDL) common.idl $(NFLAGS)

$(PWFILE_SRCS):		pwfile.idl etcfile.idl
	$(NIDL) pwfile.idl $(NFLAGS)
	$(AWK) -f jacket.awk pwfile_cswtch.c > tmp
	$(MV) tmp pwfile_cswtch.c

$(GRFILE_SRCS):		grfile.idl etcfile.idl
	$(NIDL) grfile.idl $(NFLAGS)
	$(AWK) -f jacket.awk grfile_cswtch.c > tmp
	$(MV) tmp grfile_cswtch.c

$(AUTHFILE_SRCS):	authfile.idl etcfile.idl
	$(NIDL) authfile.idl $(NFLAGS)
	$(AWK) -f jacket.awk authfile_cswtch.c > tmp
	$(MV) tmp authfile_cswtch.c

$(HOME_SRCS):		home.idl
	$(NIDL) home.idl $(NFLAGS)
	$(AWK) -f jacket.awk home_cswtch.c > tmp
	$(MV) tmp home_cswtch.c

$(FILESYS_SRCS):	filesys.idl
	$(NIDL) filesys.idl $(NFLAGS)
	$(AWK) -f jacket.awk filesys_cswtch.c > tmp
	$(MV) tmp filesys_cswtch.c

# libraries

$(LIBCLIENT):		$(COBJS)
	$(AR) $(ARFLAGS) $@ $?
	$(RANLIB) $@

$(LIBSERVER):		$(SOBJS)
	$(AR) $(ARFLAGS) $@ $?
	$(RANLIB) $@

$(LIBUAMD):		$(UOBJS)
	$(AR) $(ARFLAGS) $@ $?
	$(RANLIB) $@

$(LIBMSG):		$(MOBJS)
	$(AR) $(ARFLAGS) $@ $?
	$(RANLIB) $@

pwfile_msg.o:		etcfile_msg.c uamd_common.h etcfile_msg.h pwfile.h
	$(CC) -c $(CFLAGS) -DPWFILE etcfile_msg.c
	$(MV) etcfile_msg.o $@

grfile_msg.o:		etcfile_msg.c
	$(CC) -c $(CFLAGS) -DGRFILE etcfile_msg.c
	$(MV) etcfile_msg.o $@

authfile_msg.o:		etcfile_msg.c
	$(CC) -c $(CFLAGS) -DAUTHFILE etcfile_msg.c
	$(MV) etcfile_msg.o $@

# uamd

uamd:			$(LIBUAMD) $(LIBSERVER) $(LIBMSG)
	$(CC) $(CFLAGS) $(LDFLAGS) \
		$(LIBUAMD) $(LIBSERVER) $(LIBMSG) \
		$(NCKLIB) $(KRBLIBS) -o $@

# uamd_reset

uamd_reset:

#
# relink
#

relink::

relink:: all

rrelink::
	-$(RM) -f uamd uamd_reset

rrelink:: rall

#
# install
#

UAMDIR=/var/adm/uam

install: all
	$(INSTALL) -c -m 0755 home.sh $(DESTDIR)/usr/bin/uam_home

rinstall: rall
	$(INSTALL) -c -m 0744 uamd_reset $(DESTDIR)/usr/etc
	$(INSTALL) -c -m 0744 uamd $(DESTDIR)/usr/etc
	$(INSTALL) -c -m 0744 home.sh $(DESTDIR)/usr/etc/uamd_home
	-$(MKDIR) $(DESTDIR)$(UAMDIR)
	$(TOUCH) $(DESTDIR)$(UAMDIR)/uamd_acl_file
	$(CHMOD) 0644 $(DESTDIR)$(UAMDIR)/uamd_acl_file
	$(INSTALL) -c -m 0644 uamd_acl_README \
		$(DESTDIR)$(UAMDIR)/uamd_acl_README

#
# clean
#

clean:
	$(RM) -f *.o *~ \#* *.bak *.a core uamd uamd_reset $(STUB_SRCS)

#
# lint
#

lint:			$(STUB_SRCS)
	$(LINT) $(CFLAGS) $(USRCS) $(MSRCS)

#
# depend
#

depend:			$(STUB_SRCS)
	$(MAKEDEPEND) $(CFLAGS) $(USRCS) $(MSRCS)

# DO NOT DELETE THIS LINE -- make depend depends on it.
