## 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

YLWRAP= $(top_srcdir)/ylwrap.amd

# 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_ext.c       \
       ops_lofs.c      \
       ops_lustre.c    \
       ops_mfs.c       \
       ops_nfs.c       \
       ops_nfs3.c      \
       ops_nfs4.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))

AM_CPPFLAGS = -I$(top_srcdir)/include

# allow users to add their own flags via "configure --enable-am-flags=ARG"
AMU_CFLAGS = @AMU_CFLAGS@
AM_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