Blob Blame History Raw
#
# Makefile for autofs
#

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

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

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

YACCSRC = amd_tok.c amd_parse.tab.c amd_parse.tab.h

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 ($(YPCLNT), 1)
  SRCS += lookup_yp.c
  MODS += lookup_yp.so
endif

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

ifeq ($(SSSD), 1)
  CFLAGS += -DSSS_LIB_DIR=\"$(ssslibdir)\"
  SRCS += lookup_sss.c
  MODS += lookup_sss.so
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 *~ *.output $(YACCSRC)

# 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 ($(LDAP), 1)
	ln -fs lookup_ldap.so $(INSTALLROOT)$(autofslibdir)/lookup_ldaps.so
endif
	ln -fs mount_nfs.so $(INSTALLROOT)$(autofslibdir)/mount_nfs4.so
ifeq ($(EXT2FS), 1)
 ifeq ($(EXT3FS), 1)
	ln -fs mount_ext2.so $(INSTALLROOT)$(autofslibdir)/mount_ext3.so
 endif
 ifeq ($(EXT4FS), 1)
	ln -fs mount_ext2.so $(INSTALLROOT)$(autofslibdir)/mount_ext4.so
 endif
else ifeq ($(EXT3FS), 1)
	mv $(INSTALLROOT)$(autofslibdir)/mount_ext2.so $(INSTALLROOT)$(autofslibdir)/mount_ext3.so
 ifeq ($(EXT4FS), 1)
	ln -fs mount_ext3.so $(INSTALLROOT)$(autofslibdir)/mount_ext4.so
 endif
else ifeq ($(EXT4FS), 1)
	mv $(INSTALLROOT)$(autofslibdir)/mount_ext2.so $(INSTALLROOT)$(autofslibdir)/mount_ext4.so
endif

amd_tok.c: amd_tok.l
	$(LEX) -o$@ -Pamd_ $?

amd_tok.o: amd_tok.c amd_parse.tab.h

amd_parse.tab.c amd_parse.tab.h: amd_parse.y
	$(YACC) -v -d -p amd_ -b amd_parse $?

amd_parse.tab.o: amd_parse.tab.c amd_parse.tab.h

parse_amd.so: parse_amd.c amd_parse.tab.o amd_tok.o
	$(CC) $(SOLDFLAGS) $(CFLAGS) -o parse_amd.so \
		parse_amd.c amd_parse.tab.o amd_tok.o $(LDFLAGS) $(AUTOFS_LIB) $(LIBS)
	$(STRIP) parse_amd.so

#
# Ad hoc compilation rules for modules which need auxilliary libraries
#
lookup_yp.so: lookup_yp.c
	$(CC) $(SOLDFLAGS) $(CFLAGS) $(NSLCFLAGS) -o lookup_yp.so \
		lookup_yp.c $(LDFLAGS) $(AUTOFS_LIB) $(LIBS) $(NSLLIB)
	$(STRIP) lookup_yp.so

lookup_nisplus.so: lookup_nisplus.c
	$(CC) $(SOLDFLAGS) $(CFLAGS) $(NSLCFLAGS) -o lookup_nisplus.so \
		lookup_nisplus.c $(LDFLAGS) $(AUTOFS_LIB) $(LIBS) $(NSLLIB)
	$(STRIP) lookup_nisplus.so

lookup_hesiod.so: lookup_hesiod.c
	$(CC) $(SOLDFLAGS) $(CFLAGS) $(HESIOD_FLAGS) -o lookup_hesiod.so \
		lookup_hesiod.c $(LDFLAGS) $(AUTOFS_LIB) $(LIBHESIOD) $(LIBRESOLV) $(LIBS)
	$(STRIP) lookup_hesiod.so

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

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

lookup_ldap.so: lookup_ldap.c dclist.o base64.o $(SASL_OBJ)
	$(CC) $(SOLDFLAGS) $(CFLAGS) $(LDAP_FLAGS) -o lookup_ldap.so \
		lookup_ldap.c dclist.o base64.o $(SASL_OBJ) \
		$(LDFLAGS) $(AUTOFS_LIB) $(LIBLDAP) $(LIBRESOLV) $(LIBS)
	$(STRIP) lookup_ldap.so

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