LISEZ-MOI.txt (3815B)
1 EXECROM(8) 2 ========== 3 4 Ce ne sont pas tous les formats de fichier qui contiennent des programmes qui 5 sont compatibles avec la syntaxe « #! », qui permet d’interpréter des programmes 6 de la même manière que les programmes compilés dans le format d’exécutable natif 7 du système d’exploitation. De nombreuses ROMs destinées à certains émulateurs ou 8 machines virtuelles souffrent notamment de cette incompatibilité. 9 10 Soit ~/uxn/drifblim et ~/uxn/leftA deux ROMs exécutables par une machine 11 Varvara. La première contient un assembleur uxntal interprétable par la machine 12 virtuelle en mode texte uxncli(1). La commande suivante assemble prog.tal dans 13 prog.rom. 14 15 $ uxncli ~/uxn/drifblim prog.tal prog.rom 16 17 La seconde ROM est un éditeur de texte en mode graphique. Elle doit donc être 18 interprétée par uxnemu(1). La commande suivante ouvre le fichier doc.txt avec 19 l’éditeur de texte. 20 21 $ uxnemu ~/uxn/left doc.txt 22 23 Grâce à execrom(8), et à quelques manipulations montrées plus bas, ces deux 24 programmes peuvent être exécutés comme suit: 25 26 $ drifblim prog.tal prog 27 $ left doc.txt 28 29 Dépendance d’exécution 30 ----------------------- 31 32 - POSIX 33 34 Dépendances de compilation 35 -------------------------- 36 37 - Compilateur C89 ou plus récent 38 - POSIX 39 - make (supportant les assignations avec « != ») 40 41 Installer 42 --------- 43 44 execrom(8) a été testé sur : 45 * OpenBSD 7.7 46 * Alpine Linux 3.22 47 48 Télécharger la publication la plus récente, la décompresser, l’extraire : 49 50 $ curl -O 'https://asteride.xyz/~ldp/publications/execrom/execrom.tgz' 51 $ tar zxvf execrom.tgz 52 $ cd execrom 53 54 Compiler le programme : 55 56 $ make 57 58 Installer le programme et ses pages du manuel : 59 60 # make install 61 62 Ils s’installeront sous LIBEXEC_DOS et MAN_DOS, respectivement. Ces variables 63 ont chacune une valeur prédéfinie dans le Makefile et dépendent de PREFIX ; il 64 peut être utile de les modifier. Puisque les pages du manuel ne sont pour 65 l’instant disponibles qu’en français et en catalan et que l’installateur les 66 place dans ${MAN_DOS}/fr/ et ${MAN_DOS}/ca/, respectivement, il y a des chances 67 qu’elles soient inaccessibles et qu’il faille modifier la variable 68 d’environnement MANPATH ou le fichier /etc/man.conf. 69 70 Puisque execrom(8) n’a pas été conçu pour être exécuté directement, il est par 71 défaut installé sous ${PREFIX}/libexec. Ce choix a le désavantage de le rendre 72 introuvable par la commande which(1). 73 74 Configurer 75 ---------- 76 77 Reprenons les ROMs ~/uxn/drifblim et ~/uxn/left. execrom(8) permet d’exécuter 78 ces deux programmes sans avoir à spécifier chaque fois l’interpréteur approprié 79 et le chemin vers la ROM. Pour ce faire, il faut régler la variable 80 d’environnment EXECROM_CHEM pour qu’elle contienne le chemin vers le dossier où 81 se trouvent les ROMs, ici, ~/uxn. 82 83 $ export EXECROM_CHEM="$HOME/uxn:$EXECROM_CHEM" 84 85 Il faut aussi modifier le nom de chaque ROM pour que son préfixe et son 86 suffixe correspondent à son nom d’invocation et au nom du programme 87 destiné à l’interpréter, respectivement. Le résultat devrait être le 88 suivant. 89 90 $ ls ~/uxn 91 drifblim.uxncli 92 left.uxnemu 93 94 Enfin, un lien symbolique accessible par PATH et pointant vers 95 l’exécutable d’execrom doit être créé pour chaque ROM. 96 97 $ ln -s /usr/local/libexec/execrom ~/.local/bin/driftblim 98 $ ln -s /usr/local/libexec/execrom ~/.local/bin/left 99 100 Les ROMs peuvent alors être exécutées directement. 101 102 $ drifblim prog.tal prog 103 $ left doc.txt 104 105 Contribuer 106 ---------- 107 108 Pour tout commentaire, rapport de bogue ou diff, on peut m’envoyer un courriel à 109 ldp@asteride.xyz. 110 111 Licence 112 ------- 113 114 execrom(8) est distribué sous licence GPLv3. 115 116 Auteur 117 ------ 118 119 execrom(8) a été créé et est maintenu par Loïc Daignault-Pichette 120 <ldp@asteride.xyz>.