TABLE OF CONTENTS


1.0 MachTen CodeBuilder

1.1 The CodeBuilder Desktop
1.1.1 CodeBuilder's Traditional Desktop
1.1.2 CodeBuilder's AfterStep Desktop
1.2 The CodeBuilder "UNIX Virtual Machine"
1.3 The CodeBuilder Architecture
1.3.1 Dynamic Memory Configuration
1.3.2 Dynamically Linked, Shared Libraries
1.3.3 Memory Mapped File Access
1.3.4 Integrated Software Development Tools
1.3.5 Native Fast File System


2.0 A Roadmap to the CodeBuilder CD

2.1 Installing CodeBuilder
2.1.1 Optional Installations
2.2 Exploring the CD Folders
2.2.1 Documentation
2.2.1.1 CodeBuilder UNIX Docs
2.2.1.2 HTML
2.2.2 Utilities
2.3 Performance Tuning - Optimizing CodeBuilder
2.3.1 System Optimization Guidelines
2.3.2 How Can You Tell When a System is Approaching Its Limits?
2.4 Reinstallation
2.4.1 Reconfiguration
2.4.1.1 Automated Reconfiguration
2.4.2 Accessing CodeBulder Source Files Directly From the CD-ROM
2.5 Troubleshooting


3.0 The CodeBuilder Control Panel

3.1 Scheduling Priority Slide Bar
3.2 Configuration Screens
3.2.1 General Configuration Screen
3.2.1.1 Host Name
3.2.1.2 Time Zone
3.2.2 Memory Configuration
3.2.2.1 Maximum Number Parameters


4.0 Launching CodeBuilder

4.1 The CodeBuilder Login Console
4.2 CodeBuilder Windows
4.2.1 The Apple Menu
4.2.2 The File Menu
4.2.3 The Edit Menu
4.2.4 The Window Menu
4.2.4.1 The Positions Sub-Menu
4.2.4.2 The Size Sub-Menu
4.2.4.3 The Order Sub-Menu
4.2.5 The Fonts Menu


5.0 CodeBuilder Administration

5.1 A Word About Man Pages
5.2 Tailoring the Startup Environment
5.2.1 Setting Up CodeBuilder to Boot Automatically
5.2.2 Manual Startup
5.3 Tailoring CodeBuilder Windows
5.4 Tailoring Your UNIX Environment
5.5 Quitting CodeBuilder
5.6 Login Accounts
5.6.1 The Concept of a Home Directory and a User Environment
5.6.2 The UNIX Shell
5.6.3 Superuser and Privileges
5.6.4 A Word About Security
5.6.5 The Root Password
5.6.6 Setting Up User Accounts
5.6.7 The Password File
5.6.8 The Group File
5.6.9 Administrative Login Accounts
5.6.11 Removing Users
5.6.10 Disabling User Logins
5.6.12 Changing the Message-of-the-Day
5.6.13 Special Characters
5.7 Managing Your UNIX Environment
5.7.1 What's Running?
5.7.2 Killing a Program
5.7.3 Background Program Execution
5.7.4 Shell Files


6.0 The CodeBuilder File Systems

