mirror of
https://github.com/jeremysrand/Apple2BuildPipeline.git
synced 2025-01-17 19:31:14 +00:00
Merge branch 'jeremysrand:master' into master
This commit is contained in:
commit
c18be375c7
6
Makefile
6
Makefile
@ -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.
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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";
|
||||
}
|
||||
|
33
make/head.mk
33
make/head.mk
@ -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
38
make/merlin-asm
Executable 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
|
110
make/tail.mk
110
make/tail.mk
@ -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 $@ $<
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -164,6 +164,32 @@
|
||||
<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>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>
|
||||
@ -179,7 +205,7 @@
|
||||
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
|
||||
<string>__fastcall__=""</string>
|
||||
<key>HEADER_SEARCH_PATHS</key>
|
||||
<string>/usr/local/lib/cc65/include</string>
|
||||
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
|
||||
</dict>
|
||||
<key>BuildPhases</key>
|
||||
<array>
|
||||
|
@ -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">
|
||||
|
@ -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
|
||||
|
@ -15,6 +15,7 @@
|
||||
<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>
|
||||
@ -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>
|
||||
@ -170,6 +178,32 @@
|
||||
<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>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>
|
||||
@ -185,7 +219,7 @@
|
||||
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
|
||||
<string>__fastcall__=""</string>
|
||||
<key>HEADER_SEARCH_PATHS</key>
|
||||
<string>/usr/local/lib/cc65/include</string>
|
||||
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
|
||||
</dict>
|
||||
<key>BuildPhases</key>
|
||||
<array>
|
||||
|
@ -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">
|
||||
|
@ -164,6 +164,32 @@
|
||||
<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>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>
|
||||
@ -179,7 +205,7 @@
|
||||
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
|
||||
<string>__fastcall__=""</string>
|
||||
<key>HEADER_SEARCH_PATHS</key>
|
||||
<string>/usr/local/lib/cc65/include</string>
|
||||
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
|
||||
</dict>
|
||||
<key>BuildPhases</key>
|
||||
<array>
|
||||
|
@ -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">
|
||||
|
@ -164,6 +164,32 @@
|
||||
<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>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>
|
||||
@ -179,7 +205,7 @@
|
||||
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
|
||||
<string>__fastcall__=""</string>
|
||||
<key>HEADER_SEARCH_PATHS</key>
|
||||
<string>/usr/local/lib/cc65/include</string>
|
||||
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources /usr/local/share/cc65/include</string>
|
||||
</dict>
|
||||
<key>BuildPhases</key>
|
||||
<array>
|
||||
|
@ -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">
|
||||
|
@ -18,7 +18,7 @@ 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
|
||||
|
Loading…
x
Reference in New Issue
Block a user