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 32 FSTYPE= ufs 33 34 include ../Makefile.backup 35 36 #CFLAGS += -DTDEBUG 37 UFSDUMP= ufsdump 38 39 PROG= $(UFSDUMP) 40 PRODUCT= $(PROG) 41 ROLLDIR= ../../fs.d/ufs/roll_log 42 ROLLOBJS= $(ROLLDIR)/$(MACH)/roll_log.o 43 ROLLSRCS= $(ROLLDIR)/roll_log.c 44 45 LOBJECTS= dumponline.o dumpfstab.o dumpitime.o dumpmain.o \ 46 dumpoptr.o dumptape.o dumptraverse.o unctime.o \ 47 partial.o lftw.o 48 OBJECTS= $(LOBJECTS) roll_log.o 49 SRCS= $(LOBJECTS:.o=.c) 50 51 POFILES= $(OBJECTS:.o=.po) ../lib/libdump.po 52 POFILE= ufsdump.po 53 ROLLPOFILES= 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. 57 HEADERS= ../../../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 62 CLOBBERFILES += $(PRODUCT) $(DEBUGPRODUCTS) dumpdates 63 64 LOCAL= . 65 GENERAL= ../include 66 GLOBAL= ../../../head 67 CPPFLAGS= -I$(LOCAL) -I$(GENERAL) -I$(GLOBAL) -DPARTIAL \ 68 -I$(ROLLDIR) $(CPPFLAGS.master) \ 69 -D_LARGEFILE64_SOURCE=1 70 CERRWARN += -_gcc=-Wno-implicit-function-declaration 71 CERRWARN += -_gcc=-Wno-parentheses 72 CERRWARN += -_gcc=-Wno-uninitialized 73 CERRWARN += -_gcc=-Wno-clobbered 74 CERRWARN += -_gcc=-Wno-extra 75 LIBDUMP= ../lib/libdump.a 76 LINTLIBDUMP= ../lib/llib-ldump.ln -lkstat 77 LDLIBS += $(BSTATIC) -L../lib -ldump $(BDYNAMIC) \ 78 -lsocket -lnsl -ladm -lm -lkstat 79 80 UFSROOTDUMPDATES= $(UFSROOTETC)/dumpdates 81 UFSROOTLINK= $(UFSROOTUSRSBIN)/$(PROG) 82 LINKVALUE= ../lib/fs/$(FSTYPE)/$(PROG) 83 LIBDIR= $(UFSROOTUSRLIBFS)/$(FSTYPE) 84 $(UFSROOTDUMPDATES):= FILEMODE= 0664 85 $(LIBDIR):= DIRMODE= 0755 86 87 FILEMODE= 04555 88 89 .KEEP_STATE: 90 91 all: $(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 103 FRC: 104 105 install: all $(LIBDIR) $(UFSROOTPKGUSRLIBFSTYPE) dumpdates \ 106 $(UFSROOTDUMPDATES) $(UFSROOTLINK) 107 108 dumpdates: 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 116 lint: $(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 124 check: FRC 125 $(CSTYLE) $(CSTYLEFLAGS) $(SRCS) $(ROLLSRCS) $(HEADERS) 126 $(HDRCHK) $(HDRCHKFLAGS) $(HEADERS) 127 128 clean: 129 $(RM) $(OBJECTS) $(ROLLOBJS) $(DEBUGOBJS) *.ln 130 131 $(LIBDIR): 132 $(INS.dir) 133 134 $(UFSROOTLINK): 135 -$(RM) $@; $(SYMLINK) $(LINKVALUE) $(UFSROOTLINK) 136 137 roll_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 150 include ../Makefile.targ