Compare commits

...

17 Commits
2.6 ... master

Author SHA1 Message Date
Jeremy Rand d7dd4797f8 Update signing for the package 2023-09-17 23:25:39 -04:00
Jeremy Rand 8f3940d292 Clean up indenting in template plist files 2023-09-17 23:04:51 -04:00
Jeremy Rand 9ed46d562a
Update README.md 2019-08-09 23:57:22 -04:00
Jeremy Rand f957565ef5 Bump the version number 2019-08-09 23:44:00 -04:00
Jeremy Rand 371edbaa1c Add the build products to the project templates 2019-08-09 00:04:19 -04:00
Jeremy Rand ebbb3add28 Fix bug with copying extra files as part of the build 2019-08-08 22:55:01 -04:00
Jeremy Rand a012826948
Update README.md 2019-07-20 13:45:50 -05:00
Jeremy Rand 31089ad01a Merge branch 'master' of https://github.com/jeremysrand/Apple2BuildPipeline 2019-07-20 13:29:37 -05:00
Jeremy Rand ff3fa53d26 More cleanup of the Makefile to make things clearer for generated files 2019-07-20 13:29:19 -05:00
Jeremy Rand 24422041e0
Update README.md 2019-07-20 11:52:12 -05:00
Jeremy Rand 8dbbb22624 Update Makefile comments to describe the new GENDIR variable 2019-07-20 11:27:59 -05:00
Jeremy Rand e5e042f0a4
Update README.md 2019-07-20 11:05:26 -05:00
Jeremy Rand d685336160 Bump the version number 2019-07-20 10:52:08 -05:00
Jeremy Rand eca46476a1 Move all build products to the standard Xcode directories. Eliminate support for the old version of cc65 because I don't want to test it 2019-07-20 10:46:32 -05:00
Jeremy Rand 05c15ce006 Fix the error message format so they work again with the latest Xcode. 2019-07-19 15:31:57 -05:00
Jeremy Rand 8a578abf08 Ensure that the include path for the old and new version of the cc65 package is correct so auto-complete in C works in both cases. 2019-07-04 22:31:11 -04:00
Jeremy Rand 7e0b7d5411
Add acknowledgment 2018-10-18 21:24:22 -04:00
21 changed files with 508 additions and 259 deletions

View File

@ -52,7 +52,8 @@ PGM=___PACKAGENAME___
# will only produce 8-bit code.
# Add any other directories where you are putting C or assembly source
# files to this list:
# files to this list. Note that if you are generating source files into
# $(GENDIR), you should add $(GENDIR) to SRCDIRS here:
SRCDIRS+=
# If you have a non-standard cc65 install, you may need to change
@ -236,6 +237,9 @@ COPYDIRS=
# files for example. You can generate data files. Whatever you
# might need.
#
# You should generate these files in the $(GENDIR) directory or
# within a subdirectory under $(GENDIR) which you create yourself.
#
# All of your commands associated with a rule _must_ start with a tab
# character. Xcode makes it a bit tough to type a tab character by
# default. Press option-tab within Xcode to insert a tab character.

View File

