Targeting Mac OS
1 Introduction
-
- Read the Release Notes!
-
- What's New in This Release
-
- What's in This Manual
-
- CodeWarrior Documentation
-
- Adobe Acrobat Indexes
-
- Where to Go from Here
2 Getting Started
-
- System Requirements
-
- Installing CodeWarrior for Mac OS
-
- CodeWarrior Compiler Architecture
-
- Development Tools for Mac OS
-
- CodeWarrior IDE
-
- CodeWarrior Compiler for Mac OS
-
- CodeWarrior Assembler for Mac OS
-
- CodeWarrior Linker for Mac OS
-
- CodeWarrior Debugger for Mac OS
-
- Metrowerks Standard Libraries
-
- CodeWarrior Development Process
3 Application Projects
-
- Application Overview
-
- Mac OS Application Types
-
- Application Finder Types
-
- Developer References
-
- Creating Application Projects
-
- Application Project Stationery
-
- 68K and CFM68K Application Stationery
-
- Power PC Application Stationery
-
- Fat Application Stationery
-
- Carbon Application Stationery
-
- Application Project Target Options
-
- 68K and CFM68K Application Options
-
- Power PC Application Options
-
- Fat Application Options
-
- Carbon Application Options
-
- Application Project Libraries
-
- 68K and CFM68K Application Libraries
-
- Power PC Application Libraries
-
- Fat Application Libraries
-
- Carbon Application Libraries
-
- Altivec Application Libraries
-
- Creating Fat Applications
-
- Using Multiple Targets
-
- Using Subprojects
-
- Application Project Notes
-
- Library Naming Conventions
-
- Using #if in Source Code
-
- SIOUX
4 Library Projects
-
- Libraries Overview
-
- Developer References
-
- Static Library Projects
-
- Types of Static Libraries
-
- Creating Static Libraries
-
- Static Library Stationery
-
- Static Library Project Target Options
-
- Static Library Project Libraries
-
- Shared Library Projects
-
- Types of Shared Libraries
-
- Creating Shared Libraries
-
- Creating a Fat Shared Library
-
- Shared Library Stationery
-
- Shared Library Project Target Options
-
- Shared Library Project Libraries
-
- Exporting Library Symbols
-
- Library Project Notes
-
- Special Library Linker Options
-
- Ignored Linker Warnings
5 Code Resource Projects
-
- Code Resource Overview
-
- Code Resource Types
-
- Developer References
-
- Creating Code Resources
-
- Saving Code Resource Files
-
- Code Resource Stationery Options
-
- Code Resource Target Options
-
- 68K Code Resource Options
-
- PPC Code Resource Options
-
- Fat Code Resource Options
-
- Code Resource Library Options
-
- 68K Code Resource Libraries
-
- PPC Code Resource Libraries
-
- Fat Code Resource Libraries
-
- Custom Code Resource Options
-
- Accessing Global Data from 68K Code Resources
-
- Creating 68K Custom Headers
-
- Calling PowerPC Code Resources
6 Adding Project Resources
-
- Adding Resource Files to a Project
-
- Adding Rez files to a Project
-
- Placing a Resource File in the Project Folder
-
- Creating a Rez file from a Resource File
7 Porting Projects to Carbon
-
- Carbon Information
-
- Setting Up a Carbon Development System
-
- CarbonLib
-
- Universal Interfaces
-
- Porting a Mac OS Project to Carbon Example
-
- Carbon Source Changes in SillyBallsCarbon
8 Mac OS Target Settings
-
- Target Settings Overview
-
- Common Target Option Panels
-
- Target Settings panel
-
- Output Flags panel
-
- Rez panel
-
- PowerPC Target Option Panels
-
- PPC Target panel
-
- PPC Target: Application pane
-
- PPC Target: Shared Library pane
-
- PPC Target: Code Resource pane
-
- PPC Target: Library pane
-
- PPC Target: Stub Library pane
-
- PPCAsm panel
-
- PPC Processor panel
-
- PPC Disassembler panel
-
- Mac OS Packager panel
-
- PPC Linker panel
-
- PPC PEF panel
-
- 68K Target Option Panels
-
- 68K Target panel
-
- 68K Target: Application pane
-
- 68K Target: CFM68K Application pane
-
- 68K Target: Code Resource pane
-
- 68K Target: Library pane
-
- 68K Target: CFM68K Shared Library pane
-
- 68K Target: MPW Tool pane
-
- 68K Processor panel
-
- 68K Disassembler panel
-
- 68K Linker panel
-
- CFM68K panel
-
- Fat Target Option Panels
-
- Mac OS Merge
-
- Alphabetical List of Target Setting Options
-
- 4-Byte Ints
-
- 68020 Codegen
-
- 8-Byte Doubles
-
- A4 relative data
-
- A5 relative data
-
- Alignment
-
- AltiVec Programming Model
-
- Assembler Dialect
-
- Case Sensitive
-
- CFM68K library
-
- Code Model
-
- Code Sorting
-
- Collapse Unused TOC-reloads
-
- Comments
-
- Copy Code Fragments
-
- Copy Resources
-
- Create alias to Classic executable
-
- Create PkgInfo file
-
- Creator
-
- Current Version
-
- Dead-strip Static Initialization Code
-
- Disable All Warnings
-
- Disassemble Exception Tables
-
- Display Dialog
-
- Escape Control Chars
-
- Expand Uninitialized Data
-
- Export Symbols
-
- Extended Resource
-
- Far Data
-
- Far Data Threshold
-
- Far Method Tables
-
- Far String Constants
-
- Fast Link
-
- File Flags
-
- File locked
-
- File Name
-
- Filter Mode
-
- Finder Flags
-
- Floating Point
-
- Folder to package
-
- Force Indirect Access
-
- Fragment Name
-
- Full Path in SYM Files
-
- Generate A6 Stack Frames
-
- Generate Link Map
-
- Generate Profiler Information
-
- Generate SYM File
-
- Generate VRSAVE Instructions
-
- Global Data Alignment
-
- Has been inited
-
- Has bundle
-
- Has custom icon
-
- Header Type
-
- Initialization
-
- Invisible
-
- Label
-
- Library Folder ID
-
- Library SubFolder ID
-
- Link Mode
-
- Link Single Segment
-
- Linker
-
- MacsBug Symbols
-
- Main
-
- Make Strings Read-Only
-
- Max String Width
-
- Merge Compiler Glue into Segment 1
-
- Merge to File
-
- Minimum Heap Size
-
- MPW C Calling Conventions
-
- Name locked
-
- Old Definition
-
- Old Implementation
-
- Only Show Operands and Mnemonics
-
- Output Directory
-
- Package Creator Type
-
- Package File Type
-
- PalmOS library
-
- PC-Relative Strings
-
- Peephole Optimization
-
- Perform Typechecking
-
- Post-Linker
-
- Preferred Heap Size
-
- Prefix File
-
- Pre-Linker
-
- Printer Driver is MultiFinder Compatible
-
- Processor Specific Instructions
-
- Profiler Information
-
- Project Type
-
- Resource Flags
-
- Resource Map is Read-only
-
- Resource Name
-
- ResType
-
- ResID
-
- RSEG Application
-
- Save Project Entries Using Relative Paths
-
- Schedule Instructions
-
- Script Language
-
- SegType
-
- Share Data
-
- Share Data Section
-
- Shared
-
- Show Code Modules
-
- Show Data Modules
-
- Show Name Table
-
- Show Source Code
-
- Show SYM Info
-
- 'SIZE' Flags
-
- Skip Resource Types
-
- Stack Size
-
- Startup Code
-
- Stationery
-
- Store Small Static Data in TOC
-
- Store Static Vector Data in TOC
-
- Struct Alignment
-
- Suppress Warnings
-
- Suppress Warnings for Redeclared Resource Types
-
- Suppress Warning Messages
-
- Sym Name
-
- Symbolic Debugging
-
- Target Name
-
- Target Processor
-
- Termination
-
- Traceback Tables
-
- Treat Multiple Definitions as Warnings
-
- Type
-
- Use Extended Mnemonics
-
- Use FMADD & FMSUB
9 C and C++ Support for Power PC
-
- Predefined Preprocessor Macros
-
- Number Formats
-
- AltiVec Vector Data Formats
-
- Integer Formats
-
- Floating-Point Formats
-
- Register Variables
-
- Optimizing Code
-
- Register Coloring
-
- Pragmas
-
- PowerPC Pragmas
-
- AltiVec Pragmas
-
- Constants
-
- Alignment Considerations for AltiVec
-
- Non-Vector Data
-
- Embedded Vector Data
-
- Dynamic Allocation
-
- Compiler Local Variables
-
- Stack Data
-
- Heap Data
-
- Object Data
-
- Expressions and AltiVec
-
- sizeof()
-
- Assignment Operator
-
- Address Operator
-
- Pointer Arithmetic
-
- Pointer Dereferencing
-
- Type Casting
-
- Vector Constants
-
- Pointer Offsets
-
- AltiVec-Specific Operators
-
- Linker Issues
-
- Deadstripping Unused Code and Data
-
- Stripping Resources
-
- Link Order
10 PowerPC Assembler
-
- Working With Assembly
-
- Assembler Syntax for PowerPC
-
- Special PowerPC Instructions
-
- Support for AltiVec Instructions
-
- Creating Labels for PowerPC Assembly
-
- Using Comments in PowerPC Assembly
-
- Using the Preprocessor in PowerPC Assembly
-
- Using Local Variables and Arguments in PowerPC Assembly
-
- Creating a Stack Frame in PowerPC Assembly
-
- Specifying Operands in PowerPC Assembly
-
- Assembler Directives
-
- entry
-
- fralloc
-
- frfree
-
- machine
-
- nofralloc
-
- Intrinsic Functions
-
- Low-Level Processor Synchronization
-
- Floating-Point Functions
-
- Byte-Reversing Functions
-
- Setting the Floating-Point Environment
-
- Manipulating the Contents of a Variable or Register
-
- Data Cache Manipulation
-
- Math Functions
-
- Buffer Manipulation
-
- AltiVec Intrinsics Support
11 68K Assembler
-
- Inline Assembly for 68K
-
- Inline Assembler Syntax for 68K
-
- Defining an Assembly Function for 68K
-
- Creating Labels for 68K Assembly
-
- Using Comments in 68K Assembly
-
- Using the Preprocessor in 68K Assembly
-
- Using Structures in 68K Assembly
-
- Using Global Variables in 68K Assembly
-
- Using Local Variables and Arguments in 68K Assembly
-
- Returning From a Routine in 68K Assembly
-
- Assembler Directives for 68K
-
- dc
-
- ds
-
- entry
-
- fralloc
-
- frfree
-
- machine
-
- opword
-
- Assembler Instructions for 68K
-
- Language Extensions for 68K
-
- Inline Data
-
- Specifying the Registers for Arguments
-
- PC-Relative Strings
-
- Number Formats for 68K
-
- 68K Integer Formats
-
- 68K Floating Point Formats
-
- Special 68K Type Considerations
-
- Calling Conventions for 68K
-
- Variable Allocation for 68K
-
- Register Variables for 68K
-
- Optimizing Code for 68K
-
- Register Coloring
-
- Generating Code for Specific 68K Processors
-
- Generating Code for the MC68000
-
- Generating Code for the MC68020
-
- Generating Code for the MC68881
-
- Hazards of 68020 and 68881 Codegen
-
- Pragmas for 68K
-
- Linker Issues for 68K
-
- Deadstripping Unused Code and Data
-
- Stripping Resources
-
- Link Order
12 Basic Mac OS Debugging
-
- Configuring the Debugger
-
- Debugger Requirements
-
- Debugger Settings
-
- Basic Mac OS Debugging Concepts
-
- Mac OS Debugger Traps
-
- Starting the Debugger with SYM Files
13 Advanced Mac OS Debugging
-
- Remote Debugging
-
- Preparation
-
- Remote Debugging
-
- C++ and PowerPlant Code
-
- Object-Oriented Data Types and References
-
- Debugging Objects Created With new
-
- Debugging Static Constructors and Destructors
-
- Viewing PowerPlant Source Code
-
- Debugging Inline Functions
-
- Debugging Template Classes
-
- Debugging C++ Exceptions
-
- Profiled Code
-
- Stepping into a profiled routine
-
- Stepping out of a profiled routine
-
- Effect of stopping on the profile results
-
- Shared Libraries
-
- Shared-Library Limitations
-
- Debugging a Shared Library in Four Steps
-
- Code Resources
-
- Debugging Requirements
-
- Runtime Debugging Requirements
-
- Debugging a Code Resource in Four Steps
-
- Threads
-
- SOM Objects
-
- Viewing SOM Objects
-
- DebugNew
-
- Setting Up DebugNew
-
- Using DebugNew
-
- Leaks.log
-
- Advanced Techniques
A Troubleshooting
-
- Programming Specific
-
- BowelsOfTheMemoryMgr
-
- IDE Specific
-
- Running Mac OS Applications Created on the Windows-hosted IDE
-
- Error: Local Data >32k
-
- Installing Universal Interfaces
-
- Incompatibility between MPW Shell and Mac OS
-
- Generating MPW Object Files
-
- Using QuickView
-
- Debugger Specific
-
- Debugger doesn't Regain Control after my Exception Handler is
Called
-
- Crashing in the Drag Manager
-
- The debugger crashes
-
- Debugger() and DebugStr()
-
- Pointer variables have a "Bus Error" value
-
- Debugger Error Messages
-
- Working With Other Debuggers
B Balloon Help Compiler
-
- Balloon Help Setup
-
- Help File Example
-
- Formal Specification
-
- Help Text Options
-
- Help Text Commands
-
- Dialog commands
-
- End command
-
- Menu commands
-
- STR# command
C Using MPW ToolServer with CodeWarrior
-
- Using MPW ToolServer Overview
-
- About ToolServer
-
- ToolServer and MPW Shell Differences
-
- Installing ToolServer
-
- Starting ToolServer
-
- Executing MPW Commands
-
- Using the ToolServer WorkSheet
-
- Using the ToolServer Tools Menu
-
- Using a Commando Dialog Box
-
- Looking Up MPW 411 Documentation
D Creating MPW Tool Projects
-
- Creating an MPW Tool Project
-
- Creating a 68K MPW Tool Project
-
- Creating a PowerPC MPW Tool Project
-
- Creating a Fat MPW tool
-
- Choosing Libraries for an MPW Tool Project
-
- Writing an MPW Tool
-
- Running the MPW Tool
E Glossary
Index
[ First ] [ Previous ] [ Next ] [ Last ]
Visit the Metrowerks website at: http://www.metrowerks.com
For assistance contact Metrowerks Technical Support at: cw_support@metrowerks.com
Copyright © 2000, Metrowerks Corp. All rights reserved.
Last updated: July 21, 2000