From AlphaWiki

Cabal: AlphaX source code organization

This file describes the new structure of the building environment of the AlphaX core.


Introduction

This is the new model designed during the major code reorganization undertaken after the public release of AlphaX 8.0.1 in November 2005. The original code has been completely rearranged, cleaned of all obsolete elements and reorganized in a hopefully more consistent structure.

Top hierarchy

The top development folder (let's call it AlphaCore) contains:

So the structure of this top AlphaCore folder looks like this:

 
     AlphaCore
         |
         |- APIs
         |
         |- Current
         |
         |- Extras
         |
         |- 8.0.1
         |
         |- 8.0b16
         |
         |- 8.0b17d8

The Extras folder and the Current folder are described in the following sections.

The Extras folder

The Extras subfolder contains auxiliary data not directly necessary for building the core. This is typically where you can maintain and store documentation, help files, script files to assemble distributions, wiki pages, etc. Currently the SVN repository has the following subfolders:

 
     --- Extras
        |
        |--- Help
        |
        |--- Logs
        |
        |--- Scripts
        |
        |--- Tests
        |
        |--- Wiki

As needed, other folders can be added therein: texmf, Web Site, XML, etc.

The Current folder

This is the development folder with source data corresponding to a particular version. This concerns not only Alpha's source files but also the AlphaTcl library, the various Tcl extensions which are stored in the bundle, possibly the Tcl framework, since all these resources do change from one version to the other. Here is the basic layout of this folder followed by a description of its items:

 
     Current
         |
         |- AlphaX.xcodeproj
         |- ChangeLog
         |
         |- Alpha_Precomp/
         |
         |- Alpha_Sources/
         |
         |- Alpha_Resources/
         |
         |- Libraries/
         |
         |- Tools/

 
        --- Alpha_Sources
           |
           |--- Application
           |
           |--- Controls
           |
           |--- CVS
           |
           |--- Features
           |
           |--- Files
           |
           |--- Globals
           |
           |--- Menus
           |
           |--- TclCommands
           |
           |--- Text
           |
           |--- Utils
           |
           |--- Windows

 
     --- Libraries
        |
        |--- AlphaTcl
        |   |
        |   |--- Examples
        |   |
        |   |--- Help
        |   |
        |   |--- Tcl
        |   |
        |   |--- Tools
        |
        |--- Encodings
        |   |--- ISOmacRoman.enc
        |   |--- macRomanISO.enc
        |
        |--- PrivateFramework
        |
        |--- Tclextensions

The AlphaTcl folder contains the usual AlphaTcl library. This is where you should execute the checkouts from SourceForge. The Tclextensions folder currently contains the following extensions: Memchan2.2.1, Mk4tcl, Tcladdressbook1.1, Tclapplescript1.0, Tclresource1.1.1, tclAE2.0, tcllib1.7, tclx8.4, tdom0.8.0, tnc0.3.0, vfs1.3. Finally the Encodings folder contains additional encoding files (like ISOmacRoman.enc and macRomanISO.enc) which will be added to the Tcl framework (if any).

The build folder

The XCode project executes its tasks in the build folder as usual. The output is found in either the Deployment or the Development subfolder, depending on the build configuration.

The XCode project has two separate targets: the AlphaX target takes care of building the executable and the Extras target of copying the external elements into the bundle. The target named Final is just a wrapper combining the two previous ones.


Last updated 2007-01-14 09:08:58

Retrieved from http://alphatcl.sourceforge.net/wiki/pmwiki.php/Cabal/CodeStructure
Page last modified on January 14, 2007, at 08:23 AM