@ -30,9 +30,9 @@ Mac OS X Installation:
In order to use this infrastructure from Mac OS X, follow these instructions:
1. Install [Xcode from Apple](https://itunes.apple.com/us/app/xcode/id497799835?mt=12&uo=4). Xcode is generally the most popular app in the Mac App Store in the "Developer Tools" category. Xcode is free and you do not need to be a registered Apple developer to download and use it, especially if you are building Apple II programs. I am generally running the latest version of Xcode so if you are trying to use these templates with an old version, you may run into problems.
2. Install the [Apple II project templates](https://github.com/jeremysrand/Apple2BuildPipeline/releases/download/2.6/AppleXcodeTemplate.pkg).
2. Install the [Apple II project templates](https://github.com/jeremysrand/Apple2BuildPipeline/releases/download/2.7.3/AppleXcodeTemplate.pkg).
3. Install and setup [Virtual II](http://www.virtualii.com).
4. If you plan to use cc65 based projects, install the [cc65 v2.17 package](https://github.com/jeremysrand/Apple2BuildPipeline/releases/download/2.6/cc65-2.17.pkg) or the older [cc65 v2.13.3 package](https://github.com/jeremysrand/Apple2BuildPipeline/releases/download/1.0/cc65.2.13.3.pkg). Both versions should work with the latest project templates but all of my testing from now on will be with the newer version. I haven't tested without cc65 installed but in theory, if you only plan to use Applesoft or Merlin32 based projects, you don't need to install cc65.
4. If you plan to use cc65 based projects, install the [cc65 v2.17 package](https://github.com/jeremysrand/Apple2BuildPipeline/releases/download/2.6/cc65-2.17.pkg). Both versions should work with the latest project templates but all of my testing from now on will be with the newer version. I haven't tested without cc65 installed but in theory, if you only plan to use Applesoft or Merlin32 based projects, you don't need to install cc65.
5. If you plan to use Merlin32 based projects, install the [Merlin32 binaries and libraries](https://www.brutaldeluxe.fr/products/crossdevtools/merlin/). By default, the build system assumes you have installed the Merlin32 binary in /usr/local/bin and put the library macro files in /usr/local/lib/Merlin. If you installed them somewhere else, you can override these location in your projects.
Note that on your first launch of Xcode after installing the project templates, you may be asked if it is OK to load a cc65 plug-in bundle. You should allow this to load. If you do not do this, syntax highlighting and code completion will not work in assembly or Applesoft files.
@ -91,9 +91,7 @@ Common Problems:
----------------
There are some known issues which can crop up:
* If you are using Xcode 10, you may have problems with its new build system. Common problems are errors not propagating from the build back to the appropriate line of code and issues trying to clean your build. For now, I recomment everyone using Xcode 10 select File->Project Settings... and under "Shared Project Settings", set the "Build System" to "Legacy Build System". I will try to figure out what the problems are with the new build system so this isn't required in the future. If you have any information about what the issue may be, please contact me.
* If you aren't seeing the "ca65 Assembly" option under Editor->Syntax Coloring, you may be having an Xcode compatibility problem. These syntax colouring files are provided as part of an Xcode plugin and plugins must advertize their compatibility. During install, the plugin is set to be compatible with the version of Xcode you have. If you upgrade Xcode, the plugin will be assumed to be incompatible and will not be loaded. To workaround this, we force the plugin to be marked as compatible on every build of a Apple II target. So, you should do a build and then quit and re-launch Xcode. You should see a warning asking if you want to load the plugin and if you allow the plugin to load, you should see the ca65 syntax colouring option.
* If you see permissions problems when you do a build, chances are good that the permissions on the Xcode plugin directory is wrong. The best way to fix this is to run "sudo chmod -R a+rwx ~/Library/Developer/Xcode/Plug-ins". You will need to provide a password when you run this command. I am unsure why some people seem to have bad permissions on this directory and I cannot reproduce the problem, even with a clean install of MacOS. If you have any information on why this is happening, please let me know. Thanks.
If these suggestions do not help or you are having some other problem, please contact me and I will try to help you out.
@ -114,3 +112,5 @@ Acknowledgements:
-----------------
Thanks to Quinn Dunki and Carrington Vanston who were instrumental in getting this working. [Carrington's presentation](http://monsterfeet.com/kfest/) at KansasFest 2014 is where the basic concepts of a better Apple II build environment were demonstrated. [Quinn built on that](http://quinndunki.com/blondihacks/?p=1904) and included support for automatically starting the program in Virtual II using Applescript. Without their work, I wouldn't have been able to create this. Thanks!
Kris Kennaway provided some patches to the build pipeline providing cc65 v2.17 support. This was instrumental in getting v2.6 of the build pipeline released. I appreciate the support.

View File

@ -7,7 +7,7 @@ merlinStartAddr() {
if [ $# -lt 5 ]
then
echo USAGE: $0 '<AppleCommander> <machine> <diskimage> <binary>'
echo USAGE: $0 '<AppleCommander> <machine> <diskimage> <binary> <startaddress> <otherfilesordirs...>'
exit 1
fi
@ -318,7 +318,7 @@ do
# to copy to the disk image.
if [ -f "$ITEM" ] && echo "$ITEM" | grep '\.tok$' > /dev/null
then
DESTFILE=`echo "$ITEM" | sed 's/\.tok$//'`
DESTFILE=`basename "$ITEM" | sed 's/\.tok$//'`
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$DESTFILE" "$BASICFILETYPE" 0x801 < "$ITEM"
continue
fi
@ -363,9 +363,9 @@ do
# If the file type is text, convert the line feeds to carriage return
if [ $FILETYPE = txt ] || [ $FILETYPE = T ]
then
tr '\n' '\r' < $FILE | "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE
tr '\n' '\r' < $FILE | "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$DISKIMAGE" "$DESTFILE" $FILETYPE
else
"$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE
"$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE
fi
done

View File

@ -35,7 +35,7 @@ while (<FILE>) {
$file =~ s/\.s$/.c/;
}
$_ = "$pwd/$file:$lineno:0: Error: $unresolvedRefError";
$_ = "$pwd/$file:$lineno:0: error: $unresolvedRefError";
} else {
$unresolvedRefError = undef;
}
@ -49,7 +49,7 @@ while (<FILE>) {
my $lineno = $2;
my $error = $3;
$_ = "$pwd/$file:$lineno:0:$error";
$_ = "$pwd/$file:$lineno:0: error: $error";
}
print STDERR "$_\n";
}

View File

@ -24,20 +24,47 @@ CC65=$(CC65_BIN)/cc65
CO65=$(CC65_BIN)/co65
MERLIN_DIR=/usr/local
MERLIN_BIN=$(MERLIN_DIR)/bin/Merlin32
MERLIN_LIB=$(MERLIN_DIR)/lib/Merlin
export MERLIN_BIN=$(MERLIN_DIR)/bin/Merlin32
export MERLIN_LIB=$(MERLIN_DIR)/lib/Merlin
MERLIN_ASM=make/merlin-asm
AC=make/AppleCommander.jar
SRCDIRS=.
# Check for Xcode build variables for the locations of build outputs and fall back
# to the current directory if not set.
ifeq ($(OBJECT_FILE_DIR),)
OBJDIR=.
else
export OBJECT_FILE_DIR
OBJDIR=$(OBJECT_FILE_DIR)
endif
ifeq ($(DERIVED_SOURCES_DIR),)
GENDIR=.
else
export DERIVED_SOURCES_DIR
GENDIR=$(DERIVED_SOURCES_DIR)
endif
ifeq ($(TARGET_BUILD_DIR),)
TARGETDIR=.
else
export TARGET_BUILD_DIR
TARGETDIR=$(TARGET_BUILD_DIR)
endif
MACHINE=apple2
CPU=6502
CFLAGS=
ASMFLAGS=
LDFLAGS=
DRIVERS=
DRVDIR=drivers
DRVDIR=$(GENDIR)/drivers
MKDIR=mkdir -p
XCODE_PATH=/Applications/Xcode.app
XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist

38
make/merlin-asm Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
ERROUTPUT=/tmp/merlin-err.$$
LINKSCRIPT="$1"
shift
OUTFILE="$1"
shift
TARGETOUTPUT="$1"
shift
cleanup()
{
rm -r error_output.txt
rm -f _FileInformation.txt
rm -f _Output.txt
rm -f "$ERROUTPUT"
}
"$MERLIN_BIN" -V "$MERLIN_LIB" "$LINKSCRIPT" 2>&1 | tee "$ERROUTPUT"
if [ ! -f "$OUTFILE" ]
then
cat error_output.txt
tr "'" '"' < "$ERROUTPUT" |
grep '\[Error\]' |
sed 's!^.*\[Error\] \(.*file "\([^"]*\.s\)".*line \([1-9][0-9]*\).*\)$!'`pwd`'/\2:\3:0: error: \1!' |
sed 's!^.*\[Error\] \(.*line \([1-9][0-9]*\).*file "\([^"]*\.s\)".*\)$!'`pwd`'/\3:\2:0: error: \1!'
cleanup
exit 1
fi
mv "$OUTFILE" "$TARGETOUTPUT"
cleanup
exit 0

View File

@ -14,12 +14,14 @@ BUILD_TYPE := $(shell if echo $(MACHINE) | grep -q -- -basic; then echo basic; e
CWD=$(shell pwd)
DISKIMAGE=$(PGM).dsk
DISKIMAGE=$(TARGETDIR)/$(PGM).dsk
EXECCMD=
BASIC_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.bas, $(SRCDIRS))))
BASIC_OBJS=$(BASIC_SRCS:.bas=.tok)
vpath $(GENDIR)
BASIC_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.bas, $(SRCDIRS)))))
BASIC_OBJS=$(patsubst %.bas, $(TARGETDIR)/%.tok, $(BASIC_SRCS))
ifeq ($(BUILD_TYPE),cc65)
export PATH := $(PATH):$(CC65_BIN)
@ -33,50 +35,37 @@ ifeq ($(BUILD_TYPE),cc65)
BASE_MACHINE = apple2enh
endif
CC65_VERSION := $(shell $(CC65) --version 2>&1 | grep '^cc65 V')
export CC65_SUPPORTS_APPLE_SINGLE=1
CC65_CREATE_DEP_ARG=--create-dep $(@:.o=.u)
CC65_LIST_ARG=-l $(@:.o=.lst)
CC65_DRV_DIR=$(CC65_HOME)/target/$(BASE_MACHINE)/drv
ifeq ($(CC65_VERSION),cc65 V2.13.3)
export CC65_SUPPORTS_APPLE_SINGLE=0
CC65_CREATE_DEP_ARG=--create-dep
CC65_LIST_ARG=-l
CC65_DRV_DIR=$(CC65_HOME)
MACHCONFIG= -t $(BASE_MACHINE)
ifeq ($(filter $(MACHINE), apple2 apple2enh),)
MACHCONFIG += -C $(MACHINE).cfg
endif
MACHCONFIG= -t $(BASE_MACHINE)
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
MACHCONFIG += -C $(BASE_MACHINE)-system.cfg
else
export CC65_SUPPORTS_APPLE_SINGLE=1
CC65_CREATE_DEP_ARG=--create-dep $(@:.o=.u)
CC65_LIST_ARG=-l $(@:.o=.lst)
CC65_DRV_DIR=$(CC65_HOME)/target/$(BASE_MACHINE)/drv
MACHCONFIG= -t $(BASE_MACHINE)
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
MACHCONFIG += -C $(BASE_MACHINE)-system.cfg
ifeq ($(PROJECT_TYPE),ca65)
MACHCONFIG += -C $(BASE_MACHINE)-asm.cfg
LDFLAGS += -u __EXEHDR__
else
ifeq ($(PROJECT_TYPE),ca65)
MACHCONFIG += -C $(BASE_MACHINE)-asm.cfg
LDFLAGS += -u __EXEHDR__
else
MACHCONFIG += -C $(BASE_MACHINE).cfg
endif
endif
MACHCONFIG += -C $(BASE_MACHINE).cfg
endif
endif
CFLAGS+=-I $(GENDIR)
ifneq ($(DRIVERS),)
SRCDIRS+=$(DRVDIR)
endif
C_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS))))
C_OBJS=$(C_SRCS:.c=.o)
C_DEPS=$(C_SRCS:.c=.u)
C_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS)))))
C_OBJS=$(patsubst %.c, $(OBJDIR)/%.o, $(C_SRCS))
C_DEPS=$(patsubst %.c, $(OBJDIR)/%.u, $(C_SRCS))
ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS))))
ASM_OBJS=$(ASM_SRCS:.s=.o)
ASM_LSTS=$(ASM_SRCS:.s=.lst)
ASM_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS)))))
ASM_OBJS=$(patsubst %.s, $(OBJDIR)/%.o, $(ASM_SRCS))
ASM_LSTS=$(patsubst %.s, $(OBJDIR)/%.lst, $(ASM_SRCS))
MAPFILE=$(PGM).map
MAPFILE=$(TARGETDIR)/$(PGM).map
ifneq ($(START_ADDR),)
# If the MACHINE is set to an option which does not support a variable
@ -113,7 +102,7 @@ endif
ifeq ($(BUILD_TYPE),merlin)
ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS))))
MAPFILE=_Output.txt
MAPFILE=$(TARGETDIR)/_Output.txt
EXECCMD=$(shell echo brun $(PGM) | tr '[a-z]' '[A-Z]')
endif
@ -122,7 +111,7 @@ ifeq ($(BUILD_TYPE),basic)
EXECCMD=$(shell echo run $(PGM) | tr '[a-z]' '[A-Z]')
endif
OBJS=$(C_OBJS) $(ASM_OBJS) $(BASIC_OBJS)
OBJS=$(C_OBJS) $(ASM_OBJS)
ALLTARGET=$(DISKIMAGE)
@ -131,13 +120,14 @@ ALLTARGET=$(DISKIMAGE)
build: $(ALLTARGET)
$(DISKIMAGE): $(PGM)
make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(BASIC_OBJS) $(COPYDIRS)
$(DISKIMAGE): $(TARGETDIR)/$(PGM) $(BASIC_OBJS)
make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(TARGETDIR)/$(PGM)" "$(START_ADDR)" $(BASIC_OBJS) $(COPYDIRS)
execute: $(DISKIMAGE)
osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)"
osascript make/V2Make.scpt "$(TARGETDIR)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)"
%.tok: %.bas
$(TARGETDIR)/%.tok: %.bas
$(MKDIR) `dirname $@`
make/bt $< $(BASICFLAGS) -o $@
ifneq ($(DRIVERS),)
@ -150,7 +140,7 @@ cleandrivers:
endif
clean: genclean cleandrivers
rm -f "$(PGM)" $(OBJS) $(C_DEPS) $(MAPFILE) $(ASM_LSTS) "$(DISKIMAGE)"
rm -f "$(TARGETDIR)/$(PGM)" $(OBJS) $(BASIC_OBJS) $(C_DEPS) $(MAPFILE) $(ASM_LSTS) "$(DISKIMAGE)"
cleanMacCruft:
rm -rf pkg
@ -165,10 +155,10 @@ xcodefix:
ifeq ($(BUILD_TYPE),basic)
# Build rules for BASIC projects
$(PGM): $(OBJS)
cp $(PGM).tok $(PGM)
$(TARGETDIR)/$(PGM): $(BASIC_OBJS)
cp $(TARGETDIR)/$(PGM).tok $(TARGETDIR)/$(PGM)
$(OBJS): Makefile
$(BASIC_OBJS): Makefile
endif
@ -177,9 +167,10 @@ endif
ifeq ($(BUILD_TYPE),merlin)
# Build rules for Merlin projects
$(PGM): $(ASM_SRCS) Makefile
$(MERLIN_BIN) -V $(MERLIN_LIB) linkscript.s
rm -f _FileInformation.txt
$(TARGETDIR)/$(PGM): $(ASM_SRCS) Makefile
$(MKDIR) $(TARGETDIR)
rm -f $(TARGETDIR)/$(PGM)
$(MERLIN_ASM) linkscript.s $(PGM) $(TARGETDIR)/$(PGM)
endif
@ -187,17 +178,30 @@ endif
ifeq ($(BUILD_TYPE),cc65)
# Build rules for cc65 projects
$(PGM): $(OBJS)
make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS)
$(TARGETDIR)/$(PGM): $(OBJS)
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(TARGETDIR)/$(PGM)" $(OBJS)
$(OBJS): Makefile
%.o: %.c
$(OBJDIR)/%.o: %.c
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) $(CC65_CREATE_DEP_ARG) -c -o $@ $<
sed -i .bak 's/\.s:/.o:/' $(@:.o=.u)
rm -f $(@:.o=.u).bak
%.o: %.s
$(OBJDIR)/%.o: $(GENDIR)/%.c
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) $(CC65_CREATE_DEP_ARG) -c -o $@ $<
sed -i .bak 's/\.s:/.o:/' $(@:.o=.u)
rm -f $(@:.o=.u).bak
$(OBJDIR)/%.o: %.s
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) $(CC65_LIST_ARG) -c -o $@ $<
$(OBJDIR)/%.o: $(GENDIR)/%.s
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) $(CC65_LIST_ARG) -c -o $@ $<

