-(unless (package-installed-p 'hydra)
- (defmacro defhydra (name &rest _)
- "This is a stub for the uninstalled `hydra' package."
- `(defun ,(intern (format "%S/body" name)) ()
- (interactive)
- (if (yes-or-no-p "Package `hydra' not installed. Install?")
- (progn
- (package-install 'hydra)
- (save-window-excursion
- (find-library "ivy-hydra")
- (byte-compile-file (buffer-file-name) t)))
- (error "Please install `hydra' and recompile/reinstall `ivy-hydra'")))))
-
-
+(eval-when-compile
+ (unless (or (featurep 'hydra) (package-installed-p 'hydra))
+ (defmacro defhydra (name &rest _)
+ "This is a stub for the uninstalled `hydra' package."
+ `(defun ,(intern (format "%S/body" name)) ()
+ (interactive)
+ (let ((enable-recursive-minibuffers t))
+ (if (yes-or-no-p "Package `hydra' not installed. Install?")
+ (progn
+ (package-install 'hydra)
+ (save-window-excursion
+ (find-library "ivy-hydra")
+ (byte-compile-file (buffer-file-name) t)))
+ (error "Please install `hydra' and recompile/reinstall `ivy-hydra'")))))))