; lk© installer script
; $VER: lk 1.06 (18.08.94)
; Written by Alexis WILKE (c) 1994
; This script uses the program Installer of Commodore Business Machins
; Uses Tab-Stop 2


(if (not (= @language "français"))
	(
		(set @abort-button "Abort lk© Install")
		(set *lan 1)
	)
	(
		(set @abort-button "Annulé lk© Instal.")
		(set *lan 0)
	)
)

(set *exit
	(if *lan
		(cat
			"No further installation will occur.\n"
			"\n"
			"lk© is a CopyRight of\n"
			"Alexis WILKE (c) 1993-1994\n"
			"\n"
			"Thank you for selecting lk©.\n"
			"\n"
			"Great to see you again."
		)
		(cat
			"Plus aucune installation n'arrivera.\n"
			"\n"
			"lk© est un CopyRight de\n"
			"Alexis WILKE (c) 1993-1994\n"
			"\n"
			"Merci d'avoir sélectionné lk©.\n"
			"\n"
			"À bientôt."
		)
	)
)

(set *minsize 2097152)
(set *neededsize
	(cat
		(shiftright *minsize 20)
		(if (< (bitand *minsize $000FFFFF) 0)
			(cat
				"."
				(/ (* (bitand *minsize $000FFFFF) 100) $00100000)
				" "
			)
			""
		)
		(if *lan "Mb" "Mo")
	)
)

(if (not *lan)
	(set @askdir-help
		(cat
			"Explications de controles:\n"
			"    La large liste que vous pouvez scroller "
			"au milieu de votre écran est la liste des "
			"disques et répertoires que vous pouvez "
			"actuellement sélectionner. Les répertoires "
			"y sont indiqués avec les lettres 'DRW' mises "
			"au devant de leur nom. Le nom du répertoire "
			"actuel apparaît dans la boîte d'édition "
			"juste en dessous. Sur la droite il existe "
			"un 'slider' qui permet de scroller dans "
			"la liste, dans le cas où il y a plus de "
			"noms qu'il ne peut y en avoir dans la fenêtre.\n"
			"    Vous pouvez changer de sélection en "
			"tapant un nouveau nom de répertoire dans "
			"la boîte d'édition, ou en cliquant sur les "
			"noms des drawers présent dans la liste.\n"
			"    Le bouton 'Parent Drawer' vous permet "
			"de voir le répertoire qui contient celui-ci, "
			"en d'autres termes: le père du drawer "
			"actuellement visible.\n"
			"    Le bouton 'Show Drives', lorsqu'il est "
			"cliqué, vous permet d'avoir une liste de "
			"tous les disques présent dans votre système. "
			"Vous pouvez alors cliquer sur le nom d'un "
			"disque pour en voir le contenu.\n"
			"    Le bouton 'Make New Drawer' vous permet "
			"de créer un nouveau répertoire. Le nouveau "
			"répertoire est créée dans le répertoire que "
			"vous visualisez actuellement.\n"
			"    Le bouton 'Proceed' indique que vous "
			"êtes satisfait avec le répertoire actuellement "
			"sélectionné. Vous pouvez alors continuer "
			"l'installation.\n"
			"    Le bouton 'Annulé lk© Install.' annulera "
			"l'installation. Aucun autre changement n'aura "
			"lieu.\n"
			"    Le bouton 'Help...' vous a donné ce texte."
		)
	)
)


(set *path (pathonly @icon))


(set *newver
	(getversion (tackon *path "lk"))
)


(set *newverstring
	("V%ld.%02ld"
		(shiftright *newver 16)
		(bitand *newver $0FFFF)
	)
)

(set *version
	(getversion "exec.library" (resident))
)



(message
	(if *lan
		(cat
			"Welcome to the famous world of lk© linker\n"
			"\n"
			"lk© is a CopyRight of\n"
			"Alexis WILKE (c) 1993-1994\n"
			"\n"
			"lk© is also compatible with your linkers:\n"
			"\n"
			"Blink      (From 'TSD/SAS')\n"
			"Slink      (From 'SAS')    \n"
			"dlink      (From 'DICE')   \n"
			"alink      (From '???')    \n"
			"\n"
			("(System version %ld.%02ld)"
				(shiftright *version 16)
				(bitand *version $0FFFF)
			)
			(if @pretend
				"\nThis script does not work in pretend mode"
			)
		)
		(cat
			"Bienvenue dans le monde fameux du lieur lk©\n"
			"\n"
			"lk© est un CopyRight de\n"
			"Alexis WILKE (c) 1993-1994\n"
			"\n"
			"Et lk© est compatible avec votre lieur:\n"
			"\n"
			"Blink       (De 'TSD/SAS')\n"
			"Slink       (De 'SAS')    \n"
			"dlink       (De 'DICE')   \n"
			"alink       (De '???')    \n"
			"\n"
			("(Système version %ld.%02ld)"
				(shiftright *version 16)
				(bitand *version $0FFFF)
			)
			(if @pretend
				"\nCe scripte ne fonctionne pas en mode 'pretend'"
			)
		)
	)
)

(if @pretend
	(exit *exit)
)




(set *destdir
	(askdir
		(prompt
			(if *lan
				"Select the Destination Directory"
				"Sélectionnez le Répertoire de Destination"
			)
		)
		(help
			(if *lan
				(cat
					"Which directory has to be selected ?\n"
					"    You should also select the directory where "
					"you usuly put your tools and utilities. A new "
					"sub-directory named 'LK' will also be created.\n"
					"All lk© files will be copied into the sub-"
					"directory only (Note: lk© " *newverstring " needs "
					"about " *neededsize ".)\n"
					"    If you already have a directory named 'LK', "
					"you should select that directory or its parent "
					"(directory where it appears,) otherwise another "
					"'LK' directory will be created.\n"
					"\n"
					@askdir-help
				)
				(cat
					"Quel répertoire choisir ?\n"
					"    Vous devriez choisir le répertoire où vous "
					"installez habituellement vos outils et utilitaires. "
					"Un nouveau sous-répertoire nommé 'LK' y sera "
					"créée. Tous les fichiers seront copiés dans ce "
					"sous-répertoire (Note: lk© " *newverstring " a "
					"besoin d'environ " *neededsize ").\n"
					"    Si vous avez déjà un répertoire nommé 'LK', "
					"vous devriez le sélectionner ou sélectionner "
					"son père (répertoire où il apparaît), sinon "
					"un autre répertoire 'LK' sera créé.\n"
					"\n"
					@askdir-help
				)
			)
		)
		(default @default-dest)
	)
)

(if (not (= (fileonly *destdir) "LK"))
	(set *destdir (tackon *destdir "LK"))
)

(set *diskspace (getdiskspace (cat (getdevice *destdir) ":")))

(if (not (= (getdevice *destdir) "RAM"))
	(if (< *diskspace *minsize)
		(message
			(if *lan
				(cat
					"\n"
					"Your disk '" (getdevice *destdir) ":' may have\n"
					"to few rooms to copy lk© completly.\n"
					"\n"
					("Actual size: %8ld bytes\n" *diskspace)
					("Needed size: %8ld bytes\n" (- *minsize *diskspace))
					"\n"
					"You should try to make some rooms"
					(if (= @user-level 2)
						(".\n")
						(cat
							" or execute the installation in expert mode "
							"and select only the needed files...\n"
						)
					)
					"\n"
					"The minimum required size in block is about " (/ (+ *minsize 511) 512) "."
				)
				(cat
					"\n"
					"Votre disk '" (getdevice *destdir) ":' risque de "
					"ne pas avoir suffisemment d'espace libre pour y "
					"copier lk© entièrement.\n"
					"\n"
					("  Taille actuelle: %8ld octets\n" *diskspace)
					("Taille nécessaire: %8ld octets\n" (- *minsize *diskspace))
					"\n"
					"Vous devriez essailler de faire de la place"
					(if (= @user-level 2)
						(".\n")
						(cat
							", sinon lancez l'installation en mode expert "
							"et ne sélectionnez que les fichiers nécessaires...\n"
						)
					)
					"\n"
					"La taille conseillée en blocs est de " (/ (+ *minsize 511) 512) " minimum."
				)
			)
			(help
				(if *lan
					(cat
						"    To completly copy lk©, I suggest that you firstable make "
						"enough room for it. This way you may avoid some "
						"dead-end errors.\n"
						"\n"
						"    lk© needs about " *neededsize " to be completly copied to your "
						"hard drive. This represent " (/ (+ *minsize 511) 512) " blocks.\n"
						"\n"
						"    To know the actual size of your disk, click on its icon "
						"and select 'Information...' item into the Workbench menu. "
						"The size appears in a number of blocks after 'Free:'. The same "
						"way, you can use the command 'Info' from your CLI."
					)
					(cat
						"    Je suggère, pour copier entièrement lk©, que vous "
						"fassiez tout d'abord suffissament de place pour lui. De "
						"cette façon vous pourrez éviter des erreurs mortelles.\n"
						"\n"
						"    lk© nécessite environ " *neededsize " pour être entièrement "
						"copié sur votre dique dur. Ceci représente "
						(/ (+ *minsize 511) 512) " blocs.\n"
						"\n"
						"    Pour connaître la taille actuellement libre de votre "
						"disque, cliquez sur son icône et sélectionnez 'Information...' "
						"dans votre menu Workbench. La taille apparaît en nombre de blocs "
						"après 'Disponible:'. De la même façon, de votre CLI vous pouvez "
						"utiliser la commande 'Info'."
					)
				)
			)
		)
	)
)




