xref: /illumos-gate/usr/src/cmd/backup/dump/Makefile (revision d3b5f563)
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