aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-01-08 13:02:38 -0800
committerPaul Eggert2011-01-08 13:02:38 -0800
commit9a514d4a6c27b837fc2cd6d02c7cd60f08a621a4 (patch)
tree1eee202635acdcbf6871101a2af8f67cd4683b1c
parent278f68456b8c25fff6d2274476cdc8ee3609f68b (diff)
downloademacs-9a514d4a6c27b837fc2cd6d02c7cd60f08a621a4.tar.gz
emacs-9a514d4a6c27b837fc2cd6d02c7cd60f08a621a4.zip
Automate syncing from gnulib.
-rw-r--r--ChangeLog29
-rw-r--r--INSTALL11
-rw-r--r--Makefile.in59
-rw-r--r--README1
-rw-r--r--configure.in10
-rw-r--r--lib-src/ChangeLog10
-rw-r--r--lib-src/Makefile.in12
-rw-r--r--lib/Makefile.am8
-rwxr-xr-xmake-dist14
-rw-r--r--src/ChangeLog9
-rw-r--r--src/Makefile.in8
11 files changed, 152 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index fdf037c24c7..5a0a61e353f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
12011-01-08 Paul Eggert <eggert@cs.ucla.edu>
2
3 Automate syncing from gnulib.
4 * INSTALL, README: Document new subdirectory 'lib'.
5 * Makefile.in (SUBDIR): Add lib.
6 (SUBDIR_MAKEFILES): Add lib/Makefile.
7 (lib-src, src, TAGS, tags): Depend on lib.
8 (gnulib_srcdir, GNULIB_MODULES, GNULIB_TOOL_FLAGS): New macros.
9 ($(gnulib_srcdir)): New rule.
10 (sync-from-gnulib): New rule, which is .PHONY.
11 (lib): New rule, which is like lib-src.
12 (Makefile): Depend on lib/Makefile.in.
13 (AUTOCONF_INPUTS): Depend on aclocal.m4.
14 (ACLOCAL_INPUTS, AUTOMAKE_INPUTS): New macros.
15 ($(srcdir)/aclocal.m4, $(srcdir)/lib/Makefile.in): New rules.
16 (am--refresh): New rule, to pacify Automake.
17 (mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean):
18 Clean lib, too.
19 (top_maintainer_clean): New macro, to remove gnulib-tool and Automake
20 droppings.
21 (maintainer-clean, extraclean): Use it.
22 * configure.in: Initialize for automake and gnulib, by invoking
23 AM_INIT_AUTOMAKE, AM_PROG_CC_C_O, gl_EARLY, and gl_INIT. Output
24 lib/Makefile, too. Use automake to build gnulib, as gnulib works
25 more conveniently with automake.
26 * lib/Makefile.am: New file.
27 * make-dist: Also put into the distribution aclocal.m4,
28 compile, depcomp, missing, and the files under lib/.
29
12011-01-07 Paul Eggert <eggert@cs.ucla.edu> 302011-01-07 Paul Eggert <eggert@cs.ucla.edu>
2 31
3 * install-sh, mkinstalldirs, move-if-change: Update from master 32 * install-sh, mkinstalldirs, move-if-change: Update from master
diff --git a/INSTALL b/INSTALL
index 542cf96f126..a5579df1fd8 100644
--- a/INSTALL
+++ b/INSTALL
@@ -675,12 +675,15 @@ the following steps.
675`./src/epaths.h' from the template file `./src/epaths.in', changing 675`./src/epaths.h' from the template file `./src/epaths.in', changing
676the paths to the values specified in `./Makefile'. 676the paths to the values specified in `./Makefile'.
677 677
6782) Go to directory `./lib-src' and run `make'. This creates 6782) Go to directory `./lib' and run `make'. This creates include files
679and libraries used in later steps.
680
6813) Go to directory `./lib-src' and run `make'. This creates
679executables named `etags', `make-docfile', and others. 682executables named `etags', `make-docfile', and others.
680 683
6813) Go to directory `./src' and run `make'. This refers to files in 6844) Go to directory `./src' and run `make'. This refers to files in
682the `./lisp' and `./lib-src' subdirectories using names `../lisp' and 685the `./lisp', `./lib', and `./lib-src' subdirectories using names
683`../lib-src'. 686`../lisp', `../lib', and `../lib-src'.
684 687
685This creates a file `./src/emacs' which is the runnable Emacs, 688This creates a file `./src/emacs' which is the runnable Emacs,
686which has another name that contains a version number. 689which has another name that contains a version number.
diff --git a/Makefile.in b/Makefile.in
index 05865578d6d..dbe98f37fa1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -264,10 +264,10 @@ EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
264# Actually, we now include `lisp' as well, since the compiled files 264# Actually, we now include `lisp' as well, since the compiled files
265# are not included any more in case of bootstrap or in case Emacs was 265# are not included any more in case of bootstrap or in case Emacs was
266# checked out from a VCS. 266# checked out from a VCS.
267SUBDIR = lib-src src lisp 267SUBDIR = lib lib-src src lisp
268 268
269# The subdir makefiles created by config.status. 269# The subdir makefiles created by config.status.
270SUBDIR_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 270SUBDIR_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
271 271
272# Subdirectories to install, and where they'll go. 272# Subdirectories to install, and where they'll go.
273# lib-src's makefile knows how to install it, so we don't do that here. 273# lib-src's makefile knows how to install it, so we don't do that here.
@@ -313,6 +313,8 @@ leim: src Makefile FRC
313 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ 313 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
314 LDFLAGS='${LDFLAGS}' MAKE='${MAKE}') 314 LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
315 315
316lib-src src: lib
317
316src: lib-src FRC 318src: lib-src FRC
317 319
318.RECURSIVE: ${SUBDIR} leim 320.RECURSIVE: ${SUBDIR} leim
@@ -320,8 +322,32 @@ src: lib-src FRC
320# We need to build `emacs' in `src' to compile the *.elc files in `lisp'. 322# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
321lisp: src 323lisp: src
322 324
325# Maintainers can put a copy of gnulib into $(gnulib_srcdir).
326gnulib_srcdir = ../gnulib
327$(gnulib_srcdir):
328 git clone git://git.savannah.gnu.org/gnulib.git $@
329
330# Update modules from gnulib, for maintainers, who should have it in
331# $(gnulib_srcdir) (relative to $(srcdir) and should have build tools
332# as per $(gnulib_srcdir)/DEPENDENCIES.
333GNULIB_MODULES = dummy # Just a dummy for now, to establish the mechanism.
334GNULIB_TOOL_FLAGS = \
335 --import --no-changelog --no-vc-files --makefile-name=gnulib.mk
336sync-from-gnulib: $(gnulib_srcdir)
337 cd $(srcdir) && \
338 $(gnulib_srcdir)/gnulib-tool $(GNULIB_TOOL_FLAGS) $(GNULIB_MODULES)
339 cp $(gnulib_srcdir)/build-aux/texinfo.tex $(srcdir)/doc/misc
340 cp \
341 $(gnulib_srcdir)/build-aux/config.sub \
342 $(gnulib_srcdir)/build-aux/config.guess \
343 $(gnulib_srcdir)/build-aux/install-sh \
344 $(gnulib_srcdir)/build-aux/mkinstalldirs \
345 $(gnulib_srcdir)/build-aux/move-if-change \
346 $(srcdir)
347.PHONY: sync-from-gnulib
348
323# These targets should be "${SUBDIR} without `src'". 349# These targets should be "${SUBDIR} without `src'".
324lib-src lisp: Makefile FRC 350lib lib-src lisp: Makefile FRC
325 cd $@; $(MAKE) all $(MFLAGS) \ 351 cd $@; $(MAKE) all $(MFLAGS) \
326 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ 352 CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
327 LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' 353 LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
@@ -360,6 +386,7 @@ blessmail: Makefile src FRC
360Makefile: config.status $(srcdir)/src/config.in \ 386Makefile: config.status $(srcdir)/src/config.in \
361 $(srcdir)/Makefile.in \ 387 $(srcdir)/Makefile.in \
362 $(srcdir)/src/Makefile.in \ 388 $(srcdir)/src/Makefile.in \
389 $(srcdir)/lib/Makefile.in \
363 $(srcdir)/lib-src/Makefile.in \ 390 $(srcdir)/lib-src/Makefile.in \
364 $(srcdir)/doc/emacs/Makefile.in \ 391 $(srcdir)/doc/emacs/Makefile.in \
365 $(srcdir)/doc/misc/Makefile.in \ 392 $(srcdir)/doc/misc/Makefile.in \
@@ -374,11 +401,20 @@ Makefile: config.status $(srcdir)/src/config.in \
374config.status: ${srcdir}/configure ${srcdir}/lisp/version.el 401config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
375 ./config.status --recheck 402 ./config.status --recheck
376 403
377AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4 404AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4 $(srcdir)/aclocal.m4
378 405
379$(srcdir)/configure: $(AUTOCONF_INPUTS) 406$(srcdir)/configure: $(AUTOCONF_INPUTS)
380 cd ${srcdir} && autoconf 407 cd ${srcdir} && autoconf
381 408
409ACLOCAL_INPUTS = @MAINT@ $(srcdir)/m4/gnulib-comp.m4
410$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
411 cd $(srcdir) && aclocal -I m4
412
413AUTOMAKE_INPUTS = @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am
414$(srcdir)/lib/Makefile.in: $(AUTOMAKE_INPUTS)
415 cd $(srcdir) && automake --gnu -a -c lib/Makefile
416am--refresh:
417
382$(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in 418$(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
383 @ # Usually, there's no need to rebuild src/config.in just 419 @ # Usually, there's no need to rebuild src/config.in just
384 @ # because stamp-h.in has changed (since building stamp-h.in 420 @ # because stamp-h.in has changed (since building stamp-h.in
@@ -710,6 +746,7 @@ mostlyclean: FRC
710 (cd src; $(MAKE) $(MFLAGS) mostlyclean) 746 (cd src; $(MAKE) $(MFLAGS) mostlyclean)
711 (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean) 747 (cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
712 (cd lwlib; $(MAKE) $(MFLAGS) mostlyclean) 748 (cd lwlib; $(MAKE) $(MFLAGS) mostlyclean)
749 (cd lib; $(MAKE) $(MFLAGS) mostlyclean)
713 (cd lib-src; $(MAKE) $(MFLAGS) mostlyclean) 750 (cd lib-src; $(MAKE) $(MFLAGS) mostlyclean)
714 -(cd doc/emacs && $(MAKE) $(MFLAGS) mostlyclean) 751 -(cd doc/emacs && $(MAKE) $(MFLAGS) mostlyclean)
715 -(cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean) 752 -(cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean)
@@ -729,6 +766,7 @@ clean: FRC
729 (cd src; $(MAKE) $(MFLAGS) clean) 766 (cd src; $(MAKE) $(MFLAGS) clean)
730 (cd oldXMenu; $(MAKE) $(MFLAGS) clean) 767 (cd oldXMenu; $(MAKE) $(MFLAGS) clean)
731 (cd lwlib; $(MAKE) $(MFLAGS) clean) 768 (cd lwlib; $(MAKE) $(MFLAGS) clean)
769 (cd lib; $(MAKE) $(MFLAGS) clean)
732 (cd lib-src; $(MAKE) $(MFLAGS) clean) 770 (cd lib-src; $(MAKE) $(MFLAGS) clean)
733 -(cd doc/emacs && $(MAKE) $(MFLAGS) clean) 771 -(cd doc/emacs && $(MAKE) $(MFLAGS) clean)
734 -(cd doc/misc && $(MAKE) $(MFLAGS) clean) 772 -(cd doc/misc && $(MAKE) $(MFLAGS) clean)
@@ -753,6 +791,7 @@ distclean: FRC
753 (cd src; $(MAKE) $(MFLAGS) distclean) 791 (cd src; $(MAKE) $(MFLAGS) distclean)
754 (cd oldXMenu; $(MAKE) $(MFLAGS) distclean) 792 (cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
755 (cd lwlib; $(MAKE) $(MFLAGS) distclean) 793 (cd lwlib; $(MAKE) $(MFLAGS) distclean)
794 (cd lib; $(MAKE) $(MFLAGS) distclean)
756 (cd lib-src; $(MAKE) $(MFLAGS) distclean) 795 (cd lib-src; $(MAKE) $(MFLAGS) distclean)
757 (cd doc/emacs && $(MAKE) $(MFLAGS) distclean) 796 (cd doc/emacs && $(MAKE) $(MFLAGS) distclean)
758 (cd doc/misc && $(MAKE) $(MFLAGS) distclean) 797 (cd doc/misc && $(MAKE) $(MFLAGS) distclean)
@@ -769,6 +808,7 @@ bootstrap-clean: FRC
769 (cd src; $(MAKE) $(MFLAGS) bootstrap-clean) 808 (cd src; $(MAKE) $(MFLAGS) bootstrap-clean)
770 (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean) 809 (cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
771 (cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean) 810 (cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
811 (cd lib; $(MAKE) $(MFLAGS) maintainer-clean)
772 (cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean) 812 (cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
773 -(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean) 813 -(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
774 -(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean) 814 -(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
@@ -789,10 +829,15 @@ bootstrap-clean: FRC
789### Makefile. More generally, `make maintainer-clean' should not delete 829### Makefile. More generally, `make maintainer-clean' should not delete
790### anything that needs to exist in order to run `configure' and then 830### anything that needs to exist in order to run `configure' and then
791### begin to build the program. 831### begin to build the program.
832top_maintainer_clean=\
833 ${top_distclean}; \
834 rm -fr autom4te.cache; \
835 rm -f aclocal.m4 lib/gnulib.mk m4/gnulib-cache.m4
792maintainer-clean: bootstrap-clean FRC 836maintainer-clean: bootstrap-clean FRC
793 (cd src; $(MAKE) $(MFLAGS) maintainer-clean) 837 (cd src; $(MAKE) $(MFLAGS) maintainer-clean)
838 (cd lib; $(MAKE) $(MFLAGS) maintainer-clean)
794 (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean) 839 (cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
795 ${top_distclean} 840 ${top_maintainer_clean}
796 841
797### This doesn't actually appear in the coding standards, but Karl 842### This doesn't actually appear in the coding standards, but Karl
798### says GCC supports it, and that's where the configuration part of 843### says GCC supports it, and that's where the configuration part of
@@ -800,13 +845,13 @@ maintainer-clean: bootstrap-clean FRC
800### it deletes backup and autosave files too. 845### it deletes backup and autosave files too.
801extraclean: 846extraclean:
802 for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done 847 for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done
803 ${top_distclean} 848 ${top_maintainer_clean}
804 -rm -f config-tmp-* 849 -rm -f config-tmp-*
805 -rm -f *~ \#* 850 -rm -f *~ \#*
806 851
807# The src subdir knows how to do the right thing 852# The src subdir knows how to do the right thing
808# even when the build directory and source dir are different. 853# even when the build directory and source dir are different.
809TAGS tags: lib-src src 854TAGS tags: lib lib-src src
810 cd src; $(MAKE) tags 855 cd src; $(MAKE) tags
811 856
812check: 857check:
diff --git a/README b/README
index 1dba7132313..283d175e61a 100644
--- a/README
+++ b/README
@@ -63,6 +63,7 @@ There are several subdirectories:
63`leim' holds the library of Emacs input methods, Lisp code and 63`leim' holds the library of Emacs input methods, Lisp code and
64 auxiliary data files required to type international characters 64 auxiliary data files required to type international characters
65 which can't be directly produced by your keyboard. 65 which can't be directly produced by your keyboard.
66`lib' holds source code for libraries used by Emacs and its utilities
66`lib-src' holds the source code for some utility programs for use by or 67`lib-src' holds the source code for some utility programs for use by or
67 with Emacs, like movemail and etags. 68 with Emacs, like movemail and etags.
68`etc' holds miscellaneous architecture-independent data files Emacs 69`etc' holds miscellaneous architecture-independent data files Emacs
diff --git a/configure.in b/configure.in
index 00c4721028f..a267481c212 100644
--- a/configure.in
+++ b/configure.in
@@ -27,6 +27,7 @@ AC_PREREQ(2.65)
27AC_INIT(emacs, 24.0.50) 27AC_INIT(emacs, 24.0.50)
28AC_CONFIG_HEADER(src/config.h:src/config.in) 28AC_CONFIG_HEADER(src/config.h:src/config.in)
29AC_CONFIG_SRCDIR(src/lisp.h) 29AC_CONFIG_SRCDIR(src/lisp.h)
30AM_INIT_AUTOMAKE
30 31
31dnl Support for --program-prefix, --program-suffix and 32dnl Support for --program-prefix, --program-suffix and
32dnl --program-transform-name options 33dnl --program-transform-name options
@@ -638,6 +639,10 @@ SPECIFIED_CFLAGS="$CFLAGS"
638 639
639dnl Sets GCC=yes if using gcc. 640dnl Sets GCC=yes if using gcc.
640AC_PROG_CC 641AC_PROG_CC
642AM_PROG_CC_C_O
643
644# Initialize gnulib right after verifying that the C compiler works.
645gl_EARLY
641 646
642# On Suns, sometimes $CPP names a directory. 647# On Suns, sometimes $CPP names a directory.
643if test -n "$CPP" && test -d "$CPP"; then 648if test -n "$CPP" && test -d "$CPP"; then
@@ -2668,6 +2673,9 @@ AC_SUBST(GETOPTOBJS)
2668 2673
2669AC_FUNC_GETPGRP 2674AC_FUNC_GETPGRP
2670 2675
2676# Configure gnulib.
2677gl_INIT
2678
2671AC_FUNC_STRFTIME 2679AC_FUNC_STRFTIME
2672 2680
2673# UNIX98 PTYs. 2681# UNIX98 PTYs.
@@ -3747,7 +3755,7 @@ dnl Secondly, the GNU Coding standards require that one should be able
3747dnl to run `make prefix=/some/where/else' and override the values set 3755dnl to run `make prefix=/some/where/else' and override the values set
3748dnl by configure. This also explains the `move-if-change' test and 3756dnl by configure. This also explains the `move-if-change' test and
3749dnl the use of force in the `epaths-force' rule in Makefile.in. 3757dnl the use of force in the `epaths-force' rule in Makefile.in.
3750AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \ 3758AC_OUTPUT(Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
3751 doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ 3759 doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
3752 doc/lispref/Makefile src/Makefile \ 3760 doc/lispref/Makefile src/Makefile \
3753 lwlib/Makefile lisp/Makefile leim/Makefile, [ 3761 lwlib/Makefile lisp/Makefile leim/Makefile, [
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index b5869b322d7..7da5d2104ee 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,5 +1,15 @@
12011-01-08 Paul Eggert <eggert@cs.ucla.edu> 12011-01-08 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Automate syncing from gnulib.
4 * Makefile.in (EXE_FILES): New macro.
5 (BASE_CFLAGS): Add -I../lib and -I${srcdir}/../lib,
6 for gnulib's .h files.
7 (LOADLIBES): Add ../lib/libgnu.a.
8 ($(EXE_FILES)): Depend on ../lib/libgnu.a.
9 (../lib/libgnu.a): New rule.
10
112011-01-08 Paul Eggert <eggert@cs.ucla.edu>
12
3 * Makefile.in (EXECUTABLES): Remove; macro unused since 1993. 13 * Makefile.in (EXECUTABLES): Remove; macro unused since 1993.
4 14
52011-01-08 Glenn Morris <rgm@gnu.org> 152011-01-08 Glenn Morris <rgm@gnu.org>
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 5561c04b66a..fc404c5ae63 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -128,6 +128,9 @@ DONT_INSTALL= test-distrib${EXEEXT} make-docfile${EXEEXT}
128SCRIPTS= rcs2log vcdiff 128SCRIPTS= rcs2log vcdiff
129STAMP_SCRIPTS= stamp-rcs2log stamp-vcdiff 129STAMP_SCRIPTS= stamp-rcs2log stamp-vcdiff
130 130
131# All files that are created by the linker, i.e., whose names end in ${EXEEXT}.
132EXE_FILES = ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL}
133
131# Specify additional -D flags for movemail. Options: 134# Specify additional -D flags for movemail. Options:
132# -DMAIL_USE_FLOCK or -DMAIL_USE_LOCKF (use flock or lockf for file locking). 135# -DMAIL_USE_FLOCK or -DMAIL_USE_LOCKF (use flock or lockf for file locking).
133# See the comments about locking in movemail.c. Normally the values 136# See the comments about locking in movemail.c. Normally the values
@@ -166,13 +169,15 @@ LIBS_SYSTEM = @LIBS_SYSTEM@
166# defined before they know they can take advantage of the information 169# defined before they know they can take advantage of the information
167# in ../src/config.h. 170# in ../src/config.h.
168BASE_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) ${C_WARNINGS_SWITCH} \ 171BASE_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) ${C_WARNINGS_SWITCH} \
169 -DHAVE_CONFIG_H -I. -I../src -I${srcdir} -I${srcdir}/../src 172 -DHAVE_CONFIG_H -I. -I../src -I../lib \
173 -I${srcdir} -I${srcdir}/../src -I${srcdir}/../lib
170 174
171ALL_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${LDFLAGS} ${CPPFLAGS} ${CFLAGS} 175ALL_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
172LINK_CFLAGS = ${BASE_CFLAGS} ${LDFLAGS} ${CFLAGS} 176LINK_CFLAGS = ${BASE_CFLAGS} ${LDFLAGS} ${CFLAGS}
173CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS} 177CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS}
174 178
175LOADLIBES=$(LIBS_SYSTEM) 179LOADLIBES = ../lib/libgnu.a $(LIBS_SYSTEM)
180$(EXE_FILES): ../lib/libgnu.a
176 181
177## This is the default compilation command. 182## This is the default compilation command.
178## But we should never rely on it, because some make version failed to 183## But we should never rely on it, because some make version failed to
@@ -320,6 +325,9 @@ getopt.o: ${srcdir}/getopt.c $(GETOPT_H) ${srcdir}/gettext.h
320getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H) 325getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H)
321 ${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c 326 ${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c
322 327
328../lib/libgnu.a: ../src/config.h
329 cd ../lib && $(MAKE) libgnu.a
330
323REGEXPOBJ = regex.o 331REGEXPOBJ = regex.o
324REGEXPDEPS = $(REGEXPOBJ) $(srcdir)/../src/regex.h 332REGEXPDEPS = $(REGEXPOBJ) $(srcdir)/../src/regex.h
325 333
diff --git a/lib/Makefile.am b/lib/Makefile.am
new file mode 100644
index 00000000000..6a014f6057b
--- /dev/null
+++ b/lib/Makefile.am
@@ -0,0 +1,8 @@
1BUILT_SOURCES =
2EXTRA_DIST =
3MOSTLYCLEANFILES =
4noinst_LIBRARIES =
5
6DEFAULT_INCLUDES = -I. -I../src -I$(top_srcdir)/src
7
8include gnulib.mk
diff --git a/make-dist b/make-dist
index 3d610c1eee6..3f8ea55b3dc 100755
--- a/make-dist
+++ b/make-dist
@@ -286,12 +286,14 @@ ln INSTALL README BUGS move-if-change ${tempdir}
286ln ChangeLog Makefile.in configure configure.in ${tempdir} 286ln ChangeLog Makefile.in configure configure.in ${tempdir}
287ln config.bat make-dist update-subdirs vpath.sed .dir-locals.el ${tempdir} 287ln config.bat make-dist update-subdirs vpath.sed .dir-locals.el ${tempdir}
288ln mkinstalldirs config.sub config.guess install-sh ${tempdir} 288ln mkinstalldirs config.sub config.guess install-sh ${tempdir}
289ln aclocal.m4 ${tempdir}
290ln compile depcomp missing ${tempdir}
289 291
290echo "Creating subdirectories" 292echo "Creating subdirectories"
291for subdir in site-lisp \ 293for subdir in site-lisp \
292 leim leim/CXTERM-DIC leim/MISC-DIC \ 294 leim leim/CXTERM-DIC leim/MISC-DIC \
293 leim/SKK-DIC leim/ja-dic leim/quail \ 295 leim/SKK-DIC leim/ja-dic leim/quail \
294 src src/m src/s src/bitmaps lib-src oldXMenu lwlib \ 296 src src/m src/s src/bitmaps lib lib-src oldXMenu lwlib \
295 nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ 297 nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
296 `find etc lisp -type d` \ 298 `find etc lisp -type d` \
297 doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \ 299 doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \
@@ -368,6 +370,14 @@ echo "Making links to \`src/s'"
368(cd src/s 370(cd src/s
369 ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s) 371 ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s)
370 372
373echo "Making links to \`lib'"
374(build_aux_h=`(ls *.h)`
375 cd lib
376 ln [a-zA-Z]*.[ch] ../${tempdir}/lib
377 ln gnulib.mk Makefile.am Makefile.in ../${tempdir}/lib
378 cd ../${tempdir}/lib
379 rm -f `(echo "$build_aux_h"; ls *.in.h) | sed '/[*]/d; s/.in.h$/.h/'`)
380
371echo "Making links to \`lib-src'" 381echo "Making links to \`lib-src'"
372(cd lib-src 382(cd lib-src
373 ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src 383 ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src
@@ -477,7 +487,7 @@ echo "Making links to \`doc/man'"
477### It would be nice if they could all be symlinks to top-level copy, but 487### It would be nice if they could all be symlinks to top-level copy, but
478### you're not supposed to have any symlinks in distribution tar files. 488### you're not supposed to have any symlinks in distribution tar files.
479echo "Making sure copying notices are all copies of \`COPYING'" 489echo "Making sure copying notices are all copies of \`COPYING'"
480for subdir in . etc info leim lib-src lisp lwlib msdos nt src; do 490for subdir in . etc info leim lib lib-src lisp lwlib msdos nt src; do
481 rm -f ${tempdir}/${subdir}/COPYING 491 rm -f ${tempdir}/${subdir}/COPYING
482 cp COPYING ${tempdir}/${subdir} 492 cp COPYING ${tempdir}/${subdir}
483done 493done
diff --git a/src/ChangeLog b/src/ChangeLog
index aad0050f0bd..c8bcd2ab669 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
12011-01-08 Paul Eggert <eggert@cs.ucla.edu>
2
3 Automate syncing from gnulib.
4 * Makefile.in (lib): New macro.
5 (ALL_CFLAGS): Add -I$(lib) -I$(srcdir)/../lib.
6 ($(lib)/libgnu.a): New rule.
7 (temacs$(EXEEXT)): Also link $(lib)/libgnu.a.
8
12011-01-08 Andreas Schwab <schwab@linux-m68k.org> 92011-01-08 Andreas Schwab <schwab@linux-m68k.org>
2 10
3 * fns.c (Fyes_or_no_p): Add usage. 11 * fns.c (Fyes_or_no_p): Add usage.
@@ -29483,4 +29491,3 @@ See ChangeLog.10 for earlier changes.
29483 29491
29484 You should have received a copy of the GNU General Public License 29492 You should have received a copy of the GNU General Public License
29485 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 29493 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
29486
diff --git a/src/Makefile.in b/src/Makefile.in
index 0f85428b88c..b2a6b6537d4 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -47,6 +47,7 @@ version = @version@
47LIBOBJS = @LIBOBJS@ 47LIBOBJS = @LIBOBJS@
48 48
49lispsource = $(srcdir)/../lisp 49lispsource = $(srcdir)/../lisp
50lib = ../lib
50libsrc = ../lib-src 51libsrc = ../lib-src
51etc = ../etc 52etc = ../etc
52oldXMenudir = ../oldXMenu 53oldXMenudir = ../oldXMenu
@@ -320,6 +321,7 @@ MKDEPDIR=@MKDEPDIR@
320## 321##
321## FIXME? MYCPPFLAGS only referenced in etc/DEBUG. 322## FIXME? MYCPPFLAGS only referenced in etc/DEBUG.
322ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I$(srcdir) \ 323ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I$(srcdir) \
324 -I$(lib) -I$(srcdir)/../lib \
323 $(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \ 325 $(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
324 $(C_SWITCH_X_SYSTEM) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \ 326 $(C_SWITCH_X_SYSTEM) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \
325 $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \ 327 $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \
@@ -644,10 +646,12 @@ $(libsrc)/make-docfile$(EXEEXT):
644buildobj.h: Makefile 646buildobj.h: Makefile
645 echo "#define BUILDOBJ \"$(obj) $(otherobj) " "\"" > buildobj.h 647 echo "#define BUILDOBJ \"$(obj) $(otherobj) " "\"" > buildobj.h
646 648
649$(lib)/libgnu.a: $(config_h)
650 cd $(lib) && $(MAKE) libgnu.a
647 651
648temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) 652temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.a
649 $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \ 653 $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \
650 -o temacs $(START_FILES) $(obj) $(otherobj) $(LIBES) 654 -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES)
651 655
652## The following oldxmenu-related rules are only (possibly) used if 656## The following oldxmenu-related rules are only (possibly) used if
653## HAVE_X11 && !USE_GTK, but there is no harm in always defining them 657## HAVE_X11 && !USE_GTK, but there is no harm in always defining them