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