(procedure check-system-version
 (set exec-version (/ (getversion) 65536))
 (if (< exec-version 37)
  (abort "Rtgmaster needs at least Exec version 37.\n")
 )
)

(set #NoUp    "No, Don't update")
(set #OnlyNew "Yes, Only if newer")
(set #YesAll  "Yes, No matter what")
(set #wishtoinstall "Do you wish to install any of the following?")
(set #guide "AmigaGuide File")
(set #devdocs  "Developer Documentation")
(set #incl "Includes")
(set #demos "Demos")
(set #goodies "Goodies")
(set #WhereStuffDir "Please select where you wish to put them.\n(A directory called \"RTGMaster_Dev\" will be created there!)")
(set #wishtoinstall2 "Do you wish to install the latest version of the rtgmaster c2p package ? (It c2p algorithms with the same filenames are existing, they will be overwritten)")
(set #installit "RtgMaster c2p Package")
(set #No "No")
(set #Yes "Yes")

(set pick 0)

(set pick (askchoice
            (choices #No #Yes)
            (prompt("Do you want to delete any old versions of rtgmaster? \nThis is recommended, if old versions did not run on your system.\n"))
            (help " ")
            (default 1)
           )
)

(if (= pick 1)
 (
(if (exists "libs:rtg")
 (foreach "libs:rtg" "#?"
  (set curdir @each-name)
  (foreach (tackon "libs:rtg" curdir) "#?"
   (delete (tackon (tackon "libs:rtg" curdir) @each-name))
  )
  (delete (tackon "libs:rtg" curdir))
 ))
(if (exists "libs:rtgc2p")
 (foreach "libs:rtgc2p" "#?"
  (set curdir @each-name)
  (foreach (tackon "libs:rtgc2p" curdir) "#?"
   (delete (tackon (tackon "libs:rtgc2p" curdir) @each-name))
  )
  (delete (tackon "libs:rtgc2p" curdir))
 ))
  (delete "libs:rtgmaster.library")
(if (exists "envarc:rtgmaster")
(foreach "envarc:rtgmaster" "#?"
  (set curdir @each-name)
  (foreach (tackon "envarc:rtgmaster" curdir) "#?"
   (delete (tackon (tackon "envarc:rtgmaster" curdir) @each-name))
  )
  (delete (tackon "envarc:rtgmaster" curdir))
 ))
(if (exists "env:rtgmaster")
(foreach "env:rtgmaster" "#?"
  (set curdir @each-name)
  (foreach (tackon "env:rtgmaster" curdir) "#?"
   (delete (tackon (tackon "env:rtgmaster" curdir) @each-name))
  )
  (delete (tackon "env:rtgmaster" curdir))
 ))
  (delete "libs:rtggadtools.library")
 )
)

(procedure copy-files-to-destination
 (set vernum1 (getversion "libs:rtgmaster.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )


(set vernum2 (getversion "libs/rtgmaster.library"))
(set ver2 (/ vernum2 65536))
(set rev2 (- vernum2 (* ver2 65536) ) )



 (set pick 0)

(set pick (askchoice
                (choices #NoUp #OnlyNew #YesAll)
                (prompt ("rtgmaster.library :\nVersion Currently Installed   : %ld.%ld\n\nVersion From Update : %ld.%ld\n\nDo you wish to install Version %ld.%ld of the 'rtgmaster.library' \n" ver1 rev1 ver2 rev2 ver2 rev2))
                (help "rtgmaster.library is the main-library of rtgmaster. You HAVE TO install it. ")
              (default 1)
          )
)



(if (= pick 1)

        (copylib (source "libs/rtgmaster.library") (dest "libs:"))

)


(if (= pick 2)

        (copyfiles
                (prompt "Copying 'rtgmaster.library' to Libs:")
                (source "libs/rtgmaster.library")
                (dest "libs:")
                (confirm)
                (infos) (help " ")
        )


)

 (set vernum1 (getversion "libs:rtggadtools.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )


(set vernum2 (getversion "libs/rtggadtools.library"))
(set ver2 (/ vernum2 65536))
(set rev2 (- vernum2 (* ver2 65536) ) )

 (set pick 0)

(set pick (askchoice
                (choices #NoUp #OnlyNew #YesAll)
                (prompt ("rtggadtools.library :\nVersion Currently Installed   : %ld.%ld\n\nVersion From Update : %ld.%ld\n\nDo you wish to install Version %ld.%ld of the 'rtgmaster.library' \n" ver1 rev1 ver2 rev2 ver2 rev2))
                (help "rtgmaster.library is a rtgmaster-add-on by Hans-Joerg Frieden.")
              (default 1)
          )
)



(if (= pick 1)

        (copylib (source "libs/rtggadtools.library") (dest "libs:"))

)


(if (= pick 2)

        (copyfiles
                (prompt "Copying 'rtggadtools.library' to Libs:")
                (source "libs/rtggadtools.library")
                (dest "libs:")
                (confirm)
                (infos) (help " ")
        )


)

(complete 20)

 (set pick 1)

(set pick (askchoice
                (choices #No #Yes)
                (prompt ("Sublibraries :\nDo you wish to install the needed Sublibraries ?\nThis is recommended, because rtgmaster won't work without them.\n"))
                (help "In order to work rtgmaster needs the sublibraries.")
              (default 1)
          )
)


(set vernum1 (getversion "libs:cgxsystem.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )

(if (= pick 1)
((if (> ver1 0)

       (copyfiles
                (prompt "Copying 'rtgCGX.library' to Libs:rtg")
                (source "libs/rtg/rtgCGX.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        (set pick 2)
        )
        

)))

(set vernum1 (getversion "libs:egs.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )

(if (= pick 1)
((if (> ver1 0)

       (copyfiles
                (prompt "Copying 'rtgEGS.library' to Libs:rtg")
                (source "libs/rtg/rtgEGS.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        )

)))

(set vernum1 (getversion "libs:cybergraphics.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )

(if (= pick 1)
((if (> ver1 0)

       (copyfiles
                (prompt "Copying 'rtgCGX.library' to Libs:rtg")
                (source "libs/rtg/rtgCGX.library")
                (dest "libs:rtg:")
                (confirm)
                (infos) (help " ")
        (set pick 2)
        )

)))

(set vernum1 (getversion "libs:Picasso96API.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )

(if (= pick 1)
((if (> ver1 0)

       (copyfiles
                (prompt "Copying 'rtgCGX.library' to Libs:Rtg")
                (source "libs/rtg/rtgCGX.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        (set pick 2)
        )

)))

(set vernum1 (getversion "libs:hrgsystem.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )

(if (= pick 1)
((if (> ver1 0)

       (copyfiles
                (prompt "Copying 'libs:rtg/rtgCGX.library' to Libs:Rtg")
                (source "libs/rtg/rtgCGX.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        (set pick 2)
        )

)))

(set vernum1 (getversion "libs:vilintuisup.library"))
(set ver1 (/ vernum1 65536))
(set rev1 (- vernum1 (* ver1 65536) ) )

(if (= pick 1)
((if (> ver1 0)

       (copyfiles
                (prompt "Copying 'libs:rtg/rtgPICA.library' to Libs:Rtg")
                (source "libs/rtg/rtgPICA.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        )

)))

(if (= pick 1)
(
       (copyfiles
                (prompt "Copying 'libs:rtg/rtgAMI.library' to Libs:rtg")
                (source "libs/rtg/rtgAMI.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        )

))

(if (= pick 2)
(
       (copyfiles
                (prompt "Copying 'libs:rtg/rtgAMI.library' to Libs:rtg")
                (source "libs/rtg/rtgAMI.library")
                (dest "libs:rtg")
                (confirm)
                (infos) (help " ")
        )

))


(complete 50)

(set ToDo       (askoptions (choices #guide #demos)
                            (prompt #wishtoinstall)
                            (help #wishtoinstall)
                            (default 63)
                )
)

;********************************************************************************
; Ask WHERE to install DEVDOCS, Versions, Order, guide
;********************************************************************************
(if (<> ToDo 0)
 (

  (set RtgMaster (askdir (prompt #WhereStuffDir)
                           (help   #WhereStuffDir)
                           (default "Work:")
                   )
  )


  (if (< (exists (tackon RtgMaster "RtgMaster_Dev")) 2)
      (makedir (tackon RtgMaster "RtgMaster_Dev") (infos))

  )


  (set where (tackon RtgMaster "RtgMaster_Dev"))
  (set @default-dest RtgMaster)

;********************************************************************************
; COPY selected stuff!
;********************************************************************************

  (if (IN ToDo 0)
   (

     ((copyfiles (source "rtgmaster_dev.guide")  (dest where) (infos) (newname "rtgmaster_user.guide"))
      (copyfiles (source "pics") (dest (tackon where "pics")) (all)))
   )
  )

(complete 60)



  (if (IN ToDo 1)
   (
     (if (< (exists (tackon where "Demos")) 2)
          (makedir (tackon where "Demos") (infos))
     )
          (copyfiles (source "demos") (dest (tackon where "Demos")) (all) )
   )
  )

(complete 80)


  (set RtgMaster where)

  (set c2p       (askoptions (choices #installit)
                            (prompt #wishtoinstall2)
                            (help #wishtoinstall2)
                            (default 63)
                )
)

(if (IN c2p 0)
 (
  (copyfiles (source "libs/rtgc2p") (dest ("libs:rtgc2p")) (all))
 )
)

 )
)

)

 

;;;; Start

;(welcome "Welcome to the Rtgmaster installation.\n")

(set app-name "Rtgmaster")

(check-system-version)

(complete 0)

(set source-dir (if (= 1 (exists @icon)) (pathonly (expandpath @icon))
 (expandpath @icon))
)

(if (not (exists ("libs:rtg")))
 (makedir ("libs:rtg") (infos))
)

(if (not (exists ("libs:rtgc2p")))
 (makedir ("libs:rtgc2p") (infos))
)

(complete 0)

(copy-files-to-destination)

(complete 100)

(exit "You should reboot your machine now. "
      "Check your devs:monitors directory, if you have "
      "installed a monitor driver there. GFX Board users "
      "always have something installed there, ECS/AGA "
      "users not always. If you are a ECS/AGA user "
      "and do not have something installed there, "
      "please copy PAL or NTSC from sys:Storage to "
      "devs:monitors. ")

