X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela_misc.lisp;h=419181b7680236407ec82526a376eb1e475466c9;hb=a5498a39db21d35ab8090f154944550def25f68e;hp=ac7b479db805ded3532e7725e0cc4bd87168a74e;hpb=a559c9a47d17f1a7ca0a4dff3edcd39449d1821e;p=gacela.git diff --git a/gacela_misc.lisp b/gacela_misc.lisp index ac7b479..419181b 100755 --- a/gacela_misc.lisp +++ b/gacela_misc.lisp @@ -70,12 +70,14 @@ (power 1 n))) (defmacro mapcconst (type c-type name) - `(progn - (defcfun ,(concatenate 'string c-type " gacela_" name " (void)") 0 - ,(concatenate 'string "return " name ";")) - (defentry ,(intern (string-upcase name)) () - (,type ,(concatenate 'string "gacela_" name))))) - + (let ((c-header (concatenate 'string c-type " gacela_" name " (void)")) + (c-body (concatenate 'string "return " name ";")) + (c-name (concatenate 'string "gacela_" name)) + (lisp-name (intern (string-upcase name)))) + `(progn + (defcfun ,c-header 0 ,c-body) + (defentry ,lisp-name () (,type ,c-name)) + (eval-when (load) (defconstant ,lisp-name (,lisp-name)))))) ;Geometry (defun dotp (dot)