This section of the manual, and the surrounding chapter, may help: https://common-lisp.net/project/asdf/asdf/Creating-new-operations.html#Creating-new-operations
You basically need to define a new component :maxima-file, :maxima, or whatever the name. If it produces a Lisp file that then gets compiled to FASL, make it a subclass of cl-source-file indeed, and add a process-op or such to create the lisp file from the maxima source (see how cffi-grovel:grovel-file does it). Otherwise, make it a subclass of source-file (or then again, possibly cl-source-file, if it produces FASLs), and define methods for compile-op and load-op on it. Do NOT for whatever reason clobber any existing function (unless they have bugs indeed, in which case, submit a patch) — there lies madness (I should know, we were doing that at ITA before I bit the bullet and became ASDF maintainer). Define new classes and use ad hoc polymorphism as designed to specialize the behavior of the software. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Guns & bullets don't kill people — blood loss and organ damage kills people.