(if (not (exists *destdir))
	(
		(if (= @user-level 2)
			(message
				(if *lan
					(cat
						"Create directory '" *destdir "'\n"
						"\n"
						"All lk© installation occurs within that directory.\n"
						"\n"
						"Now a path is needed to invoke lk©.\n"
						"\n"
						"That path is automatically added to your 'User-Startup' "
						"file with the installer.\n"
						"\n"
						"To use the full power of lk©,\n"
						"the special assign 'LK:' is created too."
					)
					(cat
						"Crée le répertoire '" *destdir "'\n"
						"\n"
						"Toute l'installation de lk© sera réalisée dans ce répertoire.\n"
						"\n"
						"Un chemin d'accès est nécessaire pour invoquer lk©.\n"
						"\n"
						"Celui-ci sera automatiquement créé dans votre fichier "
						"'User-Startup' grâce à cet installeur.\n"
						"\n"
						"Pour utilise lk© au maximum,\n"
						"un 'assign' spécial 'LK:' sera aussi ajouté."
					)
				)
				(help
					(if *lan
						(cat
							"Why a specific directory ?\n"
							"    lk© will be installed into that directory and "
							"files from lk© disks will all be copied into that "
							"directory. This way you may un-install lk© by "
							"deleting that directory (And erase the two lines "
							"added into your 'User-Startup' file.)\n"
							"\n"
							"  Select 'Proceed' if you want the new drawer to be "
							"created. Select 'Abort lk© Install' if you do not "
							"want the drawer to be created."
						)
						(cat
							"Pourquoi un répertoire spécifique ?\n"
							"    lk© sera installé dans ce répertoire et "
							"tous les fichiers des disquettes de lk© y seront "
							"copiés. De cette façon, pour désinstaller lk© "
							"il vous suffit d'effacer ce répertoire (Et "
							"d'effacer les deux lignes ajoutées dans votre "
							"fichier 'User-Startup').\n"
							"\n"
							"  Sélectionnez 'Proceed' si vous désirez créer le "
							"nouveau répertoire. Sélectionnez 'Annulé lk© Instal.' "
							"si vous ne voulez pas avoir un nouveau répertoire."
						)
					)
				)
			)
		)
		(makedir *destdir)
	)
)


(run
	(cat "assign LK: " *destdir)
)
(run "path LK: add")

(set @default-dest *destdir)

(if (not (exists (cat *destdir ".info")))
	(
		(set *dest (expandpath *destdir))
		(set *a "?")
		(while (not (or (= *a ":") (= *a "/")))
			(set *dest (substr *dest 0 (- (strlen *dest) 1)))
			(set *a (substr *dest (- (strlen *dest) 1)))
		)
		(if (= *a "/")
			(set *dest (substr *dest 0 (- (strlen *dest) 1)))
		)
		(copyfiles
			(source (tackon *path "ICONS/lkDir.info"))
			(dest *dest)
			(newname "LK.info")
			(nogauge)
		)
	)
)

(complete 4)


(set *copylk
	(if (exists (tackon *destdir "lk"))
		(
			(set *oldver (getversion (tackon *destdir "lk")))
			(set *oldverstring
				("V%ld.%02ld"
					(shiftright *oldver 16)
					(bitand *oldver $0FFFF)
				)
			)
			(if (< *newver *oldver)
				(
					(message
						(if *lan
							(cat
								"\n"
								"The version of lk© actually installed "
								"(" *oldverstring ") is newer than the one "
								"to be installed (" *newverstring ").\n"
								"\n"
								"You may continue the installation in which "
								"case the actual version will be overwritten "
								"by the old one.\n"
								"For this press on the 'Proceed' Button.\n"
								"\n"
								"Otherwise abort the process.\n"
								"For this press on the 'Abort lk© Install'."
							)
							(cat
								"\n"
								"La version de lk© actuellement installée "
								"(" *oldverstring ")\n"
								"est plus récente que celle que vous désirez "
								"installer maintenant (" *newverstring ").\n"
								"\n"
								"Vous pouvez continuer l'installation, auquel "
								"cas la version actuelle sera remplacée par "
								"l'ancienne.\n"
								"Pour ceci cliquez sur le bouton 'Proceed'.\n"
								"\n"
								"Sinon annullez le processus.\n"
								"Pour ceci cliquez sur le bouton\n"
								"'Annulé lk© Instal.'"
							)
						)
						(help
							(if *lan
								(cat
									"Why install an older version ?\n"
									"    There is usuly no necessity to install an older "
									"version, except if you discovered some problems or "
									"bugs with a newer version.\n"
									"    lk© is programmed to respond the same way through "
									"different version, but no way exist to ensure a total "
									"compatibility between versions."
								)
								(cat
									"Pourquoi installer une vieille version ?\n"
									"    Il n'y a habituellement aucune nécessité à "
									"installer une ancienne version, excepté si "
									"vous rencontrez des problèmes ou vous trouvez "
									"des bugs avec la version la plus résente.\n"
									"    lk© est programmé de telle sorte qu'il réponde "
									"de la même façon entre différente version, mais "
									"aucun moyen ne permet vraiment d'assurer une "
									"compatibilité totale entre versions."
								)
							)
						)
					)
					1
				)
				(if (= *newver *oldver)
					(
						(message
							(if *lan
								(cat
									"\n"
									"lk© " *oldverstring " is already installed.\n"
									"\n"
									"To re-install lk© and also make different selections "
									"along the installation process, you have to click on "
									"'Process' button.\n"
									"\n"
									"To keep your current installation, you have to click "
									"on 'Abort lk© Install' button.\n"
									"\n"
									"In any case, already installed files will remains "
									"installed."
								)
								(cat
									"\n"
									"lk© " *oldverstring " est déjà installée.\n"
									"\n"
									"Vous pouvez choisir d'installer à nouveau lk© "
									"pour faire des sélections différentes durant "
									"le processus d'installation alors cliquez sur "
									"le bouton 'Process'.\n"
									"\n"
									"Vous pouvez choisir garder l'installation "
									"actuelle, alors cliquez sur le bouton "
									"'Annulé lk© Install.'.\n"
									"\n"
									"Dans tous les cas, aucun des fichiers déjà "
									"installés ne seront effacés."
								)
							)
						)
						1
					)
				)
			)
		)
		1
	)
)

(if (not *copylk)
	(exit *exit)
)

(set *copyfiles
	(askoptions
		(prompt
			(if *lan
				"Select Files to Copy"
				"Sélectionnez les Fichiers à Copier"
			)
		)
		(help
			(if *lan
				(cat
					"What selection should I do ?"
					(if (= @user-level 2)
						(cat
							"    Because you are running this installation as an "
							"expert user, a confirmation will be required "
							"for every copy. Also you may let all files selected "
							"and make you choices later.\n"
							"    Now there is one exception: when"
						)
						(cat
							"    Only the file lk© " *newverstring " is important "
							"to realize a link of object files, but if you are not "
							"familiar with linkers at all you must copy a 'guide' "
							"or the 'help' files to have lk© documentation(s).\n"
							"    Note that even high level expert users will find "
							"a lot of useful informations within the documentation.\n"
							"    When"
						)
					)
					" 'icons' button is checked an icon will be created for "
					"every copied file. This enable lk© to be fully Workbench "
					"compatible.\n"
					"\n"
					"Choices description:\n"
					"\n"
					"  . lk© " *newverstring "\n"
					"\n"
					"Copies the linker, which is necessary if you want to be able "
					"to link, of course. The linker is CLI and Workbench compatible. "
					"When you have the system version 2.x or more (Libraries V36.xx) "
					"the small lk© file will be copied.\n"
					"\n"
					"\n"
					"  . lkopts " *newverstring "\n"
					"\n"
					"Copies the option tool which is an interfaced tool very easy use "
					"to produce script files for lk©.\n"
					"\n"
					"  . object library\n"
					"\n"
					"Copies the 'overlay' and 'autorun' object files into the libraries directory\n"
					"\n"
					"  . source files\n"
					"\n"
					"Copies the 'overlay' and 'autorun' sources files into the sources directory\n"
					"\n"
					"  . icons\n"
					"\n"
					"Copies all needed icons to have lk© running under your Workbench\n"
					"With that option turned off, absolutly no icon will be copied.\n"
					"\n"
					"  . help\n"
					"\n"
					"Copies documentation in help file format, this is displayed by "
					"AHelp© utility.\n"
					"\n"
					"  . guide\n"
					"\n"
					"Copies documentation in guide file format compatible with "
					"'AmigaGuide' tool.\n"
					"\n"
					"  . examples\n"
					"\n"
					"Copies some script examples for lk©.\n"
					"\n"
					"  . preferences\n"
					"\n"
					"Copies all preferences, you may select only one preferences file "
					"such as 'DICE,' 'Slink,' 'Blink' or 'C-like' later.\n"
				)
				(cat
					"Quelle sélection dois-je faire ?\n"
					(if (= @user-level 2)
						(cat
							"    Du fait que vous avez choisi une installation en "
							"mode expert, une confirmation sera nécessaire de "
							"votre part pour chacune des copies. Vous pouvez "
							"donc laisser tous les fichiers selectionnés "
							"et réaliser votre choix plus tard.\n"
							"    Il existe néanmoins une exception: quand"
						)
						(cat
						  "    Seul le fichier lk© est important pour réaliser un "
						  "lien de fichiers objets, mais si vous n'êtes pas "
						  "du tout familiarisé avec les lieurs, il vous "
						  "faut absolument copier le 'guide' ou les fichiers "
						  "d'aides pour avoir une documentation.\n"
						  "    Notez que même les experts de haut niveau y trouveront "
							"une source d'informationtion incontestable.\n"
							"    Quand"
						)
					)
					" le boutton 'icône' est sélectionné une icône est créée "
					"pour chacun des fichiers copiés. Ceci permet à lk© d'être "
					"utilisé à partir du Workbench.\n"
					"\n"
					"Choix:\n"
					"\n"
					"  . lk© " *newverstring "\n"
					"\n"
					"Copie le lieur, ce qui est nécessaire si vous désirez pouvoir lier "
					"des fichiers, évidemment. Le lieur est compatible au CLI et au "
					"Workbench. Si vous avez un système V2.x ou plus (Libraries V36.xx) "
					"le petit lk© sera copié.\n"
					"\n"
					"  . lkopts " *newverstring "\n"
					"\n"
					"Copie l'outil de sélection des options qui permet, par le biais "
					"d'une interface, de créer des fichiers scriptes pour lk©.\n"
					"\n"
					"  . librairie d'objet\n"
					"\n"
					"Copie les fichiers objet 'overlay' et 'autorun' dans le "
					"répertoire des librairies.\n"
					"\n"
					"  . fichiers sources\n"
					"\n"
					"Copie les fichiers sources 'overlay' et 'autorun' dans le "
					"répertoire source.\n"
					"\n"
					"  . icônes\n"
					"\n"
					"Copie de toutes les icônes nécessaires pour pouvoir utiliser lk© "
					"à partir de votre Workbench.\n"
					"Avec cette option enlevée, absolument aucune icône ne sera copiée.\n"
					"\n"
					"  . aide\n"
					"\n"
					"Copie la documentation sous forme de fichier 'help', ceci sera "
					"affiché avec l'utilitaire AHelp©.\n"
					"\n"
					"  . guide\n"
					"\n"
					"Copie la documentation sous forme de guide compatible avec "
					"l'outil 'AmigaGuide'.\n"
					"\n"
					"  . exemples\n"
					"\n"
					"Copie quelques scriptes d'exemple pour lk©.\n"
					"\n"
					"  . préférences\n"
					"\n"
					"Copie toutes les préférences, vous pourrez faire votre choix parmis "
					"les fichiers de préférences: 'DICE', 'Slink', 'Blink' ou 'C-like'.\n"
				)
			)
		)
		(choices
			(cat "lk " *newverstring)				;$0001
			(cat "lkopts " *newverstring)		;$0002
			(if *lan												;$0004
				"preferences"
				"préférences"
			)
			(if *lan												;$0008
				"object library"
				"librairie d'objet"
			)
			(if *lan												;$0010
				"source files"
				"fichiers sources"
			)
			(if *lan												;$0020
				"icons (For WB Usage)"
				"icônes (Pour WB)"
			)
			(if *lan												;$0040
				"QuickDOS library"
				"Librairie QuickDOS"
			)
			(if *lan												;$0080
				"tools"
				"outils"
			)
			(if *lan												;$0100
				"help"
				"aide"
			)
			"guide"													;$0200
			(if *lan												;$0400
				"examples"
				"exemples"
			)
		)
	)
)




