マクロで条件つきコンパイルみたいなことがやりたい

C の #if みたいなことを、Lisp のマクロでやりたい。が、うまくいかず。xyzzyEmacs で想定した動きにならなかったので、なんか自分の凡ミスだとは思ってるんだけど。

(defmacro when* (pred &rest body)
  (when pred
    `(progn ,@body)))

で、以下のようになってほしい。

(macroexpand '(when* (equal 1 1) 1))
(progn 1)
(macroexpand '(when* (equal 1 2) 2))
nil

実際はこうなる。

(macroexpand '(when* (equal 1 1) 1))
(progn 1)
(macroexpand '(when* (equal 1 2) 2))
(progn 2)