xref: /freebsd/crypto/krb5/src/lib/gssapi/Makefile.in (revision ee3960cba1068e12fb032a68c46d74841d9edab3)
1mydir=lib$(S)gssapi
2BUILDTOP=$(REL)..$(S)..
3SUBDIRS= generic krb5 spnego mechglue
4DEFINES=-D_GSS_STATIC_LINK=1
5
6##DOSLIBNAME=$(OUTPRE)gssapi.lib
7##DOSOBJFILELIST=@$(OUTPRE)mechglue.lst @$(OUTPRE)spnego.lst @$(OUTPRE)generic.lst @$(OUTPRE)krb5.lst # @$(OUTPRE)gssapi.lst
8##DOSOBJFILEDEP=$(OUTPRE)mechglue.lst $(OUTPRE)spnego.lst $(OUTPRE)generic.lst $(OUTPRE)krb5.lst # $(OUTPRE)gssapi.lst
9
10###DOSOBJFILE=$(OUTPRE)gssapi.lst
11##DOSLIBOBJS=$(OBJS)
12
13##DOS##DLL_EXP_TYPE=GSS
14
15LOCALINCLUDES = -Igeneric -I$(srcdir)/generic -Ikrb5 -I$(srcdir)/krb5 -I$(srcdir)/mechglue
16STLIBOBJS=
17
18OBJS=
19SRCS=
20
21LIBBASE=gssapi_krb5
22LIBMAJOR=2
23LIBMINOR=2
24#LIBINITFUNC=gssint_lib_init
25#LIBFINIFUNC=gssint_lib_fini
26SUBDIROBJLISTS=generic/OBJS.ST mechglue/OBJS.ST krb5/OBJS.ST spnego/OBJS.ST
27STOBJLISTS=OBJS.ST $(SUBDIROBJLISTS)
28SHLIB_EXPDEPS=\
29	$(KRB5_DEPLIB) $(CRYPTO_DEPLIB) $(SUPPORT_DEPLIB) $(COM_ERR_DEPLIB)
30SHLIB_EXPLIBS=-lkrb5 -lk5crypto $(COM_ERR_LIB) $(SUPPORT_LIB) $(DL_LIB) $(LIBS)
31RELDIR=gssapi
32
33all-unix: all-liblinks @MAINT@ verify-calling-conventions-gssapi
34
35install-unix: install-libs
36
37clean-unix:: clean-liblinks clean-libs clean-libobjs clean-misc-unix
38
39clean-windows::
40	$(RM) gssapi.lib gssapi.bak
41
42clean-misc-unix: clean-recurse
43	$(RM) merged-gssapi-header.h
44	$(RM) -r $(EHDRDIR)
45
46EHDRDIR=$(BUILDTOP)$(S)include$(S)gssapi
47EXPORTED_HEADERS= \
48	$(EHDRDIR)$(S)gssapi_krb5.h \
49	$(EHDRDIR)$(S)gssapi_generic.h \
50	$(EHDRDIR)$(S)gssapi.h \
51	$(EHDRDIR)$(S)gssapi_alloc.h \
52	$(EHDRDIR)$(S)gssapi_ext.h
53merged-gssapi-header.h: $(EXPORTED_HEADERS)
54	cat $(EXPORTED_HEADERS) > merged.tmp
55	$(MV) merged.tmp merged-gssapi-header.h
56verify-calling-conventions-gssapi: merged-gssapi-header.h
57	$(PERL) -w $(top_srcdir)/util/def-check.pl merged-gssapi-header.h $(srcdir)/../gssapi32.def
58
59# These rules are an attempt to handle several different problems:
60#
61# Certain files in subdirectories must be made current by the
62# recursion step before we can build files in this directory that
63# depend on them.  Existing but out-of-date versions must not be used.
64#
65# In a parallel make, nothing should be built more than once.  This
66# effect can be exaggerated for testing by sticking "sleep 5" into the
67# rules for generating the files in subdirectories.  For example, in
68# between testing for a directory and creating it -- do you then get
69# mkdir complaining that the directory exists?  Adding the sleep
70# command may also exaggerate the build-with-outdated-headers problem,
71# by causing the timestamp on the newly generated header to be several
72# seconds newer than object files built with its old version, even on
73# fast machines where the UNIX filesystem's one-second granularity
74# would mask the problem.
75#
76# We must not cause these files to always be considered newly updated
77# when it comes time to build the object files in this directory.
78# Otherwise, we wind up recompiling some files every time we run make.
79
80# This set of rules fails the parallel make case; it can build
81# gssapi-include and all-recurse at the same time, and both will
82# create include/gssapi and gssapi.h.
83#$(BUILDTOP)/include/gssapi/gssapi.h: generic/gssapi.h
84#	(cd generic && $(MAKE) gssapi-include)
85#generic/gssapi.h: generic/gssapi.hin
86#	(cd generic && $(MAKE) gssapi.h)
87#generic/gssapi_err_generic.h: generic/gssapi_err_generic.et
88#	(cd generic && $(MAKE) gssapi_err_generic.h)
89#krb5/gssapi_err_krb5.h: krb5/gssapi_err_krb5.et
90#	(cd krb5 && $(MAKE) gssapi_err_krb5.h)
91
92# This version, without the no-op command to run, reportedly caused
93# repeated rebuilds in certain cases.  With the no-op command, it
94# appears to be properly serializing the subdir processing and local
95# compiles... so far.
96##DOS##!if 0
97$(EXPORTED_HEADERS) generic/gssapi.h krb5/gssapi_err_krb5.h generic/gssapi_err_generic.h krb5/gssapi_krb5.h: all-recurse
98	: $@ updated by recursion rule
99##DOS##!endif
100
101
102@lib_frag@
103@libobj_frag@
104
105