|
|
|
@ -1,32 +1,58 @@ |
|
|
|
this tree now contains makefiles and tools to build on Linux and MacosX |
|
|
|
Linux is rather more thoroughly tested compared to os-x. |
|
|
|
|
|
|
|
to get here, TASM and the propeller generation tools needed to be replaced, |
|
|
|
and since the unix filesystem is usually case-sensitive, and CP/M and windows |
|
|
|
are not, the cpm tools were made case-insensitive. |
|
|
|
|
|
|
|
TASM was replaced with uz80as, which implements a subset of TASM and fixes some |
|
|
|
bugs. however, I needed to add some functionality to make it build the sources |
|
|
|
as they exist in this tree. in particular, one thing to be very careful of is |
|
|
|
that TASM is not entirely consistent with respect to the .DS directive. |
|
|
|
it's usually a bad idea to mix .DS, .FILL, .DB with .ORG. |
|
|
|
This tree now contains makefiles and tools to build on Linux and |
|
|
|
MacosX Linux is rather more thoroughly tested compared to os-x. |
|
|
|
|
|
|
|
To get here, TASM and the propeller generation tools needed to be |
|
|
|
replaced, and since the unix filesystem is usually case-sensitive, |
|
|
|
and CP/M and windows are not, the cpm tools were made case-insensitive. |
|
|
|
|
|
|
|
TASM was replaced with uz80as, which implements a subset of TASM and |
|
|
|
fixes some bugs. however, I needed to add some functionality to make |
|
|
|
it build the sources as they exist in this tree. in particular, one |
|
|
|
thing to be very careful of is that TASM is not entirely consistent |
|
|
|
with respect to the .DS directive. it's usually a bad idea to mix |
|
|
|
.DS, .FILL, .DB with .ORG. |
|
|
|
|
|
|
|
.DS n is best thought of as .ORG $ + n |
|
|
|
.ORG changes the memory pointer, but does not change the file output point. |
|
|
|
it works a lot more like M80, SLR* .phase |
|
|
|
.ORG changes the memory pointer, but does not change the file |
|
|
|
output point. It works a lot more like M80, SLR* .PHASE |
|
|
|
|
|
|
|
It assumes that you have some standard system tools and libraries |
|
|
|
installed specifically: gcc, gnu make, libncurses |
|
|
|
|
|
|
|
To build: |
|
|
|
cd to the top directory and type "make". |
|
|
|
|
|
|
|
By default, this will generate all of the standard configurations of |
|
|
|
RomWBW for all platforms. If you want to customize the process to |
|
|
|
only build one (or a subset) of the configurations, edit the "makefile" |
|
|
|
in the HBIOS directory. If you create your own, custom configuration, |
|
|
|
you can add it there as well. |
|
|
|
|
|
|
|
For MacOS users, you may encounter a failure reading or writing files. |
|
|
|
This is caused by protection features in MacOS (at least, in Catalina) |
|
|
|
that prevent programs built on your local system (unsigned) from |
|
|
|
running. To disable this feature: |
|
|
|
|
|
|
|
it assumes that you have some standard system tools and libraries installed |
|
|
|
specifically: gcc, gnu make, libncurses |
|
|
|
1) Make sure you exit System Preferences. |
|
|
|
2) Open a terminal session and type the following. You will need to |
|
|
|
authenticate with an admin account. sudo spctl --master-disable |
|
|
|
3) Exit terminal |
|
|
|
4) Go into System Preferences and choose Security and Privacy |
|
|
|
5) Select the General tab if it isn't already selected |
|
|
|
6) You should now see a third selection under |
|
|
|
"Allow apps downloaded from:" of Anywhere - select this. |
|
|
|
7) Now you can run the build successfully. |
|
|
|
|
|
|
|
to build: |
|
|
|
cd to the top directory and type make. |
|
|
|
DISCLAIMER: You do this at your own risk. I highly recommend that you |
|
|
|
return the settings back to normal immediately after doing a build. |
|
|
|
|
|
|
|
heavy use is made of make's include facility and pattern rules. |
|
|
|
the master rule set is in Tools/Makefile.inc. changes here will affect |
|
|
|
almost every Makefile, and where exceptions are needed, the overrides are |
|
|
|
applied in the lower Makefiles. |
|
|
|
Heavy use is made of make's include facility and pattern rules. the |
|
|
|
master rule set is in Tools/Makefile.inc. changes here will affect |
|
|
|
almost every Makefile, and where exceptions are needed, the overrides |
|
|
|
are applied in the lower Makefiles. |
|
|
|
|
|
|
|
these tools can run a windows-linux regression test, where all the binaries are |
|
|
|
compared to a baseline windows build. |
|
|
|
These tools can run a windows-linux regression test, where all the |
|
|
|
binaries are compared to a baseline windows build. |
|
|
|
|
|
|
|
Credit: |
|
|
|
|
|
|
|
@ -45,5 +71,5 @@ Credit: |
|
|
|
both zx and cpmtools ship with an overly complicated makefile generation system |
|
|
|
and this is ignored. |
|
|
|
|
|
|
|
this whole linux build framework is the work of Curt Mayer, curt@zen-room.org. |
|
|
|
This whole linux build framework is the work of Curt Mayer, curt@zen-room.org. |
|
|
|
use it for whatever you like; this is not my day job. |
|
|
|
|