Updates and fixes for CVS builds.
authorPaul Smith <psmith@gnu.org>
Mon, 22 Apr 2002 02:11:31 +0000 (02:11 +0000)
committerPaul Smith <psmith@gnu.org>
Mon, 22 Apr 2002 02:11:31 +0000 (02:11 +0000)
Created a README.cvs describing the procedure.

ChangeLog
Makefile.am
README.cvs [new file with mode: 0644]
getloadavg.c
po/Makefile.in.in [deleted file]

index 167f495b937eee5f22e903372d018397d0a6ffe6..ebfee01eca8d827d1f240ec63e6de83c051c5d3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,14 @@
        gettext (0.11.1).  We're using gettext's new "external" support,
        to avoid including libintl source with GNU make.
 
+       * README.cvs: New file.  Explain how to build GNU make from CVS.
+
+       * getloadavg.c (main): Include make.h in the "TEST" program to
+       avoid warnings.
+
+       * Makefile.am: Remove special rules for loadavg.  Replace them
+       with Automake capabilities for building extra programs.
+
        * signame.c: This file does nothing if the system provide
        strsignal().  If not, it implements strsignal().  If the system
        doesn't define sys_siglist, then we make our own; otherwise we use
index 753ca9bf1bec3f176bb5d58b54432c2ac19a5467..dfd69292d113c1fb3ff7fa95db258755c4092b86 100644 (file)
@@ -32,6 +32,7 @@ DEFS =                -DLOCALEDIR=\"$(localedir)\" -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(inc
 
 AM_CPPFLAGS =  $(GLOBINC)
 
+
 EXTRA_DIST =   build.sh.in $(man_MANS)\
                README.customs\
                make-stds.texi SCOPTIONS SMakefile\
@@ -41,10 +42,6 @@ EXTRA_DIST = build.sh.in $(man_MANS)\
                readme.vms makefile.vms makefile.com config.h-vms \
                vmsdir.h vmsfunctions.c vmsify.c
 
-
-MOSTLYCLEANFILES = loadavg.c
-CLEANFILES =   loadavg
-
 MAKE_HOST =    @MAKE_HOST@
 
 
@@ -105,25 +102,17 @@ check-local: check-regression check-loadavg
 
 .PHONY: check-loadavg check-regression
 
-# > check-loadavg
-#
-loadavg: loadavg.c config.h
-       @rm -f loadavg
-       $(LINK) -DTEST $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(make_LDFLAGS) loadavg.c $(LIBS)
-
-# We copy getloadavg.c into a different file rather than compiling it
-# directly because some compilers clobber getloadavg.o in the process.
-#
-loadavg.c: getloadavg.c
-       ln $(srcdir)/getloadavg.c loadavg.c || \
-         cp $(srcdir)/getloadavg.c loadavg.c
-
 check-loadavg: loadavg
        @echo The system uptime program believes the load average to be:
        -uptime
-       @echo The GNU load average checking code believes:
+       @echo The GNU load average checking code thinks:
        -./loadavg
 
+# The loadavg function is invoked during "make check" to test getloadavg.
+noinst_PROGRAMS = loadavg
+loadavg_SOURCES = getloadavg.c
+loadavg_CFLAGS = -DTEST
+
 # > check-regression
 #
 # Look for the make test suite, and run it if found and we can find perl.
