Groveler: import fixes from CFFI
authorStelian Ionescu <sionescu@cddr.org>
Sat, 19 Jan 2013 23:46:24 +0000 (20 00:46 +0100)
committerStelian Ionescu <sionescu@cddr.org>
Sat, 19 Jan 2013 23:46:24 +0000 (20 00:46 +0100)
src/grovel/grovel.lisp

index 1921b09..661b5b3 100644 (file)
@@ -69,6 +69,7 @@
 #include <grovel/common.h>
 
 int main(int argc, char**argv) {
+  int autotype_tmp;
   FILE *output = argc > 1 ? fopen(argv[1], \"w\") : stdout;
   fprintf(output, \";;;; This file has been automatically generated by \"
                   \"iolib-grovel.\\n;;;; Do not edit it by hand.\\n\\n\");
@@ -93,7 +94,7 @@ int main(int argc, char**argv) {
 
 (defun c-format (out fmt &rest args)
   (let ((text (unescape-for-c (format nil "~?" fmt args))))
-    (format out "~&  fprintf(output, \"~A\");~%" text)))
+    (format out "~&  fputs(\"~A\", output);~%" text)))
 
 (defun c-printf (out fmt &rest args)
   (flet ((item (item)
@@ -250,15 +251,19 @@ int main(int argc, char**argv) {
    #+darwin (list "-I" "/opt/local/include/")
    #-darwin nil
    ;; ECL internal flags
-   #+ecl (list c::*cc-flags*)))
+   #+ecl (list c::*cc-flags*)
+   ;; FreeBSD non-base header files
+   #+freebsd (list "-I" "/usr/local/include/")))
 
 ;;; FIXME: is there a better way to detect whether these flags
 ;;; are necessary?
 (defparameter *cpu-word-size-flags*
-  #-(or x86 x86-64 sparc sparc64)
+  #-(or arm x86 x86-64 sparc sparc64)
   '()
+  #+arm
+  (list "-marm")
   #+(or x86 x86-64 sparc sparc64)
-  (ecase (cffi:foreign-type-size :long)
+  (ecase (cffi:foreign-type-size :pointer)
     (4 (list "-m32"))
     (8 (list "-m64"))))