mirror of
https://github.com/badvision/lawless-legends.git
synced 2025-01-11 21:29:46 +00:00
Tentative build process for the Apple II.
This commit is contained in:
parent
751d997a04
commit
57cf76357b
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
/OutlawEditor/target/
|
||||
/Platform/Apple/tools/A2Copy/nbproject/private/
|
||||
/Platform/Apple/tools/A2Copy/dist/
|
||||
/Platform/Apple/tools/A2Copy/build/
|
||||
/Platform/Apple/tools/A2Copy/build/
|
||||
/Platform/Apple/virtual/data/images/*.bin
|
||||
|
@ -51,8 +51,7 @@
|
||||
-init-macrodef-junit: defines macro for junit execution
|
||||
-init-macrodef-debug: defines macro for class debugging
|
||||
-init-macrodef-java: defines macro for class execution
|
||||
-do-jar-with-manifest: JAR building (if you are using a manifest)
|
||||
-do-jar-without-manifest: JAR building (if you are not using a manifest)
|
||||
-do-jar: JAR building
|
||||
run: execution of project
|
||||
-javadoc-build: Javadoc generation
|
||||
test-report: JUnit report generation
|
||||
|
@ -54,6 +54,7 @@ is divided into following sections:
|
||||
<property file="nbproject/project.properties"/>
|
||||
</target>
|
||||
<target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
|
||||
<property name="platform.java" value="${java.home}/bin/java"/>
|
||||
<available file="${manifest.file}" property="manifest.available"/>
|
||||
<condition property="splashscreen.available">
|
||||
<and>
|
||||
@ -71,10 +72,11 @@ is divided into following sections:
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class">
|
||||
<condition property="profile.available">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
<isset property="main.class.available"/>
|
||||
<isset property="javac.profile"/>
|
||||
<length length="0" string="${javac.profile}" when="greater"/>
|
||||
<matches pattern="1\.[89](\..*)?" string="${javac.source}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive">
|
||||
@ -91,12 +93,6 @@ is divided into following sections:
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class+mkdist.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available">
|
||||
<and>
|
||||
<isset property="manifest.available"/>
|
||||
@ -115,24 +111,12 @@ is divided into following sections:
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="do.archive+manifest.available+main.class">
|
||||
<condition property="do.archive+profile.available">
|
||||
<and>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="profile.available"/>
|
||||
<istrue value="${do.archive}"/>
|
||||
</and>
|
||||
</condition>
|
||||
<condition property="manifest.available-mkdist.available">
|
||||
<or>
|
||||
<istrue value="${manifest.available}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="manifest.available+main.class-mkdist.available">
|
||||
<or>
|
||||
<istrue value="${manifest.available+main.class}"/>
|
||||
<isset property="do.mkdist"/>
|
||||
</or>
|
||||
</condition>
|
||||
<condition property="have.tests">
|
||||
<or>
|
||||
<available file="${test.src.dir}"/>
|
||||
@ -188,6 +172,9 @@ is divided into following sections:
|
||||
<condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
|
||||
<length length="0" string="${endorsed.classpath}" when="greater"/>
|
||||
</condition>
|
||||
<condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}">
|
||||
<isset property="profile.available"/>
|
||||
</condition>
|
||||
<condition else="false" property="jdkBug6558476">
|
||||
<and>
|
||||
<matches pattern="1\.[56]" string="${java.specification.version}"/>
|
||||
@ -275,6 +262,7 @@ is divided into following sections:
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.profile.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<compilerarg value="-processorpath"/>
|
||||
<compilerarg path="@{processorpath}:${empty.dir}"/>
|
||||
@ -314,6 +302,7 @@ is divided into following sections:
|
||||
<path path="@{classpath}"/>
|
||||
</classpath>
|
||||
<compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.profile.cmd.line.arg}"/>
|
||||
<compilerarg line="${javac.compilerargs}"/>
|
||||
<customize/>
|
||||
</javac>
|
||||
@ -446,7 +435,7 @@ is divided into following sections:
|
||||
</fileset>
|
||||
</union>
|
||||
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
|
||||
<testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="A2Copy" testname="TestNG tests" workingDir="${work.dir}">
|
||||
<testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="A2Copy" testname="TestNG tests" workingDir="${work.dir}">
|
||||
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
|
||||
<propertyset>
|
||||
<propertyref prefix="test-sys-prop."/>
|
||||
@ -837,7 +826,7 @@ is divided into following sections:
|
||||
</chainedmapper>
|
||||
</pathconvert>
|
||||
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
|
||||
<copylibs compress="${jar.compress}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
|
||||
<fileset dir="${build.classes.dir}"/>
|
||||
<manifest>
|
||||
<attribute name="Class-Path" value="${jar.classpath}"/>
|
||||
@ -966,41 +955,25 @@ is divided into following sections:
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
|
||||
<j2seproject1:jar/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.archive+manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
|
||||
<j2seproject1:jar manifest="${manifest.file}">
|
||||
<j2seproject1:manifest>
|
||||
<j2seproject1:attribute name="Main-Class" value="${main.class}"/>
|
||||
</j2seproject1:manifest>
|
||||
</j2seproject1:jar>
|
||||
<echo level="info">To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<pathconvert property="run.classpath.with.dist.jar">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
|
||||
</pathconvert>
|
||||
<echo level="info">java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
|
||||
</target>
|
||||
<target depends="init" if="do.archive" name="-do-jar-with-libraries-create-manifest" unless="manifest.available">
|
||||
<target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available">
|
||||
<tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
|
||||
<touch file="${tmp.manifest.file}" verbose="false"/>
|
||||
</target>
|
||||
<target depends="init" if="do.archive+manifest.available" name="-do-jar-with-libraries-copy-manifest">
|
||||
<target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest">
|
||||
<tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/>
|
||||
<copy file="${manifest.file}" tofile="${tmp.manifest.file}"/>
|
||||
</target>
|
||||
<target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+main.class.available" name="-do-jar-with-libraries-set-main">
|
||||
<target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass">
|
||||
<manifest file="${tmp.manifest.file}" mode="update">
|
||||
<attribute name="Main-Class" value="${main.class}"/>
|
||||
</manifest>
|
||||
</target>
|
||||
<target depends="init,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-with-libraries-set-splashscreen">
|
||||
<target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile">
|
||||
<manifest file="${tmp.manifest.file}" mode="update">
|
||||
<attribute name="Profile" value="${javac.profile}"/>
|
||||
</manifest>
|
||||
</target>
|
||||
<target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen">
|
||||
<basename file="${application.splash}" property="splashscreen.basename"/>
|
||||
<mkdir dir="${build.classes.dir}/META-INF"/>
|
||||
<copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/>
|
||||
@ -1008,23 +981,41 @@ is divided into following sections:
|
||||
<attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/>
|
||||
</manifest>
|
||||
</target>
|
||||
<target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen" if="do.mkdist" name="-do-jar-with-libraries-pack">
|
||||
<target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs">
|
||||
<j2seproject3:copylibs manifest="${tmp.manifest.file}"/>
|
||||
<echo level="info">To run this application from the command line without Ant, try:</echo>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<echo level="info">java -jar "${dist.jar.resolved}"</echo>
|
||||
</target>
|
||||
<target depends="-do-jar-with-libraries-pack" if="do.archive" name="-do-jar-with-libraries-delete-manifest">
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist">
|
||||
<j2seproject1:jar manifest="${tmp.manifest.file}"/>
|
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
|
||||
<property location="${dist.jar}" name="dist.jar.resolved"/>
|
||||
<pathconvert property="run.classpath.with.dist.jar">
|
||||
<path path="${run.classpath}"/>
|
||||
<map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
|
||||
</pathconvert>
|
||||
<condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java} -cp ${run.classpath.with.dist.jar} ${main.class}">
|
||||
<isset property="main.class.available"/>
|
||||
</condition>
|
||||
<condition else="debug" property="jar.usage.level" value="info">
|
||||
<isset property="main.class.available"/>
|
||||
</condition>
|
||||
<echo level="${jar.usage.level}" message="${jar.usage.message}"/>
|
||||
</target>
|
||||
<target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest">
|
||||
<delete>
|
||||
<fileset file="${tmp.manifest.file}"/>
|
||||
</delete>
|
||||
</target>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-with-libraries-create-manifest,-do-jar-with-libraries-copy-manifest,-do-jar-with-libraries-set-main,-do-jar-with-libraries-set-splashscreen,-do-jar-with-libraries-pack,-do-jar-with-libraries-delete-manifest" name="-do-jar-with-libraries"/>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/>
|
||||
<target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/>
|
||||
<target name="-post-jar">
|
||||
<!-- Empty placeholder for easier customization. -->
|
||||
<!-- You can override this target in the ../build.xml file. -->
|
||||
</target>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/>
|
||||
<target depends="init,compile,-pre-jar,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/>
|
||||
<target depends="init,compile,-pre-jar,-do-jar,-post-jar" description="Build JAR." name="jar"/>
|
||||
<!--
|
||||
=================
|
||||
EXECUTION SECTION
|
||||
|
@ -1,8 +1,8 @@
|
||||
build.xml.data.CRC32=5246bcd2
|
||||
build.xml.script.CRC32=6c234e50
|
||||
build.xml.stylesheet.CRC32=28e38971@1.56.1.46
|
||||
build.xml.script.CRC32=43b3eb1f
|
||||
build.xml.stylesheet.CRC32=8064a381@1.68.1.46
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=5246bcd2
|
||||
nbproject/build-impl.xml.script.CRC32=17d64078
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
|
||||
nbproject/build-impl.xml.script.CRC32=ca8bcaaf
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=cdba79fa@1.68.1.46
|
||||
|
57
Platform/Apple/virtual/build.xml
Normal file
57
Platform/Apple/virtual/build.xml
Normal file
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<project name="lawless" default="build">
|
||||
|
||||
<property name="projName" value="lawless"/> <!-- 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="IMG_FILE" value="${build.dir}/${projName}.bin#${ORG_ADDR}"/>
|
||||
|
||||
<target name="all">
|
||||
<antcall target="clean"/>
|
||||
<antcall target="build"/>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete failonerror="false" dir="${build.dir}"/>
|
||||
<ant dir="${src.dir}/raycast" target="clean" useNativeBasedir="true" inheritAll="false"/>
|
||||
</target>
|
||||
|
||||
<target name="build">
|
||||
|
||||
<!-- Create build directory -->
|
||||
<mkdir dir="${build.dir}"/>
|
||||
|
||||
<!-- Build sub-projects -->
|
||||
<echo>Building raycast.</echo>
|
||||
<ant dir="${src.dir}/raycast" target="build" useNativeBasedir="true" inheritAll="false"/>
|
||||
|
||||
<!-- Construct a directory to put on the Apple -->
|
||||
<mkdir dir="${build.dir}/root"/>
|
||||
<copy todir="${build.dir}/root">
|
||||
<fileset dir="${src.dir}/raycast/build" includes="*.bin*"/>
|
||||
</copy>
|
||||
<mkdir dir="${build.dir}/root/"/>
|
||||
<copy todir="${build.dir}/root/assets">
|
||||
<fileset dir="./data/images" includes="*.bin*"/>
|
||||
</copy>
|
||||
<copy todir="${build.dir}/root/assets">
|
||||
<fileset dir="./data/tables" includes="*.bin*"/>
|
||||
</copy>
|
||||
|
||||
<!-- Make a new base image file -->
|
||||
<bunzip2 src="./data/disks/base.2mg.bz2" dest="${build.dir}/${projName}.2mg"/>
|
||||
|
||||
<!-- And stuff the directory into it -->
|
||||
<java jar="${a2copy.dir}/a2copy.jar" fork="true" failonerror="true">
|
||||
<arg value="-put"/>
|
||||
<arg value="${build.dir}/${projName}.2mg"/>
|
||||
<arg value="/"/>
|
||||
<arg value="${build.dir}/root"/>
|
||||
</java>
|
||||
|
||||
</target>
|
||||
|
||||
</project>
|
BIN
Platform/Apple/virtual/data/disks/base.2mg.bz2
Normal file
BIN
Platform/Apple/virtual/data/disks/base.2mg.bz2
Normal file
Binary file not shown.
BIN
Platform/Apple/virtual/data/tables/precast.bin
Normal file
BIN
Platform/Apple/virtual/data/tables/precast.bin
Normal file
Binary file not shown.
8
Platform/Apple/virtual/src/include/sample.build.props
Normal file
8
Platform/Apple/virtual/src/include/sample.build.props
Normal file
@ -0,0 +1,8 @@
|
||||
# Put your local development paths here
|
||||
# Take note of the path delimiters (ie: the / )
|
||||
|
||||
# Required entries
|
||||
# CC65_BIN_DIR
|
||||
|
||||
# Examples
|
||||
CC65_BIN_DIR=/opt/local/bin
|
56
Platform/Apple/virtual/src/raycast/build.xml
Normal file
56
Platform/Apple/virtual/src/raycast/build.xml
Normal file
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<project name="render" default="build">
|
||||
|
||||
<property name="projName" value="render"/> <!-- base part of output bin name -->
|
||||
<property name="src.dir" location="."/>
|
||||
<property name="include.dir" location="../include"/>
|
||||
<property file="${include.dir}/build.props"/> <!-- needs to define CC65_BIN_DIR -->
|
||||
|
||||
<property name="build.dir" value="${src.dir}/build"/>
|
||||
|
||||
<property name="CA65_TOOL" location="${CC65_BIN_DIR}/ca65"/>
|
||||
<property name="LD65_TOOL" location="${CC65_BIN_DIR}/ld65"/>
|
||||
|
||||
<property name="ASM_SETTINGS" value="-t apple2"/>
|
||||
<property name="ASM_INCLUDES" value="-I .."/>
|
||||
|
||||
<property name="ORG_ADDR" value="900"/> <!-- load address, in hex -->
|
||||
|
||||
<property name="BIN_FILE" value="${build.dir}/${projName}.bin#${ORG_ADDR}"/>
|
||||
|
||||
<target name="all">
|
||||
<antcall target="clean"/>
|
||||
<antcall target="build"/>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete failonerror="false" dir="${build.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="build">
|
||||
|
||||
<!-- Create build directory -->
|
||||
<mkdir dir="${build.dir}"/>
|
||||
|
||||
<!-- Compile ASM -->
|
||||
<apply executable="${CA65_TOOL}" dir="${src.dir}" relative="true" parallel="false" verbose="true">
|
||||
<fileset dir="${src.dir}" includes="*.s"/>
|
||||
<mapper type="glob" from="*.s" to="${build.dir}/*.o"/>
|
||||
<arg line="${ASM_INCLUDES}"/>
|
||||
<arg line="${ASM_SETTINGS}"/>
|
||||
<arg line="-o"/>
|
||||
<targetfile/>
|
||||
<srcfile/>
|
||||
</apply>
|
||||
|
||||
<!-- Link it -->
|
||||
<apply executable="${LD65_TOOL}" dir="${build.dir}" failonerror="true" verbose="true">
|
||||
<arg line="-t none --start-addr 0x${ORG_ADDR} -o"/>
|
||||
<arg value="${BIN_FILE}"/>
|
||||
<fileset dir="${build.dir}" includes="*.o"/>
|
||||
</apply>
|
||||
|
||||
</target>
|
||||
|
||||
</project>
|
1149
Platform/Apple/virtual/src/raycast/render.s
Normal file
1149
Platform/Apple/virtual/src/raycast/render.s
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user