# $Id$

include $(top_srcdir)/Makefile.am.common

libkadm5srv_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5
libkadm5clnt_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5

lib_LTLIBRARIES = libkadm5srv.la libkadm5clnt.la
libkadm5srv_la_LDFLAGS = -version-info 8:1:0
libkadm5clnt_la_LDFLAGS = -version-info 7:1:0

if versionscript
libkadm5clnt_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script-client.map
libkadm5srv_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
endif

sbin_PROGRAMS = iprop-log
check_PROGRAMS = default_keys test_marshall
noinst_PROGRAMS = test_pw_quality

noinst_LTLIBRARIES = sample_passwd_check.la sample_hook.la

sample_passwd_check_la_SOURCES = sample_passwd_check.c
sample_passwd_check_la_LDFLAGS = -module

sample_hook_la_SOURCES = sample_hook.c
sample_hook_la_LDFLAGS = -module

libkadm5srv_la_LIBADD = \
	$(LIB_com_err) ../krb5/libkrb5.la \
	../hdb/libhdb.la $(LIBADD_roken)
libkadm5clnt_la_LIBADD = \
	$(LIB_com_err) ../krb5/libkrb5.la $(LIBADD_roken)

libexec_PROGRAMS = ipropd-master ipropd-slave

default_keys_SOURCES = default_keys.c
default_keys_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5

test_marshall_SOURCES = marshall.c
test_marshall_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5 -DTEST

kadm5includedir = $(includedir)/kadm5
buildkadm5include = $(buildinclude)/kadm5

dist_kadm5include_HEADERS = admin.h private.h kadm5-hook.h kadm5-pwcheck.h
dist_kadm5include_HEADERS += $(srcdir)/kadm5-protos.h $(srcdir)/kadm5-private.h

nodist_kadm5include_HEADERS = kadm5_err.h

install-build-headers:: $(dist_kadm5include_HEADERS) $(nodist_kadm5include_HEADERS)
	@foo='$(dist_kadm5include_HEADERS) $(nodist_kadm5include_HEADERS)'; \
	for f in $$foo; do \
		f=`basename $$f`; \
		if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
		else file="$$f"; fi; \
		if cmp -s  $$file $(buildkadm5include)/$$f 2> /dev/null ; then \
		: ; else \
			echo "cp $$file $(buildkadm5include)/$$f";\
			cp $$file $(buildkadm5include)/$$f; \
		fi ; \
	done

dist_libkadm5clnt_la_SOURCES =			\
	ad.c					\
	chpass_c.c				\
	client_glue.c				\
	common_glue.c				\
	create_c.c				\
	delete_c.c				\
	destroy_c.c				\
	flush_c.c				\
	free.c					\
	get_c.c					\
	get_princs_c.c				\
	init_c.c				\
	kadm5_locl.h				\
	marshall.c				\
	modify_c.c				\
	private.h				\
	privs_c.c				\
	prune_c.c				\
	randkey_c.c				\
	rename_c.c				\
	send_recv.c				\
	admin.h

nodist_libkadm5clnt_la_SOURCES =		\
	kadm5_err.c				\
	kadm5_err.h

dist_libkadm5srv_la_SOURCES =			\
	acl.c					\
	admin.h					\
	bump_pw_expire.c			\
	chpass_s.c				\
	common_glue.c				\
	context_s.c				\
	create_s.c				\
	delete_s.c				\
	destroy_s.c				\
	ent_setup.c				\
	error.c					\
	flush_s.c				\
	free.c					\
	get_princs_s.c				\
	get_s.c					\
	init_s.c				\
	kadm5_locl.h				\
	keys.c					\
	log.c					\
	marshall.c				\
	modify_s.c				\
	password_quality.c			\
	private.h				\
	privs_s.c				\
	prune_s.c				\
	randkey_s.c				\
	rename_s.c				\
	server_glue.c				\
	server_hooks.c				\
	setkey3_s.c				\
	set_keys.c				\
	set_modifier.c				\
	admin.h

nodist_libkadm5srv_la_SOURCES = 		\
	kadm5_err.c				\
	kadm5_err.h

libkadm5srv_la_DEPENDENCIES =			\
	version-script.map

dist_iprop_log_SOURCES = iprop-log.c
nodist_iprop_log_SOURCES = iprop-commands.c

