the idea was that custom-load.el should always be built, so that individual
Makefiles don't need to worry about it, and forgetting it when custom stuff is
added to a package, etc. this is in a patch of mine for 21.5 but not yet
synched ... so yes your change looks fine.
----- Original Message -----
From: "Steve Youngs" <youngs(a)xemacs.org>
To: "XEmacs Beta" <xemacs-beta(a)xemacs.org>
Cc: "Ben Wing" <ben(a)666.com>
Sent: Friday, March 28, 2003 4:09 PM
Subject: Re: [AC] [PACKAGES (liece)] Fix problem reported by Mats "Smoketest"
Lidell.
|--==> "BW" == Ben Wing <ben(a)666.com> writes:
BW> instead of doing this, you should rewrite XEmacs.rules so that
auto-autoloads.el
BW> etc. always get
BW> added BEFORE anything in EARLY_GENERATED_LISP, e.g.
BW> EARLY_GENERATED_LISP := auto-autoloads.el ... $(EARLY_GENERATED_LISP)
OK, I think?
BW> the whole point of the rewrite was to eliminate assumptions from the
Makefiles,
BW> and you've just added them back in [e.g. that files
named
`auto-autoloads.el'
BW> and `custom-load.el' exist and that these are the only
files that get
built
BW> automatically at this stage -- what about custom-defines.el,
for
example?]
I tried to set up XEmacs.rules so that custom-defines.el is only built
if XEMACS_21_5 is 't' _AND_ a custom-load.el exists.
BW> as a general rule:
BW> -- no rules in package Makefiles
Fair enough.
BW> -- no mention of auto-autoloads.el or custom-load.el
I can't see how this can work. Every package without exception has a
auto-autoloads.el, but *MANY* packages *DON'T* have a custom-load.el.
So if you specify both in EARLY_GENERATED_LISP the install targets
(install, bindist) will fail when they try to copy a non-existent
custom-load.el.
What if we made the autoloads target touch(1) custom-load.el? Then we
could unconditionally specify custom-load.el in EARLY_GENERATED_LISP.
Would this cause any problems?
To clarify, in XEmacs.rules, you'd have:
EARLY_GENERATED_LISP = $(AUTOLOAD_PATH)/auto-autoloads.el \
$(AUTOLOAD_PATH)/custom-load.el
ifeq ($(XEMACS_21_5),t)
EARLY_GENERATED_LISP += $(AUTOLOAD_PATH)/custom-defines.el
endif
[...]
ifeq ($(XEMACS_21_5),t)
$(AUTOLOAD_PATH)/auto-autoloads.el: $(GENERATED_ELC_DEPENDENCIES)
$(AUTOLOAD_PATH)/_pkg.el
$(XEMACS) $(BATCH) -no-autoloads \
-l autoload -f batch-update-directory-autoloads \
$(PACKAGE) $(AUTOLOAD_PATH)
@touch $(AUTOLOAD_PATH)/custom-load.el
@rm -f $(AUTOLOAD_PATH)/auto-autoloads.el~
$(AUTOLOAD_PATH)/custom-defines.el: $(GENERATED_ELC_DEPENDENCIES)
$(XEMACS) $(BATCH) -no-autoloads \
-l autoload -f batch-update-directory-custom-defines \
$(PACKAGE) $(AUTOLOAD_PATH)
@rm -f $(AUTOLOAD_PATH)/custom-defines.el~
else
AUTOLOAD_PACKAGE_NAME = (setq autoload-package-name \"$(PACKAGE)\")
AUTOLOAD_FILE = (setq generated-autoload-file \
\"$(AUTOLOAD_PATH)/auto-autoloads.el\")
$(AUTOLOAD_PATH)/auto-autoloads.el: $(GENERATED_ELC_DEPENDENCIES)
$(AUTOLOAD_PATH)/_pkg.el
$(XEMACS) $(BATCH) -no-autoloads \
-eval "$(AUTOLOAD_PACKAGE_NAME)" \
-eval "$(AUTOLOAD_FILE)" \
-l autoload -f batch-update-autoloads $^
@touch $(AUTOLOAD_PATH)/custom-load.el
@rm -f $(AUTOLOAD_PATH)/auto-autoloads.el~
endif
In most package Makefiles you wouldn't need anything special.
In packages like Liece, for example, you'd have:
EARLY_GENERATED_LISP += $(AUTOLOAD_PATH)/liece-setup.el
Ben, would this be OK?
--
|---<Steve Youngs>---------------<GnuPG KeyID: 10D5C9C5>---|
| XEmacs - It's not just an editor. |
| It