# $Id: Makefile,v 1.11 2006/04/06 20:02:04 raven Exp $
#
# Makefile for autofs
#

-include ../Makefile.conf
include ../Makefile.rules

SRCS :=	lookup_yp.c  lookup_file.c  lookup_program.c  lookup_userhome.c \
	lookup_multi.c lookup_hosts.c \
	parse_sun.c    \
	mount_generic.c  mount_nfs.c  mount_afs.c  mount_autofs.c \
	mount_changer.c  mount_bind.c

MODS :=	lookup_yp.so lookup_file.so lookup_program.so lookup_userhome.so \
	lookup_multi.so lookup_hosts.so \
	parse_sun.so \
	mount_generic.so mount_nfs.so mount_afs.so mount_autofs.so \
	mount_changer.so mount_bind.so

ifeq ($(EXT2FS), 1)
  SRCS += mount_ext2.c
  MODS += mount_ext2.so
else
 ifeq ($(EXT3FS), 1)
   SRCS += mount_ext2.c
   MODS += mount_ext2.so
 endif
endif

ifeq ($(HESIOD), 1)
  SRCS += lookup_hesiod.c  parse_hesiod.c
  MODS += lookup_hesiod.so parse_hesiod.so
endif

ifeq ($(NISPLUS), 1)
  SRCS += lookup_nisplus.c
  MODS += lookup_nisplus.so
endif

ifeq ($(LDAP), 1)
  SRCS += lookup_ldap.c
  MODS += lookup_ldap.so
  ifeq ($(SASL), 1)
    SASL_OBJ = cyrus-sasl.o
    LDAP_FLAGS += $(SASL_FLAGS) $(XML_FLAGS) -DLDAP_THREAD_SAFE
    LIBLDAP += $(LIBSASL) $(XML_LIBS)
  endif
endif

CFLAGS += -I../include -I../lib -fPIC -D_GNU_SOURCE
CFLAGS += -DAUTOFS_LIB_DIR=\"$(autofslibdir)\"
CFLAGS += -DAUTOFS_MAP_DIR=\"$(autofsmapdir)\"

all: $(MODS)

clean:
	rm -f *.o *.s *.so *~

# mount_smbfs.so is an obsolete module which must be removed
install: all
	install -d -m 755 $(INSTALLROOT)$(autofslibdir)
	install -c $(MODS) -m 755 $(INSTALLROOT)$(autofslibdir)
	-rm -f $(INSTALLROOT)$(autofslibdir)/mount_smbfs.so
	ln -fs lookup_file.so $(INSTALLROOT)$(autofslibdir)/lookup_files.so
	ln -fs lookup_yp.so $(INSTALLROOT)$(autofslibdir)/lookup_nis.so
ifeq ($(EXT2FS), 1)
 ifeq ($(EXT3FS), 1)
	ln -fs mount_ext2.so $(INSTALLROOT)$(autofslibdir)/mount_ext3.so
 endif
else
 ifeq ($(EXT3FS), 1)
	mv $(INSTALLROOT)$(autofslibdir)/mount_ext2.so $(INSTALLROOT)$(autofslibdir)/mount_ext3.so
 endif
endif

#
# Ad hoc compilation rules for modules which need auxilliary libraries
#
lookup_hesiod.so: lookup_hesiod.c
	$(CC) $(SOLDFLAGS) $(CFLAGS) $(HESIOD_FLAGS) -o lookup_hesiod.so \
		lookup_hesiod.c $(AUTOFS_LIB) $(LIBHESIOD) $(LIBRESOLV)
	$(STRIP) lookup_hesiod.so

cyrus-sasl.o: cyrus-sasl.c
	$(CC) $(CFLAGS) $(LDAP_FLAGS) -c $<

lookup_ldap.so: lookup_ldap.c $(SASL_OBJ)
	$(CC) $(SOLDFLAGS) $(CFLAGS) $(LDAP_FLAGS) -o lookup_ldap.so \
		lookup_ldap.c $(SASL_OBJ) $(AUTOFS_LIB) $(LIBLDAP)
	$(STRIP) lookup_ldap.so

mount_nfs.so: mount_nfs.c replicated.o
	$(CC) $(SOLDFLAGS) $(CFLAGS) -o mount_nfs.so \
		mount_nfs.c replicated.o $(AUTOFS_LIB) $(LIBNSL)
	$(STRIP) mount_nfs.so

