mirror of
https://github.com/jeremysrand/Apple2BuildPipeline.git
synced 2024-12-21 10:29:35 +00:00
Add a gen phase to the build. Add the xcode compatibility fix to the build. Add the option to copy files to the disk image to the build but the copy script does not yet do the copies. Separate the build from build and run targets in xcode for Apple II projects. Add a doNotBuild target with the appropriate build settings so we get code completion working even with cc65 header files.
This commit is contained in:
parent
e9183b8877
commit
0d9c1a6333
26
Makefile
26
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
|
||||
|
@ -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
|
||||
|
20
make/head.mk
20
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)`
|
||||
|
||||
|
10
make/tail.mk
10
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)"
|
||||
|
@ -13,7 +13,8 @@
|
||||
<string>make/head.mk</string>
|
||||
<string>make/prodos_template.dsk</string>
|
||||
<string>make/tail.mk</string>
|
||||
<string>make/V2Make.scpt</string>
|
||||
<string>make/V2Make.scpt</string>
|
||||
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
|
||||
</array>
|
||||
<key>Definitions</key>
|
||||
<dict>
|
||||
@ -82,6 +83,15 @@
|
||||
<dict>
|
||||
<key>Path</key>
|
||||
<string>Makefile</string>
|
||||
</dict>
|
||||
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
|
||||
<dict>
|
||||
<key>Group</key>
|
||||
<array>
|
||||
<string>Supporting Files</string>
|
||||
</array>
|
||||
<key>Path</key>
|
||||
<string>___PACKAGENAME___.xcscheme</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Kind</key>
|
||||
@ -130,7 +140,45 @@
|
||||
<key>Release</key>
|
||||
<dict/>
|
||||
</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>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
98
pkg/Templates/Apple II/Apple II Asm Project.xctemplate/___PACKAGENAME___.xcscheme
vendored
Normal file
98
pkg/Templates/Apple II/Apple II Asm Project.xctemplate/___PACKAGENAME___.xcscheme
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
|
||||
BuildableName = "___PACKAGENAME___"
|
||||
BlueprintName = "___PACKAGENAME___"
|
||||
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/usr/bin/make">
|
||||
</PathRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
|
||||
BuildableName = "___PACKAGENAME___"
|
||||
BlueprintName = "___PACKAGENAME___"
|
||||
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "-C"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
<CommandLineArgument
|
||||
argument = "$PROJECT_DIR/___PACKAGENAME___"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
<CommandLineArgument
|
||||
argument = "execute"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
</CommandLineArguments>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
|
||||
BuildableName = "___PACKAGENAME___"
|
||||
BlueprintName = "___PACKAGENAME___"
|
||||
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
@ -13,7 +13,8 @@
|
||||
<string>make/head.mk</string>
|
||||
<string>make/prodos_template.dsk</string>
|
||||
<string>make/tail.mk</string>
|
||||
<string>make/V2Make.scpt</string>
|
||||
<string>make/V2Make.scpt</string>
|
||||
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
|
||||
</array>
|
||||
<key>Definitions</key>
|
||||
<dict>
|
||||
@ -82,6 +83,15 @@
|
||||
<dict>
|
||||
<key>Path</key>
|
||||
<string>Makefile</string>
|
||||
</dict>
|
||||
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
|
||||
<dict>
|
||||
<key>Group</key>
|
||||
<array>
|
||||
<string>Supporting Files</string>
|
||||
</array>
|
||||
<key>Path</key>
|
||||
<string>___PACKAGENAME___.xcscheme</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Kind</key>
|
||||
@ -130,7 +140,45 @@
|
||||
<key>Release</key>
|
||||
<dict/>
|
||||
</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>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
98
pkg/Templates/Apple II/Apple II C Project.xctemplate/___PACKAGENAME___.xcscheme
vendored
Normal file
98
pkg/Templates/Apple II/Apple II C Project.xctemplate/___PACKAGENAME___.xcscheme
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0830"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
|
||||
BuildableName = "___PACKAGENAME___"
|
||||
BlueprintName = "___PACKAGENAME___"
|
||||
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/usr/bin/make">
|
||||
</PathRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
|
||||
BuildableName = "___PACKAGENAME___"
|
||||
BlueprintName = "___PACKAGENAME___"
|
||||
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "-C"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
<CommandLineArgument
|
||||
argument = "$PROJECT_DIR/___PACKAGENAME___"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
<CommandLineArgument
|
||||
argument = "execute"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
</CommandLineArguments>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
|
||||
BuildableName = "___PACKAGENAME___"
|
||||
BlueprintName = "___PACKAGENAME___"
|
||||
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
Loading…
Reference in New Issue
Block a user