Makefile revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
#
# cmd/backup/dump/Makefile
#
# Copyright (c) 1980 Regents of the University of California.
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
# dump.h header file
# dumpfstab.c reads fstab/vfstab, mtab/mnttab
# dumpitime.c reads /etc/dumpdates
# dumpmain.c driver
# dumponline.c online dump support
# dumpoptr.c operator interface
# dumptape.c handles the mag tape and opening/closing
# dumptraverse.c traverses the file system
# lftw.c fixed version of ftw(3)
# partial.c partial filesystem dump support
# unctime.c undo ctime
#
# CPPFLAGS:
# DEBUG use local directory to find ddate and dumpdates
# PARTIAL enable partial filesystem dump support
# TDEBUG trace out the process forking
#
# CAUTION: FSTYPE must be defined before including ../Makefile.backup,
# otherwise UFSROOTPKGUSRLIBFSTYPE doesn't get expanded
# properly and the magic doesn't happen.
FSTYPE= ufs
include ../Makefile.backup
#CFLAGS += -DTDEBUG
UFSDUMP= ufsdump
PROG= $(UFSDUMP)
PRODUCT= $(PROG)
ROLLDIR= ../../fs.d/ufs/roll_log
ROLLOBJS= $(ROLLDIR)/$(MACH)/roll_log.o
ROLLSRCS= $(ROLLDIR)/roll_log.c
LOBJECTS= dumponline.o dumpfstab.o dumpitime.o dumpmain.o \
dumpoptr.o dumptape.o dumptraverse.o unctime.o \
partial.o lftw.o
OBJECTS= $(LOBJECTS) roll_log.o
SRCS= $(LOBJECTS:.o=.c)
POFILES= $(OBJECTS:.o=.po) ../lib/libdump.po
POFILE= ufsdump.po
ROLLPOFILES= roll_log.po
# XXX This is only needed for the check: target. It would be nice to
# XXX automatically generate the list when needed.
HEADERS= ../../../head/protocols/dumprestore.h \
../../fs.d/ufs/roll_log/roll_log.h ../include/byteorder.h \
../include/memutils.h \
../include/rmt.h dump.h dumpusg.h
CLOBBERFILES= $(PRODUCT) $(DEBUGPRODUCTS) dumpdates *.ln $(POFILES)
LOCAL= .
GENERAL= ../include
GLOBAL= ../../../head
CPPFLAGS= -I$(LOCAL) -I$(GENERAL) -I$(GLOBAL) -DPARTIAL \
-I$(ROLLDIR) $(CPPFLAGS.master) \
-D_LARGEFILE64_SOURCE=1
LIBDUMP= ../lib/libdump.a
LINTLIBDUMP= ../lib/llib-ldump.ln -lkstat
LDLIBS += $(BSTATIC) -L../lib -ldump $(BDYNAMIC) \
-lsocket -lnsl -ladm -lm -lkstat
UFSROOTDUMPDATES= $(UFSROOTETC)/dumpdates
UFSROOTLINK= $(UFSROOTUSRSBIN)/$(PROG)
LINKVALUE= ../lib/fs/$(FSTYPE)/$(PROG)
LIBDIR= $(UFSROOTUSRLIBFS)/$(FSTYPE)
$(UFSROOTDUMPDATES):= FILEMODE= 0664
$(UFSROOTDUMPDATES):= OWNER= root
$(UFSROOTDUMPDATES):= GROUP= sys
$(LIBDIR):= DIRMODE= 0755
$(LIBDIR):= OWNER= root
$(LIBDIR):= GROUP= sys
FILEMODE= 04555
OWNER= root
.KEEP_STATE:
all: $(PRODUCT)
$(PROG): $(OBJECTS) $$(LIBDUMP)
$(LINK.c) -o $@ $(OBJECTS) $(LDLIBS)
$(POST_PROCESS)
$(LIBDUMP): FRC
$(DO_LIBDIR)
$(POFILE): $(POFILES)
$(RM) $@; cat $(POFILES) > $@
FRC:
install: all $(LIBDIR) $(UFSROOTPKGUSRLIBFSTYPE) dumpdates \
$(UFSROOTDUMPDATES) $(UFSROOTLINK)
dumpdates:
cp /dev/null dumpdates
#XXX Should actually note return value from close(2), particularly regarding
#XXX tape descriptors. Some drives don't actually force anything to media
#XXX except when they are writing a file mark....
# grep is looking for non-space/tab
lint: $(SRCS) $(ROLLSRCS) $$(LINTLIBDUMP)
$(LINT.c) $(SRCS) $(ROLLSRCS) $(LINTLIBDUMP) 2>&1 \
| sed -f lint.sed | grep '^[^ ]'
$(LINTLIBDUMP): FRC
cd ../lib; pwd; $(MAKE) lint
pwd
check: FRC
$(CSTYLE) $(CSTYLEFLAGS) $(SRCS) $(ROLLSRCS) $(HEADERS)
$(HDRCHK) $(HDRCHKFLAGS) $(HEADERS)
clean:
$(RM) $(OBJECTS) $(ROLLOBJS) $(DEBUGOBJS) *.ln
$(LIBDIR):
$(INS.dir)
$(UFSROOTLINK):
-$(RM) $@; $(SYMLINK) $(LINKVALUE) $(UFSROOTLINK)
roll_log.o:
cd $(ROLLDIR) ; pwd ; $(MAKE)
cp $(ROLLOBJS) .
pwd
.debug/roll_log.o:
cd $(ROLLDIR) ; pwd ; $(MAKE) CFLAGS=-g
cp $(ROLLOBJS) .debug
pwd
$(ROLLPOFILES): $(ROLLSRCS)
cd $(ROLLDIR) ; pwd ; $(MAKE) `echo $(ROLLPOFILES) | sed -e 's@$(ROLLDIR)/@@g'`
cp $(ROLLDIR)/*.po .
pwd
../lib/libdump.po:
cd ../lib ; pwd ; $(MAKE) libdump.po
include ../Makefile.targ