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 # 38 PROG = ndmpd 39 40 include $(SRC)/cmd/Makefile.cmd 41 42 NDMP_DIR = ndmp 43 TLM_DIR = tlm 44 45 include $(NDMP_DIR)/Makefile.rpcgen 46 47 CFLAGS += $(CCVERBOSE) 48 49 CPPFLAGS += $(LFLAGS64) 50 51 CPPFLAGS += -D_FILE_OFFSET_BITS=64 -DDEBUG 52 CPPFLAGS += -I. -Iinclude 53 54 CSTD = $(CSTD_GNU99) 55 56 # lint does not like unused _umem_*_init 57 LINTFLAGS += -xerroff=E_NAME_DEF_NOT_USED2 58 59 # function argument declared inconsistently 60 LINTFLAGS += -xerroff=E_INCONS_ARG_DECL2 61 # value type used inconsistently 62 LINTFLAGS += -xerroff=E_INCONS_VAL_TYPE_USED2 63 # value type declared inconsistently 64 LINTFLAGS += -xerroff=E_INCONS_VAL_TYPE_DECL2 65 # argument used inconsistently 66 LINTFLAGS += -xerroff=E_INCONS_ARG_USED2 67 68 CERRWARN += -_gcc=-Wno-unused-variable 69 CERRWARN += -_gcc=-Wno-switch 70 CERRWARN += -_gcc=-Wno-uninitialized 71 CERRWARN += -_gcc=-Wno-address 72 73 LDLIBS += -lsocket -lnsl -lzfs -lsec -lndmp -lmd5 -lnvpair -lumem -lbsm -lgen -lcmdutils -linetutil 74 75 OBJS= \ 76 $(NDMP_DIR)/ndmp_xdr.o \ 77 $(NDMP_OBJ:%.o=$(NDMP_DIR)/%.o) $(TLM_OBJ:%.o=$(TLM_DIR)/%.o) 78 79 NDMP_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 102 TLM_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 114 SRCS= $(NDMP_OBJ:%.o=$(NDMP_DIR)/%.c) $(TLM_OBJ:%.o=$(TLM_DIR)/%.c) 115 116 SVCMETHOD = svc-ndmp 117 $(ROOTSVCMETHOD) := FILEMODE = 0555 118 119 MANIFEST = ndmp.xml 120 ROOTMANIFESTDIR= $(ROOTSVCSYSTEM) 121 $(ROOTMANIFEST) := FILEMODE = 444 122 123 ROOTNDMPDDIR= $(ROOTLIB)/ndmp 124 ROOTNDMPDFILE = $(PROG:%=$(ROOTNDMPDDIR)/%) 125 126 FILEMODE = 0444 127 $(ROOTNDMPDFILE):= FILEMODE = 0555 128 129 $(ROOTNDMPDDIR): 130 $(INS.dir) 131 132 $(ROOTNDMPDDIR)/%: % 133 $(INS.file) 134 135 .KEEP_STATE: 136 137 all: $(PROG) 138 139 install: all $(ROOTNDMPDDIR) $(ROOTNDMPDFILE) $(ROOTSVCMETHOD) $(ROOTMANIFEST) 140 141 check: $(CHKMANIFEST) 142 143 clobber: 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 155 lint: lint_SRCS 156 157 clean: rpcclean 158 rm -f $(NDMP_DIR)/*.o $(TLM_DIR)/*.o 159 160 include $(SRC)/cmd/Makefile.targ