; MaxonC++-Installation V1.0
; 

(complete 0)

(working "\n\nSie haben den Auto-Modus gewählt!\nVon nun an läuft alles automatisch ab!\n\n"
         "Lehnen Sie sich zurück und warten Sie ab!")

(set @default-dest                       	; Verzeichnis aussuchen 
	(askdir
		(prompt "In welches Verzeichnis soll das MaxonC++-Entwicklungssystem "
              "kopiert werden ?")
		(help	"Wählen Sie erst die Partition Ihrer Festplatte aus, auf der "
            "Sie gerne MaxonC++ installieren würden. Dann drücken Sie auf "
            "PROCEED und das Programm beginnt mit der Arbeit.\n\n"
            @askdir-help)
		(default "WORK:MCPP")
	)
)

(if                                      	; Verzeichnis erzeugen
	(= (exists @default-dest) 0)
	(makedir @default-dest)
)


; ------- MaxonC++-Installation vorbereiten

(askdisk
	(prompt "\n\n\nBitte legen Sie die Diskette \"MCPP_1\" ein!")
	(help "Diese Diskette enthält einige wichtige Installationsdaten,\n"
         "die in die RAM-Disk kopiert werden.")
	(dest "MCPP_1")
)
(copyfiles											; LHX kopieren
	(prompt "Einige Installationsdateien werden in die RAM-Disk kopiert ...")
	(help @copyfiles-help)
	(source "MCPP_1:C")
	(dest "RAM:")
   (choices "LHX")
	(confirm)
)

;(copyfiles											; README kopieren
;	(help @copyfiles-help)
;	(source "MCPP_1:")
;	(dest @default-dest)
;   (choices "README")
;)

(set DemosDir (tackon @default-dest "Demos"))
(makedir DemosDir)
(copyfiles											; Demos kopieren
	(prompt "Einige Demos werden kopiert ...")
	(help @copyfiles-help)
	(source "MCPP_1:Demos")
	(dest DemosDir)
	(all)
	(confirm)
)

(if
   (= (exists "C:MuchMore") 0)
	(copyfiles										; MuchMore kopieren
		(prompt "Einige Installationsdateien werden in die RAM-Disk kopiert ...")
		(help @copyfiles-help)
		(source "MCPP_1:C")
		(dest "c:")
   	(choices "MuchMore")
	)
)



; ------- MaxonC++ KOPIEREN

(askdisk
	(prompt "\n\n\nBitte legen Sie die Diskette \"MCPP_2\" ein!")
	(help "Diese Diskette enthält das MaxonC++-Entwicklungssystem.")
	(dest "MCPP_2")
)
(copyfiles											; Compiler kopieren
0	(prompt "MaxonC++ und einige andere Dateien werden in das Verzeichnis kopiert ...")
	(help @copyfiles-help)
	(source "MCPP_2:")
	(dest @default-dest)
   (choices "MCPP" "MCPP.info" "MCPPC")
	(confirm)
)

(if
   (= (exists "s:MaxonC++.config") 0)
	(copyfiles											; CONFIG nach s: kopieren
  		(prompt "Die Konfigurationsdateien werden nach s: kopiert ...\n\n")
		(help @copyfiles-help)
		(source "MCPP_2:s")
		(dest "s:")
   	(newname "MaxonC++.config")
  		(choices "HDMaxonC++.config")
		(confirm)
	)
)

(complete 15)



; ------- EDWARD KOPIEREN

(copyfiles
  	(prompt "Der Editor EDWARD wird kopiert ...\n\n")
	(help @copyfiles-help)
	(source "MCPP_2:")
	(dest  @default-dest)
	(pattern "EDWARD#?")
   (confirm)
)

(if
   (= (exists "s:EDWARD.CONF") 0)
	(copyfiles											; CONFIG nach s: kopieren
		(source "MCPP_2:s")
		(dest "s:")
  		(choices "EDWARD.CONF")
	)
)

(set ARexxDir (tackon @default-dest "AREXX"))
(makedir ARexxDir)
(copyfiles
  	(prompt "Die ARexx-Scripts werden kopiert ...\n\n")
	(help @copyfiles-help)
	(source "MCPP_2:AREXX")
	(dest  ARexxDir)
	(pattern "#?")
   (confirm)
)

(complete 20)



; ------- C-LIBRARIES KOPIEREN
	
(set clibdir (tackon @default-dest "Lib"))
(makedir clibdir)

(copyfiles											; ARCHIV nach RAM: kopieren
	(source "MCPP_2:")
	(dest "ram:")
  	(choices "MCPPLIBS.lha")
)

(run
  	(prompt "Die C-LIBRARIES werden entpackt ...\n\n")
	(help @copyfiles-help)
   ("ram:lhx x ram:MCPPLIBS.lha #? ram:tmp/")
   (confirm)
)

(copyfiles
  	(prompt "Die C-LIBRARIES werden kopiert ...\n\n")
	(help @copyfiles-help)
	(source "ram:tmp")
	(dest clibdir)
	(all)
   (confirm)
)

(run
  	(prompt "Die temporären Dateien werden gelöscht ...\n\n")
	(help @copyfiles-help)
   ("delete ram:tmp all quiet")
   (confirm)
)

(run
   ("delete ram:MCPPLIBS.lha")
)

(complete 35)



; ------- C-INCLUDES KOPIEREN
	
(set cincdir (tackon @default-dest "Include"))
(makedir cincdir)

