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` 1. Install dependencies
and then `ant`, and finally `cd ../..`
2. Build the PackMap tool, which converts Outlaw XML to a packed map. `cd tools/PackMap` 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.
and then `ant`, and finally `cd ../..`. I think you need Groovy support in your
NetBeans installation for this to work.
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` 2. Build the tools
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.
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"?> <?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="."> <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"/> <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"> <target name="-post-jar">
<echo message="Packaging ${application.title} into a single JAR at ${dist.jar}"/> <echo message="Packaging ${application.title} into a single JAR at ${dist.jar}"/>
<move file="${dist.jar}" tofile="dist/${application.title}-thin.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"> <project name="game" default="build">
<property name="projName" value="game"/> <!-- base part of output file name -->
<property name="src.dir" location="./src"/> <property name="src.dir" location="./src"/>
<property name="build.dir" value="./build"/> <property name="build.dir" value="./build"/>
<property name="a2copy.dir" value="../tools/A2Copy/dist"/>
<property name="pack.dir" value="../tools/PackPartitions/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"> <target name="all">
<antcall target="clean"/> <antcall target="clean"/>