mydir=lib$(S)gssapi
BUILDTOP=$(REL)..$(S)..
SUBDIRS= generic krb5 spnego mechglue
DEFINES=-D_GSS_STATIC_LINK=1

##DOSLIBNAME=$(OUTPRE)gssapi.lib
##DOSOBJFILELIST=@$(OUTPRE)mechglue.lst @$(OUTPRE)spnego.lst @$(OUTPRE)generic.lst @$(OUTPRE)krb5.lst # @$(OUTPRE)gssapi.lst
##DOSOBJFILEDEP=$(OUTPRE)mechglue.lst $(OUTPRE)spnego.lst $(OUTPRE)generic.lst $(OUTPRE)krb5.lst # $(OUTPRE)gssapi.lst

###DOSOBJFILE=$(OUTPRE)gssapi.lst
##DOSLIBOBJS=$(OBJS)

##DOS##DLL_EXP_TYPE=GSS

LOCALINCLUDES = -Igeneric -I$(srcdir)/generic -Ikrb5 -I$(srcdir)/krb5 -I$(srcdir)/mechglue
STLIBOBJS=

OBJS=
SRCS=

LIBBASE=gssapi_krb5
LIBMAJOR=2
LIBMINOR=2
#LIBINITFUNC=gssint_lib_init
#LIBFINIFUNC=gssint_lib_fini
STOBJLISTS=OBJS.ST generic/OBJS.ST mechglue/OBJS.ST krb5/OBJS.ST spnego/OBJS.ST
SUBDIROBJLISTS=generic/OBJS.ST mechglue/OBJS.ST krb5/OBJS.ST spnego/OBJS.ST
SHLIB_EXPDEPS=\
	$(KRB5_DEPLIB) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB) $(COM_ERR_DEPLIB)
SHLIB_EXPLIBS=-lkrb5 -lk5crypto -lcom_err $(SUPPORT_LIB) $(DL_LIB) $(LIBS)
RELDIR=gssapi

all-unix:: all-liblinks @MAINT@ verify-calling-conventions-gssapi

install-unix:: install-libs

clean-unix:: clean-liblinks clean-libs clean-libobjs clean-misc-unix

clean-windows::
	$(RM) gssapi.lib gssapi.bak

clean-misc-unix: clean-recurse
	$(RM) merged-gssapi-header.h
	$(RM) -r $(EHDRDIR)

EHDRDIR=$(BUILDTOP)$(S)include$(S)gssapi
EXPORTED_HEADERS= \
	$(EHDRDIR)$(S)gssapi_krb5.h \
	$(EHDRDIR)$(S)gssapi_generic.h \
	$(EHDRDIR)$(S)gssapi.h \
	$(EHDRDIR)$(S)gssapi_alloc.h \
	$(EHDRDIR)$(S)gssapi_ext.h
merged-gssapi-header.h: $(EXPORTED_HEADERS)
	cat $(EXPORTED_HEADERS) > merged.tmp
	$(MV) merged.tmp merged-gssapi-header.h
verify-calling-conventions-gssapi: merged-gssapi-header.h
	$(PERL) -w $(top_srcdir)/util/def-check.pl merged-gssapi-header.h $(srcdir)/../gssapi32.def

# These rules are an attempt to handle several different problems:
#
# Certain files in subdirectories must be made current by the
# recursion step before we can build files in this directory that
# depend on them.  Existing but out-of-date versions must not be used.
#
# In a parallel make, nothing should be built more than once.  This
# effect can be exaggerated for testing by sticking "sleep 5" into the
# rules for generating the files in subdirectories.  For example, in
# between testing for a directory and creating it -- do you then get
# mkdir complaining that the directory exists?  Adding the sleep
# command may also exaggerate the build-with-outdated-headers problem,
# by causing the timestamp on the newly generated header to be several
# seconds newer than object files built with its old version, even on
# fast machines where the UNIX filesystem's one-second granularity
# would mask the problem.
#
# We must not cause these files to always be considered newly updated
# when it comes time to build the object files in this directory.
# Otherwise, we wind up recompiling some files every time we run make.

# This set of rules fails the parallel make case; it can build
# gssapi-include and all-recurse at the same time, and both will
# create include/gssapi and gssapi.h.
#$(BUILDTOP)/include/gssapi/gssapi.h: generic/gssapi.h
#	(cd generic && $(MAKE) gssapi-include)
#generic/gssapi.h: generic/gssapi.hin
#	(cd generic && $(MAKE) gssapi.h)
#generic/gssapi_err_generic.h: generic/gssapi_err_generic.et
#	(cd generic && $(MAKE) gssapi_err_generic.h)
#krb5/gssapi_err_krb5.h: krb5/gssapi_err_krb5.et
#	(cd krb5 && $(MAKE) gssapi_err_krb5.h)

# This version, without the no-op command to run, reportedly caused
# repeated rebuilds in certain cases.  With the no-op command, it
# appears to be properly serializing the subdir processing and local
# compiles... so far.
##DOS##!if 0
$(EXPORTED_HEADERS) generic/gssapi.h krb5/gssapi_err_krb5.h generic/gssapi_err_generic.h krb5/gssapi_krb5.h: all-recurse
	: $@ updated by recursion rule
##DOS##!endif


@lib_frag@
@libobj_frag@

