xref: /illumos-gate/usr/src/cmd/zfs/Makefile (revision ed5289f91b9bf164dccd6c75398362be77a4478d)
1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21 #
22 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23 # Use is subject to license terms.
24 #
25 # ident	"%Z%%M%	%I%	%E% SMI"
26 #
27 
28 PROG=		zfs
29 OBJS=		zfs_main.o zfs_iter.o
30 SRCS=		$(OBJS:%.o=%.c)
31 POFILES=	zfs_main.po zfs_iter.po
32 POFILE=		zfs.po
33 
34 include ../Makefile.cmd
35 
36 FSTYPE=         zfs
37 LINKPROGS=	mount umount
38 ROOTETCFSTYPE=  $(ROOTETC)/fs/$(FSTYPE)
39 USRLIBFSTYPE=	$(ROOTLIB)/fs/$(FSTYPE)
40 
41 LDLIBS += -lzfs -luutil -lumem -lnvpair -lavl
42 
43 C99MODE=	-xc99=%all
44 C99LMODE=	-Xc99=%all
45 
46 CPPFLAGS += -D_LARGEFILE64_SOURCE=1 -D_REENTRANT
47 $(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG
48 
49 # lint complains about unused _umem_* functions
50 LINTFLAGS += -xerroff=E_NAME_DEF_NOT_USED2
51 LINTFLAGS64 += -xerroff=E_NAME_DEF_NOT_USED2
52 
53 ROOTUSRSBINLINKS = $(PROG:%=$(ROOTUSRSBIN)/%)
54 USRLIBFSTYPELINKS = $(LINKPROGS:%=$(USRLIBFSTYPE)/%)
55 ROOTETCFSTYPELINKS = $(LINKPROGS:%=$(ROOTETCFSTYPE)/%)
56 
57 .KEEP_STATE:
58 
59 .PARALLEL:
60 
61 all: $(PROG)
62 
63 $(PROG): $(OBJS)
64 	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
65 	$(POST_PROCESS)
66 
67 install: all $(ROOTSBINPROG) $(ROOTUSRSBINLINKS) $(USRLIBFSTYPELINKS) \
68 	$(ROOTETCFSTYPELINKS)
69 
70 $(POFILE): $(POFILES)
71 	$(RM) $@
72 	cat $(POFILES) > $@
73 
74 clean:
75 	$(RM) $(OBJS)
76 
77 lint:	lint_SRCS
78 
79 # Links from /usr/sbin to /sbin
80 $(ROOTUSRSBINLINKS):
81 	-$(RM) $@; $(SYMLINK) ../../sbin/$(PROG) $@
82 
83 # Links from /usr/lib/fs/zfs to /sbin
84 $(USRLIBFSTYPELINKS):
85 	-$(RM) $@; $(SYMLINK) ../../../../sbin/$(PROG) $@
86 
87 # Links from /etc/fs/zfs to /sbin
88 $(ROOTETCFSTYPELINKS):
89 	-$(RM) $@; $(SYMLINK) ../../../sbin/$(PROG) $@
90 
91 FRC:
92 
93 include ../Makefile.targ
94