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 .debug/roll_log.o:
 143         cd $(ROLLDIR) ; pwd ; $(MAKE) CFLAGS=-g
 144         cp $(ROLLOBJS) .debug
 145         pwd
 146 
 147 $(ROLLPOFILES): $(ROLLSRCS)
 148         cd $(ROLLDIR) ; pwd ; $(MAKE) `echo $(ROLLPOFILES) | sed -e 's@$(ROLLDIR)/@@g'`
 149         cp $(ROLLDIR)/*.po .
 150         pwd
 151 
 152 ../lib/libdump.po:
 153         cd ../lib ; pwd ; $(MAKE)  libdump.po
 154 
 155 include ../Makefile.targ