MIT Information Systems

Macintosh Development

[Home] [About Us] [People] [Information Systems]
[Kerberos for Macintosh] [Applications] [Miscellaneous Documentation]


The Macdev Tree: the future direction

By Miro Jurisic

Contents


The past

During the past years, there was not much of a fixed structure throughout the Macdev tree. Various projects have their own ways of doing things, and even thought those were reasonably similar (mostly due to the fact that most of them started as ports from UNIX and/or were started by UNIX programmers), they were dissimilar enough to make the tree rather disorganized and inconsistent. The situation was made worse by several other things: each programmer dealt with Macintosh-specific questions in her own way; no source control has been used on the Macintosh; RCS (via AFS) was not used consistently (and sometimes not at all).


The present

At the moment, we hope to have a CodeWarrior plugin for Kerberized CVS within several months. The command-line CVS client should be working, although testing has been delayed for various reasons (primarily because we had to decide what we would do about the plugin).

Significant changes are necessary to most, if not all, of our projects at this time. Firstly, the new CodeWarrior IDE requires that we convert all of our projects to the new format, and we are also going to use the subproject/multitarget features to deal with building our projects automatically. In addition to this, the Universal Headers have been updated with CodeWarrior 11 so that OLDROUTINENAMES and OLDROUTINELOCATIONS are no longer defined, and some header files have been made obsolete. This requires that we do some searching and replacing throughout our code.


The future

Soon, we'd like to be able to build all of our project automatically directly from the IDE, without having to manually deal with dependencies between them. This is made much simpler with the new CodeWarrior IDE. A uniform, well-defined, and well-organnized structure of the tree would make the transition more complex, but the result of the transition would be a tree that is much more maintainable. (Project-specific documentation in some of our older projects could make this even better, but that's another story...)

The following tree structure we'll begin to follow with the transition to CodeWarrior Professional 1 has been agreed upon in two meetings (June 13 and June 20 1997).

 

Macdev

Applications

Application projects

Application project

See below

Application project

See below

...

MITSupportLib

MIT Support Library parts

Common

MIT Support Library common files

Library project

See below

Library project

See below

...

MITKerberos

MIT Kerberos for Macintosh parts

Common

MIT Kerberos common files

MITKerberosLib

MIT Kerberos Library parts

Library project

See below

Library project

See below

...

KerberosControlStrip

See below

KerberosManager

See below

TicketKeeper

See below

Other

Other projects

Project

See below

ThirdParty

Third party software & SDKs

...

Project

Binaries

This folder contains the final binaries generated for this project

Headers

This folder contains public header files for this project

Projects

This folder contains this project's project files

Sources

This branch contains the source files for this project

Binaries

This folder contains intermediate binaries for this project <such as auxiliary code resources>

Headers

This folder contains the private header files for the project

PrecompiledHeaders

This folder contains the precompiled headers for the project

Resources

This folder contains the resource files for the project

Documentation

This folder contains the project's documentation

Tools

This folder contains test applications for the project <applicable only to libraries>

Tool project

See below

...

Tool project folders usually have flat structure, since they tend to be extremely simple. Complex tool projects might have the same structure as applications and libraries.


Questions or comments? Send mail to macdev@mit.edu
Last updated on $Date: 2003/11/18 21:57:55 $
Last modified by $Author: smcguire $