## Process this file with automake to produce Makefile.in

# Package: am-utils
# Level: Makefile for amd/ directory
# Author: Erez Zadok

# no need for libaminfo to be yet another dynamic library
noinst_LIBRARIES = libaminfo.a
sbin_PROGRAMS = amd sun2amd

# man pages
man_MANS = amd.8 sun2amd.8

# test scripts
TESTS = test1.sh

# headers this depends on, not to be installed
noinst_HEADERS = amd.h sun_map.h

# sources which get auto-built (from yacc/lex)
BUILT_SOURCES =		\
	conf_parse.c conf_parse.h conf_tok.c	\
	sun_map_parse.c sun_map_parse.h sun_map_tok.c
AM_YFLAGS = -d

##############################################################################
# *.y must be listed before *.l, because of a bug in automake-1.2
# which will not generate the .h needs for the lex file from the yacc file.
# I took out the conf .y/.l files b/c of bad interaction between bsd44 make
# and automake-1.2 rules.
libaminfo_a_SOURCES =	\
	sun_map_parse.y	\
	sun_map_tok.l	\
	sun_map.c

# the complete list of all optional sources for libaminfo
EXTRA_libaminfo_a_SOURCES =	\
	info_file.c	\
	info_exec.c	\
	info_hesiod.c	\
	info_ldap.c	\
	info_ndbm.c	\
	info_nis.c	\
	info_nisplus.c	\
	info_passwd.c	\
	info_sun.c	\
	info_union.c

# AMD_INFO_OBJS: a list of info_*.o objects added, depending on which map
# types this system supports.
EXTRA_libaminfo_a_OBJECTS = @AMD_INFO_OBJS@
libaminfo_a_LIBADD = @AMD_INFO_OBJS@
libaminfo_a_DEPENDENCIES = @AMD_INFO_OBJS@

##############################################################################
# sources needed: note .y and .l files have to be first
# get_args.c is handled separately
amd_SOURCES =			\
	conf_parse.y		\
	conf_tok.l		\
	\
	am_ops.c		\
	amd.c			\
	amfs_auto.c		\
	amfs_direct.c		\
	amfs_error.c		\
	amfs_generic.c		\
	amfs_host.c		\
	amfs_link.c		\
	amfs_linkx.c		\
	amfs_nfsl.c		\
	amfs_nfsx.c		\
	amfs_program.c		\
	amfs_root.c		\
	amfs_toplvl.c		\
	amfs_union.c		\
	amq_subr.c		\
	amq_svc.c		\
	autil.c			\
	clock.c			\
	conf.c			\
	map.c			\
	mapc.c			\
	mntfs.c			\
	nfs_prot_svc.c		\
	nfs_start.c		\
	nfs_subr.c		\
	opts.c			\
	readdir.c		\
	restart.c		\
	rpc_fwd.c		\
	sched.c			\
	srvr_amfs_auto.c	\
	srvr_nfs.c

# the complete list of all optional sources for amd
EXTRA_amd_SOURCES =	\
	ops_cachefs.c	\
	ops_cdfs.c	\
	ops_efs.c	\
	ops_lofs.c	\
	ops_mfs.c	\
	ops_nfs.c	\
	ops_nfs3.c	\
	ops_nullfs.c	\
	ops_pcfs.c	\
	ops_tfs.c	\
	ops_tmpfs.c	\
	ops_udf.c	\
	ops_ufs.c	\
	ops_umapfs.c	\
	ops_unionfs.c	\
	ops_xfs.c	\
	\
	get_args.c

# AMD_FS_OBJS: a list of ops_*.o objects added, depending on which
# filesystem types this system supports.
EXTRA_amd_OBJECTS = @AMD_FS_OBJS@
amd_LDADD = $(EXTRA_amd_OBJECTS) get_args.o libaminfo.a ../libamu/libamu.la

##############################################################################
sun2amd_SOURCES =		\
	sun2amd.c

sun2amd_LDADD = libaminfo.a ../libamu/libamu.la

##############################################################################
# must manually add f/lex library to LIBS, and not to LDADD.
##LIBS = @LIBS@ @LEXLIB@ @WRAPLIB@
# f/lex libraries are incomatible with multiple scanners: don't include
LIBS = @LIBS@ @WRAPLIB@

# additional files to distribute and clean
EXTRA_DIST = ops_TEMPLATE.c $(man_MANS) $(TESTS)
CLEANFILES = $(BUILT_SOURCES)
DISTCLEANFILES = build_version.h ops_autofs.c

# do not distribute files that should be generated by lex/yacc locally
dist-hook:
	(cd $(distdir) && rm -f $(BUILT_SOURCES))

INCLUDES = -I$(top_srcdir)/include

# allow users to add their own flags via "configure --enable-am-flags=ARG"
AMU_CFLAGS = @AMU_CFLAGS@
AM_CFLAGS = @CFLAGS@ $(AMU_CFLAGS)

# dependencies
$(PROGRAMS): $(LDADD)
get_args.o: build_version.h
$(amd_OBJECTS) $(EXTRA_amd_OBJECTS) $(sun2amd_OBJECTS) $(libaminfo_a_OBJECTS) $(EXTRA_libaminfo_a_OBJECTS): \
	../config.h				\
	../aux_conf.h				\
	$(top_srcdir)/include/am_compat.h	\
	$(top_srcdir)/include/am_defs.h		\
	$(top_srcdir)/include/am_utils.h	\
	$(top_srcdir)/include/am_xdr_func.h	\
	$(top_srcdir)/include/amq_defs.h	\
	@AMU_NFS_PROT_HEADER@			\
	@AMU_AUTOFS_PROT_HEADER@		\
	$(noinst_HEADERS)

# auto-generate build number
build_version.h: $(amd_OBJECTS) $(EXTRA_amd_OBJECTS) $(libaminfo_a_OBJECTS) $(EXTRA_libaminfo_a_OBJECTS) get_args.c
	$(top_srcdir)/m4/update_build_version