(if (bitand *copyfiles $0001)
	(
		(set *lksmall (exists (tackon *path "lk_small")))
		(if
			(if (= @user-level 2)
				(
					(askbool
						(prompt
							(if *lan
								(cat
									"\n"
									"Do you want to copy 'lk' (" *newverstring ") Tool ?\n"
									"\n"
									"Destination directory: '" *destdir "'\n"
									"\n"
									"(File size: "
									(getsize
										(tackon *path
											(if (> *version $0024000)
												(if *lksmall
													"lk_small"
													"lk"
												)
												"lk"
											)
										)
									)
									")"
								)
								(cat
									"\n"
									"Voulez-vous copier l'outil 'lk' ?\n"
									"\n"
									"Répertoire de destination: '" *destdir "'\n"
									"\n"
									"(Taille du fichier: "
									(getsize
										(tackon *path
											(if (> *version $0024000)
												(if *lksmall
													"lk_small"
													"lk"
												)
												"lk"
											)
										)
									)
									")"
								)
							)
						)
						(help
							(if *lan
								(cat
									"What should I choose ?\n"
									"    If you select 'Yes,' then lk© " *newverstring
									" will be installed.\n"
									"    If you are re-installing lk© and that version "
									"already exist on your disk, you may select "
									"'No' button to skip this copy."
								)
								(cat
									"Que dois-je choisir ?\n"
									"    Si vous sélectionnez 'Oui', alors lk© " *newverstring
									" sera installé.\n"
									"    Si vous êtes en train de ré-installer lk© et "
									"que cette version existe déjà sur votre disque "
									"vous pouvez sélectionner le bouton 'Non' pour "
									"éviter la copie."
								)
							)
						)
						(choices
							(if *lan "Yes" "Oui")
							(if *lan "No" "Non")
						)
					)
				)
				1
			)
			(
				(copyfiles
					(source
						(tackon *path
							(if (> *version $0024000)
								(if *lksmall
									"lk_small"
									"lk"
								)
								"lk"
							)
						)
					)
					(dest *destdir)
					(newname "lk")
				)
				(if (not (exists (tackon *destdir "lk.info")))
					(copyfiles
						(source *path)
						(dest *destdir)
						(choices "lk.info")
						(nogauge)
					)
				)
			)
		)
	)
)


(complete 8)



(set *prefsdir (tackon *destdir "PREFS"))

(if (not (exists *prefsdir))
	(if (bitand *copyfiles $0006)
		(makedir
			*prefsdir
			(prompt
				(if *lan
					(cat
						"Create the directory 'LK:PREFS/'.\n"
						"\n"
						"lkopts " *newverstring " tool will be copied into that "
						"directory as well as lk© preferences scripts."
					)
					(cat
						"Crée le répertoire 'LK:PREFS/'.\n"
						"\n"
						"L'outil lkopts " *newverstring " y sera copié ainsi que les "
						"scriptes des préférences de lk©."
					)
				)
			)
			(help
				(if *lan
					(cat
						"IMPORTANT:\n"
						"    The name of that directory will never be changed "
						"or you will loose the compatibility with lk©.\n"
						"\n"
						"Why create this directory ?\n"
						"    lk© automatically scan the current directory for "
						"a file named 'lk.prefs'. When it does not exist, then "
						"this directory (LK:PREFS) is scanned. This is a very "
						"easy way to always start lk© into a specific mode, "
						"compatible to another linker for instance.\n"
						"    By creating this directory, you also enable the "
						"copy of 'lkopts' tool. That tool is a very easy way to "
						"create the script files. It uses a Workbench interface "
						"with a link to help files (But not to the guides.)"
					)
					(cat
						"IMPORTANT:\n"
						"    Le nom de ce répertoire ne devra pas être modifié "
						"si vous désirez conserver la compatibilité avec lk©.\n"
						"\n"
						"Pourquoi créer ce répertoire ?\n"
						"    lk© cherche automatiquement dans le répertoire "
						"actuel pour un fichier nommé 'lk.prefs'. Quand il "
						"n'existe pas, ce répertoire (LK:PREFS) est "
						"recherché. Enfin le répertoire 'S:' est lui aussi "
						"recherché. Il s'agit là d'un moyen particulièrement "
						"facile à utiliser pour mettre lk© dans un mode "
						"spécifique, compatible à un autre lieur par example.\n"
						"    En créant ce répertoire, vous permettez également "
						"la copie de l'outil 'lkopts'. Cet outil est un moyen "
						"très facile à utiliser pour éditer vos fichiers de "
						"scriptes. Il utilise une interface sur votre "
						"Workbench avec un lien aux fichiers d'aides (Mais "
						"pas aux guides)."
					)
				)
			)
			(confirm)
		)
	)
)


(if (not (exists *prefsdir))
	(set *copyfiles (bitand *copyfiles $FFF9))
	(if (and
				(not (exists (cat *prefsdir ".info")))
				(bitand *copyfiles $0020)
			)
		(copyfiles
			(source (tackon *path "ICONS/lkoptsDir.info"))
			(dest *destdir)
			(newname "PREFS.info")
			(nogauge)
		)
	)
)

(complete 12)

(if (bitand *copyfiles $0002)
	(if
		(if (= @user-level 2)
			(askbool
				(prompt
					(if *lan
						(cat
							"\n"
							"Do you want to copy 'lkopts' (" *newverstring ") ?\n"
							"\n"
							"Destination directory: '" *prefsdir "'\n"
							"\n"
							"(File size: " (getsize (tackon *path "PREFS/lkopts")) ")"
						)
						(cat
							"\n"
							"Voulez-vous copier 'lkopts' (" *newverstring ") ?\n"
							"\n"
							"Répertoire de destination: '" *prefsdir "'\n"
							"\n"
							"(Taille du fichier: " (getsize (tackon *path "PREFS/lkopts")) ")"
						)
					)
				)
				(help
					(if *lan
						(cat
							"What should I choose ?\n"
							"    If you select 'Yes,' then 'lkopts' " *newverstring
							" will be installed.\n"
							"    If you are re-installing the same version of lk© "
							"and 'lkopts' already exists on your disk, you may "
							"select 'No' button to skip this copy."
						)
						(cat
							"Que dois-je choisir ?\n"
							"    Si vous sélectionnez 'Oui', alors 'lkopts' " *newverstring
							" sera installé.\n"
							"    Si vous êtes en train de ré-installer lk© et "
							"que 'lkopts' existe déjà sur votre disque "
							"vous pouvez sélectionner le bouton 'Non' pour "
							"éviter la copie."
						)
					)
				)
				(choices
					(if *lan "Yes" "Oui")
					(if *lan "No" "Non")
				)
			)
			1
		)
		(
			(copyfiles
				(source (tackon *path "PREFS"))
				(dest *prefsdir)
				(choices "lkopts")
			)
			(if (not (exists (tackon *prefsdir "lkopts.info")))
				(copyfiles
					(source (tackon *path "ICONS/lkopts.info"))
					(dest *prefsdir)
					(nogauge)
				)
			)
		)
	)
)

(complete 20)





