Makefile revision 0e42dee69ed771bf604dd1789fca9d77b5bbe302
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# CDDL HEADER START
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# The contents of this file are subject to the terms of the
441d80aa4f613b6298fc8bd3151f4be02dbf84fclling# Common Development and Distribution License (the "License").
441d80aa4f613b6298fc8bd3151f4be02dbf84fclling# You may not use this file except in compliance with the License.
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fa9e4066f08beec538e775443c5be79dd423fcabahrens# or http://www.opensolaris.org/os/licensing.
fa9e4066f08beec538e775443c5be79dd423fcabahrens# See the License for the specific language governing permissions
fa9e4066f08beec538e775443c5be79dd423fcabahrens# and limitations under the License.
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# When distributing Covered Code, include this CDDL HEADER in each
fa9e4066f08beec538e775443c5be79dd423fcabahrens# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fa9e4066f08beec538e775443c5be79dd423fcabahrens# If applicable, add the following below this CDDL HEADER, with the
fa9e4066f08beec538e775443c5be79dd423fcabahrens# fields enclosed by brackets "[]" replaced with your own identifying
fa9e4066f08beec538e775443c5be79dd423fcabahrens# information: Portions Copyright [yyyy] [name of copyright owner]
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# CDDL HEADER END
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
99653d4ee642c6528e88224f12409a5f23060994eschrock#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
18ce54df8809e9f672d0ed1a53e99669df0a6df0ek# Use is subject to license terms.
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# ident "%Z%%M% %I% %E% SMI"
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrens# cmd/fs.d/Makefile
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens# The filesystem independent utilities clri, fsdb, dcopy, labelit, and mkfs
fa9e4066f08beec538e775443c5be79dd423fcabahrens# are all built from the source file switchout.c. They are all then links
fa9e4066f08beec538e775443c5be79dd423fcabahrens# to the same object. This is accomplished by:
fa9e4066f08beec538e775443c5be79dd423fcabahrens# 1) building clri from switchout.c (had to choose one)
fa9e4066f08beec538e775443c5be79dd423fcabahrens# 2) installing it in the target directory
fa9e4066f08beec538e775443c5be79dd423fcabahrens# 3) linking the others to clri.
fa9e4066f08beec538e775443c5be79dd423fcabahrens# In a similar manner, ncheck is linked to ff.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensDFPROG= df
fa9e4066f08beec538e775443c5be79dd423fcabahrensPROG= $(DFPROG) fsck volcopy ff
fa9e4066f08beec538e775443c5be79dd423fcabahrensROOTFS_PROG= mount umount
fa9e4066f08beec538e775443c5be79dd423fcabahrensXPG4PROG= df
fa9e4066f08beec538e775443c5be79dd423fcabahrensSPPROG= clri
fa9e4066f08beec538e775443c5be79dd423fcabahrensMNTTAB= mnttab
fa9e4066f08beec538e775443c5be79dd423fcabahrensDEFAULTFILES= fs.dfl
ecd6cf800b63704be73fb264c3f5b6e0dafc068dmarks
ecd6cf800b63704be73fb264c3f5b6e0dafc068dmarksinclude ../Makefile.cmd
b1b8ab34de515a5e83206da22c3d7e563241b021lling
fa9e4066f08beec538e775443c5be79dd423fcabahrensSUBDIR1= lofs zfs
fa9e4066f08beec538e775443c5be79dd423fcabahrensSUBDIR2= fd pcfs nfs hsfs proc ctfs udfs ufs tmpfs cachefs autofs mntfs objfs
fa9e4066f08beec538e775443c5be79dd423fcabahrensi386_SUBDIRS= xmemfs
fa9e4066f08beec538e775443c5be79dd423fcabahrensi386_I18NDIRS= xmemfs
fa9e4066f08beec538e775443c5be79dd423fcabahrensSUBDIRS= $(SUBDIR1) $(SUBDIR2) $($(MACH)_SUBDIRS)
fa9e4066f08beec538e775443c5be79dd423fcabahrensALL_SUBDIRS= $(SUBDIR1) $(SUBDIR2) $(i386_SUBDIRS)
b7b97454b9b1f6625e7e655e9651e744a8dee09dperrinI18NDIRS= $(SUBDIR2) $(i386_I18NDIRS)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensCLOBBERFILES += $(POFILES_XPG4)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensall:= TARGET= all
fa9e4066f08beec538e775443c5be79dd423fcabahrensinstall:= TARGET= install
99653d4ee642c6528e88224f12409a5f23060994eschrockclean:= TARGET= clean
fa9e4066f08beec538e775443c5be79dd423fcabahrensclobber:= TARGET= clobber
fa9e4066f08beec538e775443c5be79dd423fcabahrenslint:= TARGET= lint
fa9e4066f08beec538e775443c5be79dd423fcabahrens_msg:= TARGET= catalog
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensUSRSBINF= df clri fsck volcopy ff
fa9e4066f08beec538e775443c5be79dd423fcabahrensUSRSBINCLRI= dcopy fsdb fssnap labelit mkfs
fa9e4066f08beec538e775443c5be79dd423fcabahrensUSRSBINFF= ncheck
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock
fa9e4066f08beec538e775443c5be79dd423fcabahrensETC2SBIN= mount umount
fa9e4066f08beec538e775443c5be79dd423fcabahrensETC2USRSBIN= clri fsdb mkfs fsck labelit dcopy volcopy ff ncheck
fa9e4066f08beec538e775443c5be79dd423fcabahrensUSRBIN2USRSBIN= df
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensFSLIB= fslib.o
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensROOTSBINPROG = $(ROOTFS_PROG:%=$(ROOTSBIN)/%)
fa9e4066f08beec538e775443c5be79dd423fcabahrensROOTUSRSBINLINKS = $(ROOTFS_PROG:%=$(ROOTUSRSBIN)/%)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensROOTUSRSBINF= $(USRSBINF:%=$(ROOTUSRSBIN)/%)
eaca9bbd5f5d1e4e554da4c7108e8a03c8c33481eschrockROOTUSRSBINCLRI= $(USRSBINCLRI:%=$(ROOTUSRSBIN)/%)
eaca9bbd5f5d1e4e554da4c7108e8a03c8c33481eschrockROOTUSRSBINFF= $(USRSBINFF:%=$(ROOTUSRSBIN)/%)
06eeb2ad640ce72d394ac521094bed7681044408ekROOTETCMNTTAB= $(MNTTAB:%=$(ROOTETC)/%)
06eeb2ad640ce72d394ac521094bed7681044408ekSYMETC2SBIN = $(ETC2SBIN:%=$(ROOTETC)/%)
b1b8ab34de515a5e83206da22c3d7e563241b021llingSYMETC2USRSBIN = $(ETC2USRSBIN:%=$(ROOTETC)/%)
b1b8ab34de515a5e83206da22c3d7e563241b021llingSYMUSRBIN2USRSBIN= $(USRBIN2USRSBIN:%=$(ROOTBIN)/%)
b1b8ab34de515a5e83206da22c3d7e563241b021llingSYMDEVNM= $(ROOTUSRSBIN)/devnm
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens# This flag is being added only for SCO (x86) compatibility
fa9e4066f08beec538e775443c5be79dd423fcabahrensdf.o := CFLAGS += $(iBCS2FLAG)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
29ab75c9a733dad2978c4860efd954b5625e3467rmCPPFLAGS += -D_LARGEFILE64_SOURCE
29ab75c9a733dad2978c4860efd954b5625e3467rm%.xpg4.o := CPPFLAGS += -DXPG4
fa9e4066f08beec538e775443c5be79dd423fcabahrens$(XPG4) df ff fsck mount volcopy := LDLIBS += -lcmd
99653d4ee642c6528e88224f12409a5f23060994eschrock$(SPPROG) := LDLIBS += -lcmd -lkstat
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens$(ROOTETCMNTTAB) := FILEMODE = 444
fa9e4066f08beec538e775443c5be79dd423fcabahrens$(ROOTETCMNTTAB) := OWNER = root
fa9e4066f08beec538e775443c5be79dd423fcabahrens$(ROOTETCMNTTAB) := GROUP = root
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens# for messaging catalog
fa9e4066f08beec538e775443c5be79dd423fcabahrens#
fa9e4066f08beec538e775443c5be79dd423fcabahrensPOFILE= fs.d.po
fa9e4066f08beec538e775443c5be79dd423fcabahrensPOFILES1= $(PROG:%=%.po) $(ROOTFS_PROG:%=%.po) switchout.po fssnapsup.po
29ab75c9a733dad2978c4860efd954b5625e3467rmPOFILES2= $(I18NDIRS:%=%/%.po)
fa9e4066f08beec538e775443c5be79dd423fcabahrensPOFILES_XPG4 = df.po.xpg4
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockPOFILES= $(POFILES1) $(POFILES2) $(POFILES_XPG4)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock$(POFILES_XPG4) := CFLAGS += -DXPG4
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockvolcopy.po := XGETFLAGS += -a -x volcopy.xcl
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock$(POFILES_XPG4) := XGETFLAGS += -a -x df.xcl
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock$(DFPROG).po := XGETFLAGS += -a -x df.xcl
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock%.po.xpg4: %.c
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(COMPILE.cpp) $< > $<.i
06eeb2ad640ce72d394ac521094bed7681044408ek $(BUILD.po)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock# build rule for xpg4 objects
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock%.xpg4.o: %.c
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(COMPILE.c) -o $@ $<
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock.KEEP_STATE:
99653d4ee642c6528e88224f12409a5f23060994eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock# This is too intense when building the whole world.
eaca9bbd5f5d1e4e554da4c7108e8a03c8c33481eschrock# .PARALLEL: $(SUBDIRS)
b1b8ab34de515a5e83206da22c3d7e563241b021lling
b1b8ab34de515a5e83206da22c3d7e563241b021llingall: $(FSLIB) .WAIT $(SUBDIRS) .WAIT all_local
b1b8ab34de515a5e83206da22c3d7e563241b021lling
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock_msg: $(I18NDIRS) $(POFILES1) $(POFILES_XPG4)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(RM) $(POFILE)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock cat $(POFILES) > $(POFILE)
fa9e4066f08beec538e775443c5be79dd423fcabahrens $(RM) $(MSGDOMAIN)/$(POFILE)
fa9e4066f08beec538e775443c5be79dd423fcabahrens cp $(POFILE) $(MSGDOMAIN)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockall_local: $(PROG) $(ROOTFS_PROG) $(XPG4PROG) $(SPPROG) $(MNTTAB) \
fa9e4066f08beec538e775443c5be79dd423fcabahrens $(DEFAULTFILES)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensff volcopy: deffs.o $$(@F).o
fa9e4066f08beec538e775443c5be79dd423fcabahrens $(LINK.c) -o $@ $@.o deffs.o $(LDLIBS)
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock $(POST_PROCESS)
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockdf df.xpg4: deffs.o $(FSLIB) $$(@F).o
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(LINK.c) -o $@ $@.o deffs.o $(FSLIB) $(LDLIBS)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(POST_PROCESS)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
fa9e4066f08beec538e775443c5be79dd423fcabahrensfsck: fsck.o deffs.o preenlib.o
fa9e4066f08beec538e775443c5be79dd423fcabahrens $(LINK.c) -o $@ fsck.o deffs.o preenlib.o $(LDLIBS)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(POST_PROCESS)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
fa9e4066f08beec538e775443c5be79dd423fcabahrensmount: deffs.o mount.o $(FSLIB)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(LINK.c) -o $@ mount.o deffs.o $(FSLIB) $(LDLIBS)
99653d4ee642c6528e88224f12409a5f23060994eschrock $(POST_PROCESS)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockumount: umount.o $(FSLIB)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(LINK.c) -o $@ umount.o $(FSLIB) $(LDLIBS)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(POST_PROCESS)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock$(SPPROG): switchout.o deffs.o fssnapsup.o
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(LINK.c) -o $@ switchout.o deffs.o fssnapsup.o $(LDLIBS) -ldiskmgt
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock $(POST_PROCESS)
fa9e4066f08beec538e775443c5be79dd423fcabahrens
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockinstall: $(FSLIB) .WAIT $(SUBDIRS) .WAIT install_local
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockinstall_local: all_local $(ROOTSBINPROG) $(ROOTUSRSBINF) $(ROOTUSRSBINCLRI) \
fa9e4066f08beec538e775443c5be79dd423fcabahrens $(ROOTUSRSBINFF) $(ROOTETCMNTTAB) $(ROOTETCDEFAULTFILES) \
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(ROOTXPG4PROG) $(SYMETC2SBIN) $(SYMETC2USRSBIN) \
fa9e4066f08beec538e775443c5be79dd423fcabahrens $(SYMUSRBIN2USRSBIN) $(SYMDEVNM) $(ROOTUSRSBINLINKS)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock# Links from /etc to /sbin such as /etc/mount -> ../sbin/mount
06eeb2ad640ce72d394ac521094bed7681044408ek$(SYMETC2SBIN):
06eeb2ad640ce72d394ac521094bed7681044408ek -$(RM) $@; $(SYMLINK) ../sbin/$(@F) $@
b1b8ab34de515a5e83206da22c3d7e563241b021lling
b1b8ab34de515a5e83206da22c3d7e563241b021lling# Links from /etc to /usr/sbin such as /etc/clri -> ../usr/sbin/clri
b1b8ab34de515a5e83206da22c3d7e563241b021lling$(SYMETC2USRSBIN):
fa9e4066f08beec538e775443c5be79dd423fcabahrens -$(RM) $@; $(SYMLINK) ../usr/sbin/$(@F) $@
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens# Links from /usr/bin to /usr/sbin such as /usr/bin/df -> ../sbin/df
fa9e4066f08beec538e775443c5be79dd423fcabahrens$(SYMUSRBIN2USRSBIN):
fa9e4066f08beec538e775443c5be79dd423fcabahrens -$(RM) $@; $(SYMLINK) ../sbin/$(@F) $@
2a6b87f07ac0c0b819179c84afe5a60afa04cfa5ek
fa9e4066f08beec538e775443c5be79dd423fcabahrens# Links from /usr/sbin to /sbin such as /usr/sbin/mount -> ../../sbin/mount
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock$(ROOTUSRSBINLINKS):
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock -$(RM) $@; $(SYMLINK) ../../sbin/$(@F) $@
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock# Symlink from devnm to df in /usr/sbin
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock$(SYMDEVNM):
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock -$(RM) $@; $(SYMLINK) ./df $@
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
e45ce728996d8e573eecb27f555fb86aaff0cafdahrens# Multiple names for switchout (clri, dcopy, fsdb, labelit, mkfs)
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock$(ROOTUSRSBINCLRI): $(ROOTUSRSBIN)/clri
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock -$(RM) $@; $(SYMLINK) ./clri $@
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
990b4856d0eaada6f8140335733a1b1771ed2746lling$(MNTTAB):
0a48a24e663a04e34e2ed4e55390ad96f178dbeatimh touch $(MNTTAB)
990b4856d0eaada6f8140335733a1b1771ed2746lling
65cd9f2809a015b46790a9c5c2ef992d56177624eschrockfs.dfl:
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(RM) $@; $(ECHO) "LOCAL=ufs" >$@
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock# Multiple names for ff (ncheck)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock$(ROOTUSRSBINFF): $(ROOTUSRSBIN)/ff
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock -$(RM) $@; $(SYMLINK) ./ff $@
06eeb2ad640ce72d394ac521094bed7681044408ek
ecd6cf800b63704be73fb264c3f5b6e0dafc068dmarksclean: $(ALL_SUBDIRS) .WAIT clean_local
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
4c58d71403cebfaa40a572ff12b17668ebd56987darrenmclean_local:
2f8aaab38e6371ad39ed90a1211ba8921acbb4d5eschrock
2f8aaab38e6371ad39ed90a1211ba8921acbb4d5eschrockclobber: $(ALL_SUBDIRS) .WAIT clobber_local
2f8aaab38e6371ad39ed90a1211ba8921acbb4d5eschrock
2f8aaab38e6371ad39ed90a1211ba8921acbb4d5eschrockclobber_local: clean_local
2f8aaab38e6371ad39ed90a1211ba8921acbb4d5eschrock $(RM) $(PROG) $(ROOTFS_PROG) $(SPPROG) $(MNTTAB) $(DEFAULTFILES) \
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock $(CLOBBERFILES)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
65cd9f2809a015b46790a9c5c2ef992d56177624eschrocklint:
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
990b4856d0eaada6f8140335733a1b1771ed2746lling$(ALL_SUBDIRS): FRC
990b4856d0eaada6f8140335733a1b1771ed2746lling @cd $@; pwd; $(MAKE) $(MFLAGS) $(TARGET)
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock
441d80aa4f613b6298fc8bd3151f4be02dbf84fcllingFRC:
65cd9f2809a015b46790a9c5c2ef992d56177624eschrock