forked from SDL-Hercules-390/hyperion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.EXTPKG
187 lines (118 loc) · 6.88 KB
/
README.EXTPKG
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
-------------------------------------------------------------------------------
HERCULES "External Packages" README
-------------------------------------------------------------------------------
OVERVIEW
This version of Hercules 4.0 Hyperion links with several "external package"
static libraries.
Unless you have a need to modify or debug an external package, you do *NOT*
need to build any of the external packages in order to build Hercules. Just
build Hercules like normal. Hercules is distributed with pre-built external
packages as part of its source code repository eliminating the need to build
any of the external packages yourself. Just build Hercules and you're done.
Each package is maintained in its own unique source code repository separate
from the Hercules emulator itself. The Hercules 4.0 Hyperion repository only
hosts the package's static library (along with a few accompanying files) in
a separate external package subdirectory). All of the package's source code
is kept in its own separate source code repository. The Hercules repository
no longer contains any source code for these external packages; only their
static link libraries and whatever header files may be needed to call into
the package's functions.
Each external package is built separately from the Hercules emulator and then
"installed" into the appropriate Hercules repository subdirectory. Building
Hercules itself should not change.
Currently, there are four such external packages this Hercules 4.0 Hyperion
links with. These packages are the "crypto", "decNumber", "SoftFloat", and
"telnet" packages. Each of these package names correspond to an existing
subdirectory of Hyperion. Over time additional Hercules functionality will
be moved out of the emulator into their own separately maintained and built
external package repositories, eventually reducing the Hercules emulator to
just its core functionality: accurate emulation of the System/370, ESA/390,
and z architectures.
If you wish to build a non-Intel x86 architecture version of Hercules, you
will need to build and install all external packages for your architecture
first, before building Hercules. For instructions on how to do this, refer
to the BUILDING document in each package's source code repository.
The procedure for building each of the external packages is outlined below.
The four repositories for the external packages can be located at these URLs:
https://github.com/Fish-Git/crypto
https://github.com/Fish-Git/decNumber-icu-368
https://github.com/Fish-Git/SoftFloat-3a
https://github.com/Fish-Git/telnet
More information about each of these packages can be found within each of
the individual repositories.
-------------------------------------------------------------------------------
LINUX (non-Windows)
The procedure detailed below is explained from a Windows point of view,
but the procedure for Linux is virtually identical. If you are reasonably
skilled at Linux you should have no trouble making the needed adjustments.
-------------------------------------------------------------------------------
BUILDING THE EXTERNAL PACKAGES
FOR A WINDOWS-BASED HYPERION
Building the packages is a fairly simple and straightforward process and the
steps are outlined and then detailed below. These steps presume you are using
Windows and that you need both the x86 and x64 builds of the external packages.
SUMMARY OF THE STEPS INVOLVED
1. Download and install CMake.
2. Make the directories to hold the source repositories.
3. Download each of the four external package source repositories.
4. Make work directories for each package to be used for building.
5. Build and install each external package via the 'build' command.
For the purposes of this example, it is presumed that you have downloaded the
Hyperion repository and placed it into the \hyperion directory. Then we will
follow the process to build the external packages and have them installed into
\hyperion.
DETAILED INSTRUCTIONS
1. Download and install CMake. Cmake is a tool that is used to build the
packages from their source repositories. Download Cmake at this URL:
https://cmake.org/
Either download the .msi installer package or the .zip file and install
Cmake. It is simple and installs in seconds.
2. Make the directories that will be used to contain the source repositories.
For best results, the lowest level directory name should be the same as
the external package name. For example:
chdir \
mkdir \repo (for "repository")
chdir \repo
mkdir \crypto
mkdir \decNumber
mkdir \SoftFloat
mkdir \telnet
2. Download each of the four external package source repositories from the URLs
above. In this example, the .zip file will be downloaded for each package.
Then unzip each of the repository .zip downloads into the correspondingly
named source repository directory you just created.
4. Make the work directories that the build process will use:
chdir \
mkdir \work
chdir \work
mkdir \crypto
mkdir \decNumber
mkdir \SoftFloat
mkdir \telnet
5. Now build each external package by making the package's "work" directory
become the current directory and then issuing the "build" command(*) plus
a few parameters, in order to build and install the package:
chdir \work\crypto
\repo\crypto\build --all --install \hyperion\crypto
Some output will be generated, but in a few moments it will be completed.
OK, crypto is done! Now simply repeat step 5 for each of the remaining
external packages:
chdir \work\decNumber
\repo\decNumber\build --all --install \hyperion\decNumber
chdir \work\SoftFloat
\repo\SoftFloat\build --all --install \hyperion\Softfloat
chdir \work\telnet
\repo\telnet\build --all --install \hyperion\telnet
That concludes the necessary steps to build the external packages. You now
have the 32-bit and 64-bit versions of the Debug and Release builds of the
external packages. If you desire, you may delete both the \repo and \work
directories as they are no longer needed.
If you clone the \hyperion directory or download a newer Hyperion repository
in the future however, be sure to copy over the contents of the external
package directories inside \hyperion to your new clone so you won't have to
rebuild them again. You would only need to rebuild an external package when
it is updated or changed which they rarely are since they are fairly stable.
---------------
(*) Use "build --help" (Linux) or "build /?" (Windows) for more information
regarding the build script's parameters.
-------------------------------------------------------------------------------