xref: /illumos-gate/usr/src/cmd/ndmpd/Makefile (revision 80d5689f5d4588adc071138e25e9d0d5252d9b55)
1#
2# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
3#
4
5#
6# BSD 3 Clause License
7#
8# Copyright (c) 2007, The Storage Networking Industry Association.
9#
10# Redistribution and use in source and binary forms, with or without
11# modification, are permitted provided that the following conditions
12# are met:
13# 	- Redistributions of source code must retain the above copyright
14#	  notice, this list of conditions and the following disclaimer.
15#
16# 	- Redistributions in binary form must reproduce the above copyright
17#	  notice, this list of conditions and the following disclaimer in
18#	  the documentation and/or other materials provided with the
19#	  distribution.
20#
21#	- Neither the name of The Storage Networking Industry Association (SNIA)
22#	  nor the names of its contributors may be used to endorse or promote
23#	  products derived from this software without specific prior written
24#	  permission.
25#
26# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
30# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36# POSSIBILITY OF SUCH DAMAGE.
37#
38PROG = ndmpd
39
40include $(SRC)/cmd/Makefile.cmd
41
42NDMP_DIR = ndmp
43TLM_DIR = tlm
44
45include $(NDMP_DIR)/Makefile.rpcgen
46
47CFLAGS += $(CCVERBOSE)
48
49CPPFLAGS += $(LFLAGS64)
50
51CPPFLAGS += -D_FILE_OFFSET_BITS=64 -DDEBUG
52CPPFLAGS += -I. -Iinclude
53
54C99MODE = $(C99_ENABLE)
55
56# lint does not like unused _umem_*_init
57LINTFLAGS += -xerroff=E_NAME_DEF_NOT_USED2
58
59# function argument declared inconsistently
60LINTFLAGS += -xerroff=E_INCONS_ARG_DECL2
61# value type used inconsistently
62LINTFLAGS += -xerroff=E_INCONS_VAL_TYPE_USED2
63# value type declared inconsistently
64LINTFLAGS += -xerroff=E_INCONS_VAL_TYPE_DECL2
65# argument used inconsistently
66LINTFLAGS += -xerroff=E_INCONS_ARG_USED2
67
68CERRWARN += -_gcc=-Wno-unused-variable
69CERRWARN += -_gcc=-Wno-switch
70CERRWARN += -_gcc=-Wno-uninitialized
71CERRWARN += -_gcc=-Wno-address
72
73LDLIBS   += -lsocket -lnsl -lzfs -lsec -lndmp -lmd5 -lnvpair -lumem -lbsm -lgen -lcmdutils -linetutil
74
75OBJS= \
76	$(NDMP_DIR)/ndmp_xdr.o \
77	$(NDMP_OBJ:%.o=$(NDMP_DIR)/%.o) $(TLM_OBJ:%.o=$(TLM_DIR)/%.o)
78
79NDMP_OBJ = \
80	ndmpd_callbacks.o \
81	ndmpd_chkpnt.o \
82	ndmpd_comm.o \
83	ndmpd_config.o \
84	ndmpd_connect.o \
85	ndmpd_data.o \
86	ndmpd_door.o \
87	ndmpd_dtime.o \
88	ndmpd_fhistory.o \
89	ndmpd_handler.o \
90	ndmpd_log.o \
91	ndmpd_main.o \
92	ndmpd_mark.o \
93	ndmpd_mover.o \
94	ndmpd_prop.o \
95	ndmpd_scsi.o \
96	ndmpd_tape.o \
97	ndmpd_tar.o \
98	ndmpd_tar3.o \
99	ndmpd_util.o \
100	ndmpd_zfs.o
101
102TLM_OBJ = \
103	tlm_backup_reader.o \
104	tlm_bitmap.o \
105	tlm_buffers.o \
106	tlm_info.o \
107	tlm_init.o \
108	tlm_lib.o \
109	tlm_restore_writer.o \
110	tlm_traverse.o \
111	tlm_util.o \
112	tlm_hardlink.o
113
114SRCS= $(NDMP_OBJ:%.o=$(NDMP_DIR)/%.c) $(TLM_OBJ:%.o=$(TLM_DIR)/%.c)
115
116SVCMETHOD = svc-ndmp
117$(ROOTSVCMETHOD) := FILEMODE = 0555
118
119MANIFEST = ndmp.xml
120ROOTMANIFESTDIR= $(ROOTSVCSYSTEM)
121$(ROOTMANIFEST) := FILEMODE = 444
122
123ROOTNDMPDDIR=	$(ROOTLIB)/ndmp
124ROOTNDMPDFILE = $(PROG:%=$(ROOTNDMPDDIR)/%)
125
126FILEMODE = 0444
127$(ROOTNDMPDFILE):= FILEMODE = 0555
128
129$(ROOTNDMPDDIR):
130	$(INS.dir)
131
132$(ROOTNDMPDDIR)/%: %
133	$(INS.file)
134
135.KEEP_STATE:
136
137all: $(PROG)
138
139install: all $(ROOTNDMPDDIR)  $(ROOTNDMPDFILE) $(ROOTSVCMETHOD) $(ROOTMANIFEST)
140
141check:	$(CHKMANIFEST)
142
143clobber:
144
145$(PROG) : $(OBJS)
146	$(LINK.c) -o $@  $(OBJS) $(LDLIBS)
147	$(POST_PROCESS)
148
149$(NDMP_DIR)/%.o : $(NDMP_DIR)/%.c
150	$(COMPILE.c) -o $@ $<
151
152$(TLM_DIR)/%.o : $(TLM_DIR)/%.c
153	$(COMPILE.c) -o $@ $<
154
155lint:	lint_SRCS
156
157clean:  rpcclean
158	rm -f $(NDMP_DIR)/*.o $(TLM_DIR)/*.o
159
160include $(SRC)/cmd/Makefile.targ
161