0a03c66558948a7a4490fabdd0d227242dcedbab
[debian/amanda] / server-src / Makefile.am
1 # Makefile for Amanda server programs.
2
3 include $(top_srcdir)/config/automake/vars.am
4 include $(top_srcdir)/config/automake/scripts.am
5 include $(top_srcdir)/config/automake/installperms.am
6 include $(top_srcdir)/config/automake/precompile.am
7
8 INCLUDES =      -I$(top_builddir)/common-src \
9                 -I$(top_srcdir)/common-src   \
10                 -I$(top_srcdir)/restore-src  \
11                 -I$(top_srcdir)/amandad-src  \
12                 -I$(top_srcdir)/device-src   \
13                 -I$(top_srcdir)/gnulib
14
15 AM_CFLAGS = $(AMANDA_WARNING_CFLAGS)
16 AM_LDFLAGS = $(AMANDA_STATIC_LDFLAGS)
17
18 LINT=$(AMLINT)
19 LINTFLAGS=$(AMLINTFLAGS)
20
21 amlib_LTLIBRARIES =     libamserver.la
22
23 sbin_PROGRAMS =         amadmin         amcheck         \
24                         amflush         amgetconf       amlabel         \
25                         amtape          amreport
26
27 noinst_PROGRAMS = taper_source_test
28
29 amlibexec_PROGRAMS =    amindexd        amlogroll       amtrmidx        \
30                         amtrmlog        driver          dumper          \
31                         planner         taper           amcleanupdisk   \
32                         chunker
33
34 # Exclude scripts which depend on perl extension modules from the syntax checks
35 CHECK_PERL = \
36             amaddclient \
37             amoverview \
38             amserverconfig \
39             amstatus \
40             amtoc
41 SCRIPTS_PERL =  \
42             $(CHECK_PERL) \
43             amdevcheck \
44             amcheckdump
45
46 SCRIPTS_SHELL = \
47             amcheckdb \
48             amcleanup \
49             amdump \
50             amrmtape \
51             amverify \
52             amverifyrun
53
54 sbin_SCRIPTS = $(SCRIPTS_PERL) $(SCRIPTS_SHELL)
55
56 INSTALLPERMS_exec = \
57         dest=$(sbindir) chown=amanda chmod= \
58                 $(sbin_PROGRAMS) \
59         chown=root chmod=u+s,o-rwx \
60                 amcheck \
61         dest=$(amlibexecdir) chown=amanda chmod= \
62                 $(amlibexec_PROGRAMS) \
63         chown=root chmod=u+s,o-rwx \
64                 dumper planner
65
66 INSTALLPERMS_data = \
67         dest=$(sbindir) chown=amanda chmod= \
68                 $(sbin_SCRIPTS) \
69         dest=$(amlibexecdir) chown=amanda chmod= \
70                 $(amlibexec_SCRIPTS)
71
72 ###
73 # Because libamanda includes routines (e.g. regex) provided by some system
74 # libraries, and because of the way libtool sets up the command line, we
75 # need to list libamanda twice here, first to override the system library
76 # routines, and second to pick up any references in the other libraries.
77 ###
78
79 LDADD = ../common-src/libamanda.la   \
80         libamserver.la               \
81         ../device-src/libamdevice.la     \
82         ../common-src/libamanda.la   \
83         ../gnulib/libgnu.la          \
84         $(READLINE_LIBS)
85
86 libamserver_la_SOURCES= amindex.c       changer.c                       \
87                         diskfile.c      driverio.c      cmdline.c  \
88                         holding.c       infofile.c      logfile.c       \
89                         tapefile.c      find.c          server_util.c   \
90                         taperscan.c
91
92 libamserver_la_LDFLAGS= -release $(VERSION)
93 libamserver_la_LIBADD= ../device-src/libamdevice.la \
94                        ../common-src/libamanda.la
95
96 taper_source_test_SOURCES = taper-source-test.c \
97                         taper-source.c \
98                         taper-file-source.c \
99                         taper-port-source.c \
100                         taper-disk-port-source.c \
101                         taper-mem-port-source.c
102
103 taper_SOURCES =         taper.c \
104                         taper-source.c \
105                         taper-file-source.c \
106                         taper-port-source.c \
107                         taper-disk-port-source.c \
108                         taper-mem-port-source.c
109
110 taper_LDADD = $(LDADD) \
111         ../amandad-src/libamandad.la
112
113 taper_source_test_LDADD = $(LDADD) \
114         ../amandad-src/libamandad.la
115
116 amindexd_LDADD = $(LDADD) \
117         ../amandad-src/libamandad.la
118
119 # there are used for testing only:
120 TEST_PROGS = diskfile infofile
121
122 EXTRA_PROGRAMS =        $(TEST_PROGS)
123
124 CLEANFILES += *.test.c
125
126 amindexd_CSRC =         amindexd.c      disk_history.c  list_dir.c
127 amindexd_SOURCES =      disk_history.h  list_dir.h      $(amindexd_CSRC)
128
129 amreport_SOURCES =      reporter.c
130
131 amgetconf_SOURCES =     getconf.c
132
133 noinst_HEADERS =        amindex.h       changer.h       cmdline.h       \
134                         diskfile.h      driverio.h      \
135                         holding.h       infofile.h      logfile.h       \
136                         tapefile.h      find.h          server_util.h   \
137                         taperscan.h taper-disk-port-source.h \
138                         taper-mem-port-source.h  taper-file-source.h \
139                         taper-port-source.h taper-source.h
140
141 lint:
142         @ for p in $(amlibexec_PROGRAMS) $(sbin_PROGRAMS); do                   \
143                 if [ $$p = "amindexd" ]; then                                   \
144                         s="$(amindexd_CSRC)";                                   \
145                 elif [ $$p = "amreport" ]; then                                 \
146                         s="$(amreport_SOURCES)";                                \
147                 elif [ $$p = "amgetconf" ]; then                                \
148                         s="$(getconf_SOURCES)";                                 \
149                 else                                                            \
150                         s=$$p.c;                                                \
151                 fi;                                                             \
152                 f="$$s $(libamserver_la_SOURCES)";                              \
153                 (cd ../common-src; make listlibsrc);                            \
154                 f="$$f "`cat ../common-src/listlibsrc.output`;                  \
155                 (cd ../tape-src; make listlibsrc);                              \
156                 f="$$f "`cat ../tape-src/listlibsrc.output`;                    \
157                 echo $(LINT) $$f;                                               \
158                 $(LINT) $(LINTFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(top_builddir)/config   \
159                     $(INCLUDES) $$f;                                            \
160                 if [ $$? -ne 0 ]; then                                          \
161                     exit 1;                                                     \
162                 fi;                                                             \
163         done;                                                                   \
164         exit 0
165
166 listlibsrc:
167         @ for p in $(libamserver_la_SOURCES); do                \
168                 listlibsrcs="$$listlibsrcs `pwd`/$$p";          \
169         done;                                                   \
170         echo $$listlibsrcs >listlibsrc.output
171
172
173 diskfile_SOURCES = diskfile.test.c
174 infofile_SOURCES = infofile.test.c
175
176 %.test.c: $(srcdir)/%.c
177         echo '#define TEST' >$@
178         echo '#include "$<"' >>$@