diff --git a/README.cvs b/README.cvs
new file mode 100644 (file)
index 0000000..7a63b04
--- /dev/null
@@ -0,0 +1,106 @@
+                                                                     -*-text-*-
+
+Obtaining CVS Code
+------------------
+
+This seems redundant, since if you're reading this you most likely have
+already performed this step; however, for completeness, you can obtain
+the GNU make source code via anonymous CVS from the FSF's Savannah
+project <http://savannah.gnu.org/projects/make/>:
+
+  $ cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/make co make
+
+You might want to use the "-z3" option to get compression, and you most
+certainly will want the -P option to avoid unneeded directories
+cluttering up your source.  Personally I add these (as well as -dP for
+update) to my ~/.cvsrc file.
+
+
+If you have an older version of CVS, you might have to login first.
+There is no password; just hit the ENTER key if you are asked for one.
+
+
+Building From CVS
+-----------------
+
+To build GNU make from CVS, you will need Autoconf 2.53 (or better),
+Automake 1.6.1 (or better), and Gettext 0.11.1 (or better), and any
+tools that those utilities require (GNU m4, Perl, etc.).
+
+After checking out the code, you will need to perform these steps to get
+to the point where you can run "configure" then "make".
+
+Hopefully at some point in the (near) future this will all be obsolete
+and you can just run "autoreconf" and have it DTRT.
+
+
+ 1) $ gettextize --no-changelog
+    $ mv config/Makefile.am{~,}
+    $ mv Makefile.am{~,}
+    $ mv configure.in{~,}
+
+    This will instantiate various m4 macros files, etc. in the config
+    and po directories.
+
+    The mv commands are necessary because gettextize doesn't realize
+    that the things it's adding to those files already exist in it.
+
+
+
+ 2) $ aclocal -I config
+
+    Generate the proper aclocal.m4 file.
+
+
+ 3) $ automake --add-missing
+
+    Add (symlink) missing files into the distribution, and generate
+    Makefile.in's from Makefile.am's.
+
+    You will see these perhaps unexpected messages (among others which
+    you should be expecting :)); just ignore them--I know what I'm doing
+    :).
+
+      Makefile.am: required file `./README' not found
+      configure.in:xxx: required file `./build.sh.in' not found
+      Makefile.am:xxx: automatically discovered file `getloadavg.c' should not be explicitly mentioned
+
+
+ 4) $ autoconf
+
+    Generate a "configure" script from configure.in and acinclude.m4.
+
+
+ 5) $ autoheader
+
+    Generate a "config.h.in" file from the contents of configure.in,
+    etc.
+
+
+At this point you have successfully brought your CVS copy of the GNU
+make source directory up to the point where it can be treated
+more-or-less like the official package you would get from ftp.gnu.org.
+That is, you can just run:
+
+  $ ./configure && make && make check && make install
+
+to build and install GNU make.
+
+
+Creating a Package
+------------------
+
+Once you have performed the above steps (including the configuration and
+build) you can create a GNU make package.  This is very simple, just
+run:
+
+  $ make dist-gzip
+
+and, if you like:
+
+  $ make dist-bzip2
+
+After you do this you should be sure to run "make distcheck" to be sure
+that the package file is correct.
+
+That's it!
index 79eedfc5b32385188e070e31cde9f499b59972e8..27897fb5b9d66e7f951fee98e645105de851e376 100644 (file)
@@ -1038,6 +1038,8 @@ getloadavg (loadavg, nelem)
 #endif /* ! HAVE_GETLOADAVG */
 \f
 #ifdef TEST
+#include "make.h"
+
 int
 main (argc, argv)
      int argc;
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
deleted file mode 100644 (file)
index ada8bb4..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions.  It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = @MSGMERGE@ --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in Makevars remove-potcdate.sin \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
-
-.po.mo:
-       @echo "$(MSGFMT) -c -o $@ $<"; \
-       $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
-
-.po.gmo:
-       @lang=`echo $* | sed -e 's,.*/,,'`; \
-       test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
-       cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
-
-.sin.sed:
-       sed -e '/^#/d' $< > t-$@
-       mv t-$@ $@
-
-
-all: all-@USE_NLS@
-
-all-yes: $(CATALOGS)
-all-no:
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
-       $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-         --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
-         --files-from=$(srcdir)/POTFILES.in \
-         --copyright-holder='$(COPYRIGHT_HOLDER)'
-       test ! -f $(DOMAIN).po || { \
-         if test -f $(srcdir)/$(DOMAIN).pot; then \
-           sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
-           sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
-           if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
-             rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
-           else \
-             rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
-             mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
-           fi; \
-         else \
-           mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
-         fi; \
-       }
-
-$(srcdir)/$(DOMAIN).pot:
-       $(MAKE) $(DOMAIN).pot-update
-
-$(POFILES): $(srcdir)/$(DOMAIN).pot
-       @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
-       test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
-       cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
-       if test "$(PACKAGE)" = "gettext"; then \
-         $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-         for file in $(DISTFILES.common); do \
-           $(INSTALL_DATA) $(srcdir)/$$file \
-                           $(DESTDIR)$(gettextsrcdir)/$$file; \
-         done; \
-       else \
-         : ; \
-       fi
-install-data-no: all
-install-data-yes: all
-       $(mkinstalldirs) $(DESTDIR)$(datadir)
-       @catalogs='$(CATALOGS)'; \
-       for cat in $$catalogs; do \
-         cat=`basename $$cat`; \
-         lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-         dir=$(localedir)/$$lang/LC_MESSAGES; \
-         $(mkinstalldirs) $(DESTDIR)$$dir; \
-         if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
-         $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
-         echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
-         for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
-           if test -n "$$lc"; then \
-             if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
-               link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
-               mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-               mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-               (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
-                for file in *; do \
-                  if test -f $$file; then \
-                    ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
-                  fi; \
-                done); \
-               rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-             else \
-               if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
-                 :; \
-               else \
-                 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
-                 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-               fi; \
-             fi; \
-             rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-             ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
-             ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
-             cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-             echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
-           fi; \
-         done; \
-       done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-@USE_NLS@
-       if test "$(PACKAGE)" = "gettext"; then \
-         $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
-       else \
-         : ; \
-       fi
-installdirs-data-no:
-installdirs-data-yes:
-       $(mkinstalldirs) $(DESTDIR)$(datadir)
-       @catalogs='$(CATALOGS)'; \
-       for cat in $$catalogs; do \
-         cat=`basename $$cat`; \
-         lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-         dir=$(localedir)/$$lang/LC_MESSAGES; \
-         $(mkinstalldirs) $(DESTDIR)$$dir; \
-         for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
-           if test -n "$$lc"; then \
-             if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
-               link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
-               mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-               mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-               (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
-                for file in *; do \
-                  if test -f $$file; then \
-                    ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
-                  fi; \
-                done); \
-               rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-             else \
-               if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
-                 :; \
-               else \
-                 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
-                 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-               fi; \
-             fi; \
-           fi; \
-         done; \
-       done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-@USE_NLS@
-       if test "$(PACKAGE)" = "gettext"; then \
-         for file in $(DISTFILES.common); do \
-           rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-         done; \
-       else \
-         : ; \
-       fi
-uninstall-data-no:
-uninstall-data-yes:
-       catalogs='$(CATALOGS)'; \
-       for cat in $$catalogs; do \
-         cat=`basename $$cat`; \
-         lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-         for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
-           rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-         done; \
-       done
-
-check: all
-
-dvi info tags TAGS ID:
-
-mostlyclean:
-       rm -f remove-potcdate.sed
-       rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
-       rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
-       rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
-       rm -f $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
-       $(MAKE) update-po
-       @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
-       dists="$(DISTFILES)"; \
-       if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
-       if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
-       for file in $$dists; do \
-         if test -f $$file; then \
-           cp -p $$file $(distdir); \
-         else \
-           cp -p $(srcdir)/$$file $(distdir); \
-         fi; \
-       done
-
-update-po: Makefile
-       $(MAKE) $(DOMAIN).pot-update
-       $(MAKE) $(UPDATEPOFILES)
-       $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
-       @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
-       if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
-       tmpdir=`pwd`; \
-       echo "$$lang:"; \
-       test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
-       cd $(srcdir); \
-       if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
-         if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
-           rm -f $$tmpdir/$$lang.new.po; \
-         else \
-           if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
-             :; \
-           else \
-             echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
-             exit 1; \
-           fi; \
-         fi; \
-       else \
-         echo "msgmerge for $$lang.po failed!" 1>&2; \
-         rm -f $$tmpdir/$$lang.new.po; \
-       fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
-       @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
-       cd $(top_builddir) \
-         && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
-              $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT: