build: support gcc -m32, thanks rain1!
[mes.git] / guile / guix / make.scm
index 6e9ce133b60bf8ee2324970b1463829becf65534..76e5393a173207cb025d41927cf5d93952bb3301 100644 (file)
       (and (format (current-error-port) "warning: not found: ~a\n" name)
            default)))
 
       (and (format (current-error-port) "warning: not found: ~a\n" name)
            default)))
 
-(define %CC (PATH-search-path "gcc"))
-(define %CC32 (or (PATH-search-path "i686-unknown-linux-gnu-gcc" #:default #f)
-                  (not (format (current-error-port) "warning: CC32 not found, skipping mlibc-gcc targets\n"))))
+(define %CC (or (getenv "CC") (PATH-search-path "gcc")))
+(define %CC32 (or (getenv "CC32")
+                  (PATH-search-path "i686-unknown-linux-gnu-gcc" #:default #f)
+                  (and (format (current-error-port) "warning: CC32 not found, trying gcc -m32")
+                       %CC)))
+
 (define %C-FLAGS
   '("--std=gnu99"
     "-O0"
 (define %C-FLAGS
   '("--std=gnu99"
     "-O0"
   '("--std=gnu99"
     "-O0"
     "-g"
   '("--std=gnu99"
     "-O0"
     "-g"
+    "-m32"
     "-I" "src"
     "-I" "mlibc"
     "-I" "mlibc/include"))
     "-I" "src"
     "-I" "mlibc"
     "-I" "mlibc/include"))
                          (newline))))))
           (inputs (list (store #:add-file "stage0/x86.M1")))))
 
                          (newline))))))
           (inputs (list (store #:add-file "stage0/x86.M1")))))
 
-(define* (LINK.gcc #:key (cc %CC) (c-flags %C-FLAGS) (libc #t) (crt1 #f))
+(define* (LINK.gcc #:key (cc %CC) (libc #t) (c-flags (if (eq? libc #t) %C-FLAGS %C32-FLAGS)) (crt1 #f))
   (method (name "LINK.gcc")
           (build (lambda (o t)
                    (let* ((input-files (map target-file-name (target-inputs t)))
   (method (name "LINK.gcc")
           (build (lambda (o t)
                    (let* ((input-files (map target-file-name (target-inputs t)))