View File

@ -24,7 +24,8 @@ MACHINE = apple2-basic
# MACHINE = apple2-dos33-basic
# Add any other directories where you are putting other BASIC files
# to this list:
# to this list. Note that if you are generating source files into
# $(GENDIR), you should add $(GENDIR) to SRCDIRS here:
SRCDIRS+=
# If you want to add arguments to the BASIC tokenizer commandline,
@ -70,6 +71,13 @@ COPYDIRS=
# 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.
#
# You should generate these files in the $(GENDIR) directory or
# within a subdirectory under $(GENDIR) which you create yourself.
#
# All of your commands associated with a rule _must_ start with a tab
# character. Xcode makes it a bit tough to type a tab character by
# default. Press option-tab within Xcode to insert a tab character.
gen:
# For any files you generated in the gen target above, you should

View File

@ -16,8 +16,8 @@
<string>make/head.mk</string>
<string>make/prodos_template.dsk</string>
<string>make/tail.mk</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -107,7 +107,7 @@
<dict>
<key>Path</key>
<string>Makefile</string>
</dict>
</dict>
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
<dict>
<key>Group</key>
@ -164,45 +164,71 @@
<key>Release</key>
<dict/>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>/usr/local/lib/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.dsk</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -64,6 +64,18 @@
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">

