2014-08-29 19:10:50 +00:00
|
|
|
#
|
|
|
|
# Makefile
|
2014-08-29 19:28:00 +00:00
|
|
|
# Apple2BuildPipelineSample
|
2014-08-29 19:10:50 +00:00
|
|
|
#
|
2014-10-26 03:09:50 +00:00
|
|
|
# Part of a sample build pipeline for Apple II software development
|
2014-08-29 19:10:50 +00:00
|
|
|
#
|
|
|
|
# Created by Quinn Dunki on 8/15/14.
|
|
|
|
# One Girl, One Laptop Productions
|
|
|
|
# http://www.quinndunki.com
|
|
|
|
# http://www.quinndunki.com/blondihacks
|
|
|
|
#
|
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
include make/head.mk
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
# Customize this file to control what gets built, what machines to
|
|
|
|
# target, where in memory to put it, etc.
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
# The name of your system or binary file to build goes here:
|
2014-09-30 02:01:18 +00:00
|
|
|
PGM=___PACKAGENAME___
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
# Set the config you are building for. See these pages for details:
|
2018-06-30 03:07:19 +00:00
|
|
|
# https://www.cc65.org/doc/apple2-4.html
|
|
|
|
# https://www.cc65.org/doc/apple2enh-4.html
|
2014-09-05 04:10:59 +00:00
|
|
|
#
|
|
|
|
# Uncomment the one you want below (the first one is the default):
|
|
|
|
# MACHINE = apple2
|
|
|
|
# MACHINE = apple2-dos33
|
|
|
|
# MACHINE = apple2-system
|
|
|
|
# MACHINE = apple2-loader
|
|
|
|
# MACHINE = apple2-reboot
|
|
|
|
# MACHINE = apple2enh
|
|
|
|
# MACHINE = apple2enh-dos33
|
|
|
|
# MACHINE = apple2enh-system
|
|
|
|
# MACHINE = apple2enh-loader
|
|
|
|
# MACHINE = apple2enh-reboot
|
|
|
|
|
2014-10-26 03:09:50 +00:00
|
|
|
# Uncomment and set this to your starting address in Apple II memory
|
2014-09-05 04:10:59 +00:00
|
|
|
# if necessary:
|
|
|
|
# START_ADDR = 6000
|
|
|
|
|
|
|
|
# Set the default CPU to assemble for. You can change this in the
|
|
|
|
# body of a .s file using control commands like ".PC02". Uncomment
|
|
|
|
# the one you want below (the first one is the default):
|
|
|
|
# CPU = 6502
|
|
|
|
# CPU = 65SC02
|
|
|
|
# CPU = 65C02
|
|
|
|
# CPU = 65816
|
|
|
|
# Note: You can assemble for 65816 in 16-bit mode but the C compiler
|
|
|
|
# will only produce 8-bit code.
|
|
|
|
|
2018-06-13 03:27:01 +00:00
|
|
|
# Add any other directories where you are putting C or assembly source
|
|
|
|
# files to this list:
|
|
|
|
SRCDIRS+=
|
2014-09-05 04:10:59 +00:00
|
|
|
|
|
|
|
# If you have a non-standard cc65 install, you may need to change
|
|
|
|
# some of these. Uncomment the following line and change it to the
|
|
|
|
# correct path to CC65_HOME if the default is not correct:
|
|
|
|
# export CC65_HOME := /usr/local/lib/cc65
|
|
|
|
#
|
|
|
|
# If the path to the cc65 binaries is not correct, uncomment this
|
|
|
|
# line and change it:
|
|
|
|
# CC65_BIN = /usr/local/bin
|
|
|
|
|
|
|
|
# If you want to add arguments to the compile commandline, add them
|
|
|
|
# to this variable:
|
|
|
|
# CFLAGS += -Os
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
# If you want to add arguments to the assembly commandline, add them
|
|
|
|
# to this variable:
|
|
|
|
# ASMFLAGS += -g
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
# If you want to add arguments to the link commandline, add them to
|
|
|
|
# this variable:
|
|
|
|
# LDFLAGS += -v
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2018-06-15 03:51:01 +00:00
|
|
|
# If you want to link the lores graphics driver with your executable,
|
|
|
|
# uncomment the next line.
|
|
|
|
# DRIVERS += loresgr
|
|
|
|
#
|
|
|
|
# To use the lores driver, add code which looks like this to your
|
|
|
|
# project:
|
|
|
|
#
|
|
|
|
# #include "drivers/a2_lores_drv.h"
|
|
|
|
# int main(void)
|
|
|
|
# {
|
|
|
|
# tgi_install(&a2_lores_drv);
|
|
|
|
# tgi_init();
|
|
|
|
# // Use the graphics driver
|
|
|
|
# tgi_uninstall();
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
# Read the /usr/local/lib/cc65/include/tgi.h file to see what the
|
|
|
|
# driver interface provides. Also check out
|
|
|
|
# /usr/local/lib/cc65/include/apple2.h to see the colour definitions.
|
|
|
|
|
|
|
|
# If you want to link the hires graphics driver with your executable,
|
|
|
|
# uncomment the next line.
|
|
|
|
# DRIVERS += hiresgr
|
|
|
|
#
|
|
|
|
# To use the hires driver, add code which looks like this to your
|
|
|
|
# project:
|
|
|
|
#
|
|
|
|
# #include "drivers/a2_hires_drv.h"
|
|
|
|
# int main(void)
|
|
|
|
# {
|
|
|
|
# tgi_install(&a2_hires_drv);
|
|
|
|
# tgi_init();
|
|
|
|
# // Use the graphics driver
|
|
|
|
# tgi_uninstall();
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
# Read the /usr/local/lib/cc65/include/tgi.h file to see what the
|
|
|
|
# driver interface provides. Also check out
|
|
|
|
# /usr/local/lib/cc65/include/apple2.h to see the colour definitions.
|
|
|
|
|
|
|
|
# If you want to link the extended memory driver with your executable,
|
|
|
|
# uncomment the next line.
|
|
|
|
# DRIVERS += auxmem
|
|
|
|
#
|
|
|
|
# To use the auxmem driver, add code which looks like this to your
|
|
|
|
# project:
|
|
|
|
#
|
|
|
|
# #include "drivers/a2_auxmem_drv.h"
|
|
|
|
# int main(void)
|
|
|
|
# {
|
|
|
|
# em_install(&a2_auxmem_drv);
|
|
|
|
# // Use the auxmem driver
|
|
|
|
# em_uninstall();
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
# Read the /usr/local/lib/cc65/include/em.h file to see what the
|
|
|
|
# driver interface provides.
|
|
|
|
|
|
|
|
# If you want to link the joystick driver with your executable,
|
|
|
|
# uncomment the next line.
|
|
|
|
# DRIVERS += joystick
|
|
|
|
#
|
|
|
|
# To use the joystick driver, add code which looks like this to your
|
|
|
|
# project:
|
|
|
|
#
|
|
|
|
# #include "drivers/a2_joystick_drv.h"
|
|
|
|
# int main(void)
|
|
|
|
# {
|
|
|
|
# joy_install(&a2_joystick_drv);
|
|
|
|
# // Use the joystick driver
|
|
|
|
# joy_uninstall();
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
# Read the /usr/local/lib/cc65/include/joystick.h file to see what the
|
|
|
|
# driver interface provides.
|
|
|
|
|
|
|
|
# If you want to link the mouse driver with your executable,
|
|
|
|
# uncomment the next line.
|
|
|
|
# DRIVERS += mouse
|
|
|
|
#
|
|
|
|
# To use the mouse driver, add code which looks like this to your
|
|
|
|
# project:
|
|
|
|
#
|
|
|
|
# #include "drivers/a2_mouse_drv.h"
|
|
|
|
# int main(void)
|
|
|
|
# {
|
|
|
|
# mouse_install(&mouse_def_callbacks, &a2_mouse_drv);
|
|
|
|
# // Use the mouse driver
|
|
|
|
# mouse_uninstall();
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
# Read the /usr/local/lib/cc65/include/mouse.h file to see what the
|
|
|
|
# driver interface provides.
|
|
|
|
|
|
|
|
# If you want to link the serial driver with your executable,
|
|
|
|
# uncomment the next line.
|
|
|
|
# DRIVERS += serial
|
|
|
|
#
|
|
|
|
# To use the serial driver, add code which looks like this to your
|
|
|
|
# project:
|
|
|
|
#
|
|
|
|
# #include "drivers/a2_serial_drv.h"
|
|
|
|
# int main(void)
|
|
|
|
# {
|
|
|
|
# ser_install(&a2_serial_drv);
|
|
|
|
# // Use the serial driver
|
|
|
|
# ser_uninstall();
|
|
|
|
# }
|
|
|
|
#
|
|
|
|
# Read the /usr/local/lib/cc65/include/serial.h file to see what the
|
|
|
|
# driver interface provides.
|
|
|
|
|
2014-10-26 02:32:07 +00:00
|
|
|
# If you have java installed in a non-standard location, you can set
|
|
|
|
# the path to it by uncommenting the following line:
|
|
|
|
# export JAVA=/usr/bin/java
|
|
|
|
|
2018-06-14 02:58:56 +00:00
|
|
|
# If you want to copy one or more files or directories to the target disk
|
|
|
|
# image, add the root directory to this variable. All files will be
|
|
|
|
# copied from the source to the target using the same path from the source.
|
|
|
|
#
|
|
|
|
# For example, if you set COPYDIRS to dir and in your project you have
|
|
|
|
# the following files:
|
|
|
|
# dir/mySystemFile
|
|
|
|
# dir/newDir/anotherFile
|
|
|
|
#
|
|
|
|
# Then, during the copy phase, mySystemFile will be copied into the root
|
|
|
|
# of the disk and anotherFile will be copied into a directory named
|
2018-06-19 03:23:59 +00:00
|
|
|
# newDir. The newDir directory will be created if it does not already
|
|
|
|
# exist.
|
|
|
|
#
|
|
|
|
# The name of the file to copy is checked and if it ends in:
|
|
|
|
# .as - It assumes the file is in AppleSingle format. The .as
|
|
|
|
# suffix is stripped from the name when copied to the
|
|
|
|
# disk image.
|
|
|
|
# .<char> - If the file ends with a single character which matches
|
|
|
|
# a DOS 3.3 file type (A, B, T, etc) it uses that value as
|
|
|
|
# the file type of the file copied to the disk image. The
|
|
|
|
# single character is removed from the file name.
|
|
|
|
# .<TLA> - If the file ends with a three letter alpha extension, it
|
|
|
|
# uses that TLA as the file type of the file copied to the
|
|
|
|
# disk image. The TLA is removed from the file name.
|
|
|
|
#
|
|
|
|
# If you do not provide any type information for your filenames,
|
|
|
|
# it will be copied as a binary.
|
|
|
|
#
|
2018-06-14 02:58:56 +00:00
|
|
|
COPYDIRS=
|
|
|
|
|
|
|
|
# Add any rules you want to execute before any compiles or assembly
|
|
|
|
# commands are called here, if any. You can generate .c, .s or .h
|
|
|
|
# files for example. You can generate data files. Whatever you
|
|
|
|
# might need.
|
|
|
|
gen:
|
|
|
|
|
|
|
|
# For any files you generated in the gen target above, you should
|
|
|
|
# add rules in genclean to remove those generated files when you
|
|
|
|
# clean your build.
|
|
|
|
genclean:
|
2014-08-29 19:10:50 +00:00
|
|
|
|
2014-09-05 04:10:59 +00:00
|
|
|
# Do not change anything else below here...
|
|
|
|
include make/tail.mk
|