+(require 'poe)
+;; If old compiler is used under v18, `eval-when-compile' and
+;; `static-if' are expanded (and evaluated) at *load-time*.
+(eval-when-compile (require 'static))
+
+;; XXX: needs better abstraction.
+(static-if (condition-case nil
+ ;; compile-time check.
+ ;; "new custom" requires widget library.
+ (and (require 'widget)
+ (require 'custom)
+ (fboundp 'custom-declare-variable))
+ (error
+ (if (null (featurep 'pcustom))
+ (progn
+ (message "
+ ** New CUSTOM library is not detected. If you have that one, e.g. v1.9962,
+ ** please specify the installed path of the new CUSTOM library in the file
+ ** \"subdirs.el\" and rebuild this package. For example, if you have
+ ** installed it in \"/usr/local/share/emacs/site-lisp/custom/\", put the
+ ** following line in the file \"/usr/local/share/emacs/site-lisp/subdirs.el\".
+ **
+ ** (normal-top-level-add-to-load-path '(\"custom\"))
+ **
+ ** Note that the argument can be a list of subdirectories.
+")
+ (sleep-for 1)))
+ nil))
+ ;; you have "new custom". no load-time check.