Unified build system, with new readme.

This commit is contained in:
Martin Haye 2016-05-31 07:45:49 -07:00
parent 6316395d16
commit 3df106d6eb
5 changed files with 66 additions and 30 deletions

View File

@ -1,24 +1,36 @@
Building for the Apple II Platform
==================================
Building a game disk image for the Apple II Platform
====================================================
1. Build the A2Copy tool, which copies directories in/out of image files: `cd tools/A2Copy`
and then `ant`, and finally `cd ../..`
1. Install dependencies
2. Build the PackMap tool, which converts Outlaw XML to a packed map. `cd tools/PackMap`
and then `ant`, and finally `cd ../..`. I think you need Groovy support in your
NetBeans installation for this to work.
The platform build for the Apple II requires only two dependencies. You will need to install these and have them in your path before you try to build.
3. Pack your game data. `java -jar tools/PackMap/dist/PackMap.jar yourXMLFile.xml virtual/data/maps/map.pack/bin`
- Java 8 (or higher). You can use either OpenJDK 1.8+ or Sun JDK 1.8+
- Apache ant 1.9 (or higher)
4. Copy the frame image (in Apple II format) to virtual/data/images/frame.bin
You can check if you already have them this way:
- `java -version` # should show "1.8.xxx"
- `ant -version` # should show "1.9.x"
5. Set the location of the "cc65" tool set. Make a copy of `virtual/src/include/sample.build.props`
and call it `build.props` (in that same directory). Edit the `CC65_BIN_DIR` path inside that file
to point at your cc65 installation. There should be "ca65", "cc65", "ld65" etc. in the directory
you point to.
2. Build the tools
6. Now build a complete disk image: `cd virtual` and then `ant`
- `cd Platform/Apple`
- `ant`
7. Boot up the resulting disk image `game.2mg` on your Apple II or emulator.
3. Put scenario files in place
8. To run the render demo, type `-RENDER` at the ProDOS Basic prompt.
You will need acquire and place three scenario files into the `Platform/Apple/virtual/` directory:
- `world.xml`
- `enemies.tsv`
- `font.bin`
4. Build a game disk
- `cd Platform/Apple/virtual`
- `ant`
- The resulting disk image will be `Platform/Apple/Virtual/game.2mg`. Just boot it in an emulator or copy to a real Apple II, and have fun.
5. Rinse and repeat
- Change any of the code files in virtual/src, or update the world.xml file using Outlaw
- Go to step 4. The system uses incremental building for speedy turnaround.

15
Platform/Apple/build.xml Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<project name="tools" default="build">
<target name="clean">
<echo>Cleaning tools.</echo>
<ant dir="./tools/" target="clean" useNativeBasedir="true" inheritAll="false"/>
</target>
<target name="build">
<echo>Building tools.</echo>
<ant dir="./tools/" target="build" useNativeBasedir="true" inheritAll="false"/>
</target>
</project>

View File

@ -1,15 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="PackPartitions" default="default" basedir=".">
<description>Builds, tests, and runs the project PackPartitions.</description>
<description>Builds the PackPartitions tool.</description>
<import file="nbproject/build-impl.xml"/>
<!-- override javasdoc target, since we have no Java sources -->
<target depends="init" description="Don't build Javadoc." name="javadoc"/>
<!-- after building the 'thin' jar, make a 'thick' one incorporating all dependencies -->
<target name="-post-jar">
<echo message="Packaging ${application.title} into a single JAR at ${dist.jar}"/>
<move file="${dist.jar}" tofile="dist/${application.title}-thin.jar"/>

View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<project name="tools" default="build">
<target name="clean">
<echo>Cleaning A2Copy.</echo>
<ant dir="./A2Copy/" target="clean" useNativeBasedir="true" inheritAll="false"/>
<echo>Cleaning PackPartitions.</echo>
<ant dir="./PackPartitions/" target="clean" useNativeBasedir="true" inheritAll="false"/>
</target>
<target name="build">
<echo>Building A2Copy.</echo>
<ant dir="./A2Copy/" target="default" useNativeBasedir="true" inheritAll="false"/>
<echo>Building PackPartitions.</echo>
<ant dir="./PackPartitions/" target="default" useNativeBasedir="true" inheritAll="false"/>
</target>
</project>

View File

@ -2,14 +2,9 @@
<project name="game" default="build">
<property name="projName" value="game"/> <!-- base part of output file name -->
<property name="src.dir" location="./src"/>
<property name="build.dir" value="./build"/>
<property name="a2copy.dir" value="../tools/A2Copy/dist"/>
<property name="pack.dir" value="../tools/PackPartitions/dist"/>
<property name="plasma.dir" location="../tools/PLASMA/src"/>
<property name="IMG_FILE" value="${build.dir}/${projName}.bin#${ORG_ADDR}"/>
<target name="all">
<antcall target="clean"/>