(if (bitand *copyfiles $0004)
	(
		(set *prefshelp
			(if *lan
				(cat
					"Preferences Help:\n"
					"    Preference files are especially pratical to set lk© "
					"with a default setting, without having to specify "
					"each step over and over. Note that the file named "
					"'lk.prefs' will always be automatically loaded and "
					"interpreted at first.\n"
					"\n"
				  " . DICE\n"
				  "\n"
				  "This file transforms lk© to be compatible to DICE and "
				  "also to link DICE object files and libraries."
				  "\n"
					" . Slink\n"
					"\n"
					"This file transforms lk© to be compatible to Slink and "
					"also to link SAS/C object files and libraries."
					"\n"
					" . Blink\n"
					"\n"
					"This file transforms lk© to be compatible to Blink and "
					"also to link old version of SAS/C object files and "
					"libraries and almost all other object files."
					"\n"
					" . C-like\n"
					"\n"
					"This file transforms lk© to be compatible with any kind "
					"of C like libraries. Those libraries may include "
					"the same symbol defined several times."
				)
				(cat
					"Aides des Préférences:\n"
					"    Les fichiers de préférences sont particulierement "
					"pratiques pour mettre lk© dans un état particulier "
					"sans pour autant le faire sans arrêt. Notez que "
					"le fichier de préférence nommé 'lk.prefs' est "
					"toujours automatiquement chargé est interprêté "
					"par lk©.\n"
					"\n"
					" . DICE\n"
					"\n"
					"Ce fichier permet à lk© d'être compatible avec DICE et "
					"donc de lier des fichiers objets et des librairies de DICE.\n"
					"\n"
					" . Slink\n"
					"\n"
					"Ce fichier permet à lk© d'être compatible avec Slink et "
					"donc de lier des fichiers objets et des librairies de SAS/C.\n"
					"\n"
					" . Blink\n"
					"\n"
					"Ce fichier permet à lk© d'être compatible avec Blink et "
					"donc de lier de vieux fichiers objets et de vieilles "
					"librairies de SAS/C.\n"
					"\n"
					" . C-like\n"
					"\n"
					"Ce fichier permet à lk© d'être compatible avec n'importe "
					"quel type de librairie C. Ces librairies peuvent inclure "
					"plusieurs fois le même symbole."
				)
			)
		)
		(set *prefsselect
			(askoptions
				(prompt
					(if *lan
						(cat
							"Select the preferences files you need.\n"
							"\n"
							"Destination directory: '" *prefsdir "'\n"
						)
						(cat
							"Sélectionnez vos fichiers de préférences.\n"
							"\n"
							"Répertoire de destination: '" *prefsdir "'\n"
						)
					)
				)
				(help *prefshelp)
				(choices
					"Dice"
					"Blink"
					"Slink"
					"C-Like"
				)
			)
		)
		(if *prefsselect
			(
				(if (bitand *prefsselect $0001)
					(copyfiles
						(source (tackon *path "PREFS"))
						(dest *prefsdir)
						(choices "dice.prefs")
						(files)
						(nogauge)
					)
				)
				(if (bitand *prefsselect $0002)
					(copyfiles
						(source (tackon *path "PREFS"))
						(dest *prefsdir)
						(choices "blink.prefs")
						(files)
						(nogauge)
					)
				)
				(if (bitand *prefsselect $0004)
					(copyfiles
						(source (tackon *path "PREFS"))
						(dest *prefsdir)
						(choices "slink.prefs")
						(files)
						(nogauge)
					)
				)
				(if (bitand *prefsselect $0008)
					(copyfiles
						(source (tackon *path "PREFS"))
						(dest *prefsdir)
						(choices "c-like.prefs")
						(files)
						(nogauge)
					)
				)
				(set *prefsfile 0)
				(foreach (tackon *path "PREFS") "#?.prefs"
					(
						(select *prefsfile
							(set *prefsname1 @each-name)
							(set *prefsname2 @each-name)
							(set *prefsname3 @each-name)
							(set *prefsname4 @each-name)
						)
						(set *prefsfile (+ *prefsfile 1))
						(if (and
									(not (exists (tackon *prefsdir (cat @each-name ".info"))))
									(bitand *copyfiles $0020)
								)
							(copyfiles
								(source (tackon *path "ICONS/def_with.info"))
								(dest *prefsdir)
								(newname (cat @each-name ".info"))
								(nogauge)
							)
						)
					)
				)
				(set *noprefs
					(if *lan
						("No Default Prefs")
						("Pas de préférences par défault")
					)
				)
				(set *prefsprompt
					(if *lan
						("Select the specific preference file.")
						("Sélectionnez le fichier préférences spécific.")
					)
				)
				(set *prefschoice
					(select (- *prefsfile 1)
						(askchoice
							(prompt *prefsprompt)
							(choices
								*noprefs
								*prefsname1
							)
							(help *prefshelp)
						)
						(askchoice
							(prompt *prefsprompt)
							(choices
								*noprefs
								*prefsname1
								*prefsname2
							)
							(help *prefshelp)
						)
						(askchoice
							(prompt *prefsprompt)
							(choices
								*noprefs
								*prefsname1
								*prefsname2
								*prefsname3
							)
							(help *prefshelp)
						)
						(askchoice
							(prompt *prefsprompt)
							(choices
								*noprefs
								*prefsname1
								*prefsname2
								*prefsname3
								*prefsname4
							)
							(help *prefshelp)
						)
					)
				)
				(if *prefschoice
					(
						(set *prefsicon
							(askchoice
								(prompt
									(if *lan
										(cat
											"Where do you want the preference file to be set ?\n"
											"\n"
											"When you select 'In lk© icon' it means you will\n"
											"use lk© from your Workbench.\n"
											"\n"
											"(This also enable, with the usage of multiple\n"
											"lk icons, to have several preferences.)"
										)
										(cat
											"Où voulez-vous avoir le fichier de préférences ?\n"
											"\n"
											"Quand vous sélectionnez 'Dans l'icône de lk', cela\n"
											"suppose que vous utiliserez lk© de votre Workbench.\n"
											"\n"
											"(Ceci peut vous permettre, avec plusieurs\n"
											"icône de lk, d'avoir plusieurs préférences)."
										)
									)
								)
								(help
									(if *lan
										(cat
											"The automatic preference file:\n"
											"    The fact that you create a file named 'lk.prefs' "
											"will enable lk© to load that file as the default "
											"file to execute at start. That file can be into "
											"your current directory, in 'LK:PREFS' directory "
											"could be called 'blinkwith' or be in 'S:' "
											"directory.\n"
											"    When lk© is used from the Workbench, the file name "
											"given into the icon will be used. If that file does "
											"not exist (or if the tooltype 'PREFS' is not defined,) "
											"the usual 'lk.prefs' file is searched. The file name "
											"given into the icon is always searched first."
										)
										(cat
											"Le fichier automatique des preferences:\n"
											"    Le fait de créer un fichier nommé 'lk.prefs' "
											"permet à lk© de charger le dit fichier comme fichier "
											"de défaut à exécuté au début. Ce fichier peut être "
											"dans votre répertoire courant, dans le répertoire "
											"'LK:PREFS', ou il pourrait se nommé 'blinkwith' et "
											"finalement le répertoire 'S:' est testé.\n"
											"    Quand lk© est utilisé du Workbench, le nom du "
											"fichier donné dans l'icône sera utilisé. Si ce fichier "
											"n'existe pas (ou le type d'outil 'PREFS' n'est pas "
											"définis), le fichier habituel 'lk.prefs' sera "
											"recherché. Le nom du fichier donné dans l'icône "
											"est toujours recherché en premier."
										)
									)
								)
								(if (exists (tackon *destdir "lk.info"))
									(choices
										(if *lan
											"Skip this copy!"
											"Éviter cette copie!"
										)
										(if *lan
											"In the file 'PREFS/lk.prefs'"
											"Dans le fichier 'PREFS/lk.prefs'"
										)
										(if *lan
											"In lk© icon (Tool Type 'PREFS')"
											"Dans l'icône de lk© (Tool Type 'PREFS')"
										)
									)
									(choices
										(if *lan
											"Skip this copy!"
											"Éviter cette copie!"
										)
										(if *lan
											"In the file 'PREFS/lk.prefs'"
											"Dans le fichier 'PREFS/lk.prefs'"
										)
									)
								)
								(default 1)
							)
						)
						(select (- *prefschoice 1)
							(set *prefsfile *prefsname1)
							(set *prefsfile *prefsname2)
							(set *prefsfile *prefsname3)
							(set *prefsfile *prefsname4)
						)
						(if *prefsicon
							(select (- *prefsicon 1)
								(
									(run
										(cat
											'copy "'
											(tackon *prefsdir *prefsfile)
											'" "'
											(tackon *prefsdir "lk.prefs")
											'"'
										)
									)
									(if (exists (tackon *prefsdir *prefsfile))
										(run
											(cat
												'copy "'
												(tackon *prefsdir *prefsfile)
												'.info" "'
												(tackon *prefsdir "lk.prefs")
												'.info"'
											)
										)
									)
								)
								(tooltype
									(dest (tackon *destdir "lk"))
									(settooltype "PREFS" *prefsfile)
								)
							)
						)
					)
				)
			)
		)
	)
)



(complete 28)









(set *libdir (tackon *destdir "LIB"))

(if (and (not (exists *libdir)) (bitand *copyfiles $0008))
	(makedir
		*libdir
		(prompt
			(if *lan
				(cat
					"Create the directory 'LK:LIB'.\n"
					"\n"
					"This directory contains the default object "
					"files which are automatically linked by lk "
					"when specific keywords are used."
				)
				(cat
					"Crée le répertoire 'LK:LIB'.\n"
					"\n"
					"Ce répertoire contient les fichiers objets "
					"par défaut qui sont automatiquement "
					"utilisés par lk quand certaines commandes "
					"spécifiques sont utilisées."
				)
			)
		)
		(help
			(if *lan
				(cat
					"IMPORTANT:\n"
					"    The name of that directory will never be changed "
					"or you will loose the compatibility with lk©.\n"
					"\n"
					"Why create this directory ?\n"
					"    This directory is used by lk© to look for "
					"some default object files and libraries.\n"
					"    You can also delete the default object "
					"files and replace them by your own files "
					"(Note that the assembler source files "
					"are given and you have the right to "
					"modify as you wish.)\n"
					"    Without that directory, you will be able to "
					"use the default object files which are internal "
					"to lk, or specify you own object files on the "
					"command line or in your script files."
				)
				(cat
					"IMPORTANT:\n"
					"    Le nom de ce répertoire ne devra pas être modifié "
					"si vous désirez conserver la compatibilité avec lk©.\n"
					"\n"
					"Pourquoi créer ce répertoire ?\n"
					"    Ce répertoire est utilisé par lk© pour "
					"rechercher des fichiers objects par défault et "
					"les librairies.\n"
					"    Vous pouvez bien évidemment effacer les "
					"fichiers objets donnés par défaut pour les "
					"remplacer par vos propres fichiers. "
					"(Notez que les fichiers sources en "
					"assembleur sont fournis et pourront "
					"être modifiés par vos soins).\n"
					"    Sans ce répertoire, vous pourrez utiliser "
					"les fichier objets internes à lk, ou spécifier "
					"vos fichiers personnels sur la ligne de commande."
				)
			)
		)
		(confirm)
	)
)

