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.
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.
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]
21 # Copyright (c) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
24 # The filesystem independent utilities clri, fsdb, dcopy, labelit, and mkfs
25 # are all built from the source file switchout.c. They are all then links
26 # to the same object. This is accomplished by:
27 # 1) building clri from switchout.c (had to choose one)
28 # 2) installing it in the target directory
29 # 3) linking the others to clri.
30 # In a similar manner, ncheck is linked to ff.
33 PROG
= $(DFPROG
) fsck volcopy ff
34 ROOTFS_PROG
= mount umount
39 include ..
/Makefile.cmd
42 SUBDIR2
= dev fd pcfs nfs hsfs proc ctfs udfs ufs tmpfs cachefs \
43 autofs mntfs objfs sharefs smbclnt reparsed
44 SUBDIRS
= $(SUBDIR1
) $(SUBDIR2
)
47 CLEANFILES
+= deffs.o df.o ff.o fsck.o fssnapsup.o \
48 mount.o preenlib.o switchout.o umount.o volcopy.o
51 install:= TARGET
= install
53 clobber:= TARGET
= clobber
55 _msg
:= TARGET
= catalog
57 USRSBINF
= df clri fsck volcopy ff
58 USRSBINCLRI
= dcopy fsdb fssnap labelit mkfs
61 ETC2SBIN
= mount umount
62 ETC2USRSBIN
= clri fsdb mkfs fsck labelit dcopy volcopy ff ncheck
64 USRXPG4BIN2USRSBIN
= df
68 ROOTSBINPROG
= $(ROOTFS_PROG
:%=$(ROOTSBIN
)/%)
69 ROOTUSRSBINLINKS
= $(ROOTFS_PROG
:%=$(ROOTUSRSBIN
)/%)
71 ROOTUSRSBINF
= $(USRSBINF
:%=$(ROOTUSRSBIN
)/%)
72 ROOTUSRSBINCLRI
= $(USRSBINCLRI
:%=$(ROOTUSRSBIN
)/%)
73 ROOTUSRSBINFF
= $(USRSBINFF
:%=$(ROOTUSRSBIN
)/%)
74 ROOTETCMNTTAB
= $(MNTTAB
:%=$(ROOTETC
)/%)
75 SYMETC2SBIN
= $(ETC2SBIN
:%=$(ROOTETC
)/%)
76 SYMETC2USRSBIN
= $(ETC2USRSBIN
:%=$(ROOTETC
)/%)
77 SYMUSRBIN2USRSBIN
= $(USRBIN2USRSBIN
:%=$(ROOTBIN
)/%)
78 SYMUSRXPG4BIN2USRSBIN
= $(USRXPG4BIN2USRSBIN
:%=$(ROOTXPG4BIN
)/%)
79 SYMDEVNM
= $(ROOTUSRSBIN
)/devnm
81 CPPFLAGS
+= -D_LARGEFILE64_SOURCE
83 CERRWARN
+= -_gcc
=-Wno-implicit-function-declaration
84 CERRWARN
+= -_gcc
=-Wno-parentheses
85 CERRWARN
+= -_gcc
=-Wno-unused-variable
86 CERRWARN
+= -_gcc
=-Wno-uninitialized
87 CERRWARN
+= -_gcc
=-Wno-unused-function
89 $(SPPROG
) := LDLIBS
+= -lkstat
91 $(ROOTETCMNTTAB
) := FILEMODE
= 444
93 # for messaging catalog
96 POFILES1
= $(PROG
:%=%.po
) $(ROOTFS_PROG
:%=%.po
) switchout.po fssnapsup.po
97 POFILES2
= $(I18NDIRS
:%=%/%.po
)
98 POFILES
= $(POFILES1
) $(POFILES2
)
99 volcopy.po
:= XGETFLAGS
+= -a
-x volcopy.xcl
100 $(DFPROG
).po
:= XGETFLAGS
+= -a
-x df.xcl
104 # This is too intense when building the whole world.
105 # .PARALLEL: $(SUBDIRS)
107 all: $(FSLIB
) .WAIT
$(SUBDIRS
) .WAIT all_local
109 _msg
: $(I18NDIRS
) $(POFILES1
)
111 cat
$(POFILES
) > $(POFILE
)
112 $(RM
) $(MSGDOMAIN
)/$(POFILE
)
113 cp
$(POFILE
) $(MSGDOMAIN
)
115 all_local
: $(PROG
) $(ROOTFS_PROG
) $(SPPROG
) $(MNTTAB
) \
118 ff volcopy
: deffs.o
$$(@F
).o
119 $(LINK.c
) -o
$@
$@.o deffs.o
$(LDLIBS
)
122 df
: deffs.o
$(FSLIB
) $$(@F
).o
123 $(LINK.c
) -o
$@
$@.o deffs.o
$(FSLIB
) $(LDLIBS
)
126 fsck
: fsck.o deffs.o preenlib.o
127 $(LINK.c
) -o
$@ fsck.o deffs.o preenlib.o
$(LDLIBS
)
130 mount
: deffs.o mount.o
$(FSLIB
)
131 $(LINK.c
) -o
$@ mount.o deffs.o
$(FSLIB
) $(LDLIBS
)
134 umount
: umount.o
$(FSLIB
)
135 $(LINK.c
) -o
$@ umount.o
$(FSLIB
) $(LDLIBS
)
138 $(SPPROG
): switchout.o deffs.o fssnapsup.o
139 $(LINK.c
) -o
$@ switchout.o deffs.o fssnapsup.o
$(LDLIBS
) -ldiskmgt
142 install: $(FSLIB
) .WAIT
$(SUBDIRS
) .WAIT install_local
144 install_local
: all_local
$(ROOTSBINPROG
) $(ROOTUSRSBINF
) $(ROOTUSRSBINCLRI
) \
145 $(ROOTUSRSBINFF
) $(ROOTETCMNTTAB
) $(ROOTETCDEFAULTFILES
) \
146 $(SYMETC2SBIN
) $(SYMETC2USRSBIN
) \
147 $(SYMUSRBIN2USRSBIN
) $(SYMUSRXPG4BIN2USRSBIN
) $(SYMDEVNM
) \
150 # Links from /etc to /sbin such as /etc/mount -> ../sbin/mount
152 -$(RM
) $@
; $(SYMLINK
) ..
/sbin
/$(@F
) $@
154 # Links from /etc to /usr/sbin such as /etc/clri -> ../usr/sbin/clri
156 -$(RM
) $@
; $(SYMLINK
) ..
/usr
/sbin
/$(@F
) $@
158 # Links from /usr/bin to /usr/sbin such as /usr/bin/df -> ../sbin/df
159 $(SYMUSRBIN2USRSBIN
):
160 -$(RM
) $@
; $(SYMLINK
) ..
/sbin
/$(@F
) $@
162 # Links from /usr/xpg4/bin to /usr/sbin such as /usr/xpg4/bin/df -> ../sbin/df
163 $(SYMUSRXPG4BIN2USRSBIN
):
164 -$(RM
) $@
; $(SYMLINK
) ..
/..
/sbin
/$(@F
) $@
166 # Links from /usr/sbin to /sbin such as /usr/sbin/mount -> ../../sbin/mount
168 -$(RM
) $@
; $(SYMLINK
) ..
/..
/sbin
/$(@F
) $@
170 # Symlink from devnm to df in /usr/sbin
172 -$(RM
) $@
; $(SYMLINK
) .
/df
$@
174 # Multiple names for switchout (clri, dcopy, fsdb, labelit, mkfs)
175 $(ROOTUSRSBINCLRI
): $(ROOTUSRSBIN
)/clri
176 -$(RM
) $@
; $(SYMLINK
) .
/clri
$@
182 $(RM
) $@
; $(ECHO
) "LOCAL=ufs" >$@
184 # Multiple names for ff (ncheck)
185 $(ROOTUSRSBINFF
): $(ROOTUSRSBIN
)/ff
186 -$(RM
) $@
; $(SYMLINK
) .
/ff
$@
188 clean: $(SUBDIRS
) .WAIT clean_local
192 clobber: $(SUBDIRS
) .WAIT clobber_local
193 clobber_local
: clean_local
194 $(RM
) $(PROG
) $(ROOTFS_PROG
) $(SPPROG
) $(MNTTAB
) $(DEFAULTFILES
) \
200 @cd
$@
; pwd
; $(MAKE
) $(MFLAGS
) $(TARGET
)