Makefile revision 1.22 1 1.22 lukem # $NetBSD: Makefile,v 1.22 2002/08/23 03:19:08 lukem Exp $
2 1.14 lukem # @(#)Makefile 8.6 (Berkeley) 5/8/95
3 1.1 cgd
4 1.21 lukem .include <bsd.own.mk>
5 1.21 lukem
6 1.1 cgd PROG= mount
7 1.8 cgd MAN= mount.8
8 1.14 lukem SRCS= mount.c vfslist.c
9 1.7 mycroft # We do NOT install the getmntopts.3 man page.
10 1.12 jtk # getmntopts.c in this directory isn't used by mount anymore, but it
11 1.12 jtk # is used by other mount programs which use .PATH directives to use
12 1.12 jtk # the version here.
13 1.15 jdolecek
14 1.15 jdolecek SRCS+= getmntopts.c fattr.c checkname.c
15 1.15 jdolecek CPPFLAGS+= -I${.CURDIR} -DMOUNT_NOMAIN
16 1.22 lukem
17 1.22 lukem .if defined(RESCUEDIR)
18 1.22 lukem CPPFLAGS+= -D_PATH_RESCUE=\"${RESCUEDIR}\"
19 1.22 lukem .endif
20 1.15 jdolecek
21 1.15 jdolecek # Note: mount_portal is excluded by purpose, mainly because it contains
22 1.15 jdolecek # more stuff and hence cannot be made to export only mount_FOO() symbol
23 1.15 jdolecek MOUNT_PROGS= mount_ados mount_cd9660 mount_ext2fs mount_fdesc mount_ffs \
24 1.15 jdolecek mount_filecore mount_kernfs mount_lfs mount_msdos mount_nfs \
25 1.15 jdolecek mount_ntfs mount_null mount_overlay mount_procfs mount_umap \
26 1.15 jdolecek mount_union
27 1.15 jdolecek
28 1.15 jdolecek # include individual source files and manpages to build process
29 1.15 jdolecek .for p in ${MOUNT_PROGS}
30 1.21 lukem .PATH: ${NETBSDSRCDIR}/sbin/${p}
31 1.15 jdolecek SRCS+= ${p}.c
32 1.15 jdolecek MAN+= ${p}.8
33 1.15 jdolecek LINKS+= ${BINDIR}/${PROG} ${BINDIR}/${p}
34 1.15 jdolecek .endfor
35 1.15 jdolecek
36 1.15 jdolecek # make mount_ufs alias for mount_ffs (this needs also support in checkname.c)
37 1.15 jdolecek LINKS+= ${BINDIR}/mount_ffs ${BINDIR}/mount_ufs
38 1.17 jdolecek MLINKS+= mount_ffs.8 mount_ufs.8
39 1.16 veego
40 1.16 veego CLEANFILES+= checkname.c
41 1.15 jdolecek
42 1.15 jdolecek # generate checkname.c - code which runs appropriate mount_FOO() routine
43 1.15 jdolecek # according to program name
44 1.15 jdolecek checkname.c: ${.CURDIR}/Makefile
45 1.15 jdolecek @if true; then \
46 1.15 jdolecek echo "/* File generated by make - DO NOT EDIT */"; \
47 1.15 jdolecek echo "#include <sys/types.h>"; \
48 1.18 cgd echo "#include <stdlib.h>"; \
49 1.18 cgd echo "#include <string.h>"; \
50 1.15 jdolecek echo "#include <mntopts.h>"; \
51 1.15 jdolecek for p in ${MOUNT_PROGS}; do \
52 1.15 jdolecek echo "int $$p __P((int argc, char **argv));"; \
53 1.15 jdolecek done; \
54 1.15 jdolecek echo "void checkname(int, char **);"; \
55 1.15 jdolecek echo; \
56 1.15 jdolecek echo "void checkname(int argc, char **argv) {"; \
57 1.20 cgd echo "if (strcmp(getprogname(), \"mount\") == 0) return;"; \
58 1.15 jdolecek for p in ${MOUNT_PROGS}; do \
59 1.20 cgd echo "if (strcmp(getprogname(), \"$$p\") == 0)"; \
60 1.15 jdolecek echo " exit($$p(argc, argv));"; \
61 1.15 jdolecek done; \
62 1.20 cgd echo "if (strcmp(getprogname(), \"mount_ufs\") == 0)"; \
63 1.15 jdolecek echo " exit(mount_ffs(argc, argv));"; \
64 1.15 jdolecek echo "}"; \
65 1.15 jdolecek fi > ${.TARGET}
66 1.1 cgd
67 1.1 cgd .include <bsd.prog.mk>
68