home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 91 / af091a.adf / af91a2.lzx / bin / newbas < prev    next >
AmigaDOS Script File  |  2017-01-22  |  2KB  |  86 lines

  1. .key arg1,arg2,arg3
  2.  
  3. ; ** Preprocess, compile, assemble and link an ACE program using **
  4. ; ** ACPP rather than APP as a preprocessor. Could use NAP instead. **
  5.  
  6. ; make sure stack is big enough.
  7. STACK 40000
  8.  
  9. ; don't abort script if ACE or APP quits 
  10. ; with a return code of 10 (ERROR).
  11. FAILAT 11
  12.  
  13. IF <arg2> GT ""
  14.  
  15.  ; at least 2 arguments: <arg1> = compiler options.
  16.  ;                       <arg2> = ACE source file.
  17.  ;                       <arg3> = extra object module/library to link.
  18.  
  19.  ; preprocess source file.
  20.  acpp <arg2>.b T:<arg2>.beta
  21.  IF NOT ERROR
  22.   ; remove preprocessor-inserted information lines.
  23.   removeline t:<arg2>.beta t:<arg2>.b
  24.   IF NOT ERROR
  25.    delete >NIL: T:<arg2>.beta
  26.    ; compile preprocessed source file.
  27.    ace <arg1> T:<arg2>
  28.  
  29.    IF NOT ERROR
  30.      ; assemble and link
  31.      delete >NIL: T:<arg2>.b
  32.      a68k T:<arg2>.s
  33.      delete >NIL: T:<arg2>.s
  34.      blink from T:<arg2>.o LIB <arg3>+ACElib:startup.lib+ ACElib:db.lib+
  35.                               ACElib:ami.lib SMALLCODE SMALLDATA
  36.  
  37.      ; leave us with the executable (and icon?).
  38.      copy T:<arg2> ""
  39.  
  40.      IF EXISTS T:<arg2>.info
  41.        copy T:<arg2>.info ""
  42.      ENDIF
  43.  
  44.    ENDIF
  45.  
  46.   ENDIF
  47.  ENDIF
  48. ELSE 
  49.  
  50.  ; no compiler options: <arg1> = ACE source file.
  51.  ;                      <arg2> = extra object module/library to link.
  52.  
  53.  ; preprocess source file.
  54.  acpp <arg1>.b T:<arg1>.beta
  55.  IF NOT ERROR
  56.   ; remove preprocessor-inserted information lines.
  57.   removeline t:<arg1>.beta t:<arg1>.b
  58.   IF NOT ERROR
  59.    delete >NIL: t:<arg1>.beta
  60.    ; compile source file.
  61.    ace T:<arg1>
  62.  
  63.    IF NOT ERROR
  64.      ; assemble and link.
  65.      delete >NIL: T:<arg1>.b
  66.      a68k T:<arg1>.s
  67.      delete >NIL: T:<arg1>.s
  68.      blink T:<arg1>.o LIB <arg2>+ACElib:startup.lib+ACElib:db.lib+
  69.                               ACElib:ami.lib SMALLCODE SMALLDATA
  70.  
  71.      ; leave us with the executable (and icon?).
  72.      copy T:<arg1> ""
  73.    
  74.      IF EXISTS T:<arg1>.info
  75.        copy T:<arg1>.info ""
  76.      ENDIF
  77.  
  78.    ENDIF
  79.   ENDIF 
  80.  ENDIF
  81.  
  82. ENDIF
  83.  
  84. ; kill any remaining temporary files.
  85. delete >NIL: T:<arg2>#?
  86.