6.1 UNIX Fast File System Overview
6.1.1 File System Organization
6.1.2 File Names
6.1.3 Access Permissions
6.1.4 Time Stamps
6.1.5 Link Counts
6.1.6 Hard Links
6.1.7 Symbolic Links
6.2 Macintosh Hierarchical File System Overview
6.2.1 File System Organization
6.2.2 File Names
6.2.3 Access Permissions
6.2.4 Time Stamps
6.2.5 Aliases
6.3 CodeBuilder FFS
6.3.1 FFS Within a File
6.3.2 FFS Within a Partition
6.4 CodeBuilder UFS
6.4.1 File Names
6.4.1.1 Maximum Number of Characters
6.4.1.2 Case Sensitive File Names
6.4.1.3 Component Separators
6.4.1.4 Non-Printable Characters
6.4.2 Linked Files
6.4.2.1 Hard Links
6.4.3 Directory Link Counts
6.4.4 Locked Files
6.4.5 File Types
6.4.6 File Permissions
6.4.7 Time Stamps
6.5 CodeBuilder Root File System Layout
6.5.1 The root Directory Tree
6.5.2 The usr Directory Tree
6.5.3 The var Directory Tree
6.5.4 Major System Administration Files
6.6 Mounting Macintosh Volumes
6.6.1 Mounting Permissions
6.6.2 Automatic Mounting of Removable Media
6.6.3 Unmounting Macintosh Volumes
6.6.4 Automatic Unmounting
6.6.5 Formatting Floppies
6.7 Accessing Macintosh Files from UNIX Applications
6.7.1 AppleSingle Encapsulation
6.7.2 Differentiating UNIX and Macintosh Files
6.7.3 Utilities for Manipulating Macintosh Files
6.7.3.1 dfork and rfork
6.7.3.2 finderinfo
6.7.3.3 restool
6.8 Text File Manipulation
6.8.1 Alternating Between Macintosh and UNIX Text
6.8.1.1 mactext
6.8.1.2 unixtext
6.8.1.3 Unix <-> Text
6.8.1.4 dfork.text
6.8.2 Editing Tools
6.8.2.1 Unix Editors
6.8.2.2 Macintosh Editing Applications
6.8.3 UNIX to Macintosh "Copy and Paste"
6.9 File System Administration
6.9.1 Creating File Systems
6.9.1.1 Creating an FFS Within a File
6.9.1.2 Creating an FFS on a Partition
6.9.2 Checking/Repairing File Systems
6.9.2.1 fsck
6.9.2.2 Fast File First Aid
6.9.3 Mounting File Systems
6.9.3.1 Mounting an FFS Within a File
6.9.3.2 Mounting an FFS on a Partition
6.9.3.3 Mounting a Macintosh Volume
6.9.4 Unmounting File Systems
6.9.5 Removing File Systems
6.9.5.1 Removing an FFS Within a File
6.9.5.2 Removing an FFS on a Partition
6.9.6 Space Management
6.9.7 Backing Up and Archiving File Systems
6.9.7.1 Tape Devices
6.9.7.2 tar
6.9.7.3 dump and restore


7.0 Printing

7.1 CodeBuilder Print Spooling
7.1.1 The Print Spooler Database
7.2 Local Printing
7.2.1 Printing Text Files to a PostScript LaserWriter on AppleTalk
7.2.2 Spooled Printing to an ASCII-Based ImageWriter Connected Directly to a Serial Port
7.3 Selecting an Alternate Printer
7.4 Status and lp Management Programs


8.0 CodeBuilder Programming Environment

8.1 CodeBuilder Development Tools
8.1.1 Programs, Libraries and Include Files
8.1.2 Documentation
8.1.3 Program Sources
8.2 PEF and XCOFF
8.3 Shared Libraries
8.3.1 Shared Library Production
8.3.2 Run-Time and Compile-Time Libraries
8.3.3 Run-Time and Compile-Time Naming Conventions
8.4 Traditional UNIX Libraries
8.5 Header Files
8.5.1 Pre-Defined Names
8.6 Compiling Sources
8.6.1 Ada
8.6.2 C
8.6.3 Objective-C
8.6.4 C++
8.6.5 Fortran
8.6.6 Java
8.7 Linking Executables
8.7.1 ld
8.7.2 mkpef
8.8 To make or pmake
8.9 Symbol Information
8.10 Debugging
8.10.1 Debugging Using gdb
8.10.2 Macintosh Debugging Tools
8.10.2.1 MacsBug
8.10.2.2 The Debugger
8.10.2.3 Macintosh Debugger for PowerPC
8.10.2.4 Metrowerks Debugger
8.10.3 Environment Variables for Debugging and Monitoring
8.10.3.1 DEBUGGERFIRST
8.10.3.2 STACKCHK
8.10.3.3 MEMSTATS
8.11 Making Macintosh Applications
8.11.1 Macintosh OS Header Definition Files
8.11.2 Macintosh OS Interface Libraries
8.11.3 Macintosh Application Startup Routine
8.11.4 Macintosh Application Construction
8.12 Cross-Development Tools And Targets
8.12.1 Default CodeBuilder Environment
8.13 Porting Software to CodeBuilder
8.13.1 Real Memory Issues
8.13.1.1 Stack Overrun
8.13.1.2 Allocating Memory in CodeBuilder
8.13.1.3 Calculating Memory Requirements
8.13.1.4 Setting the CodeBuilder Heap Size
8.13.1.5 Problem Areas
8.14 Programming Example
8.14.1 Rogue
8.14.2 Building the Executable
8.14.3 Debugging Using MacsBug or Other Macintosh Debuggers

