Import crypto/md5 module from gnulib.
[bpt/emacs.git] / Makefile.in
index d7e08a2..8e1eb1e 100644 (file)
@@ -2,9 +2,7 @@
 # DIST: make most of the changes to this file you might want, so try
 # DIST: that first.
 
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-#   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+# Copyright (C) 1992-2011  Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -73,7 +71,6 @@ CFLAGS=@CFLAGS@
 LDFLAGS=@LDFLAGS@
 CPPFLAGS=@CPPFLAGS@
 EXEEXT=@EXEEXT@
-MAKEINFO=@MAKEINFO@
 
 ### These help us choose version- and architecture-specific directories
 ### to install files in.
@@ -125,7 +122,7 @@ libexecdir=@libexecdir@
 # (and they contain cross-references that expect them to be there).
 mandir=@mandir@
 man1dir=$(mandir)/man1
-MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
+MAN_PAGES=ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
           grep-changelog.1 rcs-checkin.1
 
 # Where to install and expect the info files describing Emacs. In the
@@ -135,11 +132,14 @@ MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
 infodir=@infodir@
 INFO_FILES=ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse  \
            ede ediff edt eieio efaq eintr elisp emacs emacs-mime epa erc \
-          eshell eudc flymake forms gnus idlwave info mairix-el        \
+          ert eshell eudc flymake forms gnus idlwave info mairix-el    \
           message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc      \
           reftex remember sasl sc semantic ses sieve smtpmail speedbar \
           tramp url vip viper widget woman
 
+# If no makeinfo was found and configured --without-makeinfo, "no"; else "yes".
+HAVE_MAKEINFO=@HAVE_MAKEINFO@
+
 # Directory for local state files for all programs.
 localstatedir=@localstatedir@
 
@@ -258,14 +258,14 @@ EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
 # Subdirectories to make recursively.  `lisp' is not included
 # because the compiled lisp files are part of the distribution.
 # leim is not included because it needs special handling.
-# 
+#
 # Actually, we now include `lisp' as well, since the compiled files
 # are not included any more in case of bootstrap or in case Emacs was
 # checked out from a VCS.
-SUBDIR = lib-src src lisp
+SUBDIR = lib lib-src src lisp
 
 # The subdir makefiles created by config.status.
-SUBDIR_MAKEFILES = lib-src/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispref/Makefile doc/lispintro/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile leim/Makefile lisp/Makefile
+SUBDIR_MAKEFILES = lib/Makefile lib-src/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispref/Makefile doc/lispintro/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile leim/Makefile lisp/Makefile test/automated/Makefile
 
 # Subdirectories to install, and where they'll go.
 # lib-src's makefile knows how to install it, so we don't do that here.
@@ -298,8 +298,7 @@ epaths-force: FRC
          -e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";'             \
          -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
          -e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \
-         -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \
-         -e 's;/[*] *arch-tag:.*;/*;') &&              \
+         -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') &&                \
        ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
 
 # For parallel make, src should be built before leim.
@@ -311,6 +310,8 @@ leim:   src Makefile FRC
          CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
          LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
 
+lib-src src: lib
+
 src:   lib-src FRC
 
 .RECURSIVE: ${SUBDIR} leim
@@ -318,8 +319,40 @@ src:       lib-src FRC
 # We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
 lisp: src
 
+# Maintainers can put a copy of gnulib into $(gnulib_srcdir).
+gnulib_srcdir = ../gnulib
+$(gnulib_srcdir):
+       git clone git://git.savannah.gnu.org/gnulib.git $@
+
+# A shorter name that satisfies MS-DOS 8+3 constraints.
+DOS_gnulib_comp.m4 = gl-comp.m4
+
+# Update modules from gnulib, for maintainers, who should have it in
+# $(gnulib_srcdir) (relative to $(srcdir) and should have build tools
+# as per $(gnulib_srcdir)/DEPENDENCIES.
+GNULIB_MODULES = \
+  crypto/md5 dtoastr getloadavg getopt-gnu ignore-value mktime strftime
+GNULIB_TOOL_FLAGS = \
+ --import --no-changelog --no-vc-files --makefile-name=gnulib.mk
+sync-from-gnulib: $(gnulib_srcdir)
+       -cd $(srcdir)/m4 && cp $(DOS_gnulib_comp.m4) gnulib-comp.m4
+       cd $(srcdir) && \
+         $(gnulib_srcdir)/gnulib-tool $(GNULIB_TOOL_FLAGS) $(GNULIB_MODULES)
+       cd $(srcdir)/m4 && rm gnulib-cache.m4 warn-on-use.m4
+       cd $(srcdir)/m4 && mv gnulib-comp.m4 $(DOS_gnulib_comp.m4)
+       cp $(gnulib_srcdir)/build-aux/texinfo.tex $(srcdir)/doc/misc
+       cp \
+         $(gnulib_srcdir)/build-aux/config.sub \
+         $(gnulib_srcdir)/build-aux/config.guess \
+         $(gnulib_srcdir)/build-aux/install-sh \
+         $(gnulib_srcdir)/build-aux/mkinstalldirs \
+         $(gnulib_srcdir)/build-aux/move-if-change \
+         $(srcdir)
+       cd $(srcdir) && autoreconf -I m4
+.PHONY: sync-from-gnulib
+
 # These targets should be "${SUBDIR} without `src'".