View File

@ -41,7 +41,8 @@ MACHINE = apple2-merlin
# files to this list. Note that you must manually add all source files
# to the linkscript.s file. All this does is help the build system
# see what files it should consider important to deciding whether to do
# a re-build.
# a re-build. Note that if you are generating source files into
# $(GENDIR), you should add $(GENDIR) to SRCDIRS here:
SRCDIRS+=
# If you want to add arguments to the BASIC tokenizer commandline,
@ -87,6 +88,13 @@ COPYDIRS=
# 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.
#
# You should generate these files in the $(GENDIR) directory or
# within a subdirectory under $(GENDIR) which you create yourself.
#
# All of your commands associated with a rule _must_ start with a tab
# character. Xcode makes it a bit tough to type a tab character by
# default. Press option-tab within Xcode to insert a tab character.
gen:
# For any files you generated in the gen target above, you should

View File

@ -15,10 +15,11 @@
<string>make/dos33_template.dsk</string>
<string>make/errorFilter.sh</string>
<string>make/head.mk</string>
<string>make/merlin-asm</string>
<string>make/prodos_template.dsk</string>
<string>make/tail.mk</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -46,6 +47,13 @@
<key>Path</key>
<string>make/errorFilter.sh</string>
</dict>
<key>make/merlin-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/merlin-asm</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
@ -113,7 +121,7 @@
<dict>
<key>Path</key>
<string>Makefile</string>
</dict>
</dict>
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
<dict>
<key>Group</key>
@ -122,7 +130,7 @@
</array>
<key>Path</key>
<string>___PACKAGENAME___.xcscheme</string>
</dict>
</dict>
</dict>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
@ -170,45 +178,71 @@
<key>Release</key>
<dict/>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>/usr/local/lib/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.dsk</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -64,6 +64,18 @@
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">

