Fixed autoloads and byte compilation due to MSYS filename-butchering and xargs limitations.

This commit is contained in:
Eli Zaretskii 2013-04-14 18:05:42 +03:00
parent c31abc6232
commit 5e00cfa510
5 changed files with 52 additions and 9 deletions

View file

@ -1573,6 +1573,7 @@ LIBS_ECLIENT=
LIB_WSOCK32=
NTLIB=
CM_OBJ="cm.o"
XARGS_LIMIT=
if test "${HAVE_W32}" = "yes"; then
AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
AC_CHECK_TOOL(WINDRES, [windres],
@ -1603,6 +1604,7 @@ if test "${HAVE_W32}" = "yes"; then
LIBS_ECLIENT="-lcomctl32"
LIB_WSOCK32="-lwsock32"
NTLIB="ntlib.$ac_objext"
XARGS_LIMIT="-s 10000"
fi
fi
AC_SUBST(W32_OBJ)
@ -1618,6 +1620,7 @@ AC_SUBST(CM_OBJ)
AC_SUBST(LIBS_ECLIENT)
AC_SUBST(LIB_WSOCK32)
AC_SUBST(NTLIB)
AC_SUBST(XARGS_LIMIT)
if test "${HAVE_W32}" = "yes"; then
window_system=w32

View file

@ -24,6 +24,10 @@ abs_top_builddir = @abs_top_builddir@
lisp = $(srcdir)
VPATH = $(srcdir)
# Empty for all systems except MinGW, where xargs needs an explicit
# limitation.
XARGS_LIMIT = @XARGS_LIMIT@
# You can specify a different executable on the make command line,
# e.g. "make EMACS=../src/emacs ...".
@ -160,21 +164,21 @@ $(lisp)/cus-load.el:
custom-deps: doit
cd $(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins
$(emacs) -l cus-dep --eval '(set-generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins
$(lisp)/finder-inf.el:
$(MAKE) $(MFLAGS) finder-data
finder-data: doit
cd $(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l finder --eval '(setq generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins
$(emacs) -l finder --eval '(set-generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins
# The chmod +w is to handle env var CVSREAD=1.
autoloads: $(LOADDEFS) doit
cd $(lisp) && chmod +w $(AUTOGEN_VCS)
cd $(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
$(emacs) -l autoload --eval '(set-generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
# This is required by the bootstrap-emacs target in ../src/Makefile, so
# we know that if we have an emacs executable, we also have a subdirs.el.
@ -274,7 +278,7 @@ compile-main: compile-clean
test -f $$el || continue; \
test ! -f $${el}c && GREP_OPTIONS= grep '^;.*no-byte-compile: t' $$el > /dev/null && continue; \
echo "$${el}c"; \
done | xargs echo) | \
done | xargs $(XARGS_LIMIT) echo) | \
while read chunk; do \
$(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \
done
@ -369,7 +373,7 @@ mh-autoloads: $(MH_E_DIR)/mh-loaddefs.el
$(MH_E_DIR)/mh-loaddefs.el: $(MH_E_SRC)
$(emacs) -l autoload \
--eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \
--eval "(setq generated-autoload-file \"$@\")" \
--eval "(set-generated-autoload-file \"$@\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(MH_E_DIR)
@ -387,7 +391,7 @@ TRAMP_SRC = $(TRAMP_DIR)/tramp.el $(TRAMP_DIR)/tramp-adb.el \
$(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC)
$(emacs) -l autoload \
--eval "(setq generate-autoload-cookie \";;;###tramp-autoload\")" \
--eval "(setq generated-autoload-file \"$@\")" \
--eval "(set-generated-autoload-file \"$@\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(TRAMP_DIR)
@ -409,21 +413,21 @@ CAL_SRC = $(CAL_DIR)/cal-bahai.el $(CAL_DIR)/cal-china.el \
$(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC)
$(emacs) -l autoload \
--eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \
--eval "(setq generated-autoload-file \"$@\")" \
--eval "(set-generated-autoload-file \"$@\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(CAL_DIR)
$(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC)
$(emacs) -l autoload \
--eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \
--eval "(setq generated-autoload-file \"$@\")" \
--eval "(set-generated-autoload-file \"$@\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(CAL_DIR)
$(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC)
$(emacs) -l autoload \
--eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \
--eval "(setq generated-autoload-file \"$@\")" \
--eval "(set-generated-autoload-file \"$@\")" \
--eval "(setq make-backup-files nil)" \
-f batch-update-autoloads $(CAL_DIR)

View file

@ -38,6 +38,18 @@ ldefs-boot\\|cus-load\\|finder-inf\\|esh-groups\\|subdirs\\)\\.el$\\)"
(autoload 'autoload-rubric "autoload")
(defun set-generated-custom-dependencies-file (file)
"Set value of `generated-custom-dependencies-file' from FILE.
On systems other than MS-Windows, just sets the value
of `generated-custom-dependencies-file'. On MS-Windows, converts
/d/foo/bar form passed by MSYS Make into d:/foo/bar that Emacs can
grok. This function is called from lisp/Makefile."
(when (and (eq system-type 'windows-nt)
(string-match "\\`/[a-zA-Z]/" file))
(setq file (concat (substring file 1 2) ":" (substring file 2))))
(setq generated-custom-dependencies-file file))
(defun custom-make-dependencies ()
"Batch function to extract custom dependencies from .el files.
Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies DIRS"

View file

@ -86,6 +86,18 @@ that text will be copied verbatim to `generated-autoload-file'.")
(defvar autoload-modified-buffers) ;Dynamically scoped var.
(defun set-generated-autoload-file (file)
"Set value of `generated-autoload-file' from FILE.
On systems other than MS-Windows, just sets the value
of `generated-autoload-file'. On MS-Windows, converts /d/foo/bar
form passed by MSYS Make into d:/foo/bar that Emacs can grok.
This function is called from lisp/Makefile."
(when (and (eq system-type 'windows-nt)
(string-match "\\`/[a-zA-Z]/" file))
(setq file (concat (substring file 1 2) ":" (substring file 2))))
(setq generated-autoload-file file))
(defun make-autoload (form file &optional expansion)
"Turn FORM into an autoload or defvar for source file FILE.
Returns nil if FORM is not a special autoload form (i.e. a function definition

View file

@ -138,6 +138,18 @@ cus-load\\|finder-inf\\|esh-groups\\|subdirs\\)\\.el$\\)"
(autoload 'autoload-rubric "autoload")
(defun set-generated-finder-keywords-file (file)
"Set value of `generated-finder-keywords-file' from FILE.
On systems other than MS-Windows, just sets the value
of `generated-finder-keywords-file'. On MS-Windows, converts
/d/foo/bar form passed by MSYS Make into d:/foo/bar that Emacs
can grok. This function is called from lisp/Makefile."
(when (and (eq system-type 'windows-nt)
(string-match "\\`/[a-zA-Z]/" file))
(setq file (concat (substring file 1 2) ":" (substring file 2))))
(setq generated-finder-keywords-file file))
(defvar finder--builtins-alist
'(("calc" . calc)
("ede" . ede)