-lib-src lisp: Makefile FRC
+lib lib-src lisp: Makefile FRC
        cd $@; $(MAKE) all $(MFLAGS)                           \
          CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
          LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
@@ -358,6 +391,7 @@ blessmail: Makefile src FRC
 Makefile: config.status $(srcdir)/src/config.in \
           $(srcdir)/Makefile.in \
           $(srcdir)/src/Makefile.in \
+          $(srcdir)/lib/Makefile.in \
           $(srcdir)/lib-src/Makefile.in \
           $(srcdir)/doc/emacs/Makefile.in \
           $(srcdir)/doc/misc/Makefile.in \
@@ -366,17 +400,28 @@ Makefile: config.status $(srcdir)/src/config.in \
           $(srcdir)/oldXMenu/Makefile.in \
           $(srcdir)/lwlib/Makefile.in \
           $(srcdir)/leim/Makefile.in \
-          $(srcdir)/lisp/Makefile.in
+          $(srcdir)/lisp/Makefile.in \
+          $(srcdir)/test/automated/Makefile.in
        ./config.status
 
 config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
        ./config.status --recheck
 
-AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4
+AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/aclocal.m4
 
 $(srcdir)/configure: $(AUTOCONF_INPUTS)
        cd ${srcdir} && autoconf
 
+ACLOCAL_INPUTS = @MAINT@ $(srcdir)/m4/$(DOS_gnulib_comp.m4)
+$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
+       cd $(srcdir) && aclocal -I m4
+
+AUTOMAKE_INPUTS = @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am
+$(srcdir)/lib/Makefile.in: $(AUTOMAKE_INPUTS)
+       cd $(srcdir) && automake --gnu -a -c lib/Makefile
+am--refresh: $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/src/config.in
+.PHONY: am--refresh
+
 $(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
        @ # Usually, there's no need to rebuild src/config.in just
        @ # because stamp-h.in has changed (since building stamp-h.in
@@ -424,12 +469,6 @@ install-arch-dep: mkdir
        -chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL)
        rm -f $(DESTDIR)${bindir}/$(EMACS)
        -ln $(DESTDIR)${bindir}/$(EMACSFULL) $(DESTDIR)${bindir}/$(EMACS)