(copyfiles											; ARCHIV nach RAM: kopieren
	(source "MCPP_2:")
	(dest "ram:")
  	(choices "MCPPINCL.lha")
)

(run
  	(prompt "Die C-INCLUDES werden entpackt ...\n\n")
	(help @copyfiles-help)
   ("ram:lhx x ram:MCPPINCL.lha #? ram:tmp/")
   (confirm)
)

(copyfiles
  	(prompt "Die C-INCLUDES werden kopiert ...\n\n")
	(help @copyfiles-help)
	(source "ram:tmp")
	(dest cincdir)
	(all)
   (confirm)
)

(run
  	(prompt "Die temporären Dateien werden gelöscht ...\n\n")
	(help @copyfiles-help)
   ("delete ram:tmp all quiet")
   (confirm)
)

(run
   ("delete ram:MCPPINCL.lha")
)
	
(complete 55)



; ------- MAKEAPP KOPIEREN

(askdisk
	(prompt "\nDISKETTEN-INSTALLATION\n\nBitte legen Sie die Diskette \"MCPP_3\" ein!")
	(help "Diese Diskette enthält einige wichtige Installationsdaten,\n"
         "die in die RAM-Disk kopiert werden.")
	(dest "MCPP_3")
)

(copyfiles											; S kopieren
	(prompt "Einige Installationsdateien werden in die RAM-Disk kopiert ...")
	(help @copyfiles-help)
	(source "MCPP_3:s")
	(dest "s:")
   (choices "rctfiler.conf")
	(confirm)
)

(copyfiles											; RCT-LIB kopieren
	(prompt "Die RCT-LIBRARY wird kopiert ...")
	(help
		"Die RCT-Library wird von verschiedenen Programmen des MaxonC++-Systems "
      "benötigt. Wenn Sie diese Bibliothek schon auf Ihrer Festplatte "
      "installiert haben, dann ist hier eine neuere Version.\n\n"
		@copyfiles-help
	)
	(source "MCPP_3:libs")
	(dest "libs:")
   (choices "rct.library")
	(confirm)
)

(set mappdir (tackon @default-dest "MakeAPP"))
(makedir mappdir)

(copyfiles
  	(prompt "MAKEAPP wird kopiert ...\n\n")
	(help @copyfiles-help)
	(source "MCPP_3:")
	(dest  mappdir)
	(pattern "#?")
   (confirm)
)

(complete 65)



; ------- DEBUGGER KOPIEREN

(set mdbdir (tackon @default-dest "MSDB"))
(makedir mdbdir)
	
(askdisk
	(prompt "\n\n\nBitte legen Sie die Diskette \"MSDB\" ein!")
	(help "Diese Diskette enthält den Source-Level-Debugger und den Assembler.")
	(dest "MSDB")
)
(copyfiles
  	(prompt "Die Dateien des DEBUGGERS werden kopiert ...\n\n")
	(help @copyfiles-help)
	(source "MSDB:MSDB")
	(dest mdbdir)
	(all)
   (confirm)
)

(complete 80)



; ------- ASSEMBLER KOPIEREN

(copyfiles
  	(prompt "Der Assembler MaxonASM (Commando-Version) wird kopiert ...\n\n")
	(help @copyfiles-help)
	(source "MSDB:")
	(dest @default-dest)
	(choices "MASM")
   (confirm)
)

(set AsmInclDir (tackon @default-dest "ASM-Include"))
(makedir AsmInclDir)

(copyfiles											; ARCHIV nach RAM: kopieren
	(source "MSDB:")
	(dest "ram:")
  	(choices "ASMINCL.lha")
)

(run
  	(prompt "Die ASM-INCLUDES werden entpackt ...\n\n")
	(help @copyfiles-help)
   ("ram:lhx x ram:ASMINCL.lha #? ram:tmp/")
   (confirm)
)

(copyfiles
  	(prompt "Die ASM-INCLUDES werden kopiert ...\n\n")
	(help @copyfiles-help)
	(source "ram:tmp")
	(dest AsmInclDir)
	(all)
   (confirm)
)

(run
  	(prompt "Die temporären Dateien werden gelöscht ...\n\n")
	(help @copyfiles-help)
   ("delete ram:tmp all quiet")
   (confirm)
)

(run
   ("delete ram:ASMINCL.lha")
)

(complete 95)



; ------- STARTUP ÄNDERN

(set command1 (cat "ASSIGN EDWARD: " @default-dest "\nASSIGN MCPP: " @default-dest))

(set command1.txt
	(cat 
	 	"\n\n\nUm mit dem MaxonC++-Entwicklungssystem richtig arbeiten zu "
      "können muß eine Änderung an der User-Startup vorgenommen werden.\n\n"
	 	command1
	)
)

(startup "MaxonC++.app"
	(prompt command1.txt)
	(help @startup-help)
	(command command1)
)

(run command1)

(complete 100)



; ------- FERTIG

(message (cat 
	"Installation des MaxonC++-Entwicklungssystems beendet.\n"
   "Falls die Zeilen:\n" command1 "\nnicht in Ihre Startup-Sequence bzw. "
   "User-Startup eingefügt wurde, dann holen Sie dies bitte nach.\n\n"
   "Entfernen Sie nun die Diskette aus Ihrem Laufwerk und starten Sie das "
   "MaxonC++-Entwicklungssystem.\n\nViel Erfolg!")
)


