It is no wonder Maxima does not build in Cygwin. Someone had introduced, who knows why, different build commands for that platform in maxima.system. The offending function looks as follows (maxima/src/maxima.system)

(defun build-maxima-lib ()
  (labels ((list-all-objects (module)
             (if (eql (mk::component-type module) :file)
         (list (mk::component-full-pathname module :binary))
         (apply #'append (mapcar #'list-all-objects (mk::component-components module))))))
    (let* ((files (list-all-objects (mk:find-system 'maxima))))
         (c::build-static-library "binary-ecl/maxima-lib" :lisp-files (print files))
         (let ((c::*ld-format* (concatenate 'string c::*ld-format* " /LIBPATH:binary-ecl")))
           (c::build-fasl "binary-ecl/maxima" :lisp-files '(maxima-lib))))
      (c::build-fasl "binary-ecl/maxima" :lisp-files files)
      #-(or cygwin msvc)
      (let ((obj (mapcar #'(lambda (p)
                 ;; Convert dir/foo.fas to dir/foo.o
                 (make-pathname :type "o" :defaults p))
   [.... ]

It is immediately obvious that the code for cygwin is too short to do anything useful. A possible fix is to remove the line #+cygwin and the following line and change #-(or cygwin msvc) to #-msvc However I can not guarantee that there are no other problems left.

Please note that this is not directly related to ECL.


Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)