1# 2# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3# Use is subject to license terms. 4# 5# cmd/backup/dump/Makefile 6# 7# Copyright (c) 1980 Regents of the University of California. 8# All rights reserved. The Berkeley software License Agreement 9# specifies the terms and conditions for redistribution. 10# 11# dump.h header file 12# dumpfstab.c reads fstab/vfstab, mtab/mnttab 13# dumpitime.c reads /etc/dumpdates 14# dumpmain.c driver 15# dumponline.c online dump support 16# dumpoptr.c operator interface 17# dumptape.c handles the mag tape and opening/closing 18# dumptraverse.c traverses the file system 19# lftw.c fixed version of ftw(3) 20# partial.c partial filesystem dump support 21# unctime.c undo ctime 22# 23# CPPFLAGS: 24# DEBUG use local directory to find ddate and dumpdates 25# PARTIAL enable partial filesystem dump support 26# TDEBUG trace out the process forking 27# 28# CAUTION: FSTYPE must be defined before including ../Makefile.backup, 29# otherwise UFSROOTPKGUSRLIBFSTYPE doesn't get expanded 30# properly and the magic doesn't happen. 31 32FSTYPE= ufs 33 34include ../Makefile.backup 35 36#CFLAGS += -DTDEBUG 37UFSDUMP= ufsdump 38 39PROG= $(UFSDUMP) 40PRODUCT= $(PROG) 41ROLLDIR= ../../fs.d/ufs/roll_log 42ROLLOBJS= $(ROLLDIR)/$(MACH)/roll_log.o 43ROLLSRCS= $(ROLLDIR)/roll_log.c 44 45LOBJECTS= dumponline.o dumpfstab.o dumpitime.o dumpmain.o \ 46 dumpoptr.o dumptape.o dumptraverse.o unctime.o \ 47 partial.o lftw.o 48OBJECTS= $(LOBJECTS) roll_log.o 49SRCS= $(LOBJECTS:.o=.c) 50 51POFILES= $(OBJECTS:.o=.po) ../lib/libdump.po 52POFILE= ufsdump.po 53ROLLPOFILES= roll_log.po 54 55# XXX This is only needed for the check: target. It would be nice to 56# XXX automatically generate the list when needed. 57HEADERS= ../../../head/protocols/dumprestore.h \ 58 ../../fs.d/ufs/roll_log/roll_log.h ../include/byteorder.h \ 59 ../include/memutils.h \ 60 ../include/rmt.h dump.h dumpusg.h 61 62CLOBBERFILES += $(PRODUCT) $(DEBUGPRODUCTS) dumpdates 63 64LOCAL= . 65GENERAL= ../include 66GLOBAL= ../../../head 67CPPFLAGS= -I$(LOCAL) -I$(GENERAL) -I$(GLOBAL) -DPARTIAL \ 68 -I$(ROLLDIR) $(CPPFLAGS.master) \ 69 -D_LARGEFILE64_SOURCE=1 70CERRWARN += -_gcc=-Wno-implicit-function-declaration 71CERRWARN += -_gcc=-Wno-parentheses 72CERRWARN += $(CNOWARN_UNINIT) 73CERRWARN += -_gcc=-Wno-clobbered 74CERRWARN += -_gcc=-Wno-extra 75LIBDUMP= ../lib/libdump.a 76LINTLIBDUMP= ../lib/llib-ldump.ln -lkstat 77LDLIBS += $(BSTATIC) -L../lib -ldump $(BDYNAMIC) \ 78 -lsocket -lnsl -ladm -lm -lkstat 79 80UFSROOTDUMPDATES= $(UFSROOTETC)/dumpdates 81UFSROOTLINK= $(UFSROOTUSRSBIN)/$(PROG) 82LINKVALUE= ../lib/fs/$(FSTYPE)/$(PROG) 83LIBDIR= $(UFSROOTUSRLIBFS)/$(FSTYPE) 84$(UFSROOTDUMPDATES):= FILEMODE= 0664 85$(LIBDIR):= DIRMODE= 0755 86 87FILEMODE= 04555 88 89.KEEP_STATE: 90 91all: $(PRODUCT) 92 93$(PROG): $(OBJECTS) $$(LIBDUMP) 94 $(LINK.c) -o $@ $(OBJECTS) $(LDLIBS) 95 $(POST_PROCESS) 96 97$(LIBDUMP): FRC 98 $(DO_LIBDIR) 99 100$(POFILE): $(POFILES) 101 $(RM) $@; cat $(POFILES) > $@ 102 103FRC: 104 105install: all $(LIBDIR) $(UFSROOTPKGUSRLIBFSTYPE) dumpdates \ 106 $(UFSROOTDUMPDATES) $(UFSROOTLINK) 107 108dumpdates: 109 cp /dev/null dumpdates 110 111#XXX Should actually note return value from close(2), particularly regarding 112#XXX tape descriptors. Some drives don't actually force anything to media 113#XXX except when they are writing a file mark.... 114 115# grep is looking for non-space/tab 116lint: $(SRCS) $(ROLLSRCS) $$(LINTLIBDUMP) 117 $(LINT.c) $(SRCS) $(ROLLSRCS) $(LINTLIBDUMP) 2>&1 \ 118 | sed -f lint.sed | grep '^[^ ]' 119 120$(LINTLIBDUMP): FRC 121 cd ../lib; pwd; $(MAKE) lint 122 pwd 123 124check: FRC 125 $(CSTYLE) $(CSTYLEFLAGS) $(SRCS) $(ROLLSRCS) $(HEADERS) 126 $(HDRCHK) $(HDRCHKFLAGS) $(HEADERS) 127 128clean: 129 $(RM) $(OBJECTS) $(ROLLOBJS) $(DEBUGOBJS) *.ln 130 131$(LIBDIR): 132 $(INS.dir) 133 134$(UFSROOTLINK): 135 -$(RM) $@; $(SYMLINK) $(LINKVALUE) $(UFSROOTLINK) 136 137roll_log.o: 138 cd $(ROLLDIR) ; pwd ; $(MAKE) 139 cp $(ROLLOBJS) . 140 pwd 141 142$(ROLLPOFILES): $(ROLLSRCS) 143 cd $(ROLLDIR) ; pwd ; $(MAKE) `echo $(ROLLPOFILES) | sed -e 's@$(ROLLDIR)/@@g'` 144 cp $(ROLLDIR)/*.po . 145 pwd 146 147../lib/libdump.po: 148 cd ../lib ; pwd ; $(MAKE) libdump.po 149 150include ../Makefile.targ 151