@database guimake.hyper
@node MAIN

                       GoldED Project Manager $VER 1.2
                              Rico Krasowski


                              C O N T E N T S


                         @{"       About GUIMake       " link ABOUT_GUIMAKE}
                         @{"  Installation of GUIMake  " link INSTALLATION_OF_GUIMAKE}
                         @{"   GUIMake's ARexx port    " link GUIMAKE'S_AREXX_PORT}
                         @{"   GUIMake configuration   " link GUIMAKE_CONFIGURATION}


@endnode
@node ABOUT_GUIMAKE "About GUIMake"
                                 About GUIMake 

                      PRJ-Manager by Rico Krasowski

The GUIMake package (found within the tools directory) is freeware. It may be
distributed  together with GoldED. The user interface has been designed using
GadToolsBox  2.0b  by Jan van den Bard. The ARexx interface was created using
Michael  Balzer's  ARexxBox  v1.12.  Thanx  a lot for these great programming
tools  !  Additional  credits  go  to Olaf Bartel for his giant 'TERM' and to
Commodore for OS2.x/OS3.x !!

About GUIMake ...

The  TDS  Twilight  Development  System  (released  as  Amiga  M&T  disk) has
impressed  me  a  lot.  Unfortunately  the  TDS  editor  didn't  support user
configuration,  so  I  started  development  of  a similar project management
system  for  another  editor (GED). After some struggle the first version was
done  -  leaving me surprised about what is possible after having switched to
'C' just two months before.

About GUIMake's author ...

I  was  born  in  1975. My first computer was an ATARI 800 XL (shame on you -
translator's  note  :-)]  which I used for nothing but programming. The Atari
was  -  of  course  - followed by a C64. This machine helped me to gain first
experiences  with  assembler programming. My current machine is an Amiga 500,
equipped  with  a  '030  board/4 MB RAM, a HD (60 MB) and a 1496 TKR modem. I
switched  to 'C' programming in April '93. Besides beeing a programmer, I'm a
Trekkie :-)

My address:

Rico Krasowski  
Brckenhofstrae 62
34132 Kassel (Germany)
Phone: 0561-408737

e-mail (german z-net): 
RICO@HEAVEN.ZER


@endnode
@node INSTALLATION_OF_GUIMAKE "Installation of GUIMake"
                            Installation of GUIMake 


GUIMake installation is performed by the GoldED install utility - there is no
need  for  additional  setup  procedures.  The  editor  is made to launch the
project  manager  in  the  background  if  required (running GUIMKE:GUIMake).
GUIMake  is controlled via its ARexx port - once launched it will stay in the
background,  waiting  for one of the commands listed in the next section (see
@{" GUIMake's ARexx port " link GUIMAKE'S_AREXX_PORT}). Ususally these commands are recieved from GoldED, so
you  probably  won't ever have to deal with GUIMake's ARexx port on your own.
Possible  actions (besides many else) include opening a configuration window,
compile  a  project  or  make  the  editor  jump  to  an erroneous line after
compilation.


@endnode
@node GUIMAKE'S_AREXX_PORT "GUIMake's ARexx port"
                            GUIMake's ARexx port 

                           PortName: GUIMAKE[.x]


                     main functions         compiler

                       @{"  FILE     " link FILE}        @{"  BUILD    " link BUILD}
                       @{"  SAVE     " link SAVE}        @{"  COMPILE  " link COMPILE}
                       @{"  CONFIG   " link CONFIG}        @{"  RUN      " link RUN}
                       @{"  MODULES  " link MODULES}
                       @{"  QUIT     " link QUIT}
                       @{"  OPTIONS  " link OPTIONS}

                      error handling         misc

                       @{"  NEW      " link NEW}        @{"  SET      " link SET}
                       @{"  FIRST    " link FIRST}        @{"  QUERY    " link QUERY}
                       @{"  LAST     " link LAST}        @{"  SWITCH   " link SWITCH}
                       @{"  NEXT     " link NEXT}        @{"  TOGGLE   " link TOGGLE}
                       @{"  PREV     " link PREV}
                       @{"  NEXTE    " link NEXTE}
                       @{"  PREVE    " link PREVE}

@endnode
@node BUILD "BUILD"
  BUILD 

  Description of ARexx commands
  Command name: BUILD

  option          description
  --------------------------------------------------------------------
  (no option)     compile & link files; consider wether files have been
                  changed at all since last call
  ALL/S           compile & link files


@endnode
@node COMPILE "COMPILE"
  COMPILE 

  Description of ARexx commands
  Command name: COMPILE

  option          description
  --------------------------------------------------------------------
  (no option)     compile all files


@endnode
@node CONFIG "CONFIG"
  CONFIG 

  Description of ARexx commands
  Command name: CONFIG

  option          description
  --------------------------------------------------------------------
  (no option)     open config window (see @{" GUIMake configuration " link GUIMAKE_CONFIGURATION})


@endnode
@node FILE "FILE"
  FILE 

  Description of ARexx commands
  Command name: FILE

  option          description
  --------------------------------------------------------------------
  NAME/K          load named project definition file (STRING)


@endnode
@node FIRST "FIRST"
  FIRST 

  Description of ARexx commands
  Command name: FIRST

  option          description
  --------------------------------------------------------------------
  (no option)     jump to first erroneous line


@endnode
@node LAST "LAST"
  LAST 

  Description of ARexx commands
  Command name: LAST

  option          description
  --------------------------------------------------------------------
  (no option)     jump to last erroneous line


@endnode
@node MODULES "MODULES"
  MODULES 

  Description of GUIMake's ARexx commands
  Command name: MODULES

  option          description
  --------------------------------------------------------------------
  (no option)     open [modules window]


  Comment:  The  modules  window  is  used for setting up a project
  -i.e. to add or remove source/object/header files related to your
  current  project.  Doubleclick  at  a file of the modules list to
  edit  it. Quite simililar to GoldED's source files requester (see
  @{" switch " link SWITCH}).


@endnode
@node NEW "NEW"
  NEW 

  Description of GUIMake's ARexx commands
  Command name: NEW

  option          description
  --------------------------------------------------------------------
  (no option)     load error file generated by compiler


@endnode
@node NEXT "NEXT"
  NEXT 

  Description of GUIMake's ARexx commands
  Command name: NEXT

  Option          Beschreibung
  --------------------------------------------------------------------
  (no option)     jump to next erroneous line (either error or warning)


@endnode
@node NEXTE "NEXTE"
  NEXTE 

  Description of GUIMake's ARexx commands
  Command name: NEXTE

  option          description
  --------------------------------------------------------------------
  (no option)     jump to next erroneous line (don't consider warnings)


@endnode
@node OPTIONS "OPTIONS"
  OPTIONS 

  Description of GUIMake's ARexx commands
  Command name: OPTIONS

  Option          Beschreibung
  --------------------------------------------------------------------
  (no option)     open compiler options requester (DICE supported)


@endnode
@node PREV "PREV"
  PREV 

  Description of GUIMake's ARexx commands
  Command name: PREV

  option          description
  --------------------------------------------------------------------
  (no option)     jump to previous erroneous line (either error or
                  warning

@endnode
@node PREVE "PREVE"
  PREVE 

  Description of GUIMake's ARexx commands
  Command name: PREVE

  option          description
  --------------------------------------------------------------------
  (no option)     jump to previous erroneous line (don't consider
                  warnings)

@endnode
@node QUERY "QUERY"
  QUERY 

  Description of GUIMake's ARexx commands
  Command name: QUERY

  Used to query state of one of GUIMake's internal variables:

  option          description
  --------------------------------------------------------------------
  EXENAME/S       name of executable
  EXEARG/S        arguments for running the executable
  OUTPUT/S        output path for compiler (e.g. CON:)
  OBJECTDIR/S     object directory
  COMPILEROPT/S   compiler options
  LINKEROPT/S     linker options
  ERRORTYPE/S     format (type) of error file
  WARNINGS/S      ignore warnings ?
  SOURCES/S       list of source files (struct List *)
  TRUEEXE/S       program to run if compilation successful
  FAILEXE/S       program to run if compilation not successful
  PRJNAME/S       path (name) of project file
  COMPILER/K      compiler name
  AUTOJUMP/S      AutoJump mode 
  PASS_0/S        pass <0> enabled/disabled ?


@endnode
@node QUIT "QUIT"
  QUIT 

  Description of GUIMake's ARexx commands
  Command name: QUIT

  option          description
  --------------------------------------------------------------------
  (no option)     exit from GUIMake


@endnode
@node RUN "RUN"
  RUN 

  Description of GUIMake's ARexx commands
  Command name: RUN

  option          description
  --------------------------------------------------------------------
  (no option)     run executable 


@endnode
@node SAVE "SAVE"
  SAVE 

  Description of GUIMake's ARexx commands
  Command name: SAVE

  option          description
  --------------------------------------------------------------------
  NAME/K          save project using provided name (STRING)


@endnode
@node SET "SET"
  SET 

  Description of GUIMake's ARexx commands
  Command name: SET

  Used to set GUIMake's internal variables:

  option          description
  --------------------------------------------------------------------
  EXENAME/S       name of executable
  EXEARG/S        arguments for running the executable
  OUTPUT/S        output path for compiler (e.g. CON:)
  OBJECTDIR/S     object directory
  COMPILEROPT/S   compiler options
  LINKEROPT/S     linker options
  ERRORTYPE/S     format (type) of error file
  WARNINGS/S      ignore warnings ?
  SOURCES/S       list of source files (struct List *)
  TRUEEXE/S       program to run if compilation successful
  FAILEXE/S       program to run if compilation not successful
  PRJNAME/S       path (name) of project file
  COMPILER/K      compiler name
  AUTOJUMP/S      set AutoJump mode (ON/OFF)
  PASS_0/S        enable/disable pass <0> (ON/OFF)

  Example: SET OBJECTDIR "T:"


@endnode
@node SWITCH "SWITCH"
  SWITCH 

  Description of GUIMake's ARexx commands
  Command name: SWITCH

  option          description
  --------------------------------------------------------------------
  (no option)     refresh GoldED's source files requester (i.e. set it
                  according to the contents of GUIMake's modules re-
                  quester)

@endnode
@node TOGGLE "TOGGLE"
  TOGGLE 

  Description of GUIMake's ARexx commands
  Command name: BUILD

  option          description
  --------------------------------------------------------------------
  SWITCHING/S     enable/disable automatic refresh of GoldED's source
                  files requester (see @{" switch " link SWITCH})
  ERRORS/S        toggle ignore-warnings-mode


@endnode
@node GUIMAKE_CONFIGURATION "GUIMake configuration"
                              GUIMake configuration 

The  GUIMake  configuration  window  will open after the @{" CONFIG " link CONFIG} command has
been sent to the GUIMAKE server port (host).

     +---- MISC -----+
   1 |Fail Executable|
   2 |True Executable|
   3 |Pass <0>       |
   4 |  Create Icon  |
     +---------------+

     +-----------------------+---------------------------------------+
     | +-----------------++  | < 14         Executable              >|
     | |                 ||  | < 15         Arguments               >|
     | |                 ||  | < 16         Output                  >|
     | |                 ||  | < 17 >< 18   ObjectDir               >|
     | |                 ||  | < 19 >< 20   Compiler                >|
     | +-----------------++  | < 19 >< 21   Linker                  >|
     | < 5 >< 6 >< 7 >< 8 >  +---------------------------------------+
     | <  9  ><  10 >< 11 >  | <22 AUTOJUMP> <23 Mode > < 24 Pass0 > |
     | <   12   ><   13   >  |                                       |
     +-----------------------+---------------------------------------+

     01 @{" Fail executable " link FAIL_EXECUTABLE}  09 @{"   Load         " link LOAD}  17 @{"   F           " link F}
     02 @{" TRUE executable " link TRUE_EXECUTABLE}  10 @{"   PSave        " link PSAVE}  18 @{"   ObjectDir   " link OBJECTDIR}
     03 @{" Pass <0>        " link PASS_<0>}  11 @{"   New          " link NEW}  19 @{"   ?           " link ?}
     04 @{" Create icon     " link CREATE_ICON}  12 @{"   Ok           " link OK}  20 @{"   Compiler    " link COMPILER}
     05 @{" Add             " link ADD}  13 @{"   Cancel       " link CANCEL}  21 @{"   Linker      " link LINKER}
     06 @{" Del             " link DEL}  14 @{"   Executable   " link EXECUTABLE}  22 @{"   AutoJump    " link AUTOJUMP}
     07 @{" Up              " link UP}  15 @{"   Arguments    " link ARGUMENTS}  23 @{"   Mode        " link MODE}
     08 @{" Down            " link DOWN}  16 @{"   Output       " link OUTPUT}  24 @{"   Pass_0      " link PASS_0}

@endnode
@node CREATE_ICON "Create Icon"
  Create Icon 

  Description of GUIMake's gadgets
  Gadget: <create icon gadget>

  Toggles icon creation (affects saving of config file; see @{" save " link SAVE})

@endnode
@node PASS_0 "PASS_0"
  PASS_0 

  Description of GUIMake's gadgets
  Gadget: <pass 0 gadget>

  Toggle  this  gadgets to ON if you want to have an external command performed
  before  compilation.  Example  usage: automatic prototype generation. Set the
  command using the @{" pass <0> " link PASS_<0>} menu.

@endnode
@node AUTOJUMP "AUTOJUMP"
  AUTOJUMP 

  Description of GUIMake's gadgets
  Gadget: <AutoJump gadget>

  GUIMake  will  make  the  editor  jump  to  the  first  erronous  line  after
  compilation if AutoJump is enabled. The affected file is loaded if necessary.

@endnode
@node F "F"
  F 

  Description of GUIMake's gadgets
  Gadget: <file requester gadget>

  Open directory requester. Used to select a directory for object files created
  during compilation.

@endnode
@node ? "?"
  ? 

  Description of GUIMake's gadgets
  Gadget: <help gadget>

  Open help window for easy selection of one of GUIMake's magic codes.

  Magic codes 

  Magic  codes  are replaced by actual values if a string is referenced for the
  first  time.  For  example  #e  within  the  compiler options string would be
  replaced  by  the  name  of  the error file during compilation. The following
  magic codes are supported:

        #s ........ source file(s)
        #e ........ error file
        #x ........ executable to generate
        #o ........ object file(s)

  Behaviour  of some of these options depends on current operation. For example
  #s  ist  replaced by a single source file during compilation but by a list of
  all source files if found within the @{" pass_0 " link PASS_0} command string.

@endnode
@node OK "OK"
  OK 

  Description of GUIMake's gadgets
  Gadget: <ok gadget>

  Close window (remember current settings)


@endnode
@node CANCEL "CANCEL"
  CANCEL 

  Description of GUIMake's gadgets
  Gadget: <cancel gadget>

  Close window (restore old configuration)


@endnode
@node ADD "ADD"
  ADD 

  Description of GUIMake's gadgets
  Gadget: <add gadget>

  Open file requester to add new file(s) to the list of modules. Multiselect is
  supported (press shift button during selection).


@endnode
@node DEL "DEL"
  DEL 

  Description of GUIMake's gadgets
  Gadget: <del gadget>

  Remove  selected module (source file, object file oder header file) from list
  of modules.

@endnode
@node UP "UP"
  UP 

  Description of GUIMake's gadgets
  Gadget: <up gadget>

  Move selected entry one line up within modules list


@endnode
@node DOWN "DOWN"
  DOWN 

  Description of GUIMake's gadgets
  Gadget: <down gadget>

  Move selected entry one line down within modules list


@endnode
@node LOAD "LOAD"
  LOAD 

  Description of GUIMake's gadgets
  Gadget: <load gadget>

  Asks you for a project file to load (see @{" save " link SAVE})


@endnode
@node PSAVE "PSAVE"
  PSAVE 

  Description of GUIMake's gadgets
  Gadget: <save gadget>

  Save  current  settings  to a 'project file'. Standard suffix is "*.prj". Use
  [create  icon]  of  the  misc  menu to toggle icon creation for project files
  on/off.

@endnode
@node NEW "NEW"
  NEW 

  Description of GUIMake's gadgets
  Gadget: <new gadget>

  Reset/clear settings:

  single mouse click: list, name of executabel and arguments for executable are
  cleared.  Double  mouse click: _everthing_ is reset to the defaults (e.g. the
  output file is reset to the output file suggested by GoldED).


@endnode
@node MODE "MODE"
  MODE 

  Description of GUIMake's gadgets
  Gadget: <mode gadget>

  The current version of GUIMake does support three modes of operation:

  DICE .... to be used with unregistered Dice
  DICE2 ... to be used with registered Dice
  NONE .... to be used with other compilers


@endnode
@node EXECUTABLE "EXECUTABLE"
  EXECUTABLE 

  Description of GUIMake's gadgets
  Gadget: <executable gadget>

  Used to set the executable to create (e.g. T:TEST)


@endnode
@node ARGUMENTS "ARGUMENTS"
  ARGUMENTS 

  Description of GUIMake's gadgets
  Gadget: <arguments gadget>

  Use  this  gadgets to set arguments to be passed to the executable if running
  it (see @{" RUN " link RUN} command of GUIMake's ARexx port).


@endnode
@node OUTPUT "OUTPUT"
  OUTPUT 

  Description of GUIMake's gadgets
  Gadget: <output gadget>

  Set output device/file for GUIMake (e.g. con:). GoldED's defaults are used if
  this gadget is left empty.


@endnode
@node OBJECTDIR "OBJECTDIR"
  OBJECTDIR 

  Description of GUIMake's gadgets
  Gadget: <ObjectDir gadget>

  Used to select a directory for storage of object files created by compiler.


@endnode
@node COMPILER "COMPILER"
  COMPILER 

  Description of GUIMake's gadgets
  Gadget: <compiler gadget>

  Compiler call to be used for compilation of object files/assembler sources
  into object files. See @{" magic codes " link ?}.

  Behaviour  of  Dice  depends  on compiler options set by this string gadget (
  made part of the DCC call) as well as on the contents of DCCOPTS (environment
  variable).  Use  the options window of GUIMake (see @{" options " link OPTIONS} command) to set
  DCCOPTS. Use the -no-env keyword among other compiler options to override the
  contents of DCCOPTS respectively GUIMake's options window.


@endnode
@node LINKER "LINKER"
  LINKER 

  Description of GUIMake's gadgets
  Gadget: <linker gadget>

  Linker  call  to be used for linking object files together in order to create
  an executable. See @{" magic codes " link ?} for information on 'magic codes' within this
  string.


@endnode
@node TRUE_EXECUTABLE "TRUE EXECUTABLE"
  TRUE EXECUTABLE 

  Description of GUIMake's menu
  Gadget: <true executable menu>

  Command  to be executed if compiler/linker has completed successfully (return
  code <= 5)


@endnode
@node FAIL_EXECUTABLE "FAIL EXECUTABLE"
  FAIL EXECUTABLE 

  Description of GUIMake's menu
  Gadget: <fail executable menu>

  Command to be executed if compiler/linker has failed (return code > 5)


@endnode
@node PASS_<0> "PASS <0>"
  PASS <0> 

  Description of GUIMake's menu
  Gadget: <pass 0 menu>

  Command to be executed before compiler pass (see @{" pass_0 " link PASS_0})
@endnode
