Imported Upstream version 3.3.1
[debian/amanda] / common-src / Makefile.am
1 # Makefile for Amanda library.
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_srcdir)/gnulib   
9
10 AM_CFLAGS = $(AMANDA_WARNING_CFLAGS)
11 AM_LDFLAGS = $(AMANDA_STATIC_LDFLAGS) $(AS_NEEDED_FLAGS)
12
13 amlib_LTLIBRARIES =     libamanda.la
14
15 sbin_PROGRAMS = amservice
16
17 LINT=$(AMLINT)
18 LINTFLAGS=$(AMLINTFLAGS)
19
20 libamanda_la_SOURCES =          \
21         alloc.c                 \
22         amfeatures.c            \
23         amflock.c               \
24         ipc-binary.c            \
25         amxml.c                 \
26         clock.c                 \
27         columnar.c              \
28         conffile.c              \
29         debug.c                 \
30         dgram.c                 \
31         event.c                 \
32         file.c                  \
33         fileheader.c            \
34         glib-util.c             \
35         match.c                 \
36         packet.c                \
37         pipespawn.c             \
38         protocol.c              \
39         amsemaphore.c           \
40         security.c              \
41         security-util.c         \
42         simpleprng.c            \
43         sl.c                    \
44         sockaddr-util.c         \
45         stream.c                \
46         tapelist.c              \
47         timestamp.c             \
48         util.c
49 # version.c is generated; see below
50 nodist_libamanda_la_SOURCES = version.c
51
52 INSTALLPERMS_exec = \
53         dest=$(sbindir) chown=root:setuid chmod=04750 \
54                 amservice
55
56 LDADD = libamanda.la
57
58 libamanda_la_LIBADD =           \
59         ../gnulib/libgnu.la
60
61 if WANT_AMFLOCK_POSIX
62 libamanda_la_SOURCES += amflock-posix.c
63 endif
64
65 if WANT_AMFLOCK_FLOCK
66 libamanda_la_SOURCES += amflock-flock.c
67 endif
68
69 if WANT_AMFLOCK_LOCKF
70 libamanda_la_SOURCES += amflock-lockf.c
71 endif
72
73 if WANT_AMFLOCK_LNLOCK
74 libamanda_la_SOURCES += amflock-lnlock.c
75 endif
76
77
78 if WANT_RSH_SECURITY
79 libamanda_la_SOURCES += rsh-security.c
80 endif
81 if WANT_SSH_SECURITY
82 libamanda_la_SOURCES += ssh-security.c
83 endif
84 if WANT_BSD_SECURITY
85 libamanda_la_SOURCES += bsd-security.c
86 endif
87 if WANT_BSDTCP_SECURITY
88 libamanda_la_SOURCES += bsdtcp-security.c
89 endif
90 if WANT_BSDUDP_SECURITY
91 libamanda_la_SOURCES += bsdudp-security.c
92 endif
93 if WANT_KRB5_SECURITY
94 libamanda_la_SOURCES += krb5-security.c
95 endif
96
97 libamanda_la_SOURCES += local-security.c
98
99 libamanda_la_LDFLAGS =  -release $(VERSION) $(AS_NEEDED_FLAGS)
100
101 noinst_HEADERS =                \
102         amanda.h                \
103         amfeatures.h            \
104         ipc-binary.h            \
105         amxml.h                 \
106         arglist.h               \
107         clock.h                 \
108         columnar.h              \
109         directtcp.h             \
110         amflock.h               \
111         conffile.h              \
112         debug.h                 \
113         dgram.h                 \
114         event.h                 \
115         file.h                  \
116         fileheader.h            \
117         glib-util.h             \
118         match.h                 \
119         packet.h                \
120         pipespawn.h             \
121         protocol.h              \
122         amsemaphore.h           \
123         security.h              \
124         security-util.h         \
125         simpleprng.h            \
126         sl.h                    \
127         sockaddr-util.h         \
128         stream.h                \
129         tapelist.h              \
130         timestamp.h             \
131         util.h                  \
132         version.h
133
134 EXTRA_PROGRAMS = genversion $(TEST_PROGS)
135
136 # Version-building steps:
137 #
138 # 1. configure builds svn-info.h, if svn info is available; this
139 #    file is included in distribution tarballs
140 # 2. Makefile creates genversion.h with build-time information
141 # 3. Makefile builds genversion
142 # 4. Makefile runs genversion to create version.c
143 # 5. version.c is compiled into libamanda normally
144
145 genversion_SOURCES = genversion.c svn-info.h
146 genversion_LDADD = $(libamanda_la_LIBADD)       \
147         ../gnulib/libgnu.la
148
149 genversion.h: $(top_builddir)/config.status
150         -rm -f $@ $@.new
151         echo '#define CC "$(CC)"' > $@.new
152         echo '#define BUILT_DATE "'`date`'"' >> $@.new
153         echo '#define BUILT_MACH "$(target)"' >> $@.new
154         mv $@.new $@
155
156 version.c: genversion$(EXEEXT)
157         -rm -f version.c
158         ./genversion$(EXEEXT) > version.c
159
160 BUILT_SOURCES += genversion.h version.c
161
162 # these are used for testing only:
163 TEST_PROGS = file bsdsecurity
164
165 CLEANFILES += *.test.c
166 DISTCLEANFILES += version.c genversion genversion.h
167
168 # used for testing only
169
170 STANDARD_COMMON_STUFF_NOT_FILE = \
171         alloc.lo \
172         clock.lo \
173         conffile.lo \
174         debug.lo \
175         glib-util.lo \
176         util.lo \
177         match.lo \
178         sl.lo \
179         sockaddr-util.lo \
180         timestamp.lo
181
182 STANDARD_COMMON_STUFF = \
183         $(STANDARD_COMMON_STUFF_NOT_FILE) \
184         file.lo
185
186 file_SOURCES = file.test.c
187 file_LDADD = $(libamanda_la_LIBADD) $(STANDARD_COMMON_STUFF_NOT_FILE)
188
189 bsdsecurity_SOURCES = bsd-security.test.c
190 bsdsecurity_LDADD = $(libamanda_a_LIBADD) \
191                     alloc.lo \
192                     clock.lo \
193                     debug.lo \
194                     dgram.lo \
195                     event.lo \
196                     file.lo \
197                     packet.lo \
198                     security.lo \
199                     ssh-security.lo
200
201 # libtestutils.la
202 #
203 # Convenience library (never installed) for 'make check'-based tests.
204
205 noinst_LTLIBRARIES = libtestutils.la
206 libtestutils_la_SOURCES = \
207         testutils.c \
208         testutils.h
209
210 # automake-style tests
211
212 # automake-style tests
213
214 TESTS = amflock-test event-test amsemaphore-test quoting-test \
215         ipc-binary-test hexencode-test fileheader-test match-test
216 noinst_PROGRAMS = $(TESTS)
217
218 amflock_test_SOURCES = amflock-test.c
219 amflock_test_LDADD = libamanda.la libtestutils.la
220
221 event_test_SOURCES = event-test.c
222 event_test_LDADD = libamanda.la libtestutils.la
223
224 amsemaphore_test_SOURCES = amsemaphore-test.c
225 amsemaphore_test_LDADD = libamanda.la libtestutils.la
226
227 quoting_test_SOURCES = quoting-test.c
228 quoting_test_LDADD = libamanda.la libtestutils.la
229
230 ipc_binary_test_SOURCES = ipc-binary-test.c
231 ipc_binary_test_LDADD = libamanda.la libtestutils.la
232
233 hexencode_test_SOURCES = hexencode-test.c
234 hexencode_test_LDADD = libamanda.la libtestutils.la
235
236 fileheader_test_SOURCES = fileheader-test.c
237 fileheader_test_LDADD = libamanda.la libtestutils.la
238
239 match_test_SOURCES = match-test.c
240 match_test_LDADD = libamanda.la libtestutils.la
241
242 # scripts
243
244 # divide scripts up both by language and destination directory
245 sbin_SCRIPTS_PERL = \
246             amgpgcrypt \
247             amcryptsimple \
248             amgetconf
249
250 amlibexec_SCRIPTS_PERL =
251
252 sbin_SCRIPTS_SHELL = \
253             amcrypt \
254             amaespipe \
255             amcrypt-ossl \
256             amcrypt-ossl-asym
257
258 amlibexec_SCRIPTS_SHELL = 
259
260 SCRIPTS_INCLUDE = \
261             amanda-sh-lib.sh
262
263 EXTRA_DIST += amanda-sh-lib.sh.in
264
265 SCRIPTS_PERL = $(sbin_SCRIPTS_PERL) $(amlibexec_SCRIPTS_PERL)
266 SCRIPTS_SHELL = $(sbin_SCRIPTS_SHELL) $(amlibexec_SCRIPTS_SHELL)
267
268 amlibexec_DATA = $(SCRIPTS_INCLUDE)
269 amlibexec_SCRIPTS = $(amlibexec_SCRIPTS_PERL) $(amlibexec_SCRIPTS_SHELL)
270 sbin_SCRIPTS = $(sbin_SCRIPTS_PERL) $(sbin_SCRIPTS_SHELL)
271
272 # installation
273
274 lint:
275         @echo $(LINT) $(libamanda_la_SOURCES)
276         @$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(top_builddir)/config $(INCLUDES) $(libamanda_la_SOURCES)
277         @echo $(LINT) $(genversion_SOURCES)
278         @$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(top_builddir)/config $(INCLUDES) $(genversion_SOURCES)
279
280 listlibsrc:
281         @ for p in $(libamanda_la_SOURCES) $(REGEXCSRC); do     \
282                 listlibsrcs="$$listlibsrcs `pwd`/$$p";          \
283         done;                                                   \
284         echo $$listlibsrcs >listlibsrc.output
285
286 %.test.c: $(srcdir)/%.c
287         echo '#define TEST' >$@
288         echo '#include "$<"' >>$@
289
290 distclean-local:
291         if test `cd $(srcdir) && pwd` != `pwd`; then rm -f svn-info.h; fi
292 MAINTAINERCLEANFILES+=svn-info.h