Hi Juan,
 When asdf:make-build is executed with :type :program it generates a dll
 library instead of an executable file. When running with :type :dll the
 ECL hangs for a few seconds and crashes (or exits?) without generating
 any object files. You may find logs for both cases below. Types: :fasl
 and :lib work fine.

The :program case was broken. I made a typo and in asdf-ecl.lisp instead of

(defclass program-op (monolithic-bundle-op)
  ((type :initform :program)))

you will find

(defclass program-op (monolithic-bundle-op)
  ((type :initform :dll)))
This should work, but I got the strange linker error when evaluated the following expr:

(asdf:make-build :example :type :program :epilogue-code '(ext:quit 0))

;;; Note: Invoking external command:
;;; cl -Fe"D:/Tools/Lisp/ecl/doc/examples/asdf/example.exe" "C:/DOCUME~1/kamil/LOCALS~1/Temp/ECL123.obj" "D:/Tools/Lisp/ecl/doc/examples/asdf/example.lib"  -MD /link /nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc /nodefaultlib:libd ecl.lib user32.lib ws2_32.lib shell32.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : fatal error LNK1149: output filename matches input filename 'D:\Tools\Lisp\ecl\doc\examples\asdf\example.lib'
This has been fixed now. Regarding the DLL issue, yes, there was a
circular dependency which was not solved. I have fixed that as well.
The last commit:

-          (or (eq op-type 'compile-op) (typep component 'system)))
+          (or (eq op-type 'compile-op) (typep component 'system))
+          (or include-self (not (eq system component))))

breaks all asdf:make-build: no object files are generated, linker fails.