View File

@ -16,8 +16,8 @@
<string>make/head.mk</string>
<string>make/prodos_template.dsk</string>
<string>make/tail.mk</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -107,7 +107,7 @@
<dict>
<key>Path</key>
<string>Makefile</string>
</dict>
</dict>
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
<dict>
<key>Group</key>
@ -116,7 +116,7 @@
</array>
<key>Path</key>
<string>___PACKAGENAME___.xcscheme</string>
</dict>
</dict>
</dict>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
@ -164,45 +164,71 @@
<key>Release</key>
<dict/>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>/usr/local/lib/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.dsk</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -64,6 +64,18 @@
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">

View File

@ -16,8 +16,8 @@
<string>make/head.mk</string>
<string>make/prodos_template.dsk</string>
<string>make/tail.mk</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -107,7 +107,7 @@
<dict>
<key>Path</key>
<string>Makefile</string>
</dict>
</dict>
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
<dict>
<key>Group</key>
@ -164,45 +164,71 @@
<key>Release</key>
<dict/>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>/usr/local/lib/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.dsk</string>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -64,6 +64,18 @@
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.applesoft</string>
</array>
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.applesoft</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
<key>Description</key>
@ -16,5 +16,5 @@
<string>___FILEBASENAME___.bas</string>
<key>Summary</key>
<string>An Applesoft BASIC source file</string>
</dict>
</dict>
</plist>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.merlin</string>
</array>
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.merlin</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
<key>Description</key>
@ -16,5 +16,5 @@
<string>___FILEBASENAME___.s</string>
<key>Summary</key>
<string>A Merlin assembly source file</string>
</dict>
</dict>
</plist>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.ca65</string>
</array>
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.ca65</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
<key>Description</key>
@ -16,5 +16,5 @@
<string>___FILEBASENAME___.s</string>
<key>Summary</key>
<string>A ca65 assembly source file</string>
</dict>
</dict>
</plist>

View File

@ -18,10 +18,10 @@ cp -R make $TMPDIR/Templates/'Apple II/Apple II Basic Project.xctemplate/'
cp -R make $TMPDIR/Templates/'Apple II/Apple II Merlin Project.xctemplate/'
pkgbuild --root $TMPDIR --version 2.6 --identifier com.halcyontouch.Apple2Template.pkg --install-location /Library/Developer/Xcode/ --scripts pkg/scripts/ AppleXcodeTemplate.pkg
pkgbuild --root $TMPDIR --version 2.7.3 --identifier com.halcyontouch.Apple2Template.pkg --install-location /Library/Developer/Xcode/ --scripts pkg/scripts/ AppleXcodeTemplate.pkg
productbuild --distribution pkg/Distribution.xml --resource ./pkg temp.pkg
rm AppleXcodeTemplate.pkg
productsign --sign "Developer ID Installer" temp.pkg AppleXcodeTemplate.pkg
productsign --sign "3rd Party Mac Developer Installer" temp.pkg AppleXcodeTemplate.pkg
rm temp.pkg
rm -rf $TMPDIR