home *** CD-ROM | disk | FTP | other *** search
/ Dream 44 / Amiga_Dream_44.iso / RiscPc / Utils / rpm.arc / !RPM / !Help < prev    next >
Text File  |  1997-01-11  |  21KB  |  672 lines

  1.  
  2.  
  3. RRRR      PPPP    M   M
  4. R   R     P   P   MM MM
  5. RRRR      PPPP    M M M
  6. R   R     P       M   M
  7. R   R     P       M   M
  8.  
  9. Richard's Project Manager
  10.  
  11. Project Management Utility
  12.  
  13. RPM is
  14.  
  15. S H A R E W A R E
  16.  
  17. (c) 1995,1996 R.F.Windley & The Really Small Software Company
  18.  
  19. Version 1.20 (3rd November 1996)
  20.  
  21.  
  22. If you continue to use it for more than 28 days then you
  23. must send ú10.00 to the address at the end of this file.
  24. This entitles you to keep using the package after this period.
  25. Cheques drawn against a UK bank are preferred and should be
  26. made payable to 'R.F.Windley'. Failing this ú10 cash will be
  27. accepted.
  28.  
  29. Note that this software is supplied 'as is'. The author takes no
  30. responsibility for any problems or data loss resulting from the
  31. use or misuse of this software.
  32.  
  33.  
  34. Requirements
  35.  
  36. In order to use RPM the following is required:
  37.  
  38. RISC OS 3.1 or above
  39. 2M memory or above
  40. A compiler of some sort (eg gcc/Acorn C/C++)
  41. A linker of some sort   (eg link/drlink)
  42. BorderUtil module if RISC OS 3.1
  43.  
  44. In addition the following are recommended:
  45.  
  46. An ALF generator of some sort (eg libfile/makealf)
  47. DDEUtils module
  48. A template editor (eg FormEd/TemplEd)
  49. Programmers Reference Manuals
  50.  
  51. Note that if you are not using DDEUtils then any generated
  52. command lines must be kept under 256 characters. Also, the CSD
  53. will be altered from time to time and only one project can be
  54. built at once. See the section on Include paths for a way of
  55. keeping command line lengths to a minimum.
  56.  
  57.  
  58. Software used
  59.  
  60. The following was used in the creation of RPM:
  61.  
  62. DeskLib
  63. Zap
  64. TemplEd
  65. Acorn Desktop C Release 4 & 5
  66. Make
  67. link/drlink
  68. libfile
  69.  
  70.  
  71. What is RPM?
  72.  
  73. There has been a lot of criticism of the quality of
  74. programming tools available for RISC OS. RPM has been
  75. written in response to some of these criticisms and although
  76. it does not pretend to be the ultimate application
  77. generation tool, it is hoped that it goes some way towards
  78. making programs easier to write.
  79.  
  80. The Make utility supplied with Desktop C allows the
  81. programmer to specify the code and libraries that make up a
  82. project. RPM also allows the resources that make up an
  83. application to be specified and maintained. All code and
  84. resources are accessed through RPM so there is no more
  85. searching through directories to find a piece of code.
  86.  
  87. RPM splits projects into different types.
  88.  
  89. Applications are normally RISC OS WIMP applications. As well
  90. as source code they have a number of resources associated
  91. with them such as a Messages file or window Templates.
  92.  
  93. Libraries are pieces of code that can be grouped together
  94. into useful blocks. They are not tied to any one application
  95. and may be used many times. For example, you might have a
  96. dates library that is used to manipulate dates in a number
  97. of different ways.
  98.  
  99. Utilities are like applications except they don't have any
  100. resources. They are programs that will most likely be
  101. invoked from the command line. An example of a utility is
  102. the C compiler.
  103.  
  104. Classes are C++ specific. They may perhaps be thought of as
  105. an object oriented version of libraries. Using the dates
  106. example above, you would have a date object on which a
  107. number of actions could be performed.
  108.  
  109.  
  110. Note that it is assumed that the reader is familiar with
  111. developing applications on the RISC OS platform. As it is
  112. necessary for you to have a compiler and linker I do not
  113. believe this is an unreasonable assumption.
  114.  
  115.  
  116. Getting started
  117.  
  118. To load RPM simply double click on the !RPM icon in
  119. the directory viewer. After a few seconds RPM will load.
  120.  
  121. Note that if you do not have the DDEutils module you must first
  122. edit the !Run file. Simply comment (|) out the first RMEnsure
  123. that mentions DDEUtils. RPM will then load.
  124.  
  125.  
  126. The icon bar menu
  127.  
  128. Clicking Menu over the icon bar icon displays the icon bar
  129. menu. This allows access to the different parts of RPM.
  130.  
  131. Info
  132. Choosing the Info option displays a standard About this
  133. program information box. 
  134.  
  135. Open
  136. Choosing this item leads to the Open submenu.
  137.  
  138. This shows the way in which RPM separates different
  139. types of project. Selecting one of these options will
  140. display a list of projects that fall into that category.
  141.  
  142. Preferences
  143. This item leads to another submenu.
  144.  
  145. This menu allows the setup of RPM to be changed and new
  146. languages to be supported.
  147.  
  148. Quit
  149. The final item on the menu causes RPM to finish.
  150.  
  151.  
  152. Managing Projects
  153.  
  154. Much of the functionality of RPM is the same whatever
  155. type of project you are writing. Unless otherwise specified
  156. the following applies equally to all project types.
  157.  
  158. Choosing Open->Applications from the icon bar menu produces
  159. a project list window.
  160.  
  161. This lists all the projects that are defined for this
  162. project type.
  163.  
  164. In order to perform any operation on a project it must be
  165. highlighted by clicking Select or Adjust. Clicking Adjust
  166. will add to the selection of projects currently highlighted.
  167. Clicking one of buttons down the right of the window will
  168. then perform the action specified.
  169.  
  170. It is also possible to double click on a project. This will
  171. produce the code window and, for applications, the resources
  172. window.
  173.  
  174.  
  175. Application resources
  176.  
  177. Clicking on the Resources button in the Applications window
  178. will display the resources for the currently highlighted
  179. application. This button does not appear for Libraries,
  180. Utilities or Classes.
  181.  
  182. Editing resources
  183. Application resources can be edited in a
  184. couple of different ways. Either highlight the resource or
  185. resources that you want to edit and click on the Edit button
  186. or double click on the resource. It will be loaded into the
  187. relevant editor for you.
  188.  
  189. Creating resources
  190. To create a new resource click on the Create button.
  191.  
  192. In order to create a resource it must already have been
  193. defined as a valid resource type. To get a list of valid
  194. resource types click on the help menu icon. Choose the
  195. resource type that you want and click on the Create button.
  196. The resource will appear in the resource window.
  197.  
  198. Deleting resources
  199. Resources can be deleted from an application by highlighting them
  200. and clicking on the Delete button. You will be prompted to confirm
  201. this is what you wanted to do.
  202.  
  203.  
  204. Project code
  205.  
  206. Choosing the Code button in the project list window will
  207. display the Project code window.
  208.  
  209. This window allows all of the code for a project to be
  210. managed.
  211.  
  212. The top part of the window shows all of the code for a
  213. project. This can be a mixture of different languages such
  214. as C, C++ or assembler. In fact, as long as the object file
  215. produced by the relevant compiler follows standards, any
  216. compiled language can be used.
  217.  
  218. The bottom part of the window shows the header files that
  219. form part of the project.
  220.  
  221. Double clicking on a code name or header file name will load
  222. it into a text editor ready for you to edit.
  223.  
  224. There are a number of buttons down the side which work as
  225. follows:
  226.  
  227. Create
  228. Clicking on the Create button produces a small
  229. dialogue which lets you create a new piece of source code.
  230.  
  231. The Name field must contain a valid filename. Note that it
  232. is possible to type up to 32 characters into this field in
  233. anticipation of filing system improvements. It is the
  234. responsibility of the programmer to ensure that the name
  235. entered is compatible with the underlying file system. The
  236. Type field can be filled in by clicking on the help menu
  237. icon which will produce a list of valid code types.
  238.  
  239. Clicking on the Create button will create the new code. A
  240. default template will be supplied with some details filled
  241. in.
  242.  
  243. Clicking the Cancel button will close the window.
  244.  
  245. It is possible to 'create' code in another way. If you
  246. already have a piece of source code that you want to include
  247. in your project it can simply be dragged to this window.
  248. RPM will attempt to discover the type of this source
  249. code. If the source code is in a directory that matches a
  250. code type RPM knows about such as c, cc or s then the
  251. code will be typed according to this.
  252.  
  253. Alternatively, if the code has a suffix such as _c, _cc, /c
  254. or /cc then the code will be typed according to this. This
  255. can be useful if the code is being copied from another
  256. system such as DOS or Unix which rely heavily on file
  257. suffixes.
  258.  
  259. When code is created in this way a copy of the original file
  260. will be taken and placed in the project source directory. If
  261. you wish to share source across a number of different
  262. projects you should create a library.
  263.  
  264. Delete
  265. To delete some code from a project it must first be
  266. highlighted by clicking with Select or Adjust. Clicking on
  267. the Delete button will, after prompting you, delete the
  268. code. Note that this not only deletes the code entry from
  269. the window but also deletes the underlying file.
  270.  
  271. Edit
  272. This is another way of editing code. Highlight the code
  273. to be edited and click on the Edit button to load it into a
  274. text editor.
  275.  
  276. Touch
  277. Sometimes it is necessary to force code to be
  278. recompiled. If you have to do this the Touch facility can be
  279. used. Highlight the code to be 'touched' and click on the
  280. Touch button. This will cause RPM to believe the code
  281. has recently been edited and therefore needs recompiling.
  282.  
  283. Flags
  284. When compiling there are a number of different flags
  285. that can be passed to a compiler. These include options for
  286. debugging information and for certain levels of
  287. optimisation. The Flags window allows you to specify which
  288. flags should be used.
  289.  
  290. The Type field allows you to specify which type of source
  291. code the flags are being set for. To select a different code
  292. type click the help menu icon. Clicking on OK will store the
  293. selections.
  294.  
  295. For details of what the different flags do you are referred
  296. to the documentation that came with the relevant compiler.
  297.  
  298. All
  299. Some operations need to be carried out on all of the
  300. source code. To select each piece of code individually would
  301. be tiresome so clicking the All button will select all the
  302. the code in one go.
  303.  
  304. Compile
  305. This will only compile the highlighted code and will
  306. not link the project. An output window similar to that for
  307. Make is displayed.
  308.  
  309. Make
  310. Make will attempt to compile and link your project for
  311. you. If there are any errors the process will stop (although
  312. this can be configured differently). While the project is
  313. being made an output window will show how far RPM has
  314. got.
  315.  
  316. The process can be paused by clicking on the Pause button,
  317. which then changes to a Resume button, or stopped completely
  318. by clicking on Abort.
  319.  
  320. Clicking Abort will produce a dialogue box that either
  321. allows you to terminate the process immediately, or when it
  322. is convenient for RPM. Terminating immediately can be
  323. dangerous in that files can be left open. It is recommend
  324. that this is not used unless absolutely necessary.
  325.  
  326. Run
  327. This is the same as Make except that the application or utility
  328. will be run when it has been built.
  329.  
  330.  
  331. Project setup
  332.  
  333. Clicking the Setup button on the project list window
  334. produces the Project setup window.
  335.  
  336. This allows some of the details about a project to be
  337. altered.
  338.  
  339. The Description field can contain a brief description of
  340. what the project does.
  341.  
  342. Libraries
  343. Clicking on the Libraries button produces the
  344. Libraries window. This is a list of libraries that will be
  345. linked into the project.
  346.  
  347. To add a library to the list simply drag the object file to
  348. this window.
  349.  
  350. It can be useful to have entries that rely on system
  351. variables to form part of the pathname of the form
  352. <SystemVariablePathname>.o.library instead of the whole
  353. pathname being specified. It is possible to edit the entry
  354. by double clicking on it.
  355.  
  356. When the library entry has been edited, click on OK to store
  357. the changed.
  358.  
  359. Note that only Utilities and Applications have the Libraries
  360. button. Flags Clicking this button produces a dialogue box
  361. that allows the flags passed to the linker to be specified.
  362.  
  363. For details of what the different flags do you are referred
  364. to the documentation that came with the relevant linker.
  365.  
  366. Include
  367. The window produced by clicking on the Include
  368. button behaves in a similar way to the Libraries window.
  369.  
  370. The difference being that this window allows you to specify
  371. which paths are searched for include files. To add a new
  372. path drag the relevant directory to this window.
  373.  
  374. Note that if you are not using DDEUtils then you should keep
  375. include paths to a minimum length. One way to do this is to
  376. use an environment variable to hold the pathname rather than
  377. including the whole pathname. For example:
  378.  
  379. DeskLib:
  380.  
  381. instead of
  382.  
  383. ADFS::HardDisc4.$.Develop.Libraries.!DeskLib
  384.  
  385. This is also good practice in case, in the above example,
  386. DeskLib should be moved.
  387.  
  388. Extracting and moving a project
  389. Sometimes it is necessary to relocate a project.
  390. Simply moving the project directory will
  391. not work as RPM will no longer know where to find the
  392. project. Instead, dragging the project icon with Adjust to a
  393. directory display will cause the entire project to be moved
  394. there.
  395.  
  396. Note that it is important to check that there is enough
  397. space in the new location or the project may only be
  398. partially moved.
  399.  
  400. Similarly the time comes when the project is finished and
  401. you want to produce a 'stand alone' version without any of
  402. the source code. To do this drag the project icon with the
  403. Select button and a stand alone copy of the project will be
  404. created without any code. The original will be left
  405. untouched.
  406.  
  407.  
  408. Creating a new application
  409.  
  410. To define a new application click the New button in the
  411. project list window. The Create new application window
  412. appears.
  413.  
  414. The Name field can contain a name for the application up to
  415. 32 characters long. This name can contain spaces.
  416.  
  417. The Description field can contain a brief description of the
  418. application.
  419.  
  420. In the field under the App icon you should enter the name of
  421. the application as it will be stored on disc. For example
  422. !Edit, !Draw or !Paint are all valid names. The name must
  423. start with an exclamation mark (!) to show that it is an
  424. application.
  425.  
  426. When all the fields have been filled in the App icon should
  427. be dragged to the directory display where you want the
  428. application to be stored.
  429.  
  430. If you prefer the whole pathname can be filled in the and
  431. Save button clicked on.
  432.  
  433. Clicking on the Cancel button will remove this window.
  434.  
  435.  
  436. Remaining project functions
  437.  
  438. The two remaining buttons on the project list window are
  439. Open and Delete.
  440.  
  441. Open will open the parent directory that contains the
  442. project. This allows the project to be run (if it is an
  443. application) without having to work your way down the
  444. directory structures until it is found.
  445.  
  446. Delete deletes the highlighted projects.
  447.  
  448.  
  449. Preferences
  450.  
  451. Compiler resources
  452. Choosing Compilers from the Preferences
  453. submenu produces the Compiler resources window.
  454.  
  455. This allows support for new languages to be added to
  456. RPM. Note that a language must have a suitable compiler.
  457. Interpreted languages such as BASIC are not supported.
  458.  
  459. Suffix
  460. The suffix is used to identify the different code
  461. types. For example c is C code, cc or  c++ is C++ code.
  462. Clicking on the help menu icon will produce a list of code
  463. types already defined.
  464.  
  465. Compiler
  466. This should contains the compiler that is used to
  467. compiler this type of code.
  468.  
  469. Type
  470. This is a brief description of this code type. For
  471. example, the cc code type might have the description GNU
  472. C++.
  473.  
  474. There are a number of flags associated with a compiler.
  475. RPM does not try to support every single flag, just the
  476. general ones. It is possible, as we shall see later, to have
  477. some flags that are specific to a particular compiler.
  478.  
  479. Compile
  480. This flag specified that the compiler should not try
  481. and link the object file.
  482.  
  483. Strict
  484. Tells the compiler to be extra strict when checking the conformance
  485. to standards of
  486. the code.
  487.  
  488. Include
  489. This tells the compiler where to look for include files.
  490.  
  491. Output
  492. Tells the compiler what to call the output object file.
  493.  
  494. Depend
  495. It is possible for some compilers to produce
  496. dependency files. These files show which other files a piece
  497. of code is dependent on. This flag should tell the compiler
  498. to produce a !Depend file.
  499.  
  500. Debug
  501. This flag tells the compiler to produce debug
  502. information that can be used with DDT (Desktop Debugging
  503. Tool).
  504.  
  505. Memory 
  506. he minimum amount of memory that the compiler needs
  507. to run. Most compilers can grab any extra memory that they
  508. need but some (such as GCC) need to be given as much memory
  509. as they are likely to need on startup.
  510.  
  511. Manager
  512. If you try to run come compilers (such as GCC) on
  513. machines with small amounts of memory (less than 8M (!))
  514. then you will need some sort of virtual memory manager. This
  515. field should contain the name of the virtual memory manager
  516. that replace the Taskwindow command.
  517.  
  518. Virtual memory
  519. This field should contain the amount of
  520. memory that the virtual memory manager is to supply.
  521.  
  522. The following four flags are all user definable. This allows
  523. support for compiler dependent options to be built in. The
  524. names of these flags can also be specified for use in the
  525. compiler flags window.
  526.  
  527. Command
  528. The full command to compile a piece of source code
  529. using this compiler. Unless you are adding a new compiler it
  530. is recommended that this field is left alone. If you are
  531. adding a new compiler then copy this entry from another
  532. compiler.
  533.  
  534. There a a number of buttons along the bottom of this window.
  535.  
  536. Edit allows a default template for each code type to be
  537. edited. Some special fields can be embedded in the template
  538. which will be substituted when a new piece of code is
  539. created.
  540.  
  541. $name    This will be replaced with the name of the code
  542. $suffix    This will be replaced with the code suffix
  543. $date    This will be replaced with the date and time of code
  544. creation Delete will delete the current code type. Note that
  545. any projects which contain code of this type will generate
  546. errors if you now try to compile this code.
  547.  
  548. New clears all the fields ready for a new code type.
  549.  
  550. Cancel closes the window.
  551.  
  552. OK stores the choices for the current code type.
  553.  
  554.  
  555. Linker resources
  556. Choosing Linker from the Preferences
  557. submenu produces the Link resources window.
  558.  
  559. This allows the flags associated with the linker to be
  560. defined. It is unlikely that you will want to change these
  561. entries.
  562.  
  563. Archiver resources
  564. Choosing Archiver from the Preferences
  565. submenu produces the Archiver resources window.
  566.  
  567. This window allows the flags used by the archiver (eg
  568. libfile) to be specified.
  569.  
  570.  
  571. Resource resources
  572. Choosing Resources from the Preferences
  573. submenu produces the Resources resources window.
  574.  
  575. This allows resource file types for applications to be
  576. specified.
  577.  
  578. Name should be the name of a valid resource type such as
  579. !Boot or !Sprites. Clicking on the help menu icon will
  580. produce a list of currently defined resources.
  581.  
  582. Type is the filetype of the resource. Clicking on the help
  583. menu icon will produce a list of valid filetypes. If the
  584. filetype that you require is not there the hex value can be
  585. typed directly into the field.
  586.  
  587. Treat as text causes the resource to be loaded into a text
  588. editor when it is edited. Note that for this to work the
  589. text editor must already be loaded.
  590.  
  591. Base is used when creating a new resource type. All resource
  592. types must have a file to be based on. This file should be
  593. dragged here and the name will appear in the Base field.
  594.  
  595. The buttons at the bottom of the window act as follows.
  596.  
  597. Edit allows the default file for each resource type to be
  598. edited.
  599.  
  600. Delete will delete the current resource type.
  601.  
  602. New clears all the fields ready for a new resource type.
  603.  
  604. Cancel closes the window.
  605.  
  606. OK stores the choices for the current resource type.
  607.  
  608.  
  609. Other preferences
  610.  
  611. There are a couple of other preferences on the Preferences
  612. menu.
  613.  
  614. Results causes the compile output window to appear whilst
  615. code is being compiled. If this is not selected the results
  616. will only appear when compilation has finished.
  617.  
  618. Continue will cause RPM to keep going even if there have
  619. been compiler errors when compiling multiple sources. Delete
  620. will delete the current code type. Note that any projects
  621. which contain code of this type will generate errors if you
  622. now try to compile this code.
  623.  
  624. New clears all the fields ready for a new code type.
  625.  
  626. Cancel closes the window.
  627.  
  628. OK stores the choices for the current code type.
  629.  
  630. ----------------------------------------------------------------
  631.  
  632. List of versions:
  633.  
  634. 0 - 1.09
  635. Development versions
  636.  
  637. 1.10
  638. First release.
  639.  
  640. 1.11
  641. Added Run button to code list window to automatically make
  642. and run applications and utilities.
  643.  
  644. 1.12
  645. Change of name from Imagine to RPM to avoid name clash with
  646. existing application. This means that the Imagine directory must
  647. be renamed RPM.
  648.  
  649. 1.20 (03-Nov-96)
  650. Changed memory management to use Dynamite or Dynamic areas using
  651. my own memory library rather then flex.
  652.  
  653. 1.21 (11-Jan-97)
  654. Fixed Dynamic area usage - hopefully. Fixed problem with running
  655. Utilities where the parameters were not stored in the proper place
  656. and didn't get passed to the utility when it was run.
  657. ----------------------------------------------------------------
  658.  
  659. The author can be contacted at:
  660.  
  661. EMail
  662. rpm@really.demon.co.uk
  663.  
  664. Snail mail:
  665. The Really Small Software Company
  666. Olivers Hill
  667. Ashburnham
  668. Battle
  669. Sussex TN33 9PE
  670.  
  671.  
  672. Comments, bug reports and suggested improvements gratefully received.