2 # Copyright (c) 1998,1999,2000
3 # Traakan, Inc., Los Altos, CA
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
9 # 1. Redistributions of source code must retain the above copyright
10 # notice unmodified, this list of conditions, and the following
12 # 2. Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
16 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 # This illustrates the strata (layers) of the
36 # NDMJOB/NDMJOBLIB software, the scope of key
37 # header (.h) files, and the source files
38 # constituting each layer.
40 # - - - - - +---------------------------------------+
41 # ^ ^ ^ ^ ndmjob.h | NDMJOB Command ndmjob_*.c |
42 # | | | | - +---------------------------------------+
43 # | | | | NDMJOBLIB API "job"
44 # | | | | +---------------------------------------+ \
45 # | | | | | Rules (NDMJLR) ndmjr_*.[ch] | \
46 # | | | ndmagents.h | Agents (NDMJLA) ndma_*.c | |
47 # | | | - +---------------------------------------+ |
48 # | | ndmlib.h | Library (NDMJLL) ndml_*.c | |
49 # | | - +---------------------------------------+ |
50 # | ndmprotocol.h | Protocol (NDMJLP) ndmp*.[chx] | NDMJOBLIB
51 # | - +---------------------------------------+ |
52 # | | SMC (NDMJLS) smc*.[ch] | |
53 # | | MD5 (NDMJL5) md5*.[ch] | |
54 # | +---------------------------------------+ |
55 # ndmos.h | OS intf (NDMJLO) ndmos*.[ch] | /
56 # - +---------------------------------------+ /
60 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_CONTROL_AGENT
61 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_DATA_AGENT
62 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_TAPE_AGENT
63 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_ROBOT_AGENT
64 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_NDMP2
65 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_NDMP3
66 #NDMOS_OPTIONS = -DNDMOS_OPTION_NO_NDMP4
68 include $(top_srcdir)/config/automake/vars.am
69 include $(top_srcdir)/config/automake/installperms.am
70 include $(top_srcdir)/config/automake/precompile.am
72 INCLUDES = -I$(top_builddir)/common-src \
73 -I$(top_srcdir)/common-src \
74 -I$(top_srcdir)/gnulib
76 # TODO: use existing md5 facility? (openssl?)
80 # add the Amanda version to the ndmjoblib version info
81 AM_CFLAGS = -DNDMOS_CONST_NDMJOBLIB_REVISION='"amanda-$(VERSION)"'
82 # note that this directory is compiled *without* the usual Amanda warnings,
83 # because the rpcgen-generated code (including header files) generates copious
84 # warnings and cannot be changed, and cannot be ignored in older versions of
88 ## libndmjob.la and libndmlib.la
91 # Divide the library up into the library side and down (libndmlib.la),
92 # and the full set of rules, agents, and so on required to build ndmjob
101 ndma_comm_session.c \
102 ndma_comm_dispatch.c \
105 ndma_cops_backreco.c \
120 ndma_image_stream.c \
124 ndma_robot_simulator.c \
150 ndmp2_translate.c ndmp3_translate.c ndmp4_translate.c \
151 ndmp0_enum_strs.c ndmp0_pp.c ndmp0_xdr.c ndmp0_xmt.c \
152 ndmp2_enum_strs.c ndmp2_pp.c ndmp2_xdr.c ndmp2_xmt.c \
153 ndmp3_enum_strs.c ndmp3_pp.c ndmp3_xdr.c ndmp3_xmt.c \
154 ndmp4_enum_strs.c ndmp4_pp.c ndmp4_xdr.c ndmp4_xmt.c \
155 ndmp9_enum_strs.c ndmp9_xdr.c ndmp9_xmt.c
169 libndmlib_la_LDFLAGS = -release $(VERSION)
170 libndmlib_la_SOURCES = \
178 libndmjob_la_SOURCES = \
182 libndmjob_la_LDFLAGS = -release $(VERSION)
183 libndmjob_la_LIBADD = libndmlib.la
186 ## ndmjob -- used for testing and by applications
189 amlibexec_PROGRAMS = amndmjob ndmjob
191 ndmjob_SOURCES = ndmjob_main.c \
196 ndma_tape_simulator.c
199 amndmjob_SOURCES = amndmjob_main.c \
204 amndma_tape_simulator.c
206 ndmjob_LDADD = libndmjob.la \
207 ../common-src/libamanda.la
209 amndmjob_LDADD = libndmjob.la \
210 ../common-src/libamanda.la
212 # for systems without rpcgen, don't even include rules that *might*
213 # regenerate things from the .x files. These would rarely change
214 # upstream, and *definitely* shouldn't change in Amanda.
216 ndmp0.h ndmp0_xdr.c : ndmp0.x
219 ndmp2.h ndmp2_xdr.c : ndmp2.x
222 ndmp3.h ndmp3_xdr.c : ndmp3.x
225 ndmp4.h ndmp4_xdr.c : ndmp4.x
228 ndmp9.h ndmp9_xdr.c : ndmp9.x
233 md5.h ndmp0_enum_strs.h ndmp3.x ndmprotocol.h \
234 ndmagents.h ndmp0.h ndmp4_enum_strs.h ndmp_translate.h \
235 ndmjob.h ndmp0.x ndmp4.h scsiconst.h \
236 ndmjr_none.h ndmp2_enum_strs.h ndmp4_translate.h smc.h \
237 ndmlib.h ndmp2.h ndmp4.x smc_priv.h \
238 ndmp2_translate.h ndmp9_enum_strs.h smc_raw.h \
239 ndmos.h ndmp2.x ndmp9.h \
240 ndmp3_enum_strs.h ndmp9.x \
241 ndmp3.h ndmp_ammend.h wraplib.h \
242 ndmp3_translate.h ndmp_msg_buf.h \