(if (and
			(exists *libdir)
			(not (exists (cat *libdir ".info")))
			(bitand *copyfiles $0020)
		)
	(
		(copyfiles
			(source (tackon *path "ICONS/LibraryDir.info"))
			(dest *destdir)
			(newname (cat (fileonly *libdir) ".info"))
			(nogauge)
		)
	)
)

(complete 32)

(if (and (exists *libdir) (bitand *copyfiles $0008))
	(
	  (set *ovlexist (exists (tackon *path "LIB/overlay.o")))
		(set *libselect
			(if (= @user-level 2)
				(askoptions
					(prompt
						(if *lan
							(cat
								"Select object files.\n"
								"Destination directory: '" *libdir "'\n"
							)
							(cat
								"Sélectionnez les fichiers objets.\n"
								"Répertoire de destination: '" *libdir "'\n"
							)
						)
					)
					(help
						(if *lan
							(cat
								"IMPORTANT:\n"
								"    The name of that directory will never be changed "
								"or you will loose the compatibility with lk©.\n"
								"\n"
								"Why create this directory ?\n"
								"    This directory is used by lk© to look for "
								"some default object files. Those actually are "
								"'auto-run.o' and 'overlay.o'.\n"
								"    You can also delete the default object "
								"files and replace them by your own files "
								"(Note that the assembler source files "
								"are given and you have the right to "
								"modify as you wish.)\n"
								"    Without that directory, you will be able to "
								"use the default object files which are internal "
								"to lk©, or specify you own object files on the "
								"command line or in your script files."
							)
							(cat
								"IMPORTANT:\n"
								"    Le nom de ce répertoire ne devra pas être modifié "
								"si vous désirez conserver la compatibilité avec lk©.\n"
								"\n"
								"Pourquoi créer ce répertoire ?\n"
								"    Ce répertoire est utilisé par lk© pour "
								"rechercher des fichiers objects par défault. "
								"Ces fichiers sont 'auto-run.o' et 'overlay.o'.\n"
								"    Vous pouvez bien évidemment effacer les "
								"fichiers objets donnés par défaut pour les "
								"remplacer par vos propres fichiers. "
								"(Notez que les fichiers sources en "
								"assembleur sont fournis et pourront "
								"être modifiés par vos soins).\n"
								"    Sans ce répertoire, vous pourrez utiliser "
								"les fichier objets internes à lk, ou spécifier "
								"vos fichiers personnels sur la ligne de commande."
							)
						)
					)
					(if *ovlexist
						(choices
							" AutoRun Object"
							" Stub Object"
							" Resize Stack Object"
							" Define Priority Object"
							" Stack & Priority Object"
							" Overlay Header Object"
							" Amiga Library Object"
						)
						(choices
							" AutoRun Object"
							" Stub Object"
							" Resize Stack Object"
							" Define Priority Object"
							" Stack & Priority Object"
						)
					)
				)
				-1
			)
		)
		(if *libselect
			(
				(if (bitand *libselect $0001)
					(copyfiles
						(source (tackon *path "LIB/autorun.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0002)
					(copyfiles
						(source (tackon *path "LIB/stub.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0004)
					(copyfiles
						(source (tackon *path "LIB/stacksize.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0008)
					(copyfiles
						(source (tackon *path "LIB/priority.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0010)
					(copyfiles
						(source (tackon *path "LIB/stackpri.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (and (bitand *libselect $0020) *ovlexist)
					(copyfiles
						(source (tackon *path "LIB/overlay.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (and (bitand *libselect $0040) *ovlexist)
					(copyfiles
						(source (tackon *path "LIB/library.o"))
						(dest *libdir)
						(nogauge)
					)
				)
				(if (and *copyfiles $0020)
					(foreach *libdir "#?.o"
						(if (not (exists (tackon *libdir (cat @each-name ".info"))))
							(copyfiles
								(source (tackon *path "ICONS/object.info"))
								(dest *libdir)
								(newname (cat @each-name ".info"))
								(nogauge)
							)
						)
					)
				)
			)
		)
	)
)

(complete 36)





(set *srcdir (tackon *destdir "SOURCES"))
(set *srchelp
	(if *lan
		(cat
			"Why create this directory ?\n"
			"    This directory will be used only by you. "
			"It is also used to copy the sources "
			"gived with lk©."
		)
		(cat
			"Pourquoi créer ce répertoire ?\n"
			"    Ce répertoire ne sera utilisé que par vous. "
			"Il est néanmoins utilisé pour copier les "
			"fichiers sources fournis avec lk©."
		)
	)
)

(if (and (not (exists *srcdir)) (bitand *copyfiles $0010))
	(makedir
		*srcdir
		(prompt
			(if *lan
				(cat
					"Create the directory 'LK:SOURCES'.\n"
					"\n"
					"This directory contains the default sources "
					"given with lk©. Those can be used as a "
					"base to write your own special object files."
				)
				(cat
					"Crée le répertoire: 'LK:SOURCES'.\n"
					"\n"
					"Ce répertoire contient les fichiers sources "
					"par défaut fournis avec lk©. Ceux-ci peuvent "
					"être utilisés comme base pour programmer vos "
					"propes fichiers objects."
				)
			)
		)
		(help *srchelp)
		(confirm)
	)
)

(if (and
			(exists *srcdir)
			(not (exists (cat *srcdir ".info")))
			(bitand *copyfiles $0020)
		)
	(
		(copyfiles
			(source (tackon *path "ICONS/SOURCES.info"))
			(dest *destdir)
			(nogauge)
		)
	)
)

(complete 40)

(if (and (exists *srcdir) (bitand *copyfiles $0010))
	(
	  (set *ovlexist (exists (tackon *path "SOURCES/overlay.s")))
		(set *libselect
			(if (= @user-level 2)
				(askoptions
					(prompt
						(if *lan
							(cat
								"Select sources files.\n"
								"Destination directory: '" *srcdir "'\n"
							)
							(cat
								"Sélectionnez les fichiers sources.\n"
								"Répertoire de destination: '" *srcdir "'\n"
							)
						)
					)
					(if *ovlexist
						(choices
							" AutoRun Source"
							" Stub Source"
							" Resize Stack Source"
							" Define Priority Source"
							" Stack & Priority Source"
							" Overlay Header Source"
							" Amiga Library Source"
						)
						(choices
							" AutoRun Source"
							" Stub Source"
							" Resize Stack Source"
							" Define Priority Source"
							" Stack & Priority Source"
						)
					)
					(help *srchelp)
				)
				-1
			)
		)
		(if *libselect
			(
				(if (bitand *libselect $0001)
					(copyfiles
						(source (tackon *path "SOURCES/autorun.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0002)
					(copyfiles
						(source (tackon *path "SOURCES/stub.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0004)
					(copyfiles
						(source (tackon *path "SOURCES/stacksize.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0008)
					(copyfiles
						(source (tackon *path "SOURCES/priority.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (bitand *libselect $0010)
					(copyfiles
						(source (tackon *path "SOURCES/stackpri.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (and (bitand *libselect $0020) *ovlexist)
					(copyfiles
						(source (tackon *path "SOURCES/overlay.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (and (bitand *libselect $0040) *ovlexist)
					(copyfiles
						(source (tackon *path "SOURCES/library.s"))
						(dest *srcdir)
						(nogauge)
					)
				)
				(if (and *copyfiles $0020)
					(foreach *srcdir "#?.s"
						(if (not (exists (tackon *srcdir (cat @each-name ".info"))))
							(copyfiles
								(source (tackon *path "ICONS/def_text.info"))
								(dest *srcdir)
								(newname (cat @each-name ".info"))
								(nogauge)
							)
						)
					)
				)
			)
		)
	)
)

(complete 44)





(set *icondir (tackon *destdir "ICONS"))
(set *iconhelp
	(if *lan
		(cat
			"IMPORTANT:\n"
			"    The name of that directory will never be changed "
			"or you will loose the compatibility with lk©.\n"
			"\n"
			"Why create this directory ?\n"
			"    When an assign named 'LK:' exists and "
			"a directory 'ICONS' is present within that "
			"assign, lk© is able to look for default icons "
			"inside that directory.\n"
			"    Actually lk© uses the icons 'Tool.info' and "
			"'Library.info' when it is creating an executable "
			"file or a library (also an object) file respectively.\n"
			"    lk© is coming with a great selection of icons. "
			"You can also select the one you prefer to be "
			"used as the default (You can also create your own "
			"icons.)"
		)
		(cat
			"IMPORTANT:\n"
			"    Le nom de ce répertoire ne devra pas être modifié "
			"si vous désirez conserver la compatibilité avec lk©.\n"
			"\n"
			"Pourquoi créer ce répertoire ?\n"
			"    Quand un 'assign' nommé 'LK:' existe et "
			"un répertoire 'ICONS' est présent dans cet "
			"'assign', lk© sera capable de chercher pour "
			"une icône par défaut dans ce répertoire.\n"
			"    Actuellement lk© utilise l'icône 'Tool.info' "
			"quand il crée un executable et 'Library.info' "
			"quand il crée une librairie (ou fichier objet).\n"
			"    lk© vient avec une large sélection d'icône. "
			"Vous pouvez donc sélectionner ceux que vous "
			"préferez pour être utilisé par défaut (Vous "
			"pouvez éventuellement créer les votres)."
		)
	)
)



(if (and (not (exists *icondir)) (bitand *copyfiles $0020))
	(makedir
		*icondir
		(prompt
			(if *lan
				(cat
					"Create the directory 'LK:ICONS'.\n"
					"\n"
					"Do you want to be able to select the ...\n"
					"                     ... default icons ?\n"
					"\n"
					"Then accept the creation of this directory."
				)
				(cat
					"Crée le répertoire: 'LK:ICONS'.\n"
					"\n"
					"Vous désirez être maître de la sélection...\n"
					"               ...  des icônes par défaut ?\n"
					"\n"
					"Alors acceptez la création de ce répertoire!"
				)
			)
		)
		(help *iconhelp)
		(confirm average)
	)
)

(if (exists *icondir)
	(
		(if (not (exists (cat *icondir ".info")))
			(copyfiles
				(source (tackon *path "ICONS/ICONS.info"))
				(dest *destdir)
				(nogauge)
			)
		)
		(set *iconselect
			(if (= @user-level 2)
				(askoptions
					(prompt
						(if *lan
							(cat
								"Select icons files.\n"
								"\n"
								"Destination directory: '" *icondir "'\n"
							)
							(cat
								"Sélectionnez les fichiers d'icônes.\n"
								"\n"
								"Répertoire de destination: '" *srcdir "'\n"
							)
						)
					)
					(help *iconhelp)
					(choices
						"Tools"
						"Library"
						"WITH (lk© script files)"
						"Guide"
						"Object"
						"Text"
						"lk"
						"lkopts"
					)
				)
				-1
			)
		)
		(if *iconselect
			(
			  (set *desticon (tackon *path "ICONS"))
				(if (bitand *iconselect $0001)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "def_tool#?.info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0002)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "def_(|amiga)library.info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0004)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "def_with#?.info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0008)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "guide~(dir).info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0010)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "object.info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0020)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "def_(text|xref|errorfile|list).info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0040)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "lk~(dir).info")
						(nogauge)
					)
				)
				(if (bitand *iconselect $0080)
					(copyfiles
						(source *desticon)
						(dest *icondir)
						(pattern "lkopts~(dir).info")
						(nogauge)
					)
				)
			)
		)
	)
)

(complete 52)








(if (bitand *copyfiles $0040)
	(if (exists (tackon *path "LIBS"))
		(if
			(if (= @user-level 2)
				(askbool
					(prompt
						(if *lan
							(cat
								"Do you want to copy 'QuickDOS.library' ?\n"
								"\n"
								"Destination directory: 'LIBS:'\n"
								"\n"
								"(File size: "
								(getsize (tackon *path "LIBS/QuickDOS.library"))
								")"
							)
							(cat
								"Voulez-vous copier 'QuickDOS.library' ?\n"
								"\n"
								"Répertoire de destination: 'LIBS:'\n"
								"\n"
								"(Taille du fichier: "
								(getsize (tackon *path "LIBS/QuickDOS.library"))
								")"
							)
						)
					)
					(help
						(if *lan
							(cat
								"What is QuickDOS library?\n"
								"    QuickDOS library is a standard Amiga "
								"library which can be used by any one. "
								"lk© uses QuickDOS library which enables "
								"a very fast link after the first pass "
								"(Because the second time most files are "
								"in memory.) QuickDOS really imporve the "
								"speed of lk© but may quickly generate "
								"low memory errors (usual 'out of memory') "
								"on small systems. It is better to install "
								"QuickDOS when you have 3Mb or more of "
								"memory. Expert users may play with the "
								"instruction QDSTOP and QDSTART to select "
								"files which have to be loaded through "
								"QuickDOS.\n"
								"\n"
								"    Programmers will find a complete "
								"documentation, includes, file definition "
								"and more on the AmiNet. This way any "
								"programmer will be able to develop "
								"its own tool with QuickDOS (it is "
								"very similar to 'dos.library'.)"
							)
							(cat
								"Qu'est-ce que la librairie QuickDOS?\n"
								"\n"
								"    La librairie QuickDOS est une librairie "
								"standard Amiga qui peut être utilisée par "
								"tout le monde. lk© utilise QuickDOS pour "
								"permettre des liens très rapide après un "
								"premier appel à lk© (le second appel est "
								"plus rapide du fait que les fichiers sont "
								"déjà en mémoire). QuickDOS augmente vraiment "
								"la vitesse de lk© mais peut rapidement "
								"générer des erreurs de mémoires (les "
								"habituels 'plus de mémoire') sur de "
								"petits système. Il est plus mieux de "
								"n'installer QuickDOS que lorsque vous "
								"avez 3Mo de mémoire ou plus. Les utilisateurs "
								"experts pouront néanmoins jouer avec les "
								"instruction QDSTOP et QDSTART pour "
								"sélectionner les fichiers devant être "
								"chargés au moyen de QuickDOS.\n"
								"\n"
								"    Un programmer désirant utiliser "
								"QuickDOS dans un utilitaire trouvera "
								"une documentation complète, ainsi que "
								"des fichiers includes, de définition, "
								"etc. sur AmiNet. Avec tout ceci l'utilisation "
								"de QuickDOS est particulièrement simple "
								"(très similaire à 'dos.library')."
							)
						)
					)
					(choices
						(if *lan "Yes" "Oui")
						(if *lan "No" "Non")
					)
				)
				1
			)
			(copyfiles
				(source (tackon *path "LIBS/QuickDOS.library"))
				(dest "LIBS:")
				(nogauge)
			)
		)
		(message
			(if *lan
				(cat
					"\n"
					"Sorry!\n"
					"\n"
					"'quickdos.library' is not supported\n"
					"by\n"
					"the demo version of lk©"
				)
				(cat
					"\n"
					"Désolé!\n"
					"\n"
					"'quickdos.library' n'est pas supporté\n"
					"par\n"
					"la version de démonstration de lk©"
				)
			)
		)
	)
)






;If TOOLS does not exist, this is the demo version...

(set *tooldir (tackon *path "TOOLS"))
(set *docsdir (tackon *path "DOCS"))

(if (bitand *copyfiles $0080)
	(
		(set *demo (not (exists (tackon *tooldir "ds"))))
		(if *demo
			(message
				(if *lan
					(cat
						"\n"
						"Sorry!\n"
						"\n"
						"No tool is provided with the demo.\n"
						"\n"
						"Available tools for recorded people:\n"
						"\n"
						"make  lsobj  remove  stripasm\n"
						"guru  touch  ds              \n"
						"\n"
						"However some scripts are available."
					)
					(cat
						"\n"
						"Désolé!\n"
						"\n"
						"Aucun outil n'est fournis avec la démo.\n"
						"\n"
						"Outils disponibles pour les gens enregistrés:\n"
						"\n"
						"make  lsobj  remove  stripasm\n"
						"guru  touch  ds              \n"
						"\n"
						"Néanmoins des scriptes sont disponibles."
					)
				)
			)
		)
		(set *toolhelp
			(if *lan
				(cat
					"Which directory has to be selected ?\n"
					"    lk© does not force you to use a directory "
					"or another in this case. You can select any "
					"directory which already has a path and which "
					"probably already contains other tools. Two "
					"directories are suggested:\n"
					"    U:\n"
					"    C:\n"
					"\n"
					@askdir-help
				)
				(cat
					"Quel répertoire choisir ?\n"
					"    lk© ne vous force pas à utiliser un "
					"répertoire spécifique dans ce cas. Vous pouvez "
					"sélectionner un répertoire ayant déjà un chemin "
					"d'accès et qui probablement contient déjà d'autres "
					"outils. Deux répertoires sont suggerés:\n"
					"    U:\n"
					"    C:\n"
					"\n"
					@askdir-help
				)
			)
		)
		(makedir (tackon *destdir "TOOLS"))
		(if (not *demo)
			(
				(set *destdocs (tackon *destdir "DOCS"))
				(makedir *destdocs)
			)
		)
		(if (bitand *copyfiles $0020)
			(
				(copyfiles
					(source (tackon *path "ICONS/objectdir.info"))
					(dest *destdir)
					(newname "TOOLS.info")
					(nogauge)
				)
				(if (not *demo)
					(copyfiles
						(source (tackon *path "ICONS/helpdir.info"))
						(dest *destdir)
						(newname "DOCS.info")
						(nogauge)
					)
				)
			)
		)
		(run "path LK:TOOLS add")
		(set *desttool
			(askdir
				(prompt
					(if *lan
						"Select a directory to save lk© tools"
						"Sélectionnez un répertoire pour les outils de lk©"
					)
				)
				(help *toolhelp)
				(default "LK:TOOLS")
			)
		)
		(set *tools
			(askoptions
				(prompt
					(if *lan
						"Select Tools to Copy"
						"Sélectionnez les Outils à Copier"
					)
				)
				(help
					(cat
						(if *lan
							(cat
								"Which tools should I copy?\n"
								"(Tools will be accompanied with a documentation "
								"scripts might not have any documentation.)\n"
								"\n"
								"  1. make\n"
								"\n"
								"    This tool is a very simple non-unix maker. "
								"It does not support the usual file maker syntax "
								"but is somewhat powerful.\n"
								"    It is not needed for you to take this tool "
								"if you already have a file maker.\n"
								"\n"
								"  2. guru\n"
								"\n"
								"    This tool is useful to know about guru "
								"numbers. It is very simple to use (for sure "
								"it is quicker than look inside the 'alert' "
								"file) and supports alerts of V3.x.\n"
								"\n"
								"  3. lsobj\n"
								"\n"
								"    This tool can list any object or executable "
								"file into the current window. This tool is powerful "
								"in that it can list some kind of invalid object "
								"files.\n"
								"    You will copy the tool 'ds' if you want to "
								"use the desassembler options of 'lsobj'.\n"
								"\n"
								"  4. ld\n"
								"\n"
								"    This script enables a Unix like usage (or "
								"dlink of DICE.) No commentaries will be displayed, "
								"only warnings and errors are printed.\n"
								"\n"
								"  5. checkwith\n"
								"\n"
								"    This script executes an lk© script file to "
								"know if some errors exists in it. This will "
								"be used to check the validity of the lk© script "
								"file, no link will occur.\n"
								"\n"
								"  6. qdload\n"
								"\n"
								"    This script will executes an lk© script "
								"file and load the corresponding object, "
								"library and description files through QuickDOS "
								"library. This way the following links will "
								"be extremly fast.\n"
								"\n"
								"  7. qdremove\n"
								"\n"
								"    You can execute this script when you do "
								"not need to use QuickDOS® library. It will "
								"be removed from memory (if no one actually "
								"use it.) Any further call to lk© will "
								"load the library back in memory.\n"
								"\n"
								"  8. fd2offset\n"
								"\n"
								"    This script transforms the source file description "
								"file(s) in a list of offsets. The destination "
								"file can be:\n"
								"    . object\n"
								"    . assembler (_LVO... = <value>)\n"
								"    . C header (#define _LVO... <value>)\n"
								"    . Pascal header (const _LVO... = <value>;)\n"
								"\n"
								"  9. fd2lib\n"
								"\n"
								"    This script transforms the source file description "
								"file(s) in a list of offsets. The destination "
								"file can be:\n"
								"    . object\n"
								"    . assembler (  XREF _...)\n"
								"    . C header (extern long _...(params);)\n"
								"    . Pascal header (forword _...(params);)\n"
								"\n"
								"  10. strip\n"
								"\n"
								"    This script deletes any kind of debug from an executable "
								"file.\n"
								"\n"
								"  11. stripasm\n"
								"\n"
								"    This tool makes an assembler source the smaller than "
								"possible, stripping the commentaries and extra spaces.\n"
								"\n"
								"  12. touch\n"
								"\n"
								"    This tool changes the date of the specified files "
								"with the current system date (useful with 'make'.)\n"
								"\n"
								"  13. remove\n"
								"\n"
								"    This tool removes a library from your memory. "
								"This is not specific to QuickDOS© library.\n"
								"\n"
								"  14. ds\n"
								"\n"
								"    This tool enables the desassembly of a memory "
								"buffer or a file of code. The result is written "
								"into the active window. 'ds' is able to desassemble "
								"any CPU of the 68000 family, including the 881/2 and "
								"the 851 coprocessors."
							)
							(cat
								"Quel outil dois-je copié?\n"
								"(Les outils sont accompagniés d'une documentation, "
								"néanmoins les scriptes peuvent ne pas en avoir.)\n"
								"\n"
								"  1. make\n"
								"\n"
								"    Cet outil est un très simple maker, non-unix. "
								"Il ne support pas la syntax habituelle des makers "
								"de fichiers mais il est tout de même puisant.\n"
								"    Il ne vous est pas nécessaire de prendre "
								"cette outil si vous avez déjà un maker de "
								"fichier.\n"
								"\n"
								"  2. guru\n"
								"\n"
								"    Cet outil est fort utile pour connaître "
								"les numéros de gurus. Il est très simple "
								"d'utilisation (surment plus que de chercher "
								"dans le fichier 'alert') et support tous les "
								"gurus jusqu'à la version V3.x.\n"
								"\n"
								"  3. lsobj\n"
								"\n"
								"    Cet outil peut lister les fichiers objets "
								"et exécutables dans la fenêtre courrante. "
								"Cet utilitaire est puissant du fait qu'il est "
								"capable de lister certain fichiers objects "
								"qui sont invalids.\n"
								"    L'outil 'ds' est nécessaire si vous désirez "
								"utiliser l'option de desassemblage de 'lsobj'.\n"
								"\n"
								"  4. ld\n"
								"\n"
								"    Ce scripte permet d'utiliser lk exactement "
								"comme sur une machine Unix (ou comme dlink de "
								"DICE). Aucun commentaire n'appaît à l'écran "
								"seul les erreurs et warning sont affichés.\n"
								"\n"
								"  5. checkwith\n"
								"\n"
								"    Ce scripte execute lk de façon à savoir "
								"si the script spécifié est correct. Seul "
								"la vérifivation est réalisé, aucun lien n'a lieu.\n"
								"\n"
								"  6. qdload\n"
								"\n"
								"    Ce scripte executera un fichier scripte de "
								"lk© et chargera les fichiers objects, libraries et "
								"fichiers de description utilisés au moyen de "
								"la librarie QuickDOS. De ce fait ils seront déjà "
								"en mémoire pour les appels suivant.\n"
								"\n"
								"  7. qdremove\n"
								"\n"
								"    L'exécution de ce scripte éliminera la "
								"librairie QuickDOS© de la mémoire. Vous devriez "
								"l'utiliser quand vous n'avez plus besoin de "
								"lk©. Dès le prochain appel de lk©, la "
								"librairie sera à nouveau chargée en mémoire.\n"
								"\n"
								"  8. fd2offset\n"
								"\n"
								"    Ce scripte transforme le(s) fichier(s) de "
								"description definis en source en fichier(s) "
								"d'offsets. La destination peut être:\n"
								"    . objet\n"
								"    . assembleur (_LVO... = <valeur>)\n"
								"    . en-tête C (#define _LVO... <valeur>)\n"
								"    . en-tête Pascal (const _LVO... = <valeur>;)\n"
								"\n"
								"  9. fd2lib\n"
								"\n"
								"    Ce scripte transforme le(s) fichier(s) de "
								"description définis en source en fichier(s) "
								"d'offsets. La destination peut être:\n"
								"    . objet\n"
								"    . assembleur (  XREF _...)\n"
								"    . en-tête C (extern long _...(params);)\n"
								"    . en-tête Pascal (forword _...(params);)\n"
								"\n"
								"  10. strip\n"
								"\n"
								"    Ce scripte détruis tous les débugs d'un "
								"fichier exécutable quelque soit leur type.\n"
								"\n"
								"  11. stripasm\n"
								"\n"
								"    Cet outil supprime les commentaires et espaces "
								"inutiles des fichiers sources en assembleurs.\n"
								"\n"
								"  12. touch\n"
								"\n"
								"    Cet outil change la date des fichiers spécifiés "
								"avec la date actuelle du système (particulièrement "
								"utile avec le make.)\n"
								"\n"
								"  13. remove\n"
								"\n"
								"    Cet outil supprime une librairie de la mémoire. "
								"Ceci n'est pas spécifique à QuickDOS©.\n"
								"\n"
								"  14. ds\n"
								"\n"
								"    Cet outil permet de desassemble un buffer de "
								"la mémoire, ou un fichier de code. Le résultat est "
								"écrit dans la fenêtre active. 'ds' est capable de "
								"desassembler toute la famille des 68000. Incluant "
								"les coprocessors 881/2 et 851."
							)
						)
						"\n\n\n"
						*toolhelp
					)
				)
				(if *demo
					(choices
						"checkwith"
						"fd2lib"
						"fd2offset"
						"ld"
						"qdload"
						"qdremove"
						"strip"
					)
					(choices
						"checkwith"
						"fd2lib"
						"fd2offset"
						"ld"
						"qdload"
						"qdremove"
						"strip"

						"ds"
						"guru"
						"lsobj"
						"make"
						"remove"
						"stripasm"
						"touch"
					)
				)
			)
		)


		(if (bitand *tools $0001)
			(
				(copyfiles
					(source (tackon *tooldir "checkwith"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "checkwith.info")
						(nogauge)
					)
				)
			)
		)
		(if (bitand *tools $0002)
			(
				(copyfiles
					(source (tackon *tooldir "fd2lib"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "fd2lib.info")
						(nogauge)
					)
				)
			)
		)
		(if (bitand *tools $0004)
			(
				(copyfiles
					(source (tackon *tooldir "fd2offset"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "fd2offset.info")
						(nogauge)
					)
				)
			)
		)
		(if (bitand *tools $0008)
			(
				(copyfiles
					(source (tackon *tooldir "ld"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "ld.info")
						(nogauge)
					)
				)
			)
		)
		(if (bitand *tools $0010)
			(
				(copyfiles
					(source (tackon *tooldir "qdload"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "qdload.info")
						(nogauge)
					)
				)
			)
		)
		(if (bitand *tools $0020)
			(
				(copyfiles
					(source (tackon *tooldir "qdremove"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "qdremove.info")
						(nogauge)
					)
				)
			)
		)
		(if (bitand *tools $0040)
			(
				(copyfiles
					(source (tackon *tooldir "strip"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(copyfiles
						(source (tackon *path "ICONS/script.info"))
						(dest *desttool)
						(newname "strip.info")
						(nogauge)
					)
				)
			)
		)



		(if (bitand *tools $0080)
			(
				(copyfiles
					(source (tackon *tooldir "ds"))
					(dest *desttool)
					(nogauge)
				)
				(copyfiles
					(source (tackon *docsdir "ds.doc"))
					(dest *destdocs)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "ds.info")
							(nogauge)
						)
						(copyfiles
							(source (tackon *path "ICONS/document.info"))
							(dest *destdocs)
							(newname "ds.doc.info")
							(nogauge)
						)
					)
				)
			)
		)
		(if (bitand *tools $0100)
			(
				(copyfiles
					(source (tackon *tooldir "guru"))
					(dest *desttool)
					(nogauge)
				)
				(copyfiles
					(source (tackon *docsdir "guru.doc"))
					(dest *destdocs)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "guru.info")
							(nogauge)
						)
						(copyfiles
							(source (tackon *path "ICONS/document.info"))
							(dest *destdocs)
							(newname "guru.doc.info")
							(nogauge)
						)
					)
				)
			)
		)
		(if (bitand *tools $0200)
			(
				(copyfiles
					(source (tackon *tooldir "lsobj"))
					(dest *desttool)
					(nogauge)
				)
				(copyfiles
					(source (tackon *docsdir "lsobj.doc"))
					(dest *destdocs)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "lsobj.info")
							(nogauge)
						)
						(copyfiles
							(source (tackon *path "ICONS/document.info"))
							(dest *destdocs)
							(newname "lsobj.doc.info")
							(nogauge)
						)
					)
				)
			)
		)
		(if (bitand *tools $0400)
			(
				(copyfiles
					(source (tackon *tooldir "make"))
					(dest *desttool)
					(nogauge)
				)
				(copyfiles
					(source (tackon *docsdir "make.doc"))
					(dest *destdocs)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "make.info")
							(nogauge)
						)
						(copyfiles
							(source (tackon *path "ICONS/document.info"))
							(dest *destdocs)
							(newname "make.doc.info")
							(nogauge)
						)
					)
				)
			)
		)
		(if (bitand *tools $0800)
			(
				(copyfiles
					(source (tackon *tooldir "remove"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "remove.info")
							(nogauge)
						)
;						(copyfiles
;							(source (tackon *path "ICONS/document.info"))
;							(dest *destdocs)
;							(newname "remove.doc.info")
;							(nogauge)
;						)
					)
				)
			)
		)
		(if (bitand *tools $1000)
			(
				(copyfiles
					(source (tackon *tooldir "stripasm"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "stripasm.info")
							(nogauge)
						)
;						(copyfiles
;							(source (tackon *path "ICONS/document.info"))
;							(dest *destdocs)
;							(newname "stripasm.doc.info")
;							(nogauge)
;						)
					)
				)
			)
		)
		(if (bitand *tools $2000)
			(
				(copyfiles
					(source (tackon *tooldir "touch"))
					(dest *desttool)
					(nogauge)
				)
				(if (bitand *copyfiles $0020)
					(
						(copyfiles
							(source (tackon *path "ICONS/def_tool.info"))
							(dest *desttool)
							(newname "touch.info")
							(nogauge)
						)
;						(copyfiles
;							(source (tackon *path "ICONS/document.info"))
;							(dest *destdocs)
;							(newname "touch.doc.info")
;							(nogauge)
;						)
					)
				)
			)
		)
	)
)

(complete 60)








(startup "lk"
	(prompt
		(if *lan
			(cat
				"\n"
				"The next operation will add the needed\n"
				"\n"
				"assign and paths\n"
				"\n"
				"in your 'User-Startup'\n"
				"\n"
				"***  Note  ***\n"
				"\n"
				"You may have to move the command lines\n"
				"because they are saved at the end of\n"
				"your startup file."
			)
			(cat
				"\n"
				"La prochaine opération ajoutera les\n"
				"\n"
				"chemins d'accès et 'assign'\n"
				"\n"
				"nécessaire dans votre 'User-Startup'\n"
				"\n"
				"***  Note  ***\n"
				"\n"
				"Il vous faudra peut être déplacer les lignes\n"
				"de commandes, car elles seront ajoutées à la\n"
				"fin de votre fichier de démarrage."
			)
		)
	)
	(help
		(if *lan
			(cat
				"This operation is absolutly safe. It also"
				"generate:\n"
				"     ASSIGN LK: " *destdir "\n"
				"     (Give its power to lk©)\n"
				"     PATH LK: ADD\n"
				"     (Make lk© accessible on a CLI command line)\n"
				"     PATH LK:TOOLS ADD\n"
				"     (Make lk© tools accessible)\n"
				"\n"
				"You will have to edit your user startup "
				"and search for 'BEGIN lk' string if you "
				"have an ENDCLI into your User-Startup "
				"file.\n"
				"\n"
				"You can skip this operation if you do "
				"not want to use the maximum power of lk©."
			)
			(cat
				"Cette opération est absolument sans danger. Elle "
				"génère:\n"
				"     ASSIGN LK: " *destdir "\n"
				"     (Donne toute ça puissante à lk©)\n"
				"     PATH LK: ADD\n"
				"     (Rend lk© accessible sur une ligne de commande CLI)\n"
				"     PATH LK:TOOLS ADD\n"
				"     (Rend lk© les outils accessible)\n"
				"\n"
				"Vous pouvez éviter cette opération si vous "
				"ne voulez pas utiliser la puissance maximale "
				"de lk©."
			)
		)
	)
	(command
		"ASSIGN LK: " *destdir "\n"
		"PATH LK: ADD\n"
		"IF EXISTS LK:TOOLS\n"
		"  PATH LK:TOOLS ADD\n"
		"ENDIF"
	)
)

(complete 65)









(if (bitand *copyfiles $0300)
	(if (exists (tackon *path "HELP"))
		(set *path2 *path)
		(
			(set *path2 (cat *path " Help Files"))
			(askdisk
				*path2
				(prompt
					(if *lan
						("Please insert disk 2")
						("Merci d'inserer le disque 2")
					)
				)
				(help
					(if *lan
						(cat
							"The disk 2 includes help files.\n"
							"\n"
							"You may think that help files are useless "
							"but this is certainly not the case. The "
							"size of help text now is around 174Kb for "
							"the english version. It may contains "
							"some useful information...\n"
							"\n"
							"You may abort installation now if you "
							"do not want to install help files."
						)
						(cat
							"La disquette 2 inclus les fichiers d'aide.\n"
							"\n"
							"Vous pouvez peut-être penser que les fichiers "
							"d'aides sont inutiles, mais il s'agit la "
							"d'une source d'information incontestable. "
							"La taille des fichiers de texte est d'environ "
							"207Ko pour la version française. Cela peut "
							"fort probablement contenir des informations "
							"très utiles...\n"
							"\n"
							"Vous pouvez annuler l'installation maintenant "
							"si vous ne voulez pas les fichiers d'aide."
						)
					)
				)
			)
		)
	)
)


(if (bitand *copyfiles $0100)
	(
		(set *copyhelp
			(askbool
				(prompt
					(if *lan
						(cat
							"\n"
							"Are you sure that you really desire ....\n"
							"\n"
							"      ... to copy all help files ?\n"
							"\n"
							"\n"
							"(Guides are in the following copy,    \n"
							"         they are compatible with AmigaGuide)"
						)
						(cat
							"\n"
							"Êtes vous sure de vraiment vouloir ...\n"
							"\n"
							"      ... copier tous les fichiers d'aide ?"
							"\n"
							"\n"
							"(Les guides font partie de la prochaine copie,    \n"
							"         ils sont compatibles avec AmigaGuide)"
						)
					)
				)
				(help
					(if *lan
						(cat
							"The total sizes of help files including the "
							"utility and the dictionary is about 0.5Mb!"
						)
						(cat
							"La taille totale des fichiers d'aide incluant "
							"l'utilitaire et le dictionnaire est environ "
							"0.5Mo!"
						)
					)
				)
				(choices
					(if *lan
						"Copy Help"
						"Copie les Aides"
					)
					(if *lan
						"Forget Help"
						"Oublies ça!"
					)
				)
			)
		)
		(if *copyhelp
			(
				(set *helpdir (tackon *destdir "HELP"))
				(if (not (exists *helpdir))
					(makedir *helpdir)
				)
				(if (exists *helpdir)
					(
						(if (and
									(not (exists (cat *helpdir ".info")))
									(bitand *copyfiles $0020)
								)
							(copyfiles
								(source (tackon *path2 "ICONS/helpDir.info"))
								(dest *destdir)
								(newname (cat (fileonly *helpdir) ".info"))
								(nogauge)
							)
						)
						(copyfiles
							(source (tackon *path2 "HELP"))
							(dest *helpdir)
							(pattern "#?")
						)
						(if (bitand *copyfiles $0020)
							(
								(copyfiles
									(source (tackon *path2 "ICONS/help.info"))
									(dest *helpdir)
									(nogauge)
								)
								(copyfiles
									(source (tackon *path2 "ICONS/dictionary.info"))
									(dest *helpdir)
									(nogauge)
								)
								(foreach *helpdir "#?.hlp"
									(copyfiles
										(source (tackon *path2 "ICONS/help.hlp.info"))
										(dest *helpdir)
										(newname (cat @each-name ".info"))
										(nogauge)
									)
								)
							)
						)
					)
				)
			)
		)
	)
)

(complete 72)



(if (bitand *copyfiles $0200)
	(
		(set *demo (not (exists (tackon *path2 "GUIDE/français.guide"))))
		(set *copyguide
			(askchoice
				(prompt
					(if *lan
						"Do you really want to copy guides ?"
						"Voulez-vous vraiment copier les guides ?"
					)
				)
				(help
					(if *lan
						(cat
							"Guides are data base files compatible "
							"with AmigaGuide utility of Commodore "
							"Business Machine."
							(if *demo
								(cat
									"\n\n"
									"A french version is available for those "
									"who desire to become registered."
								)
							)
						)
						(cat
							"Les guides sont des fichiers de base de "
							"données compactible avec l'utilitaire "
							"'AmigaGuide' de Commodore Business Machine."
							(if *demo
								(cat
									"\n\n"
									"La version française est disponible pour "
									"les personnes désirant s'enregistrer."
								)
							)
						)
					)
				)
				(if *demo
					(choices
						(if *lan
							"No Guide"
							"Aucun Guide"
						)
						(if *lan
							"English Guide"
							"Guide Anglais"
						)
					)
					(choices
						(if *lan
							"No Guide"
							"Aucun Guide"
						)
						(if *lan
							"English Guide"
							"Guide Anglais"
						)
						(if *lan
							"French Guide"
							"Guide Français"
						)
						(if *lan
							"Both Guides"
							"Les deux Guides"
						)
					)
				)
				(default (if *demo 1 (+ (bitxor *lan 1) 1)))
			)
		)
		(if *copyguide
			(
				(set *guidedir (tackon *destdir "GUIDE"))
				(if (not (exists *guidedir))
					(makedir *guidedir)
				)
				(if (exists *guidedir)
					(
						(if (and
									(not (exists (cat *guidedir ".info")))
									(bitand *copyfiles $0020)
								)
							(copyfiles
								(source (tackon *path2 "ICONS/guideDir.info"))
								(dest *destdir)
								(newname (cat (fileonly *guidedir) ".info"))
								(nogauge)
							)
						)
						(if (bitand *copyguide 1)
							(
								(copyfiles
									(source (tackon *path2 "GUIDE/english.guide"))
									(dest *guidedir)
								)
								(if (bitand *copyfiles $0020)
									(copyfiles
										(source (tackon *path2 "ICONS/guide.info"))
										(dest *guidedir)
										(newname "english.guide.info")
										(nogauge)
									)
								)
							)
						)
						(if (bitand *copyguide 2)
							(
								(copyfiles
									(source (tackon *path2 "GUIDE/français.guide"))
									(dest *guidedir)
								)
								(if (bitand *copyfiles $0020)
									(copyfiles
										(source (tackon *path2 "ICONS/guide.info"))
										(dest *guidedir)
										(newname "français.guide.info")
										(nogauge)
									)
								)
							)
						)
					)
				)
			)
		)
	)
)

(complete 100)



(exit *exit)
