thisconfigdir=./..
myfulldir=lib/krb5/os
mydir=os
BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
KRB5_RUN_ENV = @KRB5_RUN_ENV@
PROG_LIBPATH=-L$(TOPLIBD)
PROG_RPATH=$(KRB5_LIBDIR)

##DOS##BUILDTOP = ..\..\..
##DOS##PREFIXDIR=os
##DOS##OBJFILE=..\$(OUTPRE)$(PREFIXDIR).lst
##WIN16##LIBNAME=..\krb5.lib

STLIBOBJS= \
	an_to_ln.o	\
	c_ustime.o	\
	def_realm.o	\
	ccdefname.o	\
	changepw.o	\
	free_krbhs.o	\
	free_hstrl.o	\
	full_ipadr.o	\
	get_krbhst.o	\
	gen_port.o	\
	genaddrs.o	\
	gen_rname.o	\
	gmt_mktime.o	\
	hostaddr.o	\
	hst_realm.o	\
	init_os_ctx.o	\
	krbfileio.o	\
	ktdefname.o	\
	kuserok.o	\
	mk_faddr.o	\
	localaddr.o	\
	locate_kdc.o	\
	lock_file.o	\
	net_read.o	\
	net_write.o	\
	osconfig.o	\
	port2ip.o	\
	prompter.o	\
	promptusr.o	\
	read_msg.o	\
	read_pwd.o	\
	realm_dom.o	\
	realm_iter.o	\
	sendto_kdc.o	\
	sn2princ.o	\
	timeofday.o	\
	toffset.o	\
	unlck_file.o	\
	ustime.o	\
	write_msg.o

OBJS= \
	$(OUTPRE)an_to_ln.$(OBJEXT)	\
	$(OUTPRE)c_ustime.$(OBJEXT)	\
	$(OUTPRE)def_realm.$(OBJEXT)	\
	$(OUTPRE)ccdefname.$(OBJEXT)	\
	$(OUTPRE)changepw.$(OBJEXT)	\
	$(OUTPRE)free_krbhs.$(OBJEXT)	\
	$(OUTPRE)free_hstrl.$(OBJEXT)	\
	$(OUTPRE)full_ipadr.$(OBJEXT)	\
	$(OUTPRE)get_krbhst.$(OBJEXT)	\
	$(OUTPRE)gen_port.$(OBJEXT)	\
	$(OUTPRE)genaddrs.$(OBJEXT)	\
	$(OUTPRE)gen_rname.$(OBJEXT)	\
	$(OUTPRE)gmt_mktime.$(OBJEXT)	\
	$(OUTPRE)hostaddr.$(OBJEXT)	\
	$(OUTPRE)hst_realm.$(OBJEXT)	\
	$(OUTPRE)init_os_ctx.$(OBJEXT)	\
	$(OUTPRE)krbfileio.$(OBJEXT)	\
	$(OUTPRE)ktdefname.$(OBJEXT)	\
	$(OUTPRE)kuserok.$(OBJEXT)	\
	$(OUTPRE)mk_faddr.$(OBJEXT)	\
	$(OUTPRE)localaddr.$(OBJEXT)	\
	$(OUTPRE)locate_kdc.$(OBJEXT)	\
	$(OUTPRE)lock_file.$(OBJEXT)	\
	$(OUTPRE)net_read.$(OBJEXT)	\
	$(OUTPRE)net_write.$(OBJEXT)	\
	$(OUTPRE)osconfig.$(OBJEXT)	\
	$(OUTPRE)port2ip.$(OBJEXT)	\
	$(OUTPRE)prompter.$(OBJEXT)	\
	$(OUTPRE)promptusr.$(OBJEXT)	\
	$(OUTPRE)read_msg.$(OBJEXT)	\
	$(OUTPRE)read_pwd.$(OBJEXT)	\
	$(OUTPRE)realm_dom.$(OBJEXT)	\
	$(OUTPRE)realm_iter.$(OBJEXT)	\
	$(OUTPRE)sendto_kdc.$(OBJEXT)	\
	$(OUTPRE)sn2princ.$(OBJEXT)	\
	$(OUTPRE)timeofday.$(OBJEXT)	\
	$(OUTPRE)toffset.$(OBJEXT)	\
	$(OUTPRE)unlck_file.$(OBJEXT)	\
	$(OUTPRE)ustime.$(OBJEXT)	\
	$(OUTPRE)write_msg.$(OBJEXT)

