Short: Generates BOOPSI class C projects Uploader: krabob free fr Type: dev/c Version: 0.2 Architecture: m68k-amigaos >= 3.1 Distribution: Aminet URL: https://github.com/krabobmkd/boopsiwizard/issues Beta Version, but fully fonctionnal, so this may already help a lot. Templates are defined under directory "templates" with a json and a zip each. First: this is not part of official Amiga NDK, but is an opensource effort from individual developpers, with call to participation, at https://github.com/krabobmkd/boopsiwizard A lot of aspect of Amiga OS development are difficult to set up, and setting a simple project for a library, class, gadget, datatype, commodity project, for a given C compiler, is cryptic, and can take days if not months. This tool is intended to generate instantly working project with their makefiles, able to generate classes (and hopefully one day libraries) even when a compiler offers no straightforward way to do that - like GCC -, by assembling and linking specific startups, in "no standard C environement" modes. This project aims as many OS3 compilers as possible. There is only 2 templates for the moment: - "Paint Gadget" will generate a BOOPSI gadget that draws something, resize, react to attributes change, and send updates event from clicks. - "Class Gadget" defines a simple BOOPSI class, a basic model class, not a gadget. Each Template projects generate: - smakefile for compiler SAS-C6.5 (C90) - makefile for GCC2.95 (C99) or later GCC versions, - CMakeLists.txt for cross-compilation (like GCC6.5 Bebbo, C11). *** IMPORTANT PRE-REQUESITES *** Correct BOOPSI includes are missing in most old compilers installations, which have their os-include dirs back from OS3.0 times. As BOOPSI were updated with recent Amiga OS3.2.x NDK, after installing a compiler you will have to follow the instructions (basically add or replace some files in include/: https://developer.amigaos3.net/article/12-ndk-setup-sasc-compiler This also work for GCC2.95 from package ADE on aminet, with directory "os-include" If you install this GCC2.95, Projects will need assembler PhxAss to be also installed, because its own assembler "as" uses a different syntax than usual Amiga assemblers. Assembler is needed to generate shared binaries startups. Once created, you can usually open a shell in the generated directory, then type "make" to compile with GCC, or "smake" to compile with SAS-C. compiled binaries will be found in build-XXX directories. Class and Gadget templates are generated in 2 forms: the shared .class or .gadget, with a Test use case using them, but also a "statically linked" version, with class kept private and not published with AddClass(), all using the same sources. So that way you can develop your class the static-private way, and one day, if needed, switch to a publishable version that can be shared: no trouble, the project is already set up for this ! Also if you wonder "what to do next" after the poject is generated, search for tag "DEVTODO" in the comments, it will guide you through your development. (ADE users will be able to type a good old: ">grep -ir "DEVTODO" .") The templates code proposed here will try to be the more compliant possible with official Amiga guidelines, but may not be 100% compliant. You are loudly welcome to make any suggestion on the code at: https://github.com/krabobmkd/boopsiwizard/issues Your resources for coding Amiga OS3 should primarily be: - https://developer.amigaos3.net/article/13-recommended-reading-amiga-developer - https://developer.amigaos3.net/forum - The Amiga Developer CD v2.1 How does Project generation work ? Project generation will just rename file names and source inside files from the project name you give, usually the name of the class. You can basically create your own template with a project called "BaseName", where if target is MyProject, renaming will happen like this: BaseName -> MyProject BASENAME -> MYPROJECT basename -> myproject zip all that, Then configure a .json like the other, place the .json and the .zip in templates/ , you created another template ! BOOPSI is a trademark of... I'm not sure who, but it's a trademark. In "BoopsiWizard", note letter case differs. License for BoopsiWizard is LGPL2.1 . Yeah, that means you can both fork it, in which case you have to publish sources, or include it in commercial project as long as it's told were it comes from and it comes with its licence. -Krb, Nov.2025 .