Imported Upstream version 3.3.0
[debian/amanda] / common-src / Makefile.am
index 1d237ead48c7a89a7e5873650aada6b3155972ba..58443ad890ab984ccd92367db2865985dd806819 100644 (file)
 # 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