SRCS= \
	$(srcdir)/an_to_ln.c	\
	$(srcdir)/c_ustime.c	\
	$(srcdir)/def_realm.c	\
	$(srcdir)/ccdefname.c	\
	$(srcdir)/changepw.c	\
	$(srcdir)/free_krbhs.c	\
	$(srcdir)/free_hstrl.c	\
	$(srcdir)/full_ipadr.c	\
	$(srcdir)/get_krbhst.c	\
	$(srcdir)/gen_port.c	\
	$(srcdir)/genaddrs.c	\
	$(srcdir)/gen_rname.c	\
	$(srcdir)/gmt_mktime.c	\
	$(srcdir)/hostaddr.c	\
	$(srcdir)/hst_realm.c	\
	$(srcdir)/init_os_ctx.c	\
	$(srcdir)/krbfileio.c	\
	$(srcdir)/ktdefname.c	\
	$(srcdir)/kuserok.c	\
	$(srcdir)/mk_faddr.c	\
	$(srcdir)/localaddr.c	\
	$(srcdir)/locate_kdc.c	\
	$(srcdir)/lock_file.c	\
	$(srcdir)/net_read.c	\
	$(srcdir)/net_write.c	\
	$(srcdir)/osconfig.c	\
	$(srcdir)/prompter.c	\
	$(srcdir)/promptusr.c	\
	$(srcdir)/read_msg.c	\
	$(srcdir)/read_pwd.c	\
	$(srcdir)/realm_dom.c	\
	$(srcdir)/realm_iter.c	\
	$(srcdir)/port2ip.c	\
	$(srcdir)/sendto_kdc.c	\
	$(srcdir)/sn2princ.c	\
	$(srcdir)/timeofday.c	\
	$(srcdir)/toffset.c	\
	$(srcdir)/unlck_file.c	\
	$(srcdir)/ustime.c	\
	$(srcdir)/write_msg.c

##DOS##LIBOBJS = $(OBJS)

all-unix:: all-libobjs
clean-unix:: clean-libobjs

shared:
	mkdir shared

TEST_PROGS= t_std_conf t_an_to_ln

T_STD_CONF_OBJS= t_std_conf.o def_realm.o get_krbhst.o realm_dom.o \
		hst_realm.o init_os_ctx.o locate_kdc.o 

T_AN_TO_LN_OBJS = t_an_to_ln.o an_to_ln.o 

T_REALM_ITER_OBJS = t_realm_iter.o realm_iter.o

t_std_conf: $(T_STD_CONF_OBJS) $(KRB5_BASE_DEPLIBS)
	$(CC_LINK) -o t_std_conf $(T_STD_CONF_OBJS) $(KRB5_BASE_LIBS)

t_an_to_ln: $(T_AN_TO_LN_OBJS) $(KRB5_BASE_DEPLIBS)
	$(CC_LINK) -o t_an_to_ln $(T_AN_TO_LN_OBJS) $(KRB5_BASE_LIBS)

t_realm_iter: $(T_REALM_ITER_OBJS) $(KRB5_BASE_DEPLIBS)
	$(CC_LINK) -o t_realm_iter $(T_REALM_ITER_OBJS) $(KRB5_BASE_LIBS)

check-unix:: $(TEST_PROGS)
	KRB5_CONFIG=$(srcdir)/td_krb5.conf ; export KRB5_CONFIG ;\
	$(KRB5_RUN_ENV) ./t_std_conf  -d -s NEW.DEFAULT.REALM -d \
		-k IGGY.ORG -k DEFAULT_REALM.TST \
		-D DEFAULT_REALM.TST -r bad.idea -r itar.bad.idea \
		-r really.BAD.IDEA. -r clipper.bad.idea -r KeYEsCrOW.BaD.IDea \
		-r pgp.good.idea -r no_domain > test.out
	cmp test.out $(srcdir)/ref_std_conf.out
	$(RM) test.out

#
# Do some aname-to-lname testing.
#
check-unix::
	echo '[libdefaults]' > ./t_an.conf
	echo '	default_realm = r' >> ./t_an.conf
	echo '[realms]' >> ./t_an.conf
	echo 'r = {' >> ./t_an.conf
#	if test -r ../../../admin/aname/kdb5_anadd ; then \
#		$(KRB5_RUN_ENV) ../../../admin/aname/kdb5_anadd -a -n ./t_an p/i/i/i@r piii; \
#		../../../admin/aname/kdb5_anadd -a -n ./t_an p/a/b/c@r pabc; \
#		echo 'auth_to_local = DB:./t_an' >> ./t_an.conf; \
#	fi
	echo 'auth_to_local = RULE:[3:$$1$$3$$2](rule.*)s/rule//g' \
		>> ./t_an.conf
	echo 'auth_to_local = DEFAULT' >> ./t_an.conf
	echo '}' >> ./t_an.conf
#	if test -r ../../../admin/aname/kdb5_anadd ; then \
#		KRB5_CONFIG=./t_an.conf ; export KRB5_CONFIG ; \
#		$(KRB5_RUN_ENV) ./t_an_to_ln p/i/i/i@r p/a/b/c@r; \
#	fi
	KRB5_CONFIG=./t_an.conf ; export KRB5_CONFIG ; \
	$(KRB5_RUN_ENV) ./t_an_to_ln rul/helpme/e@r ru/123/le@r
	KRB5_CONFIG=./t_an.conf ; export KRB5_CONFIG ; \
	$(KRB5_RUN_ENV) ./t_an_to_ln fred/r@r barney/r@r
	$(RM) ./t_an.*

clean:: 
	$(RM) $(TEST_PROGS) test.out t_std_conf.o t_an_to_ln.o