9.0 The X Window System

9.1 The X Desktop
9.1.1 Starting the X Server
9.1.2 The Menu Bar
9.1.2.1 The File Menu
9.1.2.2 The Window Menu
9.1.3 Automatic Launch of the X Server
9.1.4 Quitting the X Server
9.1.5 Running the X Server Without a Menu Bar
9.1.5.1 Menu Bar Shortcuts
9.2 Administering the X Window Software Environment
9.2.1 Starting Clients
9.2.1.1 The Start Up Script
9.2.1.2 Resources: X Application Preferences
9.2.2 The Window Manager Client
9.2.2.1 Starting the Window Manager
9.2.2.2 Using the Mouse
9.2.2.3 Selecting a Window
9.2.2.4 Moving a Window
9.2.2.5 Changing the Size of a Window
9.2.2.6 Changing a Window Into an Icon
9.2.2.7 Moving an Icon
9.2.2.8 Restoring a Window From an Icon
9.2.2.9 Displaying a Window Menu and Making Selections
9.2.2.10 Summary of Window Menu Functions
9.2.2.11 Raising a Window
9.2.2.12 Quitting the Window Environment
9.2.3 The X Server Program
9.2.3.1 X Server Start Up Options
9.2.3.2 Mouse Button Mapping
9.2.3.3 Keyboard Mapping
9.2.3.4 Server Error Logging
9.2.3.5 X Server Performance Tuning Guide
9.2.3.6 The Default Font Path
9.2.4 X Display Management Under CodeBuilder
9.3 CodeBuilder X Window Software Overview
9.3.1 Preparing Your Macintosh Control Panels
9.3.2 Getting Started With X
9.3.3 Building X Applications
9.3.3.1 Running X Client Applications
9.3.3.2 The X11 Application Development Environment Under CodeBuilder
9.3.3.3 Programming Notes
9.4 X Window Software Frequently Asked Questions


APPENDIX A: GNAT For The Macintosh

What is GNAT?
What is GNAT-Mac?
The GNAT-Mac Development Project
What is Ada?

Part 1: An Introduction to Some GNAT Tools

A1.1 Using gnatmake
A1.2 Overriding the GNAT default file-naming conventions
A1.3 Using gdb to get a simple traceback
A1.4 Tracing a Program with gdb
A1.5 Using gnatf to get a cross reference
A1.6 Using gnatk8

APPENDIX A2: GNAT User's Guide

