X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=common-src%2FMakefile.am;h=58443ad890ab984ccd92367db2865985dd806819;hb=cd0b924f27312d57bd42f6c4fae2b795139e2d0b;hp=1d237ead48c7a89a7e5873650aada6b3155972ba;hpb=1194fb66aa28d9929c3f2bef3cc6c1c3f40a60a4;p=debian%2Famanda diff --git a/common-src/Makefile.am b/common-src/Makefile.am index 1d237ea..58443ad 100644 --- a/common-src/Makefile.am +++ b/common-src/Makefile.am @@ -1,140 +1,292 @@ # Makefile for Amanda library. -lib_LTLIBRARIES = libamanda.la - -REGDIR = ../regex-src -REGsrcdir = $(srcdir)/$(REGDIR) - -INCLUDES = -I$(REGsrcdir) - -libamanda_la_SOURCES = \ - alloc.c amflock.c \ - bsd-security.c \ - clock.c \ - debug.c dgram.c \ - event.c error.c \ - amfeatures.c \ - file.c fileheader.c \ - krb4-security.c krb5-security.c \ - match.c \ - packet.c pipespawn.c protocol.c \ - regcomp.c regerror.c regexec.c regfree.c \ - rsh-security.c \ - security.c sl.c ssh-security.c statfs.c \ - stream.c tapelist.c \ - token.c \ - util.c \ - versuff.c version.c - -libamanda_la_LIBADD = @LTLIBOBJS@ @LTALLOCA@ -libamanda_la_LDFLAGS = -release $(VERSION) - -noinst_HEADERS = amanda.h amregex.h arglist.h \ - clock.h \ - dgram.h \ - event.h \ - amfeatures.h \ - packet.h pipespawn.h protocol.h \ - queue.h \ - sl.h security.h statfs.h \ - stream.h \ - tapelist.h \ - token.h \ - util.h \ - version.h \ - fileheader.h - -.sh: - cat $< > $@ - chmod a+x $@ +include $(top_srcdir)/config/automake/vars.am +include $(top_srcdir)/config/automake/scripts.am +include $(top_srcdir)/config/automake/installperms.am +include $(top_srcdir)/config/automake/precompile.am + +INCLUDES = -I$(top_srcdir)/gnulib + +AM_CFLAGS = $(AMANDA_WARNING_CFLAGS) +AM_LDFLAGS = $(AMANDA_STATIC_LDFLAGS) $(AS_NEEDED_FLAGS) + +amlib_LTLIBRARIES = libamanda.la + +sbin_PROGRAMS = amservice + +LINT=$(AMLINT) +LINTFLAGS=$(AMLINTFLAGS) + +libamanda_la_SOURCES = \ + alloc.c \ + amfeatures.c \ + amflock.c \ + ipc-binary.c \ + amxml.c \ + clock.c \ + columnar.c \ + conffile.c \ + debug.c \ + dgram.c \ + event.c \ + file.c \ + fileheader.c \ + glib-util.c \ + match.c \ + packet.c \ + pipespawn.c \ + protocol.c \ + semaphore.c \ + security.c \ + security-util.c \ + simpleprng.c \ + sl.c \ + sockaddr-util.c \ + stream.c \ + tapelist.c \ + timestamp.c \ + util.c +# version.c is generated; see below +nodist_libamanda_la_SOURCES = version.c + +INSTALLPERMS_exec = \ + dest=$(sbindir) chown=root:setuid chmod=04750 \ + amservice + +LDADD = libamanda.la + +libamanda_la_LIBADD = \ + ../gnulib/libgnu.la + +if WANT_AMFLOCK_POSIX +libamanda_la_SOURCES += amflock-posix.c +endif + +if WANT_AMFLOCK_FLOCK +libamanda_la_SOURCES += amflock-flock.c +endif + +if WANT_AMFLOCK_LOCKF +libamanda_la_SOURCES += amflock-lockf.c +endif + +if WANT_AMFLOCK_LNLOCK +libamanda_la_SOURCES += amflock-lnlock.c +endif + + +if WANT_RSH_SECURITY +libamanda_la_SOURCES += rsh-security.c +endif +if WANT_SSH_SECURITY +libamanda_la_SOURCES += ssh-security.c +endif +if WANT_BSD_SECURITY +libamanda_la_SOURCES += bsd-security.c +endif +if WANT_BSDTCP_SECURITY +libamanda_la_SOURCES += bsdtcp-security.c +endif +if WANT_BSDUDP_SECURITY +libamanda_la_SOURCES += bsdudp-security.c +endif +if WANT_KRB5_SECURITY +libamanda_la_SOURCES += krb5-security.c +endif + +libamanda_la_SOURCES += local-security.c + +libamanda_la_LDFLAGS = -release $(VERSION) $(AS_NEEDED_FLAGS) + +noinst_HEADERS = \ + amanda.h \ + amfeatures.h \ + ipc-binary.h \ + amxml.h \ + arglist.h \ + clock.h \ + columnar.h \ + directtcp.h \ + amflock.h \ + conffile.h \ + debug.h \ + dgram.h \ + event.h \ + file.h \ + fileheader.h \ + glib-util.h \ + match.h \ + packet.h \ + pipespawn.h \ + protocol.h \ + semaphore.h \ + security.h \ + security-util.h \ + simpleprng.h \ + sl.h \ + sockaddr-util.h \ + stream.h \ + tapelist.h \ + timestamp.h \ + util.h \ + version.h EXTRA_PROGRAMS = genversion $(TEST_PROGS) -genversion_SOURCES = genversion.c -genversion_LDADD = $(libamanda_la_LIBADD) versuff.o +# Version-building steps: +# +# 1. configure builds svn-info.h, if svn info is available; this +# file is included in distribution tarballs +# 2. Makefile creates genversion.h with build-time information +# 3. Makefile builds genversion +# 4. Makefile runs genversion to create version.c +# 5. version.c is compiled into libamanda normally + +genversion_SOURCES = genversion.c svn-info.h +genversion_LDADD = $(libamanda_la_LIBADD) \ + ../gnulib/libgnu.la -genversion.@OBJEXT@: genversion.h genversion.h: $(top_builddir)/config.status -rm -f $@ $@.new echo '#define CC "$(CC)"' > $@.new echo '#define BUILT_DATE "'`date`'"' >> $@.new - echo '#define BUILT_MACH "'`uname -a || echo UNKNOWN HOST`'"' >> $@.new + echo '#define BUILT_MACH "$(target)"' >> $@.new mv $@.new $@ -version.c: genversion$(EXEEXT) +version.c: genversion$(EXEEXT) -rm -f version.c - ./genversion > version.c - -match.@OBJEXT@ match.lo: regex.h -regcomp.@OBJEXT@ regcomp.lo: regex.h regcomp.ih -regexec.@OBJEXT@ regexec.lo: regex.h engine.ih -regerror.@OBJEXT@ regerror.lo: regex.h regerror.ih -regfree.@OBJEXT@ regfree.lo: regex.h + ./genversion$(EXEEXT) > version.c -REGEXHSRC = $(REGsrcdir)/regex2.h \ - $(REGsrcdir)/regcomp.c \ - $(REGsrcdir)/regexec.c \ - $(REGsrcdir)/regerror.c \ - $(REGsrcdir)/regfree.c +BUILT_SOURCES += genversion.h version.c # these are used for testing only: -TEST_PROGS = statfs token file bsdsecurity amfeatures - -CLEANFILES = regex.h regcomp.ih engine.ih regerror.ih *.test.c +TEST_PROGS = file bsdsecurity -DISTCLEANFILES = version.c genversion.h genversion amanda-int.h - -regex.h: $(REGEXHSRC) $(REGsrcdir)/mkh - sh $(REGsrcdir)/mkh -o -i _REGEX_H_ $(REGEXHSRC) >$@ - -regcomp.ih: $(REGsrcdir)/regcomp.c $(REGsrcdir)/mkh - sh $(REGsrcdir)/mkh -o -p $(REGsrcdir)/regcomp.c >$@ - -engine.ih: $(REGsrcdir)/engine.c $(REGsrcdir)/mkh - sh $(REGsrcdir)/mkh -o -p $(REGsrcdir)/engine.c >$@ - -regerror.ih: $(REGsrcdir)/regerror.c $(REGsrcdir)/mkh - sh $(REGsrcdir)/mkh -o -p $(REGsrcdir)/regerror.c >$@ +CLEANFILES += *.test.c +DISTCLEANFILES += version.c genversion genversion.h # used for testing only STANDARD_COMMON_STUFF_NOT_FILE = \ - alloc.$(OBJEXT) \ - clock.$(OBJEXT) \ - debug.$(OBJEXT) \ - error.$(OBJEXT) \ - util.$(OBJEXT) + alloc.lo \ + clock.lo \ + conffile.lo \ + debug.lo \ + glib-util.lo \ + util.lo \ + match.lo \ + sl.lo \ + sockaddr-util.lo \ + timestamp.lo STANDARD_COMMON_STUFF = \ $(STANDARD_COMMON_STUFF_NOT_FILE) \ - file.$(OBJEXT) - -statfs_SOURCES = statfs.test.c -statfs_LDADD = $(libamanda_la_LIBADD) $(STANDARD_COMMON_STUFF) - -token_SOURCES = token.test.c -token_LDADD = $(libamanda_la_LIBADD) $(STANDARD_COMMON_STUFF) + file.lo file_SOURCES = file.test.c file_LDADD = $(libamanda_la_LIBADD) $(STANDARD_COMMON_STUFF_NOT_FILE) bsdsecurity_SOURCES = bsd-security.test.c bsdsecurity_LDADD = $(libamanda_a_LIBADD) \ - alloc.$(OBJEXT) \ - clock.$(OBJEXT) \ - debug.$(OBJEXT) \ - dgram.$(OBJEXT) \ - error.$(OBJEXT) \ - event.$(OBJEXT) \ - file.$(OBJEXT) \ - packet.$(OBJEXT) \ - security.$(OBJEXT) \ - ssh-security.$(OBJEXT) \ - versuff.$(OBJEXT) - -amfeatures_SOURCES = amfeatures.test.c -amfeatures_LDADD = $(libamanda_la_LIBADD) $(STANDARD_COMMON_STUFF) + alloc.lo \ + clock.lo \ + debug.lo \ + dgram.lo \ + event.lo \ + file.lo \ + packet.lo \ + security.lo \ + ssh-security.lo + +# libtestutils.la +# +# Convenience library (never installed) for 'make check'-based tests. + +noinst_LTLIBRARIES = libtestutils.la +libtestutils_la_SOURCES = \ + testutils.c \ + testutils.h + +# automake-style tests + +# automake-style tests + +TESTS = amflock-test event-test semaphore-test quoting-test \ + ipc-binary-test hexencode-test fileheader-test match-test +noinst_PROGRAMS = $(TESTS) + +amflock_test_SOURCES = amflock-test.c +amflock_test_LDADD = libamanda.la libtestutils.la + +event_test_SOURCES = event-test.c +event_test_LDADD = libamanda.la libtestutils.la + +semaphore_test_SOURCES = semaphore-test.c +semaphore_test_LDADD = libamanda.la libtestutils.la + +quoting_test_SOURCES = quoting-test.c +quoting_test_LDADD = libamanda.la libtestutils.la + +ipc_binary_test_SOURCES = ipc-binary-test.c +ipc_binary_test_LDADD = libamanda.la libtestutils.la + +hexencode_test_SOURCES = hexencode-test.c +hexencode_test_LDADD = libamanda.la libtestutils.la + +fileheader_test_SOURCES = fileheader-test.c +fileheader_test_LDADD = libamanda.la libtestutils.la + +match_test_SOURCES = match-test.c +match_test_LDADD = libamanda.la libtestutils.la + +# scripts + +# divide scripts up both by language and destination directory +sbin_SCRIPTS_PERL = \ + amgpgcrypt \ + amcryptsimple \ + amgetconf + +amlibexec_SCRIPTS_PERL = + +sbin_SCRIPTS_SHELL = \ + amcrypt \ + amaespipe \ + amcrypt-ossl \ + amcrypt-ossl-asym + +amlibexec_SCRIPTS_SHELL = + +SCRIPTS_INCLUDE = \ + amanda-sh-lib.sh + +EXTRA_DIST += amanda-sh-lib.sh.in + +SCRIPTS_PERL = $(sbin_SCRIPTS_PERL) $(amlibexec_SCRIPTS_PERL) +SCRIPTS_SHELL = $(sbin_SCRIPTS_SHELL) $(amlibexec_SCRIPTS_SHELL) + +amlibexec_DATA = $(SCRIPTS_INCLUDE) +amlibexec_SCRIPTS = $(amlibexec_SCRIPTS_PERL) $(amlibexec_SCRIPTS_SHELL) +sbin_SCRIPTS = $(sbin_SCRIPTS_PERL) $(sbin_SCRIPTS_SHELL) + +# installation + +lint: + @echo $(LINT) $(libamanda_la_SOURCES) + @$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(top_builddir)/config $(INCLUDES) $(libamanda_la_SOURCES) + @echo $(LINT) $(genversion_SOURCES) + @$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(top_builddir)/config $(INCLUDES) $(genversion_SOURCES) + +listlibsrc: + @ for p in $(libamanda_la_SOURCES) $(REGEXCSRC); do \ + listlibsrcs="$$listlibsrcs `pwd`/$$p"; \ + done; \ + echo $$listlibsrcs >listlibsrc.output %.test.c: $(srcdir)/%.c echo '#define TEST' >$@ echo '#include "$<"' >>$@ + +distclean-local: + if test `cd $(srcdir) && pwd` != `pwd`; then rm -f svn-info.h; fi +MAINTAINERCLEANFILES+=svn-info.h