home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / workbench / html_hdtc / dt-install < prev    next >
Encoding:
Text File  |  1997-12-09  |  74.9 KB  |  2,716 lines

  1. ;
  2. ; $PROJECT: html.datatype
  3. ;
  4. ; $VER: DT-Install 40.1 (01.12.97)
  5. ;
  6. ; $AUTHOR: Stefan Ruppert , Windthorststrasse 5 , 65439 Floersheim , GERMANY
  7. ;
  8. ; $COPYRIGHT: (C) Copyright 1997 by Stefan Ruppert, All Rights Reserved!
  9. ;
  10. ; $EMAIL: ruppert@amigaworld.com
  11. ;
  12. ; $HISTORY:
  13. ;
  14. ; 01.12.97 : 040.001 : initial
  15. ;
  16.  
  17. ; ----------------------- begin customize section ------------------------
  18.  
  19. (set #dt-base      "html")
  20. (set #dt-descrpat  "HTML#?")
  21. (set #dt-suffix    "hdtc")
  22. (set #dt-prefs     "HTMLDTPrefs")
  23. (set #dt-copyright "Copyright © 1995-1997 Stefan Ruppert")
  24. (set #dt-type      "HyperText")
  25.  
  26. ; default directories
  27. (set #defaultdir   "Sys:Datatypes")
  28. (set #classdir     "Sys:Classes")
  29. (set #prefsdir     "Sys:Prefs")
  30. (set #arexxdir     "Rexx:Datatypes")
  31.  
  32. ; none standard distribution documentation place
  33. (set #dt-doc-dir   "Docs")
  34. (set #dt-doc-file  "")
  35.  
  36. ; list of additional documents separated by a slash
  37. (set #dt-more-docs "")
  38. (set #dt-hg-macro-file "htds.hgm")
  39.  
  40. (set #USE_NEWGETVERSION 0) ; internal getversion
  41. ;(set #USE_NEWGETVERSION 1) ; external getversion using "C:Version"
  42.  
  43. ; support for spatched datatype files
  44. (set #dt-patchbase (cat #dt-base ".datatype.020"))
  45. (set #spatch       "c/spatch")
  46.  
  47. ; Minimum datatypes version required for installation
  48. (set #min_dt_version 39)
  49. (set #min_dt_revision 0)
  50.  
  51. (set #custom_parts_default %0)
  52.  
  53. ; return a list of string for custom distribution parts
  54. (procedure P_CustomParts
  55.     ; Params:
  56.     ;
  57.     ; Results:
  58.     ;
  59.     ; Used Vars:
  60.     ;
  61.     (set #custom_part1 "")
  62.     (set #custom_part2 "")
  63.     (set #custom_part3 "")
  64. )
  65.  
  66. ; check distribution structre and preset all variables
  67. (procedure P_CustomCheck
  68.     ; Params:
  69.     ;
  70.     ; Results:
  71.     ;
  72.     ; Used Vars:
  73.     ;
  74. )
  75.  
  76. ; ask any user configurable installation part here
  77. (procedure P_CustomAsk
  78.     ; Params:
  79.     ;
  80.     ; Results:
  81.     ;
  82.     ; Used Vars:
  83.     ;
  84. )
  85.  
  86. ; now install here all selected parts/files
  87. (procedure P_CustomInstall
  88.     ; Params:
  89.     ;
  90.     ; Results:
  91.     ;
  92.     ; Used Vars:
  93.     ;
  94.  
  95.     (if #install_docs
  96.     (
  97.         ; author documents
  98.         (set #infos 1)
  99.         (set #src-dir (cat #dir "Author"))
  100.         (set #dest-dir #docsdir)
  101.         (set #file "SR.hguide")
  102.         (P_CpNewFile)
  103.         (set #infos 0)
  104.         (set #file "fiff.png")
  105.         (P_CpFile)
  106.         (set #file "me.png")
  107.         (P_CpFile)
  108.  
  109.         ; HTDS registration and forms
  110.         (set #infos 1)
  111.         (set #src-dir (cat #dir "Forms"))
  112.         (set #file "Registration")
  113.         (P_CpNewFile)
  114.         (set #file "BugReport")
  115.         (P_CpNewFile)
  116.         (set #infos 0)
  117.         (set #file "Bug.Template")
  118.         (P_CpNewFile)
  119.         (set #file "getconf")
  120.         (P_CpNewFile)
  121.  
  122.         ; pictures
  123.         (set #infos 0)
  124.         (set #src-dir (cat #dir "pics"))
  125.         (set #file "searchwin.png")
  126.         (P_CpFile)
  127.     )
  128.     )
  129. )
  130.  
  131. ; now uninstall here all selected parts/files
  132. (procedure P_CustomUninstall
  133.     ; Params:
  134.     ;
  135.     ; Results:
  136.     ;
  137.     ; Used Vars:
  138.     ;
  139. )
  140.  
  141. (procedure P_CustomLanguage
  142.     ; Params:
  143.     ; #lang
  144.     ;
  145.     ; Results:
  146.     ;
  147.     ; Used Vars:
  148.     ;
  149.  
  150.     (select #lang ; LANGUAGE
  151.     ( ; Russian
  152.         (complete 0)
  153.     )
  154.     ( ; Latina
  155.         (complete 0)
  156.     )
  157.     ( ; Türkçe
  158.         (complete 0)
  159.     )
  160.     ( ; Esperanto
  161.         (complete 0)
  162.     )
  163.     ( ; Greek
  164.         (complete 0)
  165.     )
  166.     ( ; Magyar
  167.         (complete 0)
  168.     )
  169.     ( ; suomi
  170.         (complete 0)
  171.     )
  172.     ( ; polski
  173.         (complete 0)
  174.     )
  175.     ( ; Swedish
  176.         (complete 0)
  177.     )
  178.     ( ; norsk
  179.         (complete 0)
  180.     )
  181.     ( ; nederlands
  182.         (complete 0)
  183.     )
  184.     ( ; italiano
  185.         (complete 0)
  186.     )
  187.     ( ; dansk
  188.         (complete 0)
  189.     )
  190.     ( ; português
  191.         (complete 0)
  192.     )
  193.     ( ; español
  194.         (complete 0)
  195.     )
  196.     ( ; français
  197.         (complete 0)
  198.     )
  199.     ( ; deutsch
  200.         (complete 0)
  201.     )
  202.     ( ; english
  203.         (complete 0)
  204.     )
  205.     )
  206. )
  207.  
  208. ; ------------------------ end customize section -------------------------
  209.  
  210. ;
  211. ; $PROJECT: datatype installation template script
  212. ;
  213. ; $VER: Install 40.5 (01.12.97)
  214. ;
  215. ; by Stefan Ruppert (C) Copyright 1997
  216. ;
  217. ; motivated by and derived from the MCC-Install script from Kai Hofmann.
  218. ; Thanks Kai for your great work.
  219. ;
  220. ; $EMAIL: ruppert@amigaworld.com
  221. ;
  222. ; $HISTORY:
  223. ;
  224. ; 01.12.97 : 040.005 : added french translation, fixed bug with cache cpu variable
  225. ; 21.11.97 : 040.004 : added help text for default datatypes directory
  226. ; 23.10.97 : 040.003 : added custom language section, changed custom parts
  227. ; 19.10.97 : 040.002 : added some missing english text definitions
  228. ; 08.10.97 : 040.001 : initial
  229. ;
  230.  
  231. ; ----------------------- customize documentation ------------------------
  232. ;
  233. ; #dt-suffix :
  234. ;
  235. ; datatype class suffix :
  236. ;
  237. ; <dtname>_<dtsuffix>
  238. ;
  239. ; For example : hypertext_dtc.hguide or hypertext_dtc.catalog
  240. ;
  241. ; suffix     description (baseclass)
  242. ; ---------------------------------------------------------
  243. ; dtc        for datatype base classes (datatypesclass)
  244. ; hdtc       for hypertext sub classes (hypertext.datatype)
  245. ; pdtc       for picture sub classes (picture.datatype)
  246. ; sdtc       for sound sub classes (sound.datatype)
  247. ; adtc       for animation sub classes (animation.datatype)
  248. ; bdtc       for binary sub classes (binary.datatype)
  249. ; tdtc       for text sub classes (text.datatype)
  250.  
  251. ;
  252. ; #dt-doc-dir
  253. ; #dt-doc-file :
  254. ;
  255. ; datatype documentation file placed in <dtname>_<dtsuffix>/Docs/
  256. ;
  257.  
  258. ;
  259. ; Recommended directory structure
  260. ;
  261. ; <dtname>_<dtsuffix>/Product-Info
  262. ; <dtname>_<dtsuffix>/Product-Info.info
  263. ; <dtname>_<dtsuffix>/DT-Install
  264. ; <dtname>_<dtsuffix>/DT-Install.info
  265. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype
  266. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.000(%|.p)                  (optional)
  267. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.010(%|.p)                  (optional)
  268. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.020(%|.p)                  (optional)
  269. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.020f(%|.p)                 (optional)
  270. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.030(%|.p)                  (optional)
  271. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.030f(%|.p)                 (optional)
  272. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.040(%|.p)                  (optional)
  273. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.040f(%|.p)                 (optional)
  274. ; <dtname>_<dtsuffix>/Classes/Datatypes/<dtname>.datatype.060(%|.p)                  (optional)
  275. ; <dtname>_<dtsuffix>/Developer/Autodocs/<dtname>_<dtsuffix>.doc
  276. ; <dtname>_<dtsuffix>/Developer/Autodocs/<dtname>_<dtsuffix>.doc.info
  277. ; <dtname>_<dtsuffix>/Developer/Autodocs/<dtname>_<dtsuffix>                         (optional)
  278. ; <dtname>_<dtsuffix>/Developer/Autodocs/<dtname>_<dtsuffix>.info                    (optional)
  279. ; <dtname>_<dtsuffix>/Developer/Autodocs/<dtname>_<dtsuffix>.rev                     (optional)
  280. ; <dtname>_<dtsuffix>/Developer/Autodocs/<dtname>_<dtsuffix>.rev.info                (optional)
  281. ; <dtname>_<dtsuffix>/Developer/C/Include/Datatypes/<dtname>class.h
  282. ; <dtname>_<dtsuffix>/Developer/C/Include/CLib/<dtname>dtclass_protos.h              (optional)
  283. ; <dtname>_<dtsuffix>/Developer/C/Include/FD/<dtname>dtclass_lib.fd                  (optional)
  284. ; <dtname>_<dtsuffix>/Developer/C/Include/Inline/<dtname>dtclass_inline.h            (optional)
  285. ; <dtname>_<dtsuffix>/Developer/C/Include/Pragmas/<dtname>dtclass_pragmas.h          (optional)
  286. ; <dtname>_<dtsuffix>/Developer/C/Include/Proto/<dtname>dtclass.h                    (optional)
  287. ; <dtname>_<dtsuffix>/Developer/C/Examples/<dtname>-Demo.c                           (optional)
  288. ; <dtname>_<dtsuffix>/Developer/C/Examples/<dtname>-Demo.c.info                      (optional)
  289. ; <dtname>_<dtsuffix>/Developer/C/Examples/<dtname>-Demo                             (optional)
  290. ; <dtname>_<dtsuffix>/Developer/C/Examples/<dtname>-Demo.info                        (optional)
  291. ; <dtname>_<dtsuffix>/Developer/XRef/<dtname>_<dtsuffix>.xref                        (optional)
  292. ; <dtname>_<dtsuffix>/Developer/XRef/<dtname>_<dtsuffix>.xref.info                   (optional)
  293. ; <dtname>_<dtsuffix>/Devs/Datatypes/<descriptors>                                   (optional)
  294. ; <dtname>_<dtsuffix>/Devs/Datatypes/<descriptors>.info                              (optional)
  295. ; <dtname>_<dtsuffix>/Docs/English/<dtname>_<dtsuffix>.(%|h)guide
  296. ; <dtname>_<dtsuffix>/Docs/English/<dtname>_<dtsuffix>.(%|h)guide.info
  297. ; <dtname>_<dtsuffix>/Docs/English/<dtname>_<dtsuffix>.html                          (optional)
  298. ; <dtname>_<dtsuffix>/Docs/English/<dtname>_<dtsuffix>.html.info                     (optional)
  299. ; <dtname>_<dtsuffix>/Docs/English/<dtname>_<dtsuffix>.doc                           (optional)
  300. ; <dtname>_<dtsuffix>/Docs/English/<dtname>_<dtsuffix>.doc.info                      (optional)
  301. ; <dtname>_<dtsuffix>/Docs/<language>/<dtname>_<dtsuffix>.(%|h)guide                 (optional)
  302. ; <dtname>_<dtsuffix>/Docs/<language>/<dtname>_<dtsuffix>.(%|h)guide.info            (optional)
  303. ; <dtname>_<dtsuffix>/Docs/<language>/<dtname>_<dtsuffix>.html                       (optional)
  304. ; <dtname>_<dtsuffix>/Docs/<language>/<dtname>_<dtsuffix>.html.info                  (optional)
  305. ; <dtname>_<dtsuffix>/Docs/<language>/<dtname>_<dtsuffix>.doc                        (optional)
  306. ; <dtname>_<dtsuffix>/Docs/<language>/<dtname>_<dtsuffix>.doc.info                   (optional)
  307. ; <dtname>_<dtsuffix>/Examples/<dt_example>                                          (optional)
  308. ; <dtname>_<dtsuffix>/Examples/<dt_example>.info                                     (optional)
  309. ; <dtname>_<dtsuffix>/Icons/MagicWB/<dtname>.info                                    (optional)
  310. ; <dtname>_<dtsuffix>/Icons/NewIcons/<dtname>.info                                   (optional)
  311. ; <dtname>_<dtsuffix>/Icons/Standard/<dtname>.info                                   (optional)
  312. ; <dtname>_<dtsuffix>/EnvArc/Datatypes/<dtname>.prefs                                (optional)
  313. ; <dtname>_<dtsuffix>/Locale/Catalogs/<language>/<dtname>_<dtsuffix>.catalog         (optional)
  314. ; <dtname>_<dtsuffix>/Prefs/Datatypes/<dtname>Prefs                                  (optional)
  315.  
  316.  
  317. ; Bultin language
  318. ; Bit  0 = English
  319. ; Bit  1 = German
  320. ; Bit  2 = French
  321. ; Bit  3 = Spanish
  322. ; Bit  4 = Portuguese
  323. ; Bit  5 = Danish
  324. ; Bit  6 = Italian
  325. ; Bit  7 = Dutch
  326. ; Bit  8 = Norwegian
  327. ; Bit  9 = Swedish
  328. ; Bit 10 = Polish
  329. ; Bit 11 = Finnish
  330. ; Bit 12 = Hungarian
  331. ; Bit 13 = Greek
  332. ; Bit 14 = Esperanto
  333. ; Bit 15 = Turkish
  334. ; Bit 16 = Latin
  335. ; Bit 17 = Russian
  336.  
  337. ; -----------------------------------------------------------------------------
  338. ; --- Do not change anything below this line ----------------------------------
  339. ; -----------------------------------------------------------------------------
  340.  
  341. (set #language_dtypes    %011111111111111111) ; LANGUAGE
  342. (set #language_dtypeslib %000000000000000001) ; LANGUAGE
  343.  
  344. (set #save_user_selections_icon "Misc/Install/Options")
  345. (set #save_user_selections 1)
  346. (set #iconpackage  "")
  347. (set #max_standard_parts 10)
  348.  
  349. (set #dt-name    (cat #dt-base ".datatype"))   ; datatype name
  350. (set #dt-envfile (cat #dt-base ".prefs"))      ; eventual prefs file name in Env(%|Arc):DataTypes/
  351. (set #dt-file    (tackon "classes/datatypes" #dt-name))
  352.  
  353. (if (= @installer-version 0)
  354.     (
  355.     ; old Installer
  356.     (set #prop "")
  357.     )
  358.     ; else
  359.     (
  360.     ; new Installer
  361.     (set #prop "\x1b[2p")
  362.     )
  363. )
  364.  
  365. ; ------------------------- begin locale section -------------------------
  366.  
  367. (set #i 0)
  368. (while (<> @language (select #i "deutsch" @language)) ; LANGUAGE
  369.     (set #i (+ #i 1))
  370. )
  371. (if (= #i 1) ; LANGUAGE
  372.     (set #language "english")
  373.     (set #language @language)
  374. )
  375.  
  376.  
  377. (set #lang 0)
  378. (set #language_default %100000000000000000) ; LANGUAGE
  379. (while (<> #language (select #lang "russian" "latina" "türkçe" "esperanto" "greek" "magyar" "suomi" "polski" "norsk" "svenska" "nederlands" "italiano" "dansk" "português" "español" "français" "deutsch" #language)) ; LANGUAGE
  380.     (
  381.     (set #language_default (shiftright #language_default 1))
  382.     (set #lang (+ #lang 1))
  383.     )
  384. )
  385. (select #lang ; LANGUAGE
  386.     ( ; Russian
  387.     (complete 0)
  388.     )
  389.     ( ; Latina
  390.     (complete 0)
  391.     )
  392.     ( ; Türkçe
  393.     (complete 0)
  394.     )
  395.     ( ; Esperanto
  396.     (complete 0)
  397.     )
  398.     ( ; Greek
  399.     (complete 0)
  400.     )
  401.     ( ; Magyar
  402.     (complete 0)
  403.     )
  404.     ( ; suomi
  405.     (complete 0)
  406.     )
  407.     ( ; polski
  408.     (complete 0)
  409.     )
  410.     ( ; Swedish
  411.     (complete 0)
  412.     )
  413.     ( ; norsk
  414.     (complete 0)
  415.     )
  416.     ( ; nederlands
  417.     (complete 0)
  418.     )
  419.     ( ; italiano
  420.     (complete 0)
  421.     )
  422.     ( ; dansk
  423.     (complete 0)
  424.     )
  425.     ( ; português
  426.     (complete 0)
  427.     )
  428.     ( ; español
  429.     (complete 0)
  430.     )
  431.     ( ; français from Francis Labrie <fb691875@er.uqam.ca>
  432.     (if (= @installer-version 0)
  433.         (
  434.         (set #help_askoptions "Avec une version de l'outils « Installer » antérieure à 42.6, il peut arriver que des cases à cocher apparaissent sans étiquette.  La sélection de ces cases sera alors ignorée.\n\n")
  435.         (set #help_askoptions "Avec une version de l'outils « Installer » antérieure à 42.6, il peut arriver que des boutons de radio apparaissent sans étiquette.  La sélection de ces boutons sera alors ignorée.\n\n")
  436.         )
  437.     )
  438.  
  439.     (set #unknown           "inconnu")
  440.     (set #choice_english    "Anglais")
  441.     (set #choice_german     "Allemand")
  442.     (set #choice_french     "Français")
  443.     (set #choice_spanish    "Español")
  444.     (set #choice_portuguese "Portugais")
  445.     (set #choice_danish     "Danois")
  446.     (set #choice_italian    "Italien")
  447.     (set #choice_dutch      "Hollandais")
  448.     (set #choice_norwegian  "Norvégien")
  449.     (set #choice_swedish    "Suédois")
  450.     (set #choice_polish     "Polonais")
  451.     (set #choice_finnish    "Finnois")
  452.     (set #choice_hungarian  "Hongrois")
  453.     (set #choice_turkish    "Turc")
  454.     (set #choice_greek      "Grec")
  455.     (set #choice_latin      "Latin")
  456.     (set #choice_esperanto  "Espéranto")
  457.     (set #choice_russian    "Russe") ; LANGUAGE
  458.  
  459.     (set #choice_datatype   "Type de donné")
  460.     (set #choice_descriptors "Descripteurs")
  461.     (set #choice_catalogs   "Catalogues")
  462.     (set #choice_docs       "Documentation")
  463.     (set #choice_developer  "Outils de développeur")
  464.     (set #choice_prefs      "Outils de préférences")
  465.     (set #choice_env        "Fichier de préférences")
  466.     (set #choice_examples   "Fichiers d'exemple")
  467.     (set #choice_icons      "Icônes standards de type de donnée")
  468.     (set #choice_arexx      "Scripts ARexx")
  469.  
  470.     (set #choice_install    "Installer")
  471.     (set #choice_uninstall  "Désinstaller")
  472.  
  473.     (set #choice_yes        "Oui")
  474.     (set #choice_no         "Non")
  475.     (set #choice_none       "Aucun")
  476.  
  477.     (set #prompt_info              (cat "\nBienvenue à la classe « " @app-name " » \n" #dt-copyright "\n\n"))
  478.     (set #prompt_install_uninstall (cat #prompt_info "Souhaitez-vous installer ou désinstaller cette classe ?"))
  479.  
  480.     (set #prompt_install_docs "Quelle type de documentation souhaitez-vous installer ?")
  481.  
  482.     (set #prompt_install_asciidocs "Pour quelles langues désirez-vous installer la documentation de format ASCII ?")
  483.     (set #prompt_install_hgdocs "Pour quelles langues désirez-vous installer la documentation de format HyperGuide ?")
  484.     (set #prompt_install_agdocs "Pour quelles langues désirez-vous installer la documentation de format AmigaGuide® ?")
  485.     (set #prompt_install_html "Pour quelles langues désirez-vous installer la documentation de format HTML ?")
  486.  
  487.     (set #prompt_install_dt_catalogs (cat "Lesquels de ces catalogues pour la classe « " @app-name " » souhaitez-vous installer ?"))
  488.     (set #prompt_install_plangs "Pour quels languages de programmation souhaitez-vous installer les outils de développeur ?")
  489.  
  490.     (set #prompt_askcpufpu  (cat "Veuillez sélectionner la configuration de microprocesseur pour laquelle vous désirez installer la classe « " #dt-name " »."))
  491.     (set #prompt_askenv     "Désirez-vous installer les fichiers de préférences ?")
  492.  
  493.     (set #prompt_askdefaultdir "Où se trouvent les fichiers relatifs aux classes de types de donnée (voir l'aide) ?")
  494.     (set #help_askdefaultdir (cat
  495.          "Tous les fichiers qui n'ont pas de destination particulière définie dans le système sont "
  496.          "installés dans un répertoire « DataType ». Ceux-ci regroupent les fichiers de documentation, "
  497.          "les fichiers destinés aux développeurs et d'autre documents divers.  Cependant, les classes "
  498.          " et leurs descripteurs eux-même n'y seront pas installés.  Ces fichiers sont plutôt "
  499.          "installés aux endroits appropriés dans le système.  Par défaut, le répertoire « DataType » "
  500.          "est « SYS:DataTypes ».\n\n"))
  501.     (set #prompt_askprefsdir "Où désirez-vous installer les outils de préférences ?")
  502.     (set #prompt_askdocsdir  "Où souhaitez-vous installer la documentation ?")
  503.     (set #prompt_askclassdir   "Où les classes se trouvent-elles ?")
  504.     (set #prompt_askiconpackage "Quelle gamme d'icônes utilisez-vous ?")
  505.  
  506.     (set #prompt_installing "Installation")
  507.     (set #prompt_removing   "Désinstallation")
  508.     (set #prompt_install_parts "Quelles parties souhaitez-vous installer ?")
  509.  
  510.     (set #prompt_copy_dt    "Copie de la classe")
  511.     (set #prompt_copy_descr "Copie des descripteurs")
  512.  
  513.     (set #prompt_copy "Souhaitez-vous copier le(s) fichier(s) suivant(s) ?")
  514.     (set #prompt_makedir "Le répertoire suivant n'existe pas, il doit donc être créé :")
  515.  
  516.     (set #prompt_descdir "Est-ce que ces classes de types de donnée doivent être disponibles immédiatement après le démarrage du système ?")
  517.     (set #prompt_deinstalled (cat  "Il n'y a présentement pas de section de désinstallation pour la classe « " @app-name " »."))
  518.  
  519.     (set #prompt_askuseinstallcache (cat "Il existe un fichier qui contient les choix "
  520.          "effectués lors de l'installation antérieure d'une classe.  "
  521.          "Ces choix peuvent-ils être utilisés pour l'installation courante ?"
  522.     ))
  523.     (set #help_askuseinstallcache (cat ""
  524.     ))
  525.  
  526.     (set #help_askcpufpu (cat "Sélectionnez ici le type de microprocesseur qui est installé dans votre système.\n\n"
  527.           "C'est présentement un MC%s.\n\nSi vous sélectionnez un type de microprocesseur quelconque "
  528.           "dans la boîte de choix, la classe « " #dt-name " » fonctionnera sur n'importe lequel des microprocesseurs dont "
  529.           "le type est supérieur ou égal à la sélection.  Cependant, il ne fonctionnera pas "
  530.           "sur un système équipé d'un type de microprocesseur inférieur.\n\n"
  531.     ))
  532.     (set #help_descdir (cat
  533.          "Si ces classes de type de donnée doivent être disponibles immédiatement après le démarrage du système, "
  534.          "les descripteurs sont alors copiés dans le répertoire « DEVS:Datatypes », sinon ils le "
  535.          "sont copiés dans le répertoire « SYS:Storage/Datatypes ».\n\n"
  536.     ))
  537.  
  538.     (set #abort_nocpu (cat "Désolé, le script est incapable d'installer la classe « " #dt-name " » parce que votre configuration de microprocesseur n'est pas supportée.\n"))
  539.     (set #abort_nodt  (cat "Désolé, le système « DataTypes » n'est pas installé sur votre système !\n"))
  540.     (set #abort_olddt (cat "Désolé, le script est incapable d'installer la classe « " #dt-name " » parce que la version %s du système « datatypes » installé est trop vieille.  Vous avez besoin d'une version supérieur ou égale à %s.\n"))
  541.     )
  542.     ( ; deutsch
  543.     (if (= @installer-version 0)
  544.         (
  545.         (set #help_askoptions "Mit einem Installer der älter als Version 42.6 ist, kann es passieren, daß Checkbox-Knöpfe ohne Labels zu sehen sind. Das Setzen dieser Knöpfe wird ignoriert.\n\n")
  546.         (set #help_askchoice "Mit einem Installer der älter als Version 42.6 ist, kann es passieren, daß Radio-Knöpfe ohne Labels zu sehen sind. Das Setzen dieser Knöpfe entspricht der nächst kleineren Auswahl.\n\n")
  547.         )
  548.     )
  549.  
  550.     (set #unknown           "unbekannt")
  551.     (set #choice_english    "Englisch")
  552.     (set #choice_german     "Deutsch")
  553.     (set #choice_french     "Französisch")
  554.     (set #choice_spanish    "Spanisch")
  555.     (set #choice_portuguese "Portugiesisch")
  556.     (set #choice_danish     "Dänisch")
  557.     (set #choice_italian    "Italienisch")
  558.     (set #choice_dutch      "Niederländisch")
  559.     (set #choice_norwegian  "Norwegisch")
  560.     (set #choice_swedish    "Schwedisch")
  561.     (set #choice_polish     "Polnisch")
  562.     (set #choice_finnish    "Finnisch")
  563.     (set #choice_hungarian  "Ungarisch")
  564.     (set #choice_turkish    "Türkisch")
  565.     (set #choice_greek      "Griechisch")
  566.     (set #choice_latin      "Latein")
  567.     (set #choice_esperanto  "Esperanto")
  568.     (set #choice_russian    "Russisch") ; LANGUAGE
  569.  
  570.     (set #choice_datatype   "Datentypen")
  571.     (set #choice_descriptors "Deskriptoren")
  572.     (set #choice_env        "Voreinstellungen")
  573.     (set #choice_prefs      "Voreinsteller")
  574.     (set #choice_catalogs   "Kataloge")
  575.     (set #choice_docs       "Dokumentation")
  576.     (set #choice_examples   "Beispiele Dateien")
  577.     (set #choice_developer  "Entwickler-Material")
  578.     (set #choice_icons      "Datentyp Standard Piktogramme")
  579.     (set #choice_arexx      "ARexx Skripts")
  580.  
  581.     (set #choice_install    "Installieren")
  582.     (set #choice_uninstall  "Deinstallieren")
  583.  
  584.     (set #choice_yes        "Ja")
  585.     (set #choice_no         "Nein")
  586.     (set #choice_none       "Keine")
  587.  
  588.  
  589.     (set #prompt_installing "Installiere")
  590.     (set #prompt_removing   "Entferne")
  591.     (set #prompt_install_parts "Welche Komponenten wollen Sie installieren ?")
  592.  
  593.     (set #prompt_info (cat "\nWillkommen zur " @app-name " Datentyp-Klasse\n" #dt-copyright "\n\n"))
  594.     (set #prompt_install_uninstall (cat #prompt_info "Wollen Sie die Klasse installieren oder deinstallieren?"))
  595.  
  596.     (set #prompt_copy_dt    "Kopiere den Datentyp")
  597.     (set #prompt_copy_descr "Kopiere die Deskriptoren")
  598.     (set #prompt_deinstalled (cat  "Zur Zeit wird für \"" @app-name "\" keine Deinstallation unterstützt."))
  599.  
  600.     (set #prompt_install_docs "Welche Art von Dokumenten wollen Sie installieren?")
  601.  
  602.     (set #prompt_install_asciidocs "Für welche Sprachen wollen Sie die ASCII Dokumentation installieren?")
  603.     (set #prompt_install_hgdocs "Für welche Sprachen wollen Sie die HyperGuide Dokumentation installieren?")
  604.     (set #prompt_install_agdocs "Für welche Sprachen wollen Sie die AmigaGuide® Dokumentation installieren?")
  605.     (set #prompt_install_html "Für welche Sprachen wollen Sie die HTML Dokumentation installieren?")
  606.  
  607.     (set #prompt_install_dt_catalogs (cat "Welche Kataloge für " @app-name " wollen Sie installieren?"))
  608.     (set #prompt_install_plangs "Unterstützung für welche Programmiersprache wollen Sie installieren?")
  609.  
  610.     (set #prompt_askenv     "Installiere Voreinstellungen ?")
  611.  
  612.     (set #prompt_askprefsdir "Wohin soll der Voreinsteller installiert werden ?")
  613.     (set #prompt_askdocsdir  "Wohin soll die Dokumentation installiert werden ?")
  614.     (set #prompt_askclassdir "Wo liegen die System Klassen ?")
  615.     (set #prompt_askdefaultdir "Wo befindet sich das \"Datatypes-Verzeichnis\" (siehe Hilfe) ?")
  616.     (set #help_askdefaultdir (cat
  617.          "Im \"Datatype-Verzeichnis\" werden alle Dateien installiert, die keinen "
  618.          "festen Platz innerhalb des Systems besitzen. Dies sind vorallem die Dateien "
  619.          "für die Dokumentation, Entwickler Dateien oder andere Dateien, die nicht "
  620.          "eingruppiert werden können. Es werden in diesem Verzeichnis aber nicht der "
  621.          "Datentyp selbst oder die Deskriptoren installiert. Diese werden an die entsprechenden "
  622.          "Stellen im System installiert.\n\nStandardmäßig sollte das Verzeichnis "
  623.          "\"Sys:Datatypes\" ausgewählt werden.\n\n"))
  624.     (set #prompt_askiconpackage "Welches Piktogramme-Paket benutzen Sie ?")
  625.  
  626.     (set #prompt_copy "Wollen Sie das/die folgenden Datei(en) kopieren?")
  627.     (set #prompt_makedir "Das folgende Verzeichnis wurde nicht gefunden, deshalb muß es erzeugt werden:")
  628.  
  629.     (set #prompt_askcpufpu (cat "Bitte wählen Sie die CPU/FPU Konfiguration, für die " @app-name " installiert werden soll."))
  630.     (set #help_askcpufpu (cat "  Bitte wählen Sie hier die CPU aus, die in Ihrem System "
  631.          "installiert ist.\n\n"
  632.           "Ermittelt wurde ein MC%s.\n\n  Wenn Sie einen bestimmten CPU-Typ auswählen, "
  633.           "wird der \"" #dt-name "\" Datentyp nur auf Rechnern mit gleichem oder höherem "
  634.           "CPU-Typ lauffähig sein. Der Datentyp muß nicht auf Rechnern mit kleinerem CPU-Typ laufen.\n\n"
  635.     ))
  636.  
  637.     (set #prompt_askuseinstallcache (cat "Es existiert eine Datei, die Einstellungen "
  638.          "für das Datentyp-Installationskript enthält. "
  639.          "Diese Einstellungen wurden bei einer früheren Datentyp-Installation von Ihnen "
  640.          "gewählt und abgespeichert. Sollen folgende Einstellungen übernommen werden ? "
  641.     ))
  642.     (set #help_askuseinstallcache (cat "Wenn Sie diese Einstellungen übernehmen, werden Sie "
  643.          "nicht mehr nach einigen Verzeichnissen oder Einstellungen gefragt, sondern die "
  644.          "Einstellungen aus einer früheren Installation übernommen."
  645.     ))
  646.  
  647.     (set #prompt_descdir    "Sollen die Datentypen direkt nach dem Systemstart zur Verfügung stehen ?")
  648.     (set #help_descdir (cat
  649.          "Wenn die Datentypen direkt nach dem Systemstart zur Verfügung stehen sollen, werden "
  650.          "die Deskriptoren nach Devs:Datatypes kopiert. Andernfalls werden sie nach "
  651.          "Sys:Storage/Datatypes kopiert.\n\n"
  652.     ))
  653.  
  654.     (set #abort_nocpu       (cat #dt-name " kann leider nicht installiert werden, da Ihre CPU-Konfiguration nicht unterstützt wird.\n"))
  655.     (set #abort_nodt        (cat #dt-name " kann leider nicht installiert werden, da auf Ihrem System das Datentyp-System nicht installiert ist.\n"))
  656.     (set #abort_olddt       (cat #dt-name " kann leider nicht installiert werden, da auf Ihrem System die Version %s des Datentyp-Systems installiert ist, jedoch Version %s benötigt wird.\n"))
  657.     )
  658.     ( ; english
  659.     (if (= @installer-version 0)
  660.         (
  661.         (set #help_askoptions "With an Installer prior to version 42.6 it can happen that you see checkbox-buttons without labels. Selecting these buttons will be ignored.\n\n")
  662.         (set #help_askchoice "With an Installer prior to version 42.6 it can happen that you see radio-buttons without labels. Selecting these buttons will result in the next lower available selection.\n\n")
  663.         )
  664.     )
  665.  
  666.     (set #unknown           "unknown")
  667.     (set #choice_english    "English")
  668.     (set #choice_german     "German")
  669.     (set #choice_french     "French")
  670.     (set #choice_spanish    "Spanish")
  671.     (set #choice_portuguese "Portuguese")
  672.     (set #choice_danish     "Danish")
  673.     (set #choice_italian    "Italian")
  674.     (set #choice_dutch      "Dutch")
  675.     (set #choice_norwegian  "Norwegian")
  676.     (set #choice_swedish    "Swedish")
  677.     (set #choice_polish     "Polish")
  678.     (set #choice_finnish    "Finnish")
  679.     (set #choice_hungarian  "Hungarian")
  680.     (set #choice_turkish    "Turkish")
  681.     (set #choice_greek      "Greek")
  682.     (set #choice_latin      "Latin")
  683.     (set #choice_esperanto  "Esperanto")
  684.     (set #choice_russian    "Russian") ; LANGUAGE
  685.  
  686.     (set #choice_datatype   "Datatype")
  687.     (set #choice_descriptors "Descriptors")
  688.     (set #choice_catalogs   "Catalogs")
  689.     (set #choice_docs       "Documentation")
  690.     (set #choice_developer  "Developer material")
  691.     (set #choice_prefs      "Preference Tool")
  692.     (set #choice_env        "Configuration file")
  693.     (set #choice_examples   "Example files")
  694.     (set #choice_icons      "Datatype standard Icons")
  695.     (set #choice_arexx      "ARexx scripts")
  696.  
  697.     (set #choice_install    "Install")
  698.     (set #choice_uninstall  "Uninstall")
  699.  
  700.     (set #choice_yes        "Yes")
  701.     (set #choice_no         "No")
  702.     (set #choice_none       "None")
  703.  
  704.     (set #prompt_info              (cat "\nWelcome to the " @app-name " datatype class\n" #dt-copyright "\n\n"))
  705.     (set #prompt_install_uninstall (cat #prompt_info "Do you want to install or uninstall the datatype?"))
  706.  
  707.     (set #prompt_install_docs "Which typ of documentation do you want to install?")
  708.  
  709.     (set #prompt_install_asciidocs "For which languages do you want to install the ASCII documentation?")
  710.     (set #prompt_install_hgdocs "For which languages do you want to install the HyperGuide documentation?")
  711.     (set #prompt_install_agdocs "For which languages do you want to install the AmigaGuide® documentation?")
  712.     (set #prompt_install_html "For which languages do you want to install the HTML documentation?")
  713.  
  714.     (set #prompt_install_dt_catalogs (cat "Which catalogs for " @app-name " do you want to install?"))
  715.     (set #prompt_install_plangs "Support for which programming languages do you want to install?")
  716.  
  717.     (set #prompt_askcpufpu  (cat "Please select the CPU/FPU configuration for which you want to install " #dt-name ))
  718.     (set #prompt_askenv     "Install Prefs file ?")
  719.  
  720.     (set #prompt_askdefaultdir "Where do the Datatypes related files reside (see help)?")
  721.     (set #help_askdefaultdir (cat
  722.          "All files, which haven't a defined place in the system are installed in the "
  723.          "\"Datatype-Directory\". These are documentation files, developer files and "
  724.          "other files misc files. But the datatype itself or the descriptors will not be "
  725.          "installed there. These files are installed at the appropriate location in the system.\n\n"
  726.          "By default the \"Datatype-Directory\" should be : \"Sys:Datatype\".\n\n"))
  727.     (set #prompt_askprefsdir "Where to install the Preference Tool ?")
  728.     (set #prompt_askdocsdir  "Where to install the Documentation ?")
  729.     (set #prompt_askclassdir   "Where do the Classes belong ?")
  730.     (set #prompt_askiconpackage "Which icon package do you use ?")
  731.  
  732.     (set #prompt_installing "Installing")
  733.     (set #prompt_removing   "Removing")
  734.     (set #prompt_install_parts "Which parts do you want to install ?")
  735.  
  736.     (set #prompt_copy_dt    "Copying the Datatype")
  737.     (set #prompt_copy_descr "Copying the Descriptors")
  738.  
  739.     (set #prompt_copy "Do you want to copy the following file(s)?")
  740.     (set #prompt_makedir "The following directory was not found, so it must be created:")
  741.  
  742.     (set #prompt_descdir "Should the datatypes be available directly after system start ?")
  743.     (set #prompt_deinstalled (cat  "Currently there is no deinstallation part for \"" @app-name "\""))
  744.  
  745.     (set #prompt_askuseinstallcache (cat "There exists a file, which contains choices "
  746.          "made by a earlier datatype installation. "
  747.          "Should these choices be used ?"
  748.     ))
  749.     (set #help_askuseinstallcache (cat ""
  750.     ))
  751.  
  752.     (set #help_askcpufpu (cat "  Select here the CPU type that is installed in your system. "
  753.           "\n\n  Currently, this is a MC%s.\n\n  If you select a certain CPU type "
  754.           "in the choice box, the \"" #dt-name "\" will run on any CPU which "
  755.           "type is higher or equal to the selection. However, it won't "
  756.           "run on a system equipped with a lower type.\n\n"
  757.     ))
  758.     (set #help_descdir (cat
  759.          "If the datatypes should be available directly after system start, "
  760.          "the descriptors are copied to Devs:Datatypes otherwise to "
  761.          "Sys:Storage/Datatypes.\n\n"
  762.     ))
  763.  
  764.     (set #abort_nocpu (cat "Sorry, the script is unable to install " #dt-name ", because your CPU configuration is not supported.\n"))
  765.     (set #abort_nodt  (cat "Sorry, the Datatypes System is not installed on your system!\n"))
  766.     (set #abort_olddt (cat "Sorry, the script is unable to install " #dt-name ", because the installed version %s of the datatypes system is to low. You need at least version %s.\n"))
  767.     )
  768. )
  769. (if (> @installer-version 0) (
  770.     (set #help_askoptions "")
  771.     (set #help_askchoice "")
  772. ))
  773. (P_CustomLanguage)
  774.  
  775. ; -------------------------- end locale section --------------------------
  776.  
  777. ; --------------------------- begin procedures ---------------------------
  778.  
  779. ; --- GetCPU ----------------------------------------------
  780.  
  781. (procedure P_GetCPUFPU
  782.     ; Param:
  783.     ;
  784.     ; Results:
  785.     ; #cpu #cpu_str
  786.     ; -1 = unknown; 0 = 68000; 1 = 68010; 2 = 68020; 3 = 68030; 4 = 68040;
  787.     ;               5 = 68060
  788.     ; #fpu #fpu_str
  789.     ; -1 = unknown; 0 = NOFPU; 1 = 68881; 2 = 68882; 3 = FPU40
  790.     ;
  791.     ; Used Vars:
  792.  
  793.     (set #cpu_str (database "cpu"))
  794.     (set #cpu 0)
  795.     (while (<> #cpu_str (select #cpu "68000" "68010" "68020" "68030" "68040" "68060" #cpu))
  796.     (set #cpu (+ #cpu 1))
  797.     )
  798.     (if (= #cpu 6) (
  799.     (set #cpu -1)
  800.     (set #cpu_str #unknown)
  801.     ))
  802.  
  803.     (if @installer-version
  804.     (
  805.         (set #fpu_str (database "fpu"))
  806.         (set #fpu 0)
  807.         (while (<> #fpu_str (select #fpu "NOFPU" "68881" "68882" "FPU40" #fpu_str))
  808.         (set #fpu (+ #fpu 1))
  809.         )
  810.         (if (= #fpu 4) (
  811.         (set #fpu -1)
  812.         (set #fpu_str #unknown)
  813.         ))
  814.     )
  815.     ; else
  816.     (
  817.         (set #fpu -1)
  818.         (set #fpu_str #unknown)
  819.     )
  820.     )
  821. )
  822.  
  823. ; --- BitToLanguage ---------------------------------------
  824.  
  825. (procedure P_BitToLanguage
  826.   ; Params:
  827.   ; #langmask
  828.   ;
  829.   ; Results:
  830.   ; #langmask #lang
  831.   ;
  832.   ; Used Vars:
  833.   ; #i #bitmask
  834.  
  835.   (set #i 0)
  836.   (set #bitmask %1111111111111111110) ; LANGUAGE
  837.   (while (AND (< #i 18) (NOT (IN #langmask #i))) ; LANGUAGE
  838.     (
  839.      (set #bitmask (BITOR (shiftleft #bitmask 1) %0000000000000000001)) ; LANGUAGE
  840.      (set #i (+ #i 1))
  841.     )
  842.   )
  843.   (set #langmask (BITAND #langmask #bitmask))
  844.   (set #lang (select #i "english" "deutsch" "français" "español" "português" "dansk" "italiano" "nederlands" "norsk" "svenska" "polski" "suomi" "magyar" "greek" "esperanto" "türkçe" "latina" "russian" "")) ; LANGUAGE
  845. )
  846.  
  847.  
  848. ; *******************************************************
  849. ; *******************************************************
  850. ;
  851. ; newgetversion ()
  852. ;
  853. ; (C) 1997 by Andreas R. Kleinert (Andreas_Kleinert@t-online.de)
  854. ; Freeware. Feel free to add it to your own installer scripts!
  855. ;
  856. ; INPUT:  #NGVER_NAME
  857. ;         (file to check)
  858. ; OUTPUT: #NGVER              #NGREV
  859. ;         (version string)    (revision string)
  860. ;
  861. ; Installer procedure to replace the (buggy)
  862. ; internal getversion() function by calling
  863. ; "C:Version" and parsing the resulting
  864. ; version information.
  865. ; *******************************************************
  866. ;
  867.  
  868. (procedure P_NewGetVersion
  869.     (set #NGVER "")
  870.     (set #NGREV "")
  871.  
  872.     (run "C:Version "#NGVER_NAME" FILE >ENV:ngver_verstring")
  873.     (set #ngver_verstring (getenv "ENV:ngver_verstring"))
  874.     (delete "ENV:ngver_verstring")
  875.  
  876.     (set #ngver_t1 #ngver_verstring)
  877.     (until (= (strlen #ngver_t1) 0) (
  878.     (set #ngver_cmp (substr #ngver_t1 0 1))
  879.     (if (= #ngver_cmp " ") (
  880.          (set #ngver_t1 (substr #ngver_t1 1))
  881.          (set #ngver_t2 #ngver_t1)
  882.          (set #ngver_cmp (substr #ngver_t2 0 1))
  883.          (until (= #ngver_cmp ".") (
  884.          (set #NGVER (cat #NGVER #ngver_cmp))
  885.          (set #ngver_t2  (substr #ngver_t2 1))
  886.          (set #ngver_cmp (substr #ngver_t2 0 1))
  887.          ))
  888.          (set #NGREV (substr #ngver_t2 1))
  889.     ))
  890.     (set #ngver_t1 (substr #ngver_t1 1))
  891.     ))
  892. )
  893. ; *******************************************************
  894. ; *******************************************************
  895.  
  896.  
  897. ; --- GetVersion procedure --------------------------------
  898.  
  899. (procedure P_GetVersion
  900.      ; Param:
  901.      ; #file
  902.      ;
  903.      ; Results:
  904.      ; #ver #rev
  905.      ;
  906.      ; Vars used:
  907.      ; #vernum #NGVER_NAME #NGVER #NGREV)
  908.  
  909.  
  910.      (if #USE_NEWGETVERSION
  911.      (
  912.          (set #NGVER_NAME #file)
  913.          (P_NewGetVersion)
  914.          (set #ver #NGVER)
  915.          (set #rev #NGREV)
  916.      )
  917.      ; else
  918.      (
  919.          (set #vernum (getversion (cat #file)))
  920.          (set #ver (/ #vernum 65536))
  921.          (set #rev (- #vernum (* #ver 65536)))
  922.      )
  923.      )
  924. )
  925.  
  926. ; --- CompareVersions procedure ---------------------------
  927.  
  928. (procedure P_CompareVersions
  929.   ; Param:
  930.   ; #ver #rev #ver2 #rev2
  931.   ;
  932.   ; Results:
  933.   ; #result
  934.   ; -1 : #ver.#rev < #ver2.#rev2
  935.   ;  0 : #ver.#rev = #ver2.#rev2
  936.   ;  1 : #ver.#rev > #ver2.#rev2
  937.   ;
  938.   ; Used Vars:
  939.  
  940.   (if (< #ver #ver2)
  941.     (set #result -1)
  942.     (if (> #ver #ver2)
  943.       (set #result 1)
  944.       (if (< #rev #rev2)
  945.     (set #result -1)
  946.     (if (> #rev #rev2)
  947.       (set #result 1)
  948.       (set #result 0)
  949.     )
  950.       )
  951.     )
  952.   )
  953. )
  954.  
  955. ; --- GetOSVersion ----------------------------------------
  956.  
  957. (procedure P_GetOSVersion
  958.   ; Param:
  959.   ;
  960.   ; Results:
  961.   ; #os_ver #os_rev #os_str
  962.   ;
  963.   ; Used Vars:
  964.   ; #file #ver #rev #vernum #i
  965.  
  966.   (set #file "libs:version.library")
  967.   (P_GetVersion)
  968.   (set #os_ver #ver)
  969.   (set #os_rev #rev)
  970.  
  971.   (set #i 0)
  972.   (while (<> #os_ver (select #i 33 34 36 37 38 39 40 43 #os_ver))
  973.     (set #i (+ #i 1))
  974.   )
  975.   (set #os_str (select #i "1.2" "1.3" "2.0pre" "2.0" "2.1" "3.0" "3.1" "3.2" #unknown))
  976. )
  977.  
  978. ; --- CheckAvailableCPUs ----------------------------------
  979.  
  980. (procedure P_CheckAvailableCPUs
  981.   ; Params:
  982.   ; #src-dir #dt-name
  983.   ;
  984.   ; Results:
  985.   ; #dt_cpus #dt_fpus #dt_cpu_counter
  986.   ;
  987.   ; Used Vars:
  988.   ; #i #file #bitmask #filetype #f
  989.  
  990.   (set #dt_cpus %000000)
  991.   (set #dt_fpus %000000)
  992.   (set #dt_cpu_counter 0)
  993.  
  994.   (foreach #src-dir (cat #dt-base ".datatype(%|.0(0|1|2|3|4|6)0(%|f))(%|.p)")
  995.     (
  996.      (set #i 0)
  997.      (set #file (substr @each-name (strlen (cat #dt-base ".datatype"))))
  998.  
  999.      ; fpu ?
  1000.      (set #f (patmatch ".0?0f(%|.p)" #file))
  1001.      (if #f
  1002.      (if (patmatch "#?.p" #file)
  1003.          (set #file (substr #file 0 (- (strlen #file) 3)))
  1004.          ; else
  1005.          (set #file (substr #file 0 (- (strlen #file) 1)))
  1006.      )
  1007.      )
  1008.  
  1009.      (set #bitmask %000001)
  1010.      (while (NOT (patmatch (select #i "(%|.000)(%|.p)" ".010(%|.p)" ".020(%|.p)" ".030(%|.p)" ".040(%|.p)" ".060(%|.p)") #file))
  1011.        (
  1012.     (set #bitmask (shiftleft #bitmask 1))
  1013.     (set #i (+ #i 1))
  1014.        )
  1015.      )
  1016.      (if #f
  1017.        (
  1018.     (set #dt_fpus (BITOR #dt_fpus #bitmask))
  1019.     (set #dt_cpu_counter (+ #dt_cpu_counter 1))
  1020.        )
  1021.        (
  1022.     (set #dt_cpus (BITOR #dt_cpus #bitmask))
  1023.     (set #dt_cpu_counter (+ #dt_cpu_counter 1))
  1024.        )
  1025.      )
  1026.     )
  1027.   )
  1028. )
  1029.  
  1030.  
  1031. ; --- Check procedure ---------------------------------------------------------
  1032.  
  1033. (procedure P_CheckExists
  1034.     ; Param:
  1035.     ; #dir
  1036.     ;
  1037.     ; Results:
  1038.     ; #chk_catalogs #chk_dt_catalogs
  1039.     ; #chk_docs #chk_agdocs #chk_asciidocs #chk_hgdocs #chk_htmldocs
  1040.     ;
  1041.     ; #chk_autodoc #chk_c_h #chk_c_example #chk_asm_i #chk_asm_example #chk_e_e
  1042.     ; #chk_e_example #chk_modula_def #chk_modula_mod #chk_modula_demo
  1043.     ; #chk_oberon_mod #chk_oberon_example #existsmask
  1044.     ; #chk_progdirs
  1045.     ;
  1046.     ; Vars used:
  1047.     ; #i #lang
  1048.  
  1049.     (set #chk_datatype     (exists "classes/datatypes"))
  1050.     (set #chk_descr        (exists "devs/datatypes"))
  1051.     (set #chk_env          (exists "envarc/datatypes"))
  1052.     (set #chk_prefs        (exists "prefs/datatypes"))
  1053.     (set #chk_examples     (exists "examples"))
  1054.     (set #chk_arexx        (exists "arexx"))
  1055.  
  1056.     ; Catalogs + Documentation
  1057.     (set #chk_dt_catalogs  %000000000000000000) ; LANGUAGE
  1058.     (set #chk_asciidocs    %000000000000000000) ; LANGUAGE
  1059.     (set #chk_agdocs       %000000000000000000) ; LANGUAGE
  1060.     (set #chk_hgdocs       %000000000000000000) ; LANGUAGE
  1061.     (set #chk_htmldocs     %000000000000000000) ; LANGUAGE
  1062.     (set #langmask         %111111111111111111) ; LANGUAGE
  1063.     (while (P_BitToLanguage)(
  1064.     ; Catalogs
  1065.     (if (exists (cat (tackon #dir "locale/catalogs/") #lang "/" #dt-base "_" #dt-suffix ".catalog") (noreq))
  1066.         (
  1067.            (set #chk_dt_catalogs (BITOR #chk_dt_catalogs %1000000000000000000)) ; LANGUAGE
  1068.            (set #chk_dt_catalogs (shiftright #chk_dt_catalogs 1))
  1069.         )
  1070.         ; else
  1071.         (
  1072.            (set #chk_dt_catalogs (shiftright #chk_dt_catalogs 1))
  1073.         )
  1074.     )
  1075.  
  1076.     ; Docs/ASCII
  1077.     (if (exists (cat (tackon #dir "Docs/") #lang "/" #dt-base "_" #dt-suffix ".doc") (noreq))
  1078.         (
  1079.         (set #chk_asciidocs (BITOR #chk_asciidocs %1000000000000000000)) ; LANGUAGE
  1080.         (set #chk_asciidocs (shiftright #chk_asciidocs 1))
  1081.         )
  1082.         ; else
  1083.         (
  1084.         (set #chk_asciidocs (shiftright #chk_asciidocs 1))
  1085.         )
  1086.     )
  1087.  
  1088.     ; Docs/AmigaGuide
  1089.     (if (exists (cat (tackon #dir "Docs/") #lang "/" #dt-base "_" #dt-suffix ".guide") (noreq))
  1090.         (
  1091.         (set #chk_agdocs (BITOR #chk_agdocs %1000000000000000000)) ; LANGUAGE
  1092.         (set #chk_agdocs (shiftright #chk_agdocs 1))
  1093.         )
  1094.         ; else
  1095.         (
  1096.         (set #chk_agdocs (shiftright #chk_agdocs 1))
  1097.         )
  1098.     )
  1099.  
  1100.     ; Docs/HyperGuide
  1101.     (if (exists (cat (tackon #dir "Docs/") #lang "/" #dt-base "_" #dt-suffix ".hguide") (noreq))
  1102.         (
  1103.         (set #chk_hgdocs (BITOR #chk_hgdocs %1000000000000000000)) ; LANGUAGE
  1104.         (set #chk_hgdocs (shiftright #chk_hgdocs 1))
  1105.         )
  1106.         ; else
  1107.         (
  1108.         (set #chk_hgdocs (shiftright #chk_hgdocs 1))
  1109.         )
  1110.     )
  1111.  
  1112.     ; Docs/HyperGuide
  1113.     (if (exists (cat #dir "Docs/" #lang "/" #dt-base "_" #dt-suffix ".html") (noreq))
  1114.         (
  1115.         (set #chk_htmldocs (BITOR #chk_htmldocs %1000000000000000000)) ; LANGUAGE
  1116.         (set #chk_htmldocs (shiftright #chk_htmldocs 1))
  1117.         )
  1118.         ; else
  1119.         (
  1120.         (set #chk_htmldocs (shiftright #chk_htmldocs 1))
  1121.         )
  1122.     )
  1123.     ))
  1124.     (set #chk_catalogs #chk_dt_catalogs)
  1125.  
  1126.  
  1127.     (set #chk_docs (BITOR (if #chk_asciidocs %0001 %0000)
  1128.               (if #chk_agdocs    %0010 %0000)
  1129.               (if #chk_hgdocs    %0100 %0000)
  1130.               (if #chk_htmldocs  %1000 %0000)
  1131.            )
  1132.     )
  1133.  
  1134.     (set #chk_user_docs %0)
  1135.     (if (NOT #chk_docs)
  1136.     (
  1137.         (if (exists (cat #dir (tackon #dt-doc-dir #dt-doc)))
  1138.         (set #chk_user_docs %1)
  1139.         )
  1140.     )
  1141.     )
  1142.  
  1143.     ; Icon package
  1144.     (set #iconmask (BITOR
  1145.      (if (exists (cat #dir "Icons/Standard/def_Icons")) %001 %000)
  1146.      (if (exists (cat #dir "Icons/MagicWB/def_Icons"))  %010 %000)
  1147.      (if (exists (cat #dir "Icons/NewIcons/def_Icons")) %100 %000)
  1148.     ))
  1149.     (set #chk_icons #iconmask)
  1150.  
  1151.     ; Developer
  1152.     (set #chk_proglang %000000)
  1153.     (set #chk_progdirs %000000)
  1154.     (set #chk_autodoc (exists (cat #dir "Developer/Autodocs/" #dt-base "_" #dt-suffix ".doc") (noreq)))
  1155.     (set #chk_autodoc_guide (exists (cat #dir "Developer/Autodocs/" #dt-base "_" #dt-suffix) (noreq)))
  1156.  
  1157.     (set #chk_fd      (exists (cat "Developer/FD/" #dt-base "dtclass_lib.fd") (noreq)))
  1158.  
  1159.     ; C
  1160.     (set #chk_progdirs (BITOR #chk_progdirs (if (exists "Developer/C" (noreq)) %000001 %000000)))
  1161.     (set #chk_c_h       (exists (cat "Developer/C/Include/Datatypes/" #dt-base "class.h") (noreq)))
  1162.     (set #chk_c_clib    (exists (cat "Developer/C/Include/CLib/" #dt-base "dtclass_protos.h") (noreq)))
  1163.     (set #chk_c_pragmas (exists (cat "Developer/C/Include/Pragmas/" #dt-base "dtclass_pragmas.h") (noreq)))
  1164.     (set #chk_c_proto   (exists (cat "Developer/C/Include/Proto/" #dt-base "dtclass.h") (noreq)))
  1165.     (set #chk_c_inline  (exists (cat "Developer/C/Include/Inline/" #dt-base "dtclass_inline.h") (noreq)))
  1166.     (set #chk_c_example (exists (cat "Developer/C/Examples/" #dt-base "-Demo.c") (noreq)))
  1167.     (if #chk_c_h
  1168.     (set #chk_proglang (BITOR #chk_proglang %000001))
  1169.     )
  1170.     ; C++
  1171.     ; not supported yet
  1172.     ; Assembler
  1173.     (set #chk_progdirs (BITOR #chk_progdirs (if (exists (cat #dir "Developer/Assembler") (noreq)) %000100 %000000)))
  1174.     (set #chk_asm_i       (exists (cat "Developer/Assembler/Include/Datatypes/" #dt-base "class.i") (noreq)))
  1175.     (set #chk_asm_example (exists (cat "Developer/Assembler/Examples/" #dt-base "-Demo.s") (noreq)))
  1176.     (if #chk_asm_i
  1177.     (set #chk_proglang (BITOR #chk_proglang %000100))
  1178.     )
  1179.     ; Amiga-E
  1180.     (set #chk_progdirs (BITOR #chk_progdirs (if (exists (cat #dir "Developer/Amiga-E") (noreq)) %001000 %000000)))
  1181.     (set #chk_e_e       (exists (cat "Developer/Amiga-E/Modules/Datatypes/" #dt-base "class.e") (noreq)))
  1182.     (set #chk_e_example (exists (cat "Developer/Amiga-E/Examples/" #dt-base "-Demo.e") (noreq)))
  1183.     (if #chk_e_e
  1184.     (set #chk_proglang (BITOR #chk_proglang %001000))
  1185.     )
  1186.     ; Modula-II
  1187.     (set #chk_progdirs (BITOR #chk_progdirs (if (exists (cat #dir "Developer/Modula") (noreq)) %010000 %000000)))
  1188.     (set #chk_modula_def  (exists (cat "Developer/Modula/Datatypes/" #dt-base ".def") (noreq)))
  1189.     (set #chk_modula_mod  (exists (cat "Developer/Modula/Datatypes/" #dt-base ".mod") (noreq)))
  1190.     (set #chk_modula_demo (exists (cat "Developer/Modula/Examples/" #dt-base "-Demo.mod") (noreq)))
  1191.     (if (AND #chk_modula_def #chk_modula_mod)
  1192.     (set #chk_proglang (BITOR #chk_proglang %010000))
  1193.     )
  1194.     ; Oberon
  1195.     (set #chk_progdirs (BITOR #chk_progdirs (if (exists (cat #dir "Developer/Oberon") (noreq)) %100000 %000000)))
  1196.     (set #chk_oberon_mod     (exists (cat "Developer/Oberon/Datatypes/" #dt-base ".mod") (noreq)))
  1197.     (set #chk_oberon_example (exists (cat "Developer/Oberon/Examples/" #dt-base "-Demo.mod") (noreq)))
  1198.     (if #chk_oberon_mod
  1199.     (set #chk_proglang (BITOR #chk_proglang %100000))
  1200.     )
  1201.  
  1202.     ; is there any developer informations ?
  1203.     (set #chk_developer #chk_proglang)
  1204.  
  1205.     (P_CustomCheck)
  1206.  
  1207.     (set #existsmask (BITOR
  1208.      (if #chk_datatype  %0000000001 %000000000)
  1209.      (if #chk_descr     %0000000010 %000000000)
  1210.      (if #chk_env       %0000000100 %000000000)
  1211.      (if #chk_catalogs  %0000001000 %000000000)
  1212.      (if #chk_docs      %0000010000 %000000000)
  1213.      (if #chk_prefs     %0000100000 %000000000)
  1214.      (if #chk_icons     %0001000000 %000000000)
  1215.      (if #chk_arexx     %0010000000 %000000000)
  1216.      (if #chk_examples  %0100000000 %000000000)
  1217.      (if #chk_developer %1000000000 %000000000)
  1218.     ))
  1219. )
  1220.  
  1221.  
  1222. ; --- AskLanguages ----------------------------------------
  1223.  
  1224. (procedure P_AskLanguages
  1225.   ; Params:
  1226.   ; #prompt #langmask #defaultmask
  1227.   ;
  1228.   ; Results:
  1229.   ; #langmask
  1230.   ;
  1231.   ; Used Vars:
  1232.   ; #bitmask
  1233.  
  1234.   (set #langmask (BITAND #langmask %111111111111111111)) ; LANGUAGE
  1235.   (if #langmask
  1236.     (
  1237.      (set #bitmask (askoptions (prompt #prompt)
  1238.                    (help #help_askoptions @askoptions-help)
  1239.                    (default (BITAND #defaultmask #langmask))
  1240.                    (choices
  1241.                  (if (IN #langmask 0)
  1242.                    (cat #prop #choice_english)
  1243.                    ("")
  1244.                  )
  1245.                  (if (IN #langmask 1)
  1246.                    (cat #prop #choice_german)
  1247.                    ("")
  1248.                  )
  1249.                  (if (IN #langmask 2)
  1250.                    (cat #prop #choice_french)
  1251.                    ("")
  1252.                  )
  1253.                  (if (IN #langmask 3)
  1254.                    (cat #prop #choice_spanish)
  1255.                    ("")
  1256.                  )
  1257.                  (if (IN #langmask 4)
  1258.                    (cat #prop #choice_portuguese)
  1259.                    ("")
  1260.                  )
  1261.                  (if (IN #langmask 5)
  1262.                    (cat #prop #choice_danish)
  1263.                    ("")
  1264.                  )
  1265.                  (if (IN #langmask 6)
  1266.                    (cat #prop #choice_italian)
  1267.                    ("")
  1268.                  )
  1269.                  (if (IN #langmask 7)
  1270.                    (cat #prop #choice_dutch)
  1271.                    ("")
  1272.                  )
  1273.                  (if (IN #langmask 8)
  1274.                    (cat #prop #choice_norwegian)
  1275.                    ("")
  1276.                  )
  1277.                  (if (IN #langmask 9)
  1278.                    (cat #prop #choice_swedish)
  1279.                    ("")
  1280.                  )
  1281.                  (if (IN #langmask 10)
  1282.                    (cat #prop #choice_polish)
  1283.                    ("")
  1284.                  )
  1285.                  (if (IN #langmask 11)
  1286.                    (cat #prop #choice_finnish)
  1287.                    ("")
  1288.                  )
  1289.                  (if (IN #langmask 12)
  1290.                    (cat #prop #choice_hungarian)
  1291.                    ("")
  1292.                  )
  1293.                  (if (IN #langmask 13)
  1294.                    (cat #prop #choice_greek)
  1295.                    ("")
  1296.                  )
  1297.                  (if (IN #langmask 14)
  1298.                    (cat #prop #choice_esperanto)
  1299.                    ("")
  1300.                  )
  1301.                  (if (IN #langmask 15)
  1302.                    (cat #prop #choice_turkish)
  1303.                    ("")
  1304.                  )
  1305.                  (if (IN #langmask 16)
  1306.                    (cat #prop #choice_latin)
  1307.                    ("")
  1308.                  )
  1309.                  (if (IN #langmask 17)
  1310.                    (cat #prop #choice_russian)
  1311.                    ("")
  1312.                  )
  1313.                  ; LANGUAGE
  1314.                    )
  1315.            )
  1316.      )
  1317.      (set #langmask (BITAND #langmask #bitmask))
  1318.     )
  1319.   )
  1320. )
  1321.  
  1322. ; --- AskProgLang -------------------------------------------------------------
  1323.  
  1324. (procedure P_AskProgLangs
  1325.     ; Params:
  1326.     ; #prompt #plangmask #defaultmask
  1327.     ;
  1328.     ; Results:
  1329.     ; #plangmask
  1330.     ;
  1331.     ; Used Vars:
  1332.     ; #bitmask
  1333.  
  1334.     (set #plangmask (BITAND #plangmask %111101))
  1335.     (if #plangmask
  1336.      (
  1337.          (set #bitmask (askoptions
  1338.          (prompt #prompt)
  1339.          (help #help_askoptions @askoptions-help)
  1340.          (default (BITAND #defaultmask #plangmask))
  1341.          (choices
  1342.              (if (IN #plangmask 0)
  1343.              (cat #prop "C")
  1344.              ("")
  1345.              )
  1346.              (if (IN #plangmask 1)
  1347.              (cat #prop "C++")
  1348.              ("")
  1349.              )
  1350.              (if (IN #plangmask 2)
  1351.              (cat #prop "Assembler")
  1352.              ("")
  1353.              )
  1354.              (if (IN #plangmask 3)
  1355.              (cat #prop "Amiga-E")
  1356.              ("")
  1357.              )
  1358.              (if (IN #plangmask 4)
  1359.              (cat #prop "Modula-II")
  1360.              ("")
  1361.              )
  1362.              (if (IN #plangmask 5)
  1363.              (cat #prop "Oberon")
  1364.              ("")
  1365.              )
  1366.          ))
  1367.          )
  1368.          (set #plangmask (BITAND #plangmask #bitmask))
  1369.      )
  1370.     )
  1371. )
  1372.  
  1373.  
  1374. ; --- P_GetCPUString
  1375.  
  1376. (procedure P_GetCPUString
  1377.     ; Params:
  1378.     ; #cpu
  1379.     ;
  1380.     ; Results:
  1381.     ; #cpu_str
  1382.     ;
  1383.     ; Used Vars:
  1384.     ;
  1385.  
  1386.     (set #cpu_str (select #cpu "MC68000" "MC68010" "MC68020" "MC68020+FPU" "MC68030" "MC68030+FPU" "MC68040" "MC68040+FPU" "MC68060"))
  1387. )
  1388.  
  1389. ; --- AskCPUFPU -------------------------------------------
  1390.  
  1391. (procedure P_AskCPUFPU
  1392.   ; Params:
  1393.   ;
  1394.   ; Results:
  1395.   ; #cpu #cpu_str #dt_cpu_file_extension
  1396.   ;
  1397.   ; Used Vars:
  1398.   ; #i #file #bitmask #filetype #f #dt_cpus #dt_fpus #dir
  1399.   ; #defaultcpu #dt_cpu_counter #fpu #fpu_str #cpu2
  1400.  
  1401.   (set #src-dir "classes/datatypes")
  1402.   (P_CheckAvailableCPUs)
  1403.  
  1404.   ; if there was a user selection from a previous datatype installation use this CPU type
  1405.   (if (NOT #installcache) (
  1406.       (P_GetCPUFPU)
  1407.       (set #defaultcpu -1)
  1408.       (while (AND (>= #cpu 0) (= #defaultcpu -1))
  1409.     (
  1410.      (if (AND #fpu (IN #dt_fpus #cpu))
  1411.        (set #defaultcpu (select #cpu -1 -1 3 5 7 -1))
  1412.        (if (IN #dt_cpus #cpu)
  1413.          (set #defaultcpu (select #cpu 0 1 2 4 6 8))
  1414.        )
  1415.      )
  1416.      (set #cpu (- #cpu 1))
  1417.     )
  1418.       )
  1419.       (if (= #defaultcpu -1)
  1420.     (abort #abort_nocpu)
  1421.       )
  1422.       (if (AND (> #dt_cpu_counter 1) (= @user-level 2))
  1423.     (
  1424.      (set #cpu (askchoice (prompt #prompt_askcpufpu)
  1425.                   (help (cat (#help_askcpufpu #cpu_str) #help_askchoice @askchoice-help))
  1426.                   (default #defaultcpu)
  1427.                   (choices
  1428.                 (if (IN #dt_cpus 0)
  1429.                   (cat #prop "MC68000")
  1430.                   ("")
  1431.                 )
  1432.                 (if (IN #dt_cpus 1)
  1433.                   (cat #prop "MC68010")
  1434.                   ("")
  1435.                 )
  1436.                 (if (IN #dt_cpus 2)
  1437.                   (cat #prop "MC68020")
  1438.                   ("")
  1439.                 )
  1440.                 (if (IN #dt_fpus 2)
  1441.                   (cat #prop "MC68020+FPU")
  1442.                   ("")
  1443.                 )
  1444.                 (if (IN #dt_cpus 3)
  1445.                   (cat #prop "MC68030")
  1446.                   ("")
  1447.                 )
  1448.                 (if (IN #dt_fpus 3)
  1449.                   (cat #prop "MC68030+FPU")
  1450.                   ("")
  1451.                 )
  1452.                 (if (IN #dt_cpus 4)
  1453.                   (cat #prop "MC68040")
  1454.                   ("")
  1455.                 )
  1456.                 (if (IN #dt_fpus 4)
  1457.                   (cat #prop "MC68040+FPU")
  1458.                   ("")
  1459.                 )
  1460.                 (if (IN #dt_cpus 5)
  1461.                   (cat #prop "MC68060")
  1462.                   ("")
  1463.                 )
  1464.                   )
  1465.            )
  1466.      )
  1467.     )
  1468.     (set #cpu #defaultcpu)
  1469.       )
  1470.       (set #cpu_save #cpu)
  1471.   ))
  1472.  
  1473.   ; select lower cpu if not available
  1474.   (set #cpu2 (select #cpu 0 1 2 2 3 3 4 4 5))
  1475.   (set #fpu2 (select #cpu 0 0 0 1 0 1 0 1 0))
  1476.   (while (NOT (OR (AND #fpu2 (AND #fpu (IN #dt_fpus #cpu2))) (AND (NOT #fpu2) (IN #dt_cpus #cpu2))))
  1477.     (
  1478.      (set #cpu (- #cpu 1))
  1479.      (set #cpu2 (select #cpu 0 1 2 2 3 3 4 4 5))
  1480.      (set #fpu2 (select #cpu 0 0 0 1 0 1 0 1 0))
  1481.     )
  1482.   )
  1483.  
  1484.   (P_GetCPUString)
  1485.   (set #dt_cpu_file_extension (select #cpu (if (exists (cat #dir "/" #dt-base ".datatype.000") (noreq)) (".000") ("")) ".010" ".020" ".020f" ".030" ".030f" ".040" ".040f" ".060"))
  1486.   (set #cpu #cpu2)
  1487. )
  1488.  
  1489.  
  1490. ; --- AskDocFormat ----------------------------------------
  1491.  
  1492. (procedure P_AskDocFormats
  1493.     ; Params:
  1494.     ; #prompt_install_docs #docmask #defaultmask
  1495.     ;
  1496.     ; Results:
  1497.     ; #docmask
  1498.     ;
  1499.     ; Used Vars:
  1500.     ; #bitmask
  1501.  
  1502.     (set #docmask (BITAND #docmask %1111))
  1503.     (if #docmask
  1504.     (
  1505.         (set #bitmask (askoptions (prompt #prompt_install_docs)
  1506.          (help #help_askoptions @askoptions-help)
  1507.          (default (BITAND #defaultmask #docmask))
  1508.          (choices
  1509.              (if (IN #docmask 0)
  1510.              (cat #prop "ASCII")
  1511.              ("")
  1512.              )
  1513.              (if (IN #docmask 1)
  1514.              (cat #prop "AmigaGuide®")
  1515.              ("")
  1516.              )
  1517.              (if (IN #docmask 2)
  1518.              (cat #prop "HyperGuide")
  1519.              ("")
  1520.              )
  1521.              (if (IN #docmask 3)
  1522.              (cat #prop "HTML")
  1523.              ("")
  1524.              )
  1525.          )
  1526.         ))
  1527.         (set #docmask (BITAND #docmask #bitmask))
  1528.     )
  1529.     )
  1530. )
  1531.  
  1532. ; --- AskDefaultDir ---------------------------------------
  1533.  
  1534. (procedure P_AskDefaultDir
  1535.     ; Params:
  1536.     ; #prompt_askdefaultdir
  1537.     ;
  1538.     ; Results:
  1539.     ; #defaultdir
  1540.     ;
  1541.     ; Used Vars:
  1542.  
  1543.     (if (= @user-level 2) (
  1544.     (set #defaultdir
  1545.         (askdir
  1546.         (prompt #prompt_askdefaultdir)
  1547.         (help (cat #help_askdefaultdir @askdir-help))
  1548.         (default #defaultdir)
  1549.         )
  1550.     )
  1551.     ))
  1552.     (set @default-dest #defaultdir)
  1553. )
  1554.  
  1555. ; --- AskIconPackage --------------------------------------
  1556.  
  1557. (procedure P_AskIconPackage
  1558.     ; Params:
  1559.     ; #prompt_askiconpackage #iconmask
  1560.     ;
  1561.     ; Results:
  1562.     ; #iconpackage
  1563.     ;
  1564.     ; Used Vars:
  1565.     ; #bitmask
  1566.  
  1567.     (set #iconmask (BITAND #iconmask %111))
  1568.     (if #iconmask
  1569.     (
  1570.         (set #iconpackage-nr (askchoice (prompt #prompt_askiconpackage)
  1571.          (help #help_askoptions @askoptions-help)
  1572.          (default (BITAND #defaultmask #docmask))
  1573.          (choices
  1574.              (if (IN #iconmask 0)
  1575.              (cat #prop "Standard")
  1576.              ("")
  1577.              )
  1578.              (if (IN #iconmask 1)
  1579.              (cat #prop "MagicWB")
  1580.              ("")
  1581.              )
  1582.              (if (IN #iconmask 2)
  1583.              (cat #prop "NewIcons")
  1584.              ("")
  1585.              )
  1586.              (#choice_none)
  1587.          )
  1588.         ))
  1589.         (set #iconpackage (select #iconpackage-nr "Standard" "MagicWB" "NewIcons" ""))
  1590.     )
  1591.     )
  1592. )
  1593.  
  1594. ; --- GetVersion ------------------------------------------
  1595.  
  1596. (procedure P_GetVersion
  1597.     ; Param:
  1598.     ; #file
  1599.     ;
  1600.     ; Results:
  1601.     ; #ver #rev
  1602.     ;
  1603.     ; Vars used:
  1604.     ; #vernum
  1605.  
  1606.     (set #vernum (getversion (cat #file)))
  1607.     (set #ver (/ #vernum 65536))
  1608.     (set #rev (- #vernum (* #ver 65536)))
  1609. )
  1610.  
  1611. ; --- GetDTVersion ----------------------------------------
  1612.  
  1613. (procedure P_GetDTVersion
  1614.     ; Params:
  1615.     ;
  1616.     ; Results:
  1617.     ; #dt_ver #dt_rev #dt_str
  1618.     ;
  1619.     ; Used Vars:
  1620.     ; #file #ver #rev #vernum #i
  1621.  
  1622.     (set #file "libs:datatypes.library")
  1623.     (if (exists #file (noreq))
  1624.     (
  1625.         (set #file "libs:datatypes.library")
  1626.         (P_GetVersion)
  1627.         (set #dt_ver #ver)
  1628.         (set #dt_rev #rev)
  1629.         (set #dt_str (cat #ver "." #rev))
  1630.     )
  1631.     (
  1632.         (set #dt_ver 0)
  1633.         (set #dt_rev 0)
  1634.         (set #dt_str "")
  1635.     )
  1636.     )
  1637. )
  1638.  
  1639. ; --- AskParts ----------------------------------------------------------------
  1640.  
  1641. (procedure P_AskParts
  1642.     ; Params:
  1643.     ; #prompt #defaultmask #existsmask
  1644.     ;
  1645.     ; Results:
  1646.     ; #parts
  1647.     ;
  1648.     ; Used Vars:
  1649.  
  1650.     (set #existsmask (BITOR #existsmask (SHIFTLEFT #custommask #max_standard_parts)))
  1651.     (set #existsmask (if (= @user-level 2)
  1652.              #existsmask
  1653.              ; disable developer stuff
  1654.              (BITAND #existsmask (BITOR %0111111111 (SHIFTLEFT #custom_parts_default #max_standard_parts)))
  1655.              )
  1656.     )
  1657.     (if #existsmask
  1658.     (
  1659.         (P_CustomParts)
  1660.         (set #parts (askoptions (prompt #prompt)
  1661.          (help #help_askoptions @askoptions-help)
  1662.          (default (BITAND #defaultmask #existsmask))
  1663.          (choices
  1664.             (if (IN #existsmask 0)
  1665.             (cat #prop #choice_datatype)
  1666.             ("")
  1667.             )
  1668.             (if (IN #existsmask 1)
  1669.             (cat #prop #choice_descriptors)
  1670.             ("")
  1671.             )
  1672.             (if (IN #existsmask 2)
  1673.             (cat #prop #choice_env)
  1674.             ("")
  1675.             )
  1676.             (if (IN #existsmask 3)
  1677.             (cat #prop #choice_catalogs)
  1678.             ("")
  1679.             )
  1680.             (if (IN #existsmask 4)
  1681.             (cat #prop #choice_docs)
  1682.             ("")
  1683.             )
  1684.             (if (IN #existsmask 5)
  1685.             (cat #prop #choice_prefs)
  1686.             ("")
  1687.             )
  1688.             (if (IN #existsmask 6)
  1689.             (cat #prop #choice_icons)
  1690.             ("")
  1691.             )
  1692.             (if (IN #existsmask 7)
  1693.             (cat #prop #choice_arexx)
  1694.             ("")
  1695.             )
  1696.             (if (IN #existsmask 8)
  1697.             (cat #prop #choice_examples)
  1698.             ("")
  1699.             )
  1700.             (if (IN #existsmask 9)
  1701.             (cat #prop #choice_developer)
  1702.             ("")
  1703.             )
  1704.             (if (IN #custommask 0)
  1705.             (cat #prop #custom_part1)
  1706.             ("")
  1707.             )
  1708.             (if (IN #custommask 1)
  1709.             (cat #prop #custom_part2)
  1710.             ("")
  1711.             )
  1712.             (if (IN #custommask 2)
  1713.             (cat #prop #custom_part3)
  1714.             ("")
  1715.             )
  1716.          ))
  1717.         )
  1718.         (set #parts (BITAND #parts #existsmask))
  1719.         (set #install_datatype    (IN #parts 0))
  1720.         (set #install_descriptors (IN #parts 1))
  1721.         (set #install_env         (IN #parts 2))
  1722.         (set #install_catalogs    (IN #parts 3))
  1723.         (set #install_docs        (IN #parts 4))
  1724.         (set #install_prefs       (IN #parts 5))
  1725.         (set #install_icons       (IN #parts 6))
  1726.         (set #install_arexx       (IN #parts 7))
  1727.         (set #install_examples    (IN #parts 8))
  1728.         (set #install_developer   (IN #parts 9))
  1729.  
  1730.         (set #install_custom_parts (SHIFTRIGHT #parts #max_standard_parts))
  1731.     )
  1732.     ; else
  1733.     (
  1734.         (set #parts 0)
  1735.     )
  1736.     )
  1737. )
  1738.  
  1739. ; --- P_Completed -----------------------------------------
  1740.  
  1741. (procedure P_Completed
  1742.     ; Params:
  1743.     ; #completed
  1744.     ;
  1745.     ; Results:
  1746.     ;
  1747.     ; Used Vars:
  1748.     ; #precent #max_installation_parts
  1749.  
  1750.     (set #max_installation_parts 27)
  1751.     (set #percent (/ (* 100 #completed) #max_installation_parts))
  1752.     (complete #percent)
  1753.     (set #completed (+ #completed 1))
  1754. )
  1755.  
  1756. ; --- P_DeleteFile ----------------------------------------
  1757.  
  1758. (procedure P_DeleteFile
  1759.     ; Params:
  1760.     ; #file
  1761.     ;
  1762.     ; Results:
  1763.     ;
  1764.     ; Used Vars:
  1765.  
  1766.     (if (exists #file) (
  1767.     (delete #file)
  1768.     (if (exists (cat #file ".info"))
  1769.         (delete (cat #file ".info"))
  1770.     )
  1771.     ))
  1772. )
  1773.  
  1774. ; --- MkDirInfo -------------------------------------------
  1775.  
  1776. (procedure P_MkDirInfo
  1777.     ; Params:
  1778.     ; #dest-dir #infos
  1779.     ;
  1780.     ; Results:
  1781.     ;
  1782.     ; Used Vars:
  1783.     ; #tmp
  1784.  
  1785.     (set #tmp (tackon #defaultdir #dest-dir))
  1786.     (if (NOT (exists #tmp (noreq)))
  1787.     (if #infos
  1788.         (makedir #tmp (prompt #prompt_makedir "\n\n" #tmp) (help @makedir-help) (infos) (confirm "expert"))
  1789.         (makedir #tmp (prompt #prompt_makedir "\n\n" #tmp) (help @makedir-help) (confirm "expert"))
  1790.     )
  1791.     )
  1792. )
  1793.  
  1794. ; --- P_CpNewFile -----------------------------------------
  1795.  
  1796. (procedure P_CpNewFile
  1797.     ; Params:
  1798.     ; #dest-dir #src-dir #file #infos
  1799.     ;
  1800.     ; Results:
  1801.     ;
  1802.     ; Used Vars:
  1803.     ; #tmp
  1804.  
  1805.     (set #tmp #file)
  1806.     (if (exists (tackon #dest-dir #file))
  1807.     (
  1808.         (set #file (tackon #dest-dir #tmp))
  1809.         (P_GetVersion)
  1810.         (set #ver2 #ver)
  1811.         (set #rev2 #rev)
  1812.         (set #file (tackon #src-dir #tmp))
  1813.         (P_GetVersion)
  1814.  
  1815.         (if (= (P_CompareVersions) 1)
  1816.         (
  1817.             (set #file #tmp)
  1818.             (P_CpFile)
  1819.         )
  1820.         )
  1821.     )
  1822.     ; else
  1823.     (P_CpFile)
  1824.     )
  1825.  
  1826. )
  1827.  
  1828. ; --- P_CpFile --------------------------------------------
  1829.  
  1830. (procedure P_CpFile
  1831.     ; Params:
  1832.     ; #dest-dir #src-dir #file #infos
  1833.     ;
  1834.     ; Results:
  1835.     ;
  1836.     ; Used Vars:
  1837.     ; #tmp
  1838.  
  1839.     (if #infos
  1840.     (copyfiles
  1841.         (prompt #prompt_copy)
  1842.         (help @copyfiles-help)
  1843.         (source (cat #src-dir "/" #file))
  1844.         (dest #dest-dir)
  1845.         (files)
  1846.         (infos)
  1847.         (optional "nofail" "force")
  1848.         (confirm "expert")
  1849.     )
  1850.     (copyfiles
  1851.         (prompt #prompt_copy)
  1852.         (help @copyfiles-help)
  1853.         (source (cat #src-dir "/" #file))
  1854.         (dest #dest-dir)
  1855.         (files)
  1856.         (optional "nofail" "force")
  1857.         (confirm "expert")
  1858.     )
  1859.     )
  1860. )
  1861.  
  1862. ; ---------------------------- end procedures ----------------------------
  1863.  
  1864.  
  1865. ; -------------------------- begin installation --------------------------
  1866.  
  1867. ; 0. Begin installation process
  1868.  
  1869. ; 0.1 Check datatypes.library
  1870. (P_GetDTVersion)
  1871. (if (= #dt_ver 0)
  1872.     (abort #abort_nodt)
  1873. )
  1874. (set #ver2 #min_dt_version)
  1875. (set #rev2 #min_dt_revision)
  1876. (P_CompareVersions)
  1877. (if (= #result -1)(
  1878.     (abort (#abort_olddt #dt_str (cat #min_dt_version "." #min_dt_revision)))
  1879. ))
  1880.  
  1881. ; 0.2 Ask installation mode
  1882. ;(set #mode
  1883. ;    (askchoice
  1884. ;        (prompt #prompt_install_uninstall)
  1885. ;        (help @askchoice-help)
  1886. ;        (choices #choice_install #choice_uninstall)
  1887. ;    )
  1888. ;)
  1889.  
  1890. ; only install mode now
  1891. (set #mode 0)
  1892.  
  1893. (if #mode
  1894.     (set #pmode #prompt_uninstall)
  1895.     (set #pmode #prompt_install)
  1896. )
  1897.  
  1898. ; 0.3 Ask default dir
  1899. (P_AskDefaultDir)
  1900. (set @default-dest #defaultdir)
  1901.  
  1902. ; Show what we are doing
  1903. (working (cat #pmode " " @app-name))
  1904.  
  1905. ; 0.4 Check distribution structure
  1906. (set #dir "")
  1907. (P_CheckExists)
  1908.  
  1909. ; 0.5 Try to get cached installation selections
  1910. (if (exists (cat (tackon @default-dest #save_user_selections_icon) ".info")) (
  1911.     (iconinfo (dest (tackon @default-dest #save_user_selections_icon))
  1912.     (gettooltype "CPU" "#tmpcpu")
  1913.     (gettooltype "IconPackage" "#iconpackage")
  1914.     (gettooltype "ClassDir" "#classdir")
  1915.     (gettooltype "DescriptorDir" "#descdir")
  1916.     (gettooltype "ARexxDir" "#arexxdir")
  1917.     )
  1918.     (set #iconpackage (if (= #iconpackage "none") ("") (#iconpackage)))
  1919.     (set #cpu (+ #tmpcpu))
  1920.     (P_GetCPUString)
  1921.     (if (askbool (prompt (cat #prompt_askuseinstallcache "\n\n"
  1922.             ("CPU=%s\nClassDir=%s\nDescriptorDir=%s\nARexxDir=%s\n" #cpu_str #classdir #descdir #arexxdir)
  1923.             (if (> (strlen #iconpackage) 0) ("IconPackage=%s\n" #iconpackage) (""))
  1924.          ))
  1925.          (help #prompt_helpuseinstallcache)
  1926.     )
  1927.     (
  1928.         (set #installcache 1)
  1929.         ; disable saving off user selections. They are saved!
  1930.         (set #save_user_selections 0)
  1931.     )
  1932.     )
  1933. ))
  1934.  
  1935. (complete 0)
  1936. (set #completed 0)
  1937. ; now do install or remove
  1938. (if (= #mode 0)
  1939.  
  1940.     ; 1. Install
  1941.     (
  1942.     ; 1.1 User selections
  1943.     ; choose installation parts
  1944.     (set #prompt #prompt_install_parts)
  1945.     (set #defaultmask (BITOR %1111111111 (SHIFTLEFT #custom_parts_default #max_standard_parts)))
  1946.     (P_AskParts)
  1947.  
  1948.     (set #docsdir (cat (tackon #defaultdir "Docs/") #dt-type))
  1949.  
  1950.     (P_Completed)
  1951.  
  1952.     ; 1.1.1 choose #cpu type
  1953.     (if #install_datatype (
  1954.         ; get classes dir
  1955.         (if (NOT #installcache)
  1956.         (
  1957.            (set #classdir
  1958.                (askdir
  1959.                (prompt #prompt_askclassdir)
  1960.                (help @askdir-help)
  1961.                (default #classdir)
  1962.                )
  1963.            )
  1964.         )
  1965.         )
  1966.         (P_AskCPUFPU)
  1967.  
  1968.         (debug "Selected CPU-Number is " #cpu)
  1969.         (debug "Selected CPU-String is " #cpu_str)
  1970.         (debug "Selected CPU-Extension is " #dt_cpu_file_extension)
  1971.  
  1972.         (set #dt-file (cat (tackon "classes/datatypes" #dt-base) ".datatype" #dt_cpu_file_extension))
  1973.     ))
  1974.  
  1975.     (P_Completed)
  1976.  
  1977.     ; 1.1.2. choose descriptor directory
  1978.     (if #install_descriptors (
  1979.         (if (AND (NOT #installcache) (exists "devs/datatypes")) (
  1980.         (if (= 0 (askchoice
  1981.             (prompt #prompt_descdir)
  1982.             (help (cat #help_descdir @askchoice-help))
  1983.             (choices #choice_yes #choice_no)))
  1984.             (set #descdir "Devs:Datatypes")
  1985.             (set #descdir "Sys:Storage/Datatypes")
  1986.         )
  1987.         ))
  1988.     ))
  1989.  
  1990.     (P_Completed)
  1991.  
  1992.     ; 1.1.3. choose catalog language
  1993.     (if #install_catalogs (
  1994.         ; catalogs (P_AskLanguages)
  1995.         (if (OR (NOT #update) (AND #update (IN #parts 1)))
  1996.         (
  1997.             (set #prompt      #prompt_install_dt_catalogs)
  1998.             (set #langmask    (BITAND #chk_dt_catalogs (BITNOT #old_dt_catalogs)))
  1999.             (set #defaultmask (BITAND #language_default (BITNOT #old_dt_catalogs)))
  2000.             (P_AskLanguages)
  2001.             (set #install_dt_catalogs #langmask)
  2002.         )
  2003.         ; else
  2004.         (
  2005.             (set #install_dt_catalogs 0)
  2006.         )
  2007.         )
  2008.     ))
  2009.  
  2010.     (P_Completed)
  2011.  
  2012.     ; 1.1.4. choose iconpackage
  2013.     (if (AND #install_icons (OR (NOT #installcache) (= (strlen #iconpackage) 0))) (
  2014.         (P_AskIconPackage)
  2015.     ))
  2016.     (set #icondir (cat (tackon #defaultdir "Misc/Icons")))
  2017.  
  2018.     (P_Completed)
  2019.  
  2020.     ; 1.1.4. choose documentation format and language
  2021.     (if #install_docs (
  2022.         ; (P_AskDocFormats)
  2023.         (if (OR (NOT #update) (AND #update (IN #parts 2)))
  2024.         (
  2025.             (set #prompt      #prompt_install_docs)
  2026.             (set #docmask     (BITAND #chk_docs (BITNOT #old_docs)))
  2027.             (set #defaultmask (BITAND %1111 (BITNOT #old_docs)))
  2028.  
  2029.             (P_AskDocFormats)
  2030.             (set #install_docs #docmask)
  2031.         )
  2032.         ; else
  2033.         (
  2034.             (set #install_docs 0)
  2035.         )
  2036.         )
  2037.  
  2038.         ; asciidocs (P_AskLanguages)
  2039.         (if (IN #install_docs 0)
  2040.         (
  2041.             (set #prompt #prompt_install_asciidocs)
  2042.             (set #langmask (BITAND #chk_asciidocs (BITNOT #old_asciidocs)))
  2043.             (set #defaultmask (BITAND #language_default (BITNOT #old_asciidocs)))
  2044.             (P_AskLanguages)
  2045.             (set #install_asciidocs #langmask)
  2046.         )
  2047.         ; else
  2048.         (
  2049.             (set #install_asciidocs 0)
  2050.         )
  2051.         )
  2052.  
  2053.         ; agdocs (P_AskLanguages)
  2054.         (if (IN #install_docs 1)
  2055.         (
  2056.             (set #prompt #prompt_install_agdocs)
  2057.             (set #langmask (BITAND #chk_agdocs (BITNOT #old_agdocs)))
  2058.             (set #defaultmask (BITAND #language_default (BITNOT #old_agdocs)))
  2059.             (P_AskLanguages)
  2060.             (set #install_agdocs #langmask)
  2061.         )
  2062.         ; else
  2063.         (
  2064.             (set #install_agdocs 0)
  2065.         )
  2066.         )
  2067.  
  2068.         ; hgdocs (P_AskLanguages)
  2069.         (if (IN #install_docs 2)
  2070.         (
  2071.             (set #prompt #prompt_install_hgdocs)
  2072.             (set #langmask (BITAND #chk_hgdocs (BITNOT #old_hgdocs)))
  2073.             (set #defaultmask (BITAND #language_default (BITNOT #old_hgdocs)))
  2074.             (P_AskLanguages)
  2075.             (set #install_hgdocs #langmask)
  2076.         )
  2077.         ; else
  2078.         (
  2079.             (set #install_hgdocs 0)
  2080.         )
  2081.         )
  2082.  
  2083.         ; htmldocs (P_AskLanguages)
  2084.         (if (IN #install_docs 3)
  2085.         (
  2086.             (set #prompt #prompt_install_htmldocs)
  2087.             (set #langmask (BITAND #chk_htmldocs (BITNOT #old_htmldocs)))
  2088.             (set #defaultmask (BITAND #language_default (BITNOT #old_htmldocs)))
  2089.             (P_AskLanguages)
  2090.             (set #install_htmldocs #langmask)
  2091.         )
  2092.         ; else
  2093.         (
  2094.             (set #install_htmldocs 0)
  2095.         )
  2096.         )
  2097.     ))
  2098.  
  2099.     (P_Completed)
  2100.  
  2101.     ; 1.1.5. choose prefs tools directory
  2102.     (if #install_prefs (
  2103.         (if (exists "prefs/datatypes") (
  2104.         (set #dt_prefs_dir
  2105.             (askdir
  2106.             (prompt #prompt_askprefsdir)
  2107.             (help @askdir-help)
  2108.             (default #prefsdir)
  2109.             )
  2110.         )
  2111.         ))
  2112.     ))
  2113.  
  2114.     (P_Completed)
  2115.  
  2116.     ; 1.1.6. choose programming language
  2117.     (if #install_developer
  2118.         (
  2119.         (set #prompt #prompt_install_plangs)
  2120.         (set #plangmask (BITAND #chk_proglang (BITNOT #old_proglang)))
  2121.         (set #defaultmask #old_progdirs)
  2122.         (P_AskProgLangs)
  2123.         (set #install_proglang #plangmask)
  2124.         )
  2125.         (set #install_proglang 0)
  2126.     )
  2127.  
  2128.     (P_Completed)
  2129.  
  2130.     ; 1.1.6. Custom Ask
  2131.     (P_CustomAsk)
  2132.  
  2133.     (P_Completed)
  2134.  
  2135.     ; 1.2 Installation process
  2136.     ; 1.2.1. Install datatype
  2137.     (if #install_datatype (
  2138.         ; patched datatype
  2139.         (if (NOT (exists (#dt-file)))
  2140.         (
  2141.             (set #file (cat #dt-file ".p"))
  2142.             (if (NOT (exists #file))
  2143.             (abort #abort_nodt)
  2144.             )
  2145.             (run (cat #spatch " -o" #dt-file " -p" #file " " (tackon "classes/datatypes" #dt-patchbase)))
  2146.         )
  2147.         )
  2148.  
  2149.         (set #file #dt-file)
  2150.         (P_GetVersion)
  2151.         (debug ("File %s -> Version %ld.%ld" #file #ver #rev))
  2152.  
  2153.         (copylib
  2154.             (prompt #prompt_copy_dt)
  2155.             (help @copylib-help)
  2156.             (source #dt-file)
  2157.             (dest (tackon #classdir "Datatypes"))
  2158.             (newname #dt-name)
  2159.             (confirm)
  2160.         )
  2161.     ))
  2162.  
  2163.     (P_Completed)
  2164.  
  2165.     ; 1.2.2. Install the descriptors
  2166.     (if #install_descriptors (
  2167.         (copyfiles
  2168.             (prompt #prompt_copy_descr)
  2169.             (help @copyfiles-help)
  2170.             (source "devs/datatypes")
  2171.             (dest #descdir)
  2172.             (pattern "#?")
  2173.             (infos)
  2174.             (confirm "expert")
  2175.         )
  2176.  
  2177.         ; Tell the system about the new descriptors
  2178.         (run "C:AddDataTypes Refresh")
  2179.     ))
  2180.  
  2181.     (P_Completed)
  2182.  
  2183.     ; 1.2.3. Install prefs file
  2184.     (if #install_env (
  2185.         (if (exists (tackon "envarc/datatypes" (cat #dt-base ".prefs"))) (
  2186.         (set #src-dir "envarc/datatypes")
  2187.         (set #file (cat #dt-base ".prefs"))
  2188.         (set #dest-dir "EnvArc:Datatypes")
  2189.         (P_CpFile)
  2190.         (set #dest-dir "Env:Datatypes")
  2191.         (P_CpFile)
  2192.         ))
  2193.     ))
  2194.  
  2195.     (P_Completed)
  2196.  
  2197.     ; 1.2.4. Install catalogs
  2198.     (if #install_catalogs
  2199.         (
  2200.         (set #langmask #install_dt_catalogs)
  2201.         (while #langmask
  2202.             (
  2203.             (P_BitToLanguage)
  2204.             (set #src-dir (cat "Locale/Catalogs/" #lang))
  2205.             (set #dest-dir (cat "Locale:Catalogs/" #lang))
  2206.             (set #file (cat #dt-base "_" #dt-suffix ".catalog"))
  2207.             (P_CpFile)
  2208.             )
  2209.         )
  2210.         )
  2211.     )
  2212.  
  2213.     (P_Completed)
  2214.  
  2215.     ; 1.2.5. Install documentation
  2216.     (
  2217.         ; 1.2.5.1 Install ASCII docs
  2218.         (if #install_asciidocs
  2219.         (
  2220.             (set #infos 1)
  2221.             (set #dest-dir #docsdir)
  2222.             (P_MkDirInfo)
  2223.             (set #langmask #install_asciidocs)
  2224.             (while #langmask
  2225.             (
  2226.                 (P_BitToLanguage)
  2227.                 (set #src-dir (cat "Docs/" #lang))
  2228.                 (set #file (cat #dt-base "_" #dt-suffix ".doc"))
  2229.                 (P_CpFile)
  2230.                 (set #i 0)
  2231.                 (while (set #doc (select #i #dt-more-docs))
  2232.                 (set #file (cat #doc ".doc"))
  2233.                 (P_CpFile)
  2234.                 (set #i (+ #i 1))
  2235.                 )
  2236.             )
  2237.             )
  2238.         )
  2239.         )
  2240.  
  2241.         ; 1.2.5.2 Install amigaguide docs
  2242.         (if #install_agdocs
  2243.         (
  2244.             (set #infos 1)
  2245.             (set #dest-dir #docsdir)
  2246.             (P_MkDirInfo)
  2247.             (set #langmask #install_agdocs)
  2248.             (while #langmask
  2249.             (
  2250.                 (P_BitToLanguage)
  2251.                 (set #src-dir (cat "Docs/" #lang))
  2252.                 (set #file (cat #dt-base "_" #dt-suffix ".guide"))
  2253.                 (P_CpFile)
  2254.                 (set #i 0)
  2255.                 (while (set #doc (select #i #dt-more-docs))
  2256.                 (set #file (cat #doc ".guide"))
  2257.                 (P_CpFile)
  2258.                 (set #i (+ #i 1))
  2259.                 )
  2260.             )
  2261.             )
  2262.         )
  2263.         )
  2264.  
  2265.         ; 1.2.5.3. Install hyperguide docs
  2266.         (if #install_hgdocs
  2267.         (
  2268.             (set #infos 1)
  2269.             (set #dest-dir #docsdir)
  2270.             (P_MkDirInfo)
  2271.             (set #langmask #install_hgdocs)
  2272.             (while #langmask
  2273.             (
  2274.                 (P_BitToLanguage)
  2275.                 (set #src-dir (cat "Docs/" #lang))
  2276.                 (set #file (cat #dt-base "_" #dt-suffix ".hguide"))
  2277.                 (P_CpFile)
  2278.                 (set #i 0)
  2279.                 (set #docs #dt-more-docs)
  2280.                 (while #docs
  2281.                 (set #doc (fileonly #docs))
  2282.                 (set #docs (pathonly #docs))
  2283.                 (set #file (cat #doc ".hguide"))
  2284.                 (P_CpFile)
  2285.                 (set #i (+ #i 1))
  2286.                 )
  2287.                 ; install HyperGuide macro file
  2288.                 (if (AND (> (strlen #dt-hg-macro-file) 0) (exists (tackon #src-dir #dt-hg-macro-file))) (
  2289.                 (set #file #dt-hg-macro-file)
  2290.                 (P_CpFile)
  2291.                 ))
  2292.             )
  2293.             )
  2294.         )
  2295.         )
  2296.  
  2297.         ; 1.2.5.4. Install html docs
  2298.         (if #install_htmldocs
  2299.         (
  2300.             (set #infos 1)
  2301.             (set #dest-dir #docsdir)
  2302.             (P_MkDirInfo)
  2303.             (set #langmask #install_htmldocs)
  2304.             (while #langmask
  2305.             (
  2306.                 (P_BitToLanguage)
  2307.                 (set #src-dir (cat "Docs/" #lang))
  2308.                 (set #file (cat #dt-base "_" #dt-suffix ".html"))
  2309.                 (P_CpFile)
  2310.                 (set #i 0)
  2311.                 (while (set #doc (select #i #dt-more-docs))
  2312.                 (set #file (cat #doc ".html"))
  2313.                 (P_CpFile)
  2314.                 (set #i (+ #i 1))
  2315.                 )
  2316.             )
  2317.             )
  2318.         )
  2319.         )
  2320.  
  2321.         ; 1.2.5.5. Install none standard distribution documentation
  2322.         (if #chk_user_docs
  2323.         (
  2324.             (set #dest-dir #docsdir)
  2325.             (set #src-dir  #dt-doc-dir)
  2326.             (set #file #dt-doc-file)
  2327.             (P_CpFile)
  2328.         )
  2329.         )
  2330.     )
  2331.  
  2332.     (P_Completed)
  2333.  
  2334.     ; 1.2.6. Install prefs tool
  2335.     (if #install_prefs (
  2336.         (copyfiles
  2337.             (help @copyfiles-help)
  2338.             (source (tackon "prefs/datatypes" #dt-prefs))
  2339.             (dest #dt_prefs_dir)
  2340.         )
  2341.     ))
  2342.  
  2343.     (P_Completed)
  2344.  
  2345.     ; 1.2.7. Install Icons
  2346.     (if #install_icons
  2347.         (
  2348.         (set #infos 1)
  2349.         (set #dest-dir #icondir)
  2350.         (P_MkDirInfo)
  2351.         (copyfiles
  2352.             (prompt #prompt_copyicons)
  2353.             (help @copyfiles-help)
  2354.             (source (cat #dir "Icons/" #iconpackage "/def_Icons"))
  2355.             (dest #icondir)
  2356.             (pattern "#?.info")
  2357.             (infos)
  2358.             (if (= @user-level 2) (confirm))
  2359.         )
  2360.         )
  2361.     )
  2362.  
  2363.     (P_Completed)
  2364.  
  2365.     ; 1.2.8. Install arexx scripts
  2366.     (if #install_arexx
  2367.         (
  2368.         (set #infos 1)
  2369.         (set #dest-dir #arexxdir)
  2370.         (P_MkDirInfo)
  2371.         (set #dest-dir (tackon #arexxdir #dt-type))
  2372.         (P_MkDirInfo)
  2373.         (copyfiles
  2374.             (prompt #prompt_arexxscripts)
  2375.             (help @copyfiles-help)
  2376.             (source "arexx")
  2377.             (dest (tackon #arexxdir #dt-type))
  2378.             (pattern "#?")
  2379.             (infos)
  2380.             (if (= @user-level 2) (confirm))
  2381.         )
  2382.         )
  2383.     )
  2384.  
  2385.     (P_Completed)
  2386.  
  2387.     ; 1.2.9. Install examples
  2388.     (if #install_examples
  2389.         (
  2390.         (set #infos 1)
  2391.         (set #dest-dir "Examples")
  2392.         (P_MkDirInfo)
  2393.         (set #dest-dir (tackon "Examples" #dt-type))
  2394.         (P_MkDirInfo)
  2395.         (copyfiles
  2396.             (prompt #prompt_copyexamples)
  2397.             (help @copyfiles-help)
  2398.             (source (cat #dir "Examples"))
  2399.             (dest (tackon #defaultdir #dest-dir))
  2400.             (pattern "#?")
  2401.             (infos)
  2402.             (if (= @user-level 2) (confirm))
  2403.         )
  2404.         )
  2405.     )
  2406.  
  2407.     (P_Completed)
  2408.  
  2409.     ; 1.2.10. Install developer stuff
  2410.     (if #install_developer
  2411.         (
  2412.         (set #infos 1)
  2413.         (set #dest-dir "Developer")
  2414.         (P_MkDirInfo)
  2415.  
  2416.         ; 1.2.10.1.  Install Autodoc
  2417.         (if #chk_autodoc
  2418.             (
  2419.             (set #dest-dir "Developer/Autodocs")
  2420.             (P_MkDirInfo)
  2421.             (set #infos 1)
  2422.             (set #src-dir #dest-dir)
  2423.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2424.             (set #file (cat #dt-base "_" #dt-suffix ".doc"))
  2425.             (P_CpFile)
  2426.             )
  2427.         )
  2428.         (if #chk_autodoc_guide
  2429.             (
  2430.             (set #dest-dir "Developer/Autodocs")
  2431.             (P_MkDirInfo)
  2432.             (set #infos 1)
  2433.             (set #src-dir #dest-dir)
  2434.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2435.             (set #file (cat #dt-base "_" #dt-suffix))
  2436.             (P_CpFile)
  2437.             )
  2438.         )
  2439.  
  2440.         (P_Completed)
  2441.  
  2442.         (if #chk_fd
  2443.             (
  2444.             (set #infos 1)
  2445.             (set #dest-dir "Developer/FD")
  2446.             (P_MkDirInfo)
  2447.             (set #src-dir #dest-dir)
  2448.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2449.             (set #file (cat #dt-base "dtclass_lib.fd"))
  2450.             (P_CpFile)
  2451.             )
  2452.         )
  2453.  
  2454.         ; 1.2.10.2. Install C Language stuff
  2455.         (if (IN #install_proglang 0)
  2456.             (
  2457.             (set #infos 1)
  2458.             (set #dest-dir "Developer/C")
  2459.             (P_MkDirInfo)
  2460.             (set #infos 0)
  2461.             (set #dest-dir "Developer/C/Include")
  2462.             (P_MkDirInfo)
  2463.             (set #dest-dir "Developer/C/Include/Datatypes")
  2464.             (P_MkDirInfo)
  2465.             (set #src-dir #dest-dir)
  2466.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2467.             (set #file (cat #dt-base "class.h"))
  2468.             (P_CpFile)
  2469.             (if #chk_c_example
  2470.                 (
  2471.                 (set #infos 0)
  2472.                 (set #dest-dir "Developer/C/Examples")
  2473.                 (P_MkDirInfo)
  2474.                 (set #src-dir #dest-dir)
  2475.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2476.                 (set #file (cat #dt-base "-Demo.c"))
  2477.                 (P_CpFile)
  2478.                 )
  2479.             )
  2480.             (if #chk_c_clib
  2481.                 (
  2482.                 (set #infos 0)
  2483.                 (set #dest-dir "Developer/C/Include/clib")
  2484.                 (P_MkDirInfo)
  2485.                 (set #src-dir #dest-dir)
  2486.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2487.                 (set #file (cat #dt-base "dtclass_protos.h"))
  2488.                 (P_CpFile)
  2489.                 )
  2490.             )
  2491.             (if #chk_c_pragmas
  2492.                 (
  2493.                 (set #infos 0)
  2494.                 (set #dest-dir "Developer/C/Include/pragmas")
  2495.                 (P_MkDirInfo)
  2496.                 (set #src-dir #dest-dir)
  2497.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2498.                 (set #file (cat #dt-base "dtclass_pragmas.h"))
  2499.                 (P_CpFile)
  2500.                 )
  2501.             )
  2502.             (if #chk_c_proto
  2503.                 (
  2504.                 (set #infos 0)
  2505.                 (set #dest-dir "Developer/C/Include/proto")
  2506.                 (P_MkDirInfo)
  2507.                 (set #src-dir #dest-dir)
  2508.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2509.                 (set #file (cat #dt-base "dtclass.h"))
  2510.                 (P_CpFile)
  2511.                 )
  2512.             )
  2513.             (if #chk_c_inline
  2514.                 (
  2515.                 (set #infos 1)
  2516.                 (set #dest-dir "Developer/C/Include/inline")
  2517.                 (P_MkDirInfo)
  2518.                 (set #src-dir #dest-dir)
  2519.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2520.                 (set #file (cat #dt-base "dtclass_inline.h"))
  2521.                 (P_CpFile)
  2522.                 )
  2523.             )
  2524.             )
  2525.         )
  2526.  
  2527.         (P_Completed)
  2528.  
  2529.         ; 1.2.10.3. Install C++ Language stuff (not supported)
  2530.  
  2531.         (P_Completed)
  2532.  
  2533.         ; 1.2.10.4. Install Asm Language stuff
  2534.         (if (IN #install_proglang 2)
  2535.             (
  2536.             (set #infos 1)
  2537.             (set #dest-dir "Developer/Assembler")
  2538.             (P_MkDirInfo)
  2539.             (set #infos 0)
  2540.             (set #dest-dir "Developer/Assembler/Include")
  2541.             (P_MkDirInfo)
  2542.             (set #dest-dir "Developer/Assembler/Include/Datatypes")
  2543.             (P_MkDirInfo)
  2544.             (set #src-dir #dest-dir)
  2545.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2546.             (set #file (cat #dt-base "class.i"))
  2547.             (P_CpFile)
  2548.             (if #chk_asm_example
  2549.                 (
  2550.                 (set #dest-dir "Developer/Assembler/Examples")
  2551.                 (P_MkDirInfo)
  2552.                 (set #src-dir #dest-dir)
  2553.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2554.                 (set #file (cat #dt-base "-Demo.s"))
  2555.                 (P_CpFile)
  2556.                 )
  2557.             )
  2558.             )
  2559.         )
  2560.  
  2561.         (P_Completed)
  2562.  
  2563.         ; 1.2.10.5.  Install Amiga-E Language stuff
  2564.         (if (IN #install_proglang 3)
  2565.             (
  2566.             (set #infos 1)
  2567.             (set #dest-dir "Developer/Amiga-E")
  2568.             (P_MkDirInfo)
  2569.             (set #infos 0)
  2570.             (set #dest-dir "Developer/Amiga-E/Modules")
  2571.             (P_MkDirInfo)
  2572.             (set #dest-dir "Developer/Amiga-E/Modules/Datatypes")
  2573.             (P_MkDirInfo)
  2574.             (set #src-dir #dest-dir)
  2575.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2576.             (set #file (cat #dt-base "class.e"))
  2577.             (P_CpFile)
  2578.             (if #chk_e_example
  2579.                 (
  2580.                 (set #dest-dir "Developer/Amiga-E/Examples")
  2581.                 (P_MkDirInfo)
  2582.                 (set #src-dir #dest-dir)
  2583.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2584.                 (set #file (cat #dt-base "-Demo.e"))
  2585.                 (P_CpFile)
  2586.                 )
  2587.             )
  2588.             )
  2589.         )
  2590.  
  2591.         (P_Completed)
  2592.  
  2593.         ; 1.2.10.6. Install Modula-II Language stuff
  2594.         (if (IN #install_proglang 4)
  2595.             (
  2596.             (set #infos 1)
  2597.             (set #dest-dir "Developer/Modula")
  2598.             (P_MkDirInfo)
  2599.             (set #dest-dir "Developer/Modula/Datatypes")
  2600.             (P_MkDirInfo)
  2601.             (set #infos 0)
  2602.             (set #src-dir #dest-dir)
  2603.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2604.             (set #file (cat #dt-base ".def"))
  2605.             (P_CpFile)
  2606.             (set #file (cat #dt-base ".mod"))
  2607.             (P_CpFile)
  2608.             (if #chk_modula_demo
  2609.                 (
  2610.                 (set #dest-dir "Developer/Modula/Examples")
  2611.                 (P_MkDirInfo)
  2612.                 (set #src-dir #dest-dir)
  2613.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2614.                 (set #file (cat #dt-base "-Demo.mod"))
  2615.                 (P_CpFile)
  2616.                 )
  2617.             )
  2618.             )
  2619.         )
  2620.  
  2621.         (P_Completed)
  2622.  
  2623.         ; 1.2.10.7. Install Oberon Language stuff
  2624.         (if (IN #install_proglang 5)
  2625.             (
  2626.             (set #infos 1)
  2627.             (set #dest-dir "Developer/Oberon")
  2628.             (P_MkDirInfo)
  2629.             (set #dest-dir "Developer/Oberon/Datatypes")
  2630.             (P_MkDirInfo)
  2631.             (set #infos 0)
  2632.             (set #src-dir #dest-dir)
  2633.             (set #dest-dir (tackon #defaultdir #dest-dir))
  2634.             (set #file (cat #dt-base ".mod"))
  2635.             (P_CpFile)
  2636.             (if #chk_oberon_example
  2637.                 (
  2638.                 (set #dest-dir "Developer/Oberon/Examples")
  2639.                 (P_MkDirInfo)
  2640.                 (set #src-dir #dest-dir)
  2641.                 (set #dest-dir (tackon #defaultdir #dest-dir))
  2642.                 (set #file (cat #dt-base "-Demo.mod"))
  2643.                 (P_CpFile)
  2644.                 )
  2645.             )
  2646.             )
  2647.         )
  2648.         )
  2649.     )
  2650.     (set #completed (- #max_installation_parts 2))
  2651.     (P_Completed)
  2652.  
  2653.     ; 1.2.11. Install custom stuff
  2654.     (P_CustomInstall)
  2655.     (P_Completed)
  2656.  
  2657.     ; 1.3 Save installation options selected by the user
  2658.     (if #save_user_selections (
  2659.         (set #dest-dir (pathonly (tackon @default-dest #save_user_selections_icon)))
  2660.         (makedir #dest-dir)
  2661.         (if (NOT (exists (cat (tackon @default-dest #save_user_selections_icon) ".info"))) (
  2662.         (copyfiles (prompt #prompt_copyicon) (help @help-copyfiles) (source (cat @icon ".info")) (dest #dest-dir) (newname (cat (fileonly #save_user_selections_icon) ".info")))
  2663.         (tooltype  (dest (tackon @default-dest #save_user_selections_icon))
  2664.              (setdefaulttool "")
  2665.              (settooltype "APPNAME")
  2666.              (settooltype "NOPRINT")
  2667.              (settooltype "LOG")
  2668.              (settooltype "LOGFILE")
  2669.              (settooltype "DEFUSER")
  2670.              (settooltype "MINUSER")
  2671.         )
  2672.         ))
  2673.         (tooltype (dest (tackon @default-dest #save_user_selections_icon))
  2674.               (settooltype "CPU" ("%ld" #cpu_save))
  2675.               (settooltype "IconPackage" (if (> (strlen #iconpackage) 0) ("%s" #iconpackage) ("none")))
  2676.               (settooltype "ClassDir" ("%s" #classdir))
  2677.               (settooltype "DescriptorDir" ("%s" #descdir))
  2678.               (settooltype "ARexxDir" ("%s" #arexxdir))
  2679.         )
  2680.     ))
  2681.     (P_Completed)
  2682.     )
  2683.  
  2684.     ; 2. Remove TODO!!!
  2685.     (
  2686.     ; Don't want to use the confusing "Installation Complete" message
  2687.     ; when what we really did was remove things...
  2688.     (message #prompt_deinstalled)
  2689.  
  2690.     (exit (quiet))
  2691.  
  2692.     ; Remove the non-standard pieces
  2693.     (set #file (tackon (tackon #classdir "datatypes") #dt-name))
  2694.     (P_DeleteFile)
  2695.  
  2696.     ; delete all descriptors
  2697.     (run (cat "delete " (tackon #descdir #dt-descrpat)))
  2698.  
  2699.     ; remove eventual prefs files
  2700.     (set #file  (tackon "env:datatypes" #dt-prefs))
  2701.     (P_DeleteFile)
  2702.  
  2703.     (set #file (tackon "envarc:datatypes" #dt-prefs))
  2704.     (P_DeleteFile)
  2705.  
  2706.     ; TODO check language
  2707.     ;(set #file (tackon "Locale:Catalogs" (cat #dt-base "_" #dt-suffix ".catalog")))
  2708.     ;(P_DeleteFile)
  2709.  
  2710.     (P_CustomUnInstall)
  2711.  
  2712.     )
  2713. )
  2714.  
  2715.  
  2716.