AminetAminet
Search:
85244 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/c/BoopsiWizard.lha

Mirror:Random
Showing: m68k-amigaos iconppc-amigaos iconppc-morphos iconi386-aros iconi386-amithlon iconppc-warpup iconppc-powerup icongeneric iconother icon
No screenshot available
Short:Generates BOOPSI class C projects
Uploader:krabob free fr
Type:dev/c
Version:0.2
Architecture:m68k-amigaos >= 3.1
Date:2026-04-07
Distribution:Aminet
URL:https://github.com/krabobmkd/boopsiwizard/issues
Download:dev/c/BoopsiWizard.lha - View contents
Readme:dev/c/BoopsiWizard.readme
Downloads:10

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 .



Contents of dev/c/BoopsiWizard.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[Amiga]                  46127   72504  63.6% -lh5- 41fe Nov 23 17:28 BoopsiWizard/BoopsiWizard
[Amiga]                   2061    2526  81.6% -lh5- 2fe9 Nov 23 17:38 BoopsiWizard/BoopsiWizard.info
[Amiga]                   2175    4569  47.6% -lh5- 7c98 Nov 23 17:08 BoopsiWizard/BoopsiWizard.readme
[Amiga]                   1813    2741  66.1% -lh5- b62d Nov 23 17:38 BoopsiWizard/BoopsiWizard.readme.info
[Amiga]                   1175    1484  79.2% -lh5- 1a9d Nov 23 17:40 BoopsiWizard/templates.info
[Amiga]                  28673   28673 100.0% -lh0- ac3e Nov 23 10:17 BoopsiWizard/templates/circlegadget.zip
[Amiga]                    565     988  57.2% -lh5- f4af Nov 16 15:29 BoopsiWizard/templates/circlegadget_template.json
[Amiga]                  21835   21835 100.0% -lh0- 8fad Nov 23 10:17 BoopsiWizard/templates/simpleclass.zip
[Amiga]                    560     980  57.1% -lh5- 0d66 Nov 16 15:24 BoopsiWizard/templates/simpleclass_template.json
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         9 files  104984  136300  77.0%            Apr  7 12:07
Page generated in 0.1 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>