home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
projects
/
projman_1
/
!ProjMan
/
!Help
< prev
next >
Wrap
Text File
|
1994-11-16
|
10KB
|
215 lines
=================================================================
| |
| !Projman : A project manager for RISC OS Version 1.53 |
| |
| by Andrew McMurry |
| |
=================================================================
Copyright Andrew McMurry 1994
This software may be copied freely but only complete. 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. If you do not wish
ProjMan to produce a log file during makes, turn off the 'log makes to file'
option. 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
Open Dir -> Open filer window for main directory
c Opens c subdirectory
... Opens other subdirectories
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
Touch Touch all source files
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.
Also icons 0 and 1 in the window must be OK and Cancel buttons respectively.
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.