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