ipropd_master_SOURCES = ipropd_master.c ipropd_common.c iprop.h kadm5_locl.h
ipropd_master_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5

ipropd_slave_SOURCES = ipropd_slave.c ipropd_common.c iprop.h kadm5_locl.h
ipropd_slave_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5

man_MANS = kadm5_pwcheck.3 iprop.8 iprop-log.8

LDADD = \
	libkadm5srv.la \
	$(top_builddir)/lib/hdb/libhdb.la \
	$(top_builddir)/lib/krb5/libkrb5.la \
	$(top_builddir)/lib/asn1/libasn1.la \
	$(LIB_roken) \
	$(DB3LIB) $(DB1LIB) $(LMDBLIB) $(NDBMLIB) \
	$(LIB_dlopen) \
	$(LIB_pidfile)


iprop_log_LDADD = \
	libkadm5srv.la \
	$(top_builddir)/lib/hdb/libhdb.la \
	$(top_builddir)/lib/krb5/libkrb5.la \
	$(top_builddir)/lib/asn1/libasn1.la \
	$(top_builddir)/lib/sl/libsl.la \
	$(LIB_readline) \
	$(LIB_roken) \
	$(DB3LIB) $(DB1LIB) $(LMDBLIB) $(NDBMLIB) \
	$(LIB_dlopen) \
	$(LIB_pidfile)

iprop_log_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/../krb5

iprop-commands.c iprop-commands.h: iprop-commands.in
	$(SLC) $(srcdir)/iprop-commands.in

$(libkadm5srv_la_OBJECTS): kadm5_err.h
$(libkadm5clnt_la_OBJECTS): kadm5_err.h
$(iprop_log_OBJECTS): iprop-commands.h

client_glue.lo server_glue.lo: $(srcdir)/common_glue.c

CLEANFILES = kadm5_err.c kadm5_err.h iprop-commands.h iprop-commands.c

# to help stupid solaris make

kadm5_err.h: kadm5_err.et

ALL_OBJECTS  = $(libkadm5clnt_la_OBJECTS)
ALL_OBJECTS += $(libkadm5srv_la_OBJECTS)
ALL_OBJECTS += $(ipropd_master_OBJECTS)
ALL_OBJECTS += $(ipropd_slave_OBJECTS)
ALL_OBJECTS += $(iprop_log_OBJECTS)
ALL_OBJECTS += $(test_pw_quality_OBJECTS)
ALL_OBJECTS += $(sample_passwd_check_la_OBJECTS)
ALL_OBJECTS += $(sample_hook_la_OBJECTS)
ALL_OBJECTS += $(default_keys_OBJECTS)

$(ALL_OBJECTS): $(srcdir)/kadm5-protos.h $(srcdir)/kadm5-private.h
$(ALL_OBJECTS): kadm5_err.h

KADM5_PROTOS_SRCS  = $(dist_libkadm5clnt_la_SOURCES)
KADM5_PROTOS_SRCS += $(dist_libkadm5srv_la_SOURCES)

proto_opts = -q -R '^(_|kadm5_c_|kadm5_s_|kadm5_log)' -P comment
$(srcdir)/kadm5-protos.h: $(KADM5_PROTOS_SRCS)
	cd $(srcdir); perl ../../cf/make-proto.pl $(proto_opts) \
		-o kadm5-protos.h \
		$(dist_libkadm5clnt_la_SOURCES) \
		$(dist_libkadm5srv_la_SOURCES) \
		|| rm -f kadm5-protos.h

$(srcdir)/kadm5-private.h: $(KADM5_PROTOS_SRCS)
	cd $(srcdir); perl ../../cf/make-proto.pl $(proto_opts) \
		-p kadm5-private.h \
		$(dist_libkadm5clnt_la_SOURCES) \
		$(dist_libkadm5srv_la_SOURCES) \
		|| rm -f kadm5-private.h

EXTRA_DIST = \
	NTMakefile \
	iprop-log-version.rc \
	ipropd-master-version.rc \
	ipropd-slave-version.rc \
	libkadm5srv-version.rc \
	libkadm5srv-exports.def \
	kadm5_err.et \
	iprop-commands.in \
	$(man_MANS) \
	check-cracklib.pl \
	flush.c \
	sample_passwd_check.c \
	sample_hook.c \
	version-script.map \
	version-script-client.map