-       -unset CDPATH; \
-       for f in `cd lib-src && echo fns-*.el`; do \
-         if test -r lib-src/$$f ; then \
-           ${INSTALL_DATA} lib-src/$$f $(DESTDIR)${archlibdir}/$$f; \
-         else true; fi ; \
-       done
        if test "${ns_appresdir}" != ""; then \
          ( cd ${ns_appresdir} ; \
            if test -d share/emacs ; then dir=share/emacs/*/*; $(MV_DIRS); fi;\
@@ -578,7 +617,7 @@ install-arch-indep: mkdir info install-etc
           fi; \
           cd ${srcdir}/info ; \
           for elt in $(INFO_FILES); do \
-             test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
+             test "$(HAVE_MAKEINFO)" = "no" && ! test -e $$elt && continue; \
              for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
                ${INSTALL_DATA} $$f $(DESTDIR)${infodir}/$$f; \
                chmod a+r $(DESTDIR)${infodir}/$$f; \
@@ -594,7 +633,7 @@ install-arch-indep: mkdir info install-etc
        if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
        then \
          for elt in $(INFO_FILES); do \
-           test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
+           test "$(HAVE_MAKEINFO)" = "no" && ! test -e $$elt && continue; \
            (cd $${thisdir}; \
             ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
          done; \
@@ -682,9 +721,6 @@ uninstall:
            esac ;                                      \
          fi ;                                          \
        done
-       if [ -d $(DESTDIR)${archlibdir} ]; then \
-         (cd $(DESTDIR)${archlibdir} && rm -f fns-*) \
-       fi
        -rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
        (cd $(DESTDIR)${infodir} && \
          for elt in $(INFO_FILES); do \
@@ -717,6 +753,7 @@ mostlyclean: FRC
        (cd src;      $(MAKE) $(MFLAGS) mostlyclean)
        (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
        (cd lwlib;    $(MAKE) $(MFLAGS) mostlyclean)
+       (cd lib;      $(MAKE) $(MFLAGS) mostlyclean)
        (cd lib-src;  $(MAKE) $(MFLAGS) mostlyclean)
        -(cd doc/emacs &&   $(MAKE) $(MFLAGS) mostlyclean)
        -(cd doc/misc &&   $(MAKE) $(MFLAGS) mostlyclean)
@@ -736,6 +773,7 @@ clean: FRC
        (cd src;      $(MAKE) $(MFLAGS) clean)
        (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
        (cd lwlib;    $(MAKE) $(MFLAGS) clean)
+       (cd lib;      $(MAKE) $(MFLAGS) clean)
        (cd lib-src;  $(MAKE) $(MFLAGS) clean)
        -(cd doc/emacs &&   $(MAKE) $(MFLAGS) clean)
        -(cd doc/misc &&   $(MAKE) $(MFLAGS) clean)
@@ -755,11 +793,12 @@ top_bootclean=\
 ###      distribution.
 top_distclean=\
        ${top_bootclean}; \
-       rm -f config.status Makefile ${SUBDIR_MAKEFILES}
+       rm -f config.status Makefile stamp-h1 ${SUBDIR_MAKEFILES}
 distclean: FRC
        (cd src;      $(MAKE) $(MFLAGS) distclean)
        (cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
        (cd lwlib;    $(MAKE) $(MFLAGS) distclean)
+       (cd lib;      $(MAKE) $(MFLAGS) distclean)
        (cd lib-src;  $(MAKE) $(MFLAGS) distclean)
        (cd doc/emacs &&    $(MAKE) $(MFLAGS) distclean)
        (cd doc/misc &&    $(MAKE) $(MFLAGS) distclean)
@@ -776,6 +815,7 @@ bootstrap-clean: FRC
        (cd src;      $(MAKE) $(MFLAGS) bootstrap-clean)
        (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
        (cd lwlib;    $(MAKE) $(MFLAGS) maintainer-clean)
+       (cd lib;      $(MAKE) $(MFLAGS) maintainer-clean)
        (cd lib-src;  $(MAKE) $(MFLAGS) maintainer-clean)
        -(cd doc/emacs &&   $(MAKE) $(MFLAGS) maintainer-clean)
        -(cd doc/misc &&   $(MAKE) $(MFLAGS) maintainer-clean)
@@ -796,10 +836,13 @@ bootstrap-clean: FRC
 ###      Makefile.  More generally, `make maintainer-clean' should not delete
 ###      anything that needs to exist in order to run `configure' and then
 ###      begin to build the program.
+top_maintainer_clean=\
+       ${top_distclean}; \
+       rm -fr autom4te.cache
 maintainer-clean: bootstrap-clean FRC
        (cd src;      $(MAKE) $(MFLAGS) maintainer-clean)
        (cd lisp;     $(MAKE) $(MFLAGS) maintainer-clean)
-       ${top_distclean}
+       ${top_maintainer_clean}
 
 ### This doesn't actually appear in the coding standards, but Karl
 ### says GCC supports it, and that's where the configuration part of
@@ -807,24 +850,24 @@ maintainer-clean: bootstrap-clean FRC
 ### it deletes backup and autosave files too.
 extraclean:
        for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done
-       ${top_distclean}
+       ${top_maintainer_clean}
        -rm -f config-tmp-*
        -rm -f *~ \#*
 
 # The src subdir knows how to do the right thing
 # even when the build directory and source dir are different.
-TAGS tags: lib-src src
+TAGS tags: lib lib-src src
        cd src; $(MAKE) tags
 
 check:
-       @echo "We don't have any tests for GNU Emacs yet."
+       cd test/automated; $(MAKE) check
 
 dist:
        cd ${srcdir}; ./make-dist
 
 .PHONY: info dvi dist check html
 
-info-real: 
+info-real:
        (cd doc/emacs; $(MAKE) $(MFLAGS) info)
        (cd doc/misc; $(MAKE) $(MFLAGS) info)
        (cd doc/lispref; $(MAKE) $(MFLAGS) info)
@@ -843,7 +886,7 @@ force-info:
 # and it's not worth it.  This case is only relevant if you download a
 # release, then change the .texi files.
 info: force-info
-       @if test "$(MAKEINFO)" = "off"; then \
+       @if test "$(HAVE_MAKEINFO)" = "no"; then \
          echo "Configured --without-makeinfo, not building manuals" ; \
        else \
          $(MAKE) $(MFLAGS) info-real ; \