forked from ksherlock/mpw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.text
93 lines (59 loc) · 2.13 KB
/
README.text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
MPW Emulator
------------
by Kelvin W Sherlock, et alia.
0. System compatibility
Currently, only OS X 10.8 with case-insensitive HFS+ is supported.
1. License
The 680x0 CPU code is from WinFellow (https://fellow.sourceforge.net) and is
licensed under GPL v2 or later. Consequently, the rest of the code is licensed
under the GPL v2 as well.
The memory allocator (NewHandle/NewPointer) code is from mempoolite, which
is a fork of the SQLite zero-alloc allocator by Jefty Negapatan and D. Richard Hipp.
It, as is SQLite, is in the public domain.
2. Building
Compiling requires cmake, ragel, lemon, and a recent version of clang++ with
c++11 support. It has only been built and tested with OS X 10.8.
mkdir build
cd build
cmake ..
make
This will generate bin/mpw and bin/disasm.
3. Installation
Certain configuration and execution files are generally useful. They are
stored in an mpw directory, which may be located:
$MPW (shell variable)
~/mpw/ (your home directory)
/usr/local/share/mpw/
/usr/share/mpw/
The layout is reminiscent of actual MPW installations.
mpw/Environment.text
mpw/Tools/...
mpw/Interfaces/...
mpw/Libraries/...
mpw/Help/...
4. Environment file
The Environment.text file is new; it contains MPW environment variables (many
of them set the library and include file locations). The format is fairly
simple.
# this is a comment
#this sets a variable
name = value
# this sets a variable if it is undefined.
name ?= value
# values may refer to other variables
Libraries=$MPW:Libraries:Libraries:
Libraries=${MPW}:Libraries:Libraries:
eventually, mpw will support a -Dname=value flag, so you can do something like:
# use 3.2 headers/libraries unless overridden on the command line
MPWVersion ?= 3.2
Libraries=$MPW:Libraries:Libraries-$MPWVersion:
5. Usage
mpw [mpw flags] command-name [command arguments]
you may also create shell aliases:
alias AsmIIgs='mpw AsmIIgs'
or create a shell script (in /usr/local/bin, etc)
/usr/local/bin/AsmIIgs:
#!/bin/sh
exec mpw AsmIIgs "$@"
mpw looks in the current directory and then in the $MPW:Tools: directory
for the command to run. The MPW $Commands variable is not yet supported.