diff --git a/Makefile b/Makefile
index 4727205..3c9af2f 100644
--- a/Makefile
+++ b/Makefile
@@ -85,6 +85,32 @@ SRCDIRS+=
# the path to it by uncommenting the following line:
# export JAVA=/usr/bin/java
+# 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
+# newDir. Note that the build will _not_ create directories on your
+# destination disk image. You must make sure that this directory
+# exists in the template disk image in the make directory already.
+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:
# Do not change anything else below here...
include make/tail.mk
diff --git a/make/createDiskImage b/make/createDiskImage
index 276c036..9cb1497 100755
--- a/make/createDiskImage
+++ b/make/createDiskImage
@@ -29,10 +29,19 @@ then
fi
APPLECOMMANDER=$1
-MACHINE=$2
-DISKIMAGE=$3
-PROGRAM=$4
-STARTADDR=`echo $5 | sed 's/^0*//'`
+shift
+
+MACHINE=$1
+shift
+
+DISKIMAGE=$1
+shift
+
+PROGRAM=$1
+shift
+
+STARTADDR=`echo $1 | sed 's/^0*//'`
+shift
if [ ! -f "$PROGRAM" ]
then
@@ -206,3 +215,9 @@ then
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE < "$PROGRAM"
fi
+
+for DIR in $*
+do
+ echo Write the code to copy $DIR to the disk image
+ exit 1
+done
diff --git a/make/head.mk b/make/head.mk
index 410608f..9190343 100644
--- a/make/head.mk
+++ b/make/head.mk
@@ -27,3 +27,23 @@ CPU=6502
CFLAGS=
ASMFLAGS=
LDFLAGS=
+
+XCODE_PATH=/Applications/Xcode.app
+XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist
+
+CC65_PLUGIN_PATH=$(HOME)/Library/Developer/Xcode/Plug-ins/cc65.ideplugin
+CC65_PLUGIN_INFO=$(CC65_PLUGIN_PATH)/Contents/Info.plist
+
+XCODE_PLUGIN_COMPATIBILITY=DVTPlugInCompatibilityUUID
+
+
+.PHONY: all gen genclean xcodefix
+
+all:
+ @make xcodefix
+ @make gen
+ @make build
+
+xcodefix:
+ defaults write "$(CC65_PLUGIN_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)s -array `defaults read "$(XCODE_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)`
+
diff --git a/make/tail.mk b/make/tail.mk
index 29d6f5d..32ef931 100644
--- a/make/tail.mk
+++ b/make/tail.mk
@@ -32,10 +32,6 @@ LINK_ARGS=
EXECCMD=
ALLTARGET=$(DISKIMAGE)
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Darwin)
- ALLTARGET=execute
-endif
ifneq ($(START_ADDR),)
# If the MACHINE is set to an option which does not support a variable start
@@ -71,9 +67,9 @@ ifeq ($(filter $(MACHINE), apple2 apple2enh),)
MACHCONFIG += -C $(MACHINE).cfg
endif
-.PHONY: all execute clean
+.PHONY: build execute clean
-all: $(ALLTARGET)
+build: $(ALLTARGET)
clean:
rm -f "$(PGM)"
@@ -90,7 +86,7 @@ $(PGM): $(OBJS)
$(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS)
$(DISKIMAGE): $(PGM)
- make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)"
+ make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(COPYDIRS)
execute: $(DISKIMAGE)
osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)"
diff --git a/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist
index ad1235e..6cfb521 100644
--- a/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist
+++ b/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist
@@ -13,7 +13,8 @@
make/head.mk
make/prodos_template.dsk
make/tail.mk
- make/V2Make.scpt
+ make/V2Make.scpt
+ ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme
Definitions
@@ -82,6 +83,15 @@
Path
Makefile
+
+ ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme
+
+ Group
+
+ Supporting Files
+
+ Path
+ ___PACKAGENAME___.xcscheme
Kind
@@ -130,7 +140,45 @@
Release
-
+
+
+ ProductType
+ com.apple.product-type.tool
+ TargetIdentifier
+ com.apple.dt.commandLineToolTarget
+ Name
+ doNotBuild
+ SharedSettings
+
+ PRODUCT_NAME
+ doNotBuild
+ GCC_PREPROCESSOR_DEFINITIONS
+ __fastcall__=""
+ HEADER_SEARCH_PATHS
+ /usr/local/lib/cc65/include
+
+ BuildPhases
+
+
+ Class
+ Sources
+
+
+ Class
+ Frameworks
+
+
+ Class
+ CopyFiles
+ DstPath
+ /usr/share/man/man1/
+ DstSubfolderSpec
+ 0
+ RunOnlyForDeploymentPostprocessing
+ YES
+
+
+
diff --git a/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/___PACKAGENAME___.xcscheme b/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/___PACKAGENAME___.xcscheme
new file mode 100644
index 0000000..61815a2
--- /dev/null
+++ b/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/___PACKAGENAME___.xcscheme
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist
index 352c1a1..f14f212 100644
--- a/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist
+++ b/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist
@@ -13,7 +13,8 @@
make/head.mk
make/prodos_template.dsk
make/tail.mk
- make/V2Make.scpt
+ make/V2Make.scpt
+ ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme
Definitions
@@ -82,6 +83,15 @@
Path
Makefile
+
+ ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme
+
+ Group
+
+ Supporting Files
+
+ Path
+ ___PACKAGENAME___.xcscheme
Kind
@@ -130,7 +140,45 @@
Release
-
+
+
+ ProductType
+ com.apple.product-type.tool
+ TargetIdentifier
+ com.apple.dt.commandLineToolTarget
+ Name
+ doNotBuild
+ SharedSettings
+
+ PRODUCT_NAME
+ doNotBuild
+ GCC_PREPROCESSOR_DEFINITIONS
+ __fastcall__=""
+ HEADER_SEARCH_PATHS
+ /usr/local/lib/cc65/include
+
+ BuildPhases
+
+
+ Class
+ Sources
+
+
+ Class
+ Frameworks
+
+
+ Class
+ CopyFiles
+ DstPath
+ /usr/share/man/man1/
+ DstSubfolderSpec
+ 0
+ RunOnlyForDeploymentPostprocessing
+ YES
+
+
+
diff --git a/pkg/Templates/Apple II/Apple II C Project.xctemplate/___PACKAGENAME___.xcscheme b/pkg/Templates/Apple II/Apple II C Project.xctemplate/___PACKAGENAME___.xcscheme
new file mode 100644
index 0000000..61815a2
--- /dev/null
+++ b/pkg/Templates/Apple II/Apple II C Project.xctemplate/___PACKAGENAME___.xcscheme
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+