Makefile revision 1.21
11.21Slukem#	$NetBSD: Makefile,v 1.21 2002/08/19 10:16:55 lukem Exp $
21.14Slukem#	@(#)Makefile	8.6 (Berkeley) 5/8/95
31.1Scgd
41.21Slukem.include <bsd.own.mk>
51.21Slukem
61.1ScgdPROG=	mount
71.8ScgdMAN=	mount.8
81.14SlukemSRCS=	mount.c vfslist.c
91.7Smycroft# We do NOT install the getmntopts.3 man page.
101.12Sjtk# getmntopts.c in this directory isn't used by mount anymore, but it
111.12Sjtk# is used by other mount programs which use .PATH directives to use
121.12Sjtk# the version here.
131.15Sjdolecek
141.15SjdolecekSRCS+= getmntopts.c fattr.c checkname.c
151.15SjdolecekCPPFLAGS+= -I${.CURDIR} -DMOUNT_NOMAIN
161.15Sjdolecek
171.15Sjdolecek# Note: mount_portal is excluded by purpose, mainly because it contains
181.15Sjdolecek# more stuff and hence cannot be made to export only mount_FOO() symbol
191.15SjdolecekMOUNT_PROGS=	mount_ados mount_cd9660 mount_ext2fs mount_fdesc mount_ffs \
201.15Sjdolecek		mount_filecore mount_kernfs mount_lfs mount_msdos mount_nfs \
211.15Sjdolecek		mount_ntfs mount_null mount_overlay mount_procfs mount_umap \
221.15Sjdolecek		mount_union
231.15Sjdolecek	
241.15Sjdolecek# include individual source files and manpages to build process
251.15Sjdolecek.for p in ${MOUNT_PROGS}
261.21Slukem.PATH: ${NETBSDSRCDIR}/sbin/${p}
271.15SjdolecekSRCS+=	${p}.c
281.15SjdolecekMAN+=	${p}.8
291.15SjdolecekLINKS+=	${BINDIR}/${PROG} ${BINDIR}/${p}
301.15Sjdolecek.endfor
311.15Sjdolecek
321.15Sjdolecek# make mount_ufs alias for mount_ffs (this needs also support in checkname.c)
331.15SjdolecekLINKS+= ${BINDIR}/mount_ffs ${BINDIR}/mount_ufs
341.17SjdolecekMLINKS+= mount_ffs.8 mount_ufs.8
351.16Sveego
361.16SveegoCLEANFILES+=	checkname.c
371.15Sjdolecek
381.15Sjdolecek# generate checkname.c - code which runs appropriate mount_FOO() routine
391.15Sjdolecek# according to program name
401.15Sjdolecekcheckname.c: ${.CURDIR}/Makefile
411.15Sjdolecek	@if true; then \
421.15Sjdolecek	  echo "/* File generated by make - DO NOT EDIT */";	\
431.15Sjdolecek	  echo "#include <sys/types.h>";			\
441.18Scgd	  echo "#include <stdlib.h>";				\
451.18Scgd	  echo "#include <string.h>";				\
461.15Sjdolecek	  echo "#include <mntopts.h>";				\
471.15Sjdolecek	  for p in ${MOUNT_PROGS}; do 				\
481.15Sjdolecek		echo "int $$p __P((int argc, char **argv));";	\
491.15Sjdolecek	  done;							\
501.15Sjdolecek	  echo "void checkname(int, char **);";			\
511.15Sjdolecek	  echo;							\
521.15Sjdolecek	  echo "void checkname(int argc, char **argv) {"; 	\
531.20Scgd	  echo "if (strcmp(getprogname(), \"mount\") == 0) return;";	\
541.15Sjdolecek	  for p in ${MOUNT_PROGS}; do				\
551.20Scgd		echo "if (strcmp(getprogname(), \"$$p\") == 0)";	\
561.15Sjdolecek		echo " exit($$p(argc, argv));";			\
571.15Sjdolecek	  done;		\
581.20Scgd	  echo "if (strcmp(getprogname(), \"mount_ufs\") == 0)";	\
591.15Sjdolecek	  echo " exit(mount_ffs(argc, argv));";			\
601.15Sjdolecek	  echo "}";	\
611.15Sjdolecek	fi > ${.TARGET}
621.1Scgd
631.1Scgd.include <bsd.prog.mk>
64