A2.1.0 About This Guide
A2.1.1 What This Guide Contains
A2.1.2 What You Should Know Before Reading This Guide
A2.1.3 Related Information
A2.1.4 Conventions
A2.2.0 Getting Started With GNAT
A2.2.1 Running GNAT
A2.2.2 Running a Simple Ada Program
A2.2.3 Running a Program With Multiple Units
A2.2.4 Using the gnatmake Utility
A2.3.0 The GNAT Compilation Model
A2.3.1 Source Representation
A2.3.2 Foreign Language Representation
A2.3.2.1 Latin-1
A2.3.2.2 Other 8-Bit Codes
A2.3.3 File Naming Rules
A2.3.4 Naming of GNAT Source Files
A2.3.5 Generating Object Files
A2.3.6 Source Dependencies
A2.3.7 The Ada Library Information
A2.3.8 Representation of Time Stamps Files
A2.3.9 Binding an Ada Program
A2.3.10 Mixed Language Programming
A2.3.11 Comparison of GNAT Model With C/C++ Compilation Model
A2.3.12 Comparison of GNAT Model With Traditional Ada Library Model
A2.4.0 Compiling Ada Programs With gcc
A2.4.1 Compiling Programs
A2.4.2 Switches for gcc
A2.4.3 Switches for GNAT
A2.4.3.1 Error Message Control
A2.4.3.2 Debugging and Assertion Control
A2.4.3.3 Runtime Checks
A2.4.3.4 Using gcc for Syntax Checking
A2.4.3.5 Using gcc for Semantic Checking
A2.4.3.6 Compiling Ada 83 Programs
A2.4.3.7 Style Checking
A2.4.3.8 Character Set Control
A2.4.3.9 File Naming Control
A2.4.3.10 Subprogram Inlining Control
A2.4.3.11 Auxiliary Output Control
A2.4.3.12 Debugging Control
A2.4.4 Search Paths and the Run-Time Library (RTL)
A2.4.5 Order of Compilation Issues
A2.4.6 Examples
A2.5.0 Binding Ada Programs With gnatbind
A2.5.1 Running gnatbind
A2.5.2 Consistency-Checking Modes
A2.5.3 Error-Message Control
A2.5.4 Output Control
A2.5.5 Binding for Non-Ada Main Programs
A2.5.6 Summary of Binder Switches
A2.5.7 Command-Line Access
A2.5.8 Search Paths for gnatbind
A2.5.9 Examples of gnatbind Usage
A2.6.0 Linking Ada Programs Using gnatlink
A2.6.1 Running gnatlink
A2.6.2 Switches for gnatlink
A2.7.0 The GNAT Make Program gnatmake
A2.7.1 Running gnatmake
A2.7.2 Switches for gnatmake
A2.7.3 Notes on the Command Line
A2.7.4 How gnatmake Works
A2.7.5 Examples of gnatmake Usage
A2.8.0 Handling Files With Multiple Units With gnatchop
A2.8.1 Handling Files With Multiple Units
A2.8.2 Command Line for gnatchop
A2.8.3 Switches for gnatchop
A2.8.4 Examples of gnatchop Usage
A2.9.0 The Front-End/Cross-Reference Utility gnatf
A2.9.1 Overview of gnatf
A2.9.2 Command Line of gnatf
A2.9.3 Compilation Switches
A2.9.4 Cross-Referencing Switches
A2.9.5 Cross Reference Information and Smart Recompilation
A2.9.6 File Structure
A2.9.7 Example of gnatf Usage
A2.10.0 Filename Krunching With gnatk8
A2.10.1 About gnatk8
A2.10.2 Using gnatk8
A2.10.3 Krunching Method
A2.10.4 Examples of gnatk8 Usage
A2.11.0 Other Utility Programs
A2.11.1 Using Other Utility Programs With GNAT
A2.11.2 The Naming Scheme of GNAT
A2.11.3 Ada Mode for Emacs
A2.12.0 Running and Debugging Ada Programs
A2.12.1 Getting Internal Debugging Information
A2.12.2 GNAT Crashes
A2.12.3 Using gdb
A2.13.0 Performance Considerations
A2.13.1 Controlling Runtime Checks
A2.13.2 Optimization Levels
A2.13.3 Inlining of Subprograms

APPENDIX B: Resources: CodeBuilder Application

DMOD
FMOD
Luid
ROOT

APPENDIX C: Suggested Reading for Programming Languages

Ada
C++
Objective-C
Java
X11


[ Top of Page ][ Title Page ]