home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / projects / imagine_1 / !Imagine / !Help < prev    next >
Text File  |  1995-12-24  |  20KB  |  640 lines

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