home *** CD-ROM | disk | FTP | other *** search
- =================================================================
- | |
- | !Projman : A project manager for RISC OS Version 0.15 |
- | |
- | by Andrew McMurry |
- | |
- =================================================================
-
- Copyright Andrew McMurry 1994
-
- This software may be copied freely in this state. This notice must remain
- on the copied version. Any additions must be documented, and identified
- as such.
-
- I don't object to people uploading this software onto public-domain
- archives, BUT WOULD ANYONE WHO DOES THIS PLEASE TELL ME. If I am told then
- I can send the maintainer new versions as they come out.
-
- Users of this software do so at their own risk. I hereby disclaim any
- liabilty of any kind due to the use or misuse of this software.
-
- PLEASE REPORT ALL BUGS, COMMENTS, CRITISISM TO:
-
- Andrew McMurry, Balliol College, Oxford OX1 3BJ.
-
- internet: a.mcmurry1@physics.oxford.ac.uk
-
- 1) INTRODUCTION:
- ----------------
- !Projman is a replacement, and hopefully an improvement on !Make,
- the project manager that comes with the Acorn DDE package. It currently
- supports the DDE tools for compiling, assembling and linking the source
- code. It will support other environments, eg the RISC OS version
- of GCC.
-
- !Projman uses one file type for its own use. Filetype 1AC "Project" is
- used to store information about which source files are used to make the
- target. IT IS ONLY A TEMPORARY FILETYPE. IT IS ***NOT*** REGISTERED WITH
- ACORN. Please inform me of any filetype clashes.
-
- 2) USING !PROJMAN:
- ------------------
-
- Options
- -------
- To get the Options window, choose Options... from the main menu. You can
- choose between project appearing as icons or windows. You can also choose
- the action that will occur when clicking on a Project Icon with select
- or adjust. See below for more details on their effects. Save will save
- the options to disc as permanent. Cancel will revert to previous options.
- OK sets the current options to the ones given in the window.
-
- Creating a New Project
- ----------------------
- Clicking Select on the !ProjMan icon will open the 'New Project' window.
- There is a project title icon and 3 file icons, each with a name icon.
- You should also choose an environment. initially there are just DDE and
- GCC environments but more can be created, see later.
- The file icons can be dragged to a filer window to create a new project.
- The application icon will create an application with a !Project file in it.
- A new directory also will contain a !Project file.
- New application projects start with one target called !RunImage.
- New directory projects and straight projects do not contain any Targets.
-
- Opening Projects
- ----------------
- New projects are automatically opened. To open another project double
- click on it or drag it, or a directory/application containing a !Project
- file to the !ProjMan icon. An open project has either an icon with the
- project title underneath on the icon bar, or a 'project' window titled
- with the project title. The 'project' window has 4 buttons on it. The
- actions on these can also be obtained by clicking menu on the window,
- or on the icon. The menu also has a close option which does the same as
- closing the Project window. The Project is AUTOMATICALLY SAVED when closed.
- This will become an option in a later version.
-
- Save saves the project. Open will open a target window for the main target.
- Make makes the whole project (ie all targets). Run WILL make the whole
- project and run it if there are no errors.
-
- Menu:
- File ->
- Info -> Project Information Window.
- Save Save Project.
- Revert Revert to version on disc.
- Rename -> Rename the project
- Make Makes all targets
- Target -> Open Main Target
- New Target Creates new target
- ... Open a target
- Close Close Project
-
- The Target Window
- -----------------
- The Target window is titled with the current target name. Filnames starting
- with . are relative to the directory containing the project file. The up
- and down arrows change the current target. Make makes the current Target.
- In the Pane which occupies the lower part of the window all the source files
- used to make the Target are listed, together with the tool used to make each
- of them and the object file produced. Source files can be selected using
- select and adjust in the normal way. Double clicking on a source file will
- open the source information window. To add source files to the list, drag a
- text file into the window. The Debug option will set the debugging flags for
- making the current target. The libraries menu sets the libraries to be
- included. Ones to be included are ticked.
-
- Menu:
- Info -> Target information window.
- Selection ->
- Clear Clear the selection
- Make Make a single source file
- Touch Set time and date stamp for selection
- Debug Toggle Debug flag for selection
- Remove Remove selection
- Select All Select all source files
- Options -> Set options for the target
- Use Via File Create and use a via file (DDE only)
- Rename -> Rename Target
- Remove Remove Target
-
- Making
- ------
- Choosing Make from anywhere will search for source files that have been
- changed since the last make (by comparing date stamps on the files).
- If no changed files are found then an 'Up to date' message is produced.
- Otherwise a 'Making' window will open. This window tells which target and
- file are currently being made. The tool for making the file runs in the
- background. A 'Make Task' will appear in the task manager's 'Tasks' window.
- The tool can be paused or aborted from the buttons on the 'Making' window.
- Any compiler errors or warnings are sent to an editor using Throwback.
- If a tool fails then the output of the tool is displayed in a 'report'
- window. All output produced by tools during a make is logged to the MakeLog
- file. MakeObey and !Depend files are also created during the make, but
- deleted afterwards.
-
- The DDE tools and GCC produce !Depend files if asked, which contain all the
- dependencies of the source file (ie #includes in C, GET's in assembly).
- !ProjMan does ask, and stores these dependencies with the source file
- list. It checks if any of these dependencies have been changed when
- making, and remakes the source file if they have. It works just like !Make.
-
- Tools and Environments
- ----------------------
- For each environment there is a subdirectory in the !ProjMan.Env directory.
- Each environment directory should contain a Tools file. It can also include
- a Templates file. To add a new environment just create a new subdirectory
- with a tools file in it. ProjMan will notice next time it is run.
-
- The tools file should contain a set of records like the following example:
-
- tool cc
- from c
- to o
- line cc -c {d-g} {x} -Depend !Depend -Throwback -o {o} -Ic: {s}
- opts {2-I } {3-f} {5-D } {6-U } {11-w} {7-zM} {8-P} {9-list} {10-pcc}
-
- One of these is needed for each tool. The fields that can be used are:
-
- tool this is required as the first field and gives the tool name
- from required, the prefix of source files translated
- to required, the prefix of object files produced
- line required, the command to use, see later
- opts optional, translation from options window to string
- noopts optional, there is no options window
- defo optional, default options string
- mem optional, amount of memory to allocate for tool
- noname optional, do not display the name in the target window
-
- The first record should be the details for the linker.
- There should follow a set of records like the following example:
-
- lib CLib
- file C:o.Stubs
-
- One of these is needed for each library. The order is important. A library
- which depends on routines in another library should come earlier in the
- list. The fields are:
-
- lib this is required as the first field and gives the library name
- file required, the filename of the library
- dbug optional, filename of an alternative library to be used when
- the debug flag is set.
-
- After the libraries an 'end' is required. See the DDE and GCC tools files
- for more examples.
- The command line for the tool is just plain text, except for the control
- sequences which are contained in { }:
-
- d*** The *** is included on the command line if the debug flag is set.
- v*** The *** is included if via files are being used (link only)
- x This expands to the options string
- o This expands to the object filename
- s This expands to the source filename
-
- If you wish you can create an options window template in the environment
- Templates file. It should have the same name as the tool.
- The options translation string is similar to the command line. The control
- sequences this time are started by numbers. The number is a icon number
- in the options window. The icon should have a button type of either
- 11(Select/drag) or 15(Writable). The number is followed by a string.
- If the icon is of type 11 then the control sequence expands to that string
- if the icon is selected and nothing if it isn't. If the icon is of type 15
- then the string is included and followed by the text contents of the icon
- (must be an indirected icon) only if the text has non-zero length.
-
- If anyone is having problems creating tools files and associated Templates
- please send me your files and I will try and fix them or ProjMan depending
- where the problem lies.
-