vincentb1 / fmtcount

Source for LaTeX fmtcount package
11 stars 5 forks source link

Adding Arabic languege #31

Open Elfengour opened 6 years ago

Elfengour commented 6 years ago

I will be happy to help you adding Arabic languge support to this package

vincentb1 commented 6 years ago

Bonjour, Je pense que souci c'est que le gnumake que je vous ai fait installer est un make natif MSWindows, et non un make MSYS2. Du coup, même si cp est dans le PATH sous la console git bash, mais qu'il n'est pas dans le PATH sous MSWindows, le gnumake que je vous ai fait installer ne le trouve pas. Pouvez vous ouvrir une console MSDos, et taper dedans:

echo %PATH%

Pour ouvrir la console MSDos il suffit de faire:

s-R
cmd.exe
RET

Sinon, mon adresse mél est mon prénom, point, mon nom, chez gmail point com. Si vous m'écrivez directement je vous enverrai en pièce jointe le essai.mak pour être 100% sûr qu'on est sur la bonne piste…

vincentb1 commented 6 years ago

En fait, ce n'est sans doute pas un pb avec la variable d'environnement PATH, parce que MSYS traite cette variable d'une manière spéciale, et la convertit au format natif (MSWindows) avant d'appeler une commande native.

Est-ce que vous pourriez aussi refaire l'expérience avec essai.mak, mais en remplaçant command cp $< $@ par juste cp $< $@ ?

mfbellalouna commented 6 years ago

Mél envoyé. Merci

mfbellalouna commented 6 years ago

Sinon j'ai effectué la commande

echo %PATH%

mais je ne sais pas copier la path sortie !

mfbellalouna commented 6 years ago

En changeant essai.mak comme vous me l'avez dit, j'obtiens ceci, et rien d'autre:

Mfaouzi@FanEnvy MINGW64 ~/Projects $ make -f "/C/users/Mfaouzi/Projects/essai.mak" cp fic1.txt fic2.txt

vincentb1 commented 6 years ago

Ça s'est donc bien passé en remplaçant command cp $< $@ par cp $< $@.

Je pense maintenant avoir compris pourquoi ça ne marche pas — j'aurais pu y penser plus tôt :-/ ! — le gnumake que je vous ai fait installer est un gnumake natif, et non un gnumake MSYS. Ceci a deux conséquences:

Ce n'est pas cp que make ne trouvait pas, mais command. En effet command n'est pas une commande externe, mais une commande interne de bash, c'est à dire qu'il n'y a nulle part un programme command appelé par bash, c'est bash directement qui voyant command cp sait que au cas où il y aurait une fonction bash nommée également cp et surchargeant la commande cp, ce n'est pas la fonction mais la commande qu'il faut appeler. C'est pourquoi, si au lieu d'appeler bash comme je le pensais, make appelle MSDos ça ne peut pas marcher. En MSDos il n'y a aucune commande interne ou externe nommée command, et donc ça plante.

Enfin bref, ajoutez s'il vous plaît la ligne suivante à votre fichier ~/.profile :

export SHELL='C:\Program Files\Git\usr\bin\bash.exe'

et tapez aussi la même commande dans la console git bash. Puis remodifier le makefile essai.mak pour remettre comme avant command cp $< $@ au lieu de cp $< $@, et enfin essayez de nouveau make -f ~/Projects/essai.mak.

mfbellalouna commented 6 years ago

Bonsoir Votre explication est fortement pédagogique ! Je vais faire ce que vous dites, et vous tiens au courant

mfbellalouna commented 6 years ago

Toujours rien. voici la réponse de Git:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ export SHELL='/C/Program Files/Git/usr/bin/bash.exe'

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make -f ~/Projects/essai.mak echo "Bonjour" > fic1.txt command cp fic1.txt fic2.txt process_begin: CreateProcess(NULL, command cp fic1.txt fic2.txt, ...) failed. make (e=2): Le fichier sp▒cifi▒ est introuvable. make: *** [C:/Users/Mfaouzi/Projects/essai.mak:2: fic2.txt] Error 2

Je vous envoie par mél le dossier zippé Projects et le fichier ~/.profile

vincentb1 commented 6 years ago

Ça ne va pas marcher, je viens de faire des essais chez moi, et il y a un souci de plus. En fait le makefile de fmtcount positionne lui-même déjà la variable d'environnement SHELL en interne:

Comme le makefile de fmtcount positionne lui-même la variable SHELL ce n'est pas possible, il ne va pas prendre ce qui vient de l'extérieur. La raison pour laquelle cela est fait comme ça, c'est que command est une commande interne spécifique à bash, or le shell par défaut de GNUMake n'est pas bash, mais sh, un autre shell *nixien moins évolué…

On a plusieurs solutions:

vincentb1 commented 6 years ago

Attention j'ai corrigé la 2e alternative.

mfbellalouna commented 6 years ago

Euh... je pense que la seconde alternative ne coûte pas cher, si elle est jouable. Le fichier trunk/fc-makedefinitions.mak se trouve où ?

mfbellalouna commented 6 years ago

Noter que gmail refuse de me laisser envoyer le dossier zippé Projects..

vincentb1 commented 6 years ago

Le chemin complet c'est Le fichier ~/Projects/fmtcount/trunk/fc-makedefinitions.mak

vincentb1 commented 6 years ago

Pourriez vous faire aussi l'essai de taper pacman --version dans la console Git bash ?

mfbellalouna commented 6 years ago

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ pacman --version bash: pacman: command not found

vincentb1 commented 6 years ago

Bon, dommage, s'il y avait eu pacman on aurait été sûr d'avoir du MSYS2, et en plus pacman est un gestionnaire de paquets, ça aurait été fastoche d'installer gnumake de MSYS2 avec. Comme il n'y a pas pacman, pas évident de dire si c'est MSYS1 ou MSYS2.

Remaquez que sous mon Git bash dont je suis à peu près sûr que c'est du MSYS1, uname -o fait une erreur, alors que sous ma console MSYS2, ça fait Msys. Pourriez-vous taper uname -o sous votre console Git bash, ça nous donnerait une idée de ce que c'est.

Notez que si on s'en sort pas, la solution serait d'installer MSYS2 en entier, et de tirer gnumake avec pacman. En fait au début je pensais vous proposer une installation minimaliste, mais je m'aperçois que c'est peut-être plus compliqué que ce que je pensais.

mfbellalouna commented 6 years ago

Toujours rien, même après avoir changé la ligne SHELL:=/bin/bash parSHELL:="c:/Program Files/Git/usr/bin/bash.exe"... Noter que ce n'était pas une ligne chez moi, mais plusieurs lignes écrites à la suite, sans retour chariot..

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make -f ~/Projects/essai.mak command cp fic1.txt fic2.txt process_begin: CreateProcess(NULL, command cp fic1.txt fic2.txt, ...) failed. make (e=2): Le fichier sp▒cifi▒ est introuvable. make: *** [C:/Users/Mfaouzi/Projects/essai.mak:2: fic2.txt] Error 2

mfbellalouna commented 6 years ago

Réponse de la commande que vous suggérez:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ uname -o Msys

mfbellalouna commented 6 years ago

Bonjour Bon... En regardant mon gestionnaire de tâches, je vois que ma console Git se nomme MSYS2 terminal..

vincentb1 commented 6 years ago

Bonsoir, Avec le répertoire /mingw64/bin qui n'est pas de base sous MSYS1, mais qui est sous MSYS2 je m'étais déjà dit que Git bash avait dû passer sur MSYS2. Avec l'expérience uname -o, ça semblait confirmé. Avec ce que vous venez de remarqué, c'est sûr…

Alors le plus simple c'est encore de :

  1. supprimer le fichier make.exe en portage natif que vous avez pris chez EZWinports.
  2. Vérifier que vous l'avez bien supprimé en tapant make --version dans la console Git bash ce qui doit faire une erreur du genre « commande non trouvée », et
  3. installer le make de msys2. Il suffit de mettre prendre le répertoire usr dans l'archive compressée et de le mettre par dessus le répertoire usr sous C:\Program Files\Git, comme ça make.exe va dans C:\Program Files\Git\usr\bin

Ensuite, refaites s'il vous plaît l'essai de make install en se mettant sous ~/Projects/fmtcount/dist.

vincentb1 commented 6 years ago

Ah oui, j'oubliais, pour décompresser une archive compressée en .xz vous risquez d'avoir à installer 7zip, je ne suis pas sûr que MSWindows prenne en charge de base ce format.

mfbellalouna commented 6 years ago

Bonsoir Je regarde et vous tiens au courant. Une remarque: vous dites "le mettre par dessus le répertoire usr sous C:\Program Files\Git". Vous voulez bien dire, remplacer le dossier usr existant par le dossier décompressé ? Est-ce bien cela ?

mfbellalouna commented 6 years ago

Je supprime tous les fichiers make.exe que je trouve, c'est bien cela ?

mfbellalouna commented 6 years ago

Enfin, je vous prie de noter que je dispose bien de 7zip

vincentb1 commented 6 years ago

Non, non, vous ne remplacez pas, mais vous le dézippez par dessus; ce qui ajoutera les fichiers à ceux existants. Par ex. vous ouvrez un explorateur de fichiers en faisant s-E, puis vous allez sur C:\Program File\Git, puis vous ouvrez l'archive avec le gestionnaire de fichiers de 7zip, et puis vous faites un glisser-déposer du répertoire usr depuis 7zip vers l'explorateur de fichiers MSWindows.

mfbellalouna commented 6 years ago

1/ Euh je ne comprends pas ce que vous entendez par "..que vous avez pris chez EZWinports.".. 2/ Même après avoir supprimé tous les make.exe que j'ai trouvé, j'obtiens le message suivant:

$ make --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. Ceci est un logiciel libre ; voir le source pour les conditions de copie. Il n'y a PAS de garantie ; tant pour une utilisation COMMERCIALE que pour R▒PONDRE ▒ UN BESOIN PARTICULIER.

Ce logiciel est construit pour i386-pc-mingw32


Peut-être faudrait-il chercher à éliminer la commande de make des paths !?

Bonsoir et à demain

vincentb1 commented 6 years ago

EZWinports c'est juste le projet sous sourceforge où je vous fait prendre le 1er make qui était un make natif MSWindows.

En ce qui concerne le make.exe que vous avez encore, c'est bizarre, ce n'est sans doute pas celui d'EZWinports, parce que c'était une version 4.2.1. Tapez juste which make dans la console Git bash, et elle vous dira d'où est-ce qu'elle le prend. Aussi bien c'est un make de MSYS1 que vous avez installé il y a longtemps avec un autre logiciel qui n'a rien à voir avec notre problème, mais qui est dans votre PATH. Du coup si Git bash est sur MSYS2 ça risque en effet de ne pas bien marcher au niveau de la gestion des chemins et de l'interpréteur de commande utilisé avec ce make là.

Mais du coup, j'y pense, si on n'a pas réussi avec le make d'EZWinports en changeant la variable SHELL c'est peut-être parce que la console Git bash prenait ce make 3.81 au lieu de prendre le make d'EZWinports.

En ce qui concerne le PATH, il suffit que dans votre ~/.profile vous mettiez dans PATH le chemin /usr/bin avant le chemin où se trouve le make 3.81 qui vous reste sur votre PC. Le plus radical c'est encore de donner entièrement PATH dans le ~/.profile, plutôt que de rajouter des chemins à ce que MSYS2 de Git importe de MSWndows, et de ne pas mettre dans la liste le chemin où se trouve le make 3.81.

mfbellalouna commented 6 years ago

Bonjour Effectivement, dans le Git shell j'obtiens

$ which make /c/gnuwin32/bin/make

Je pense que c'est une vieille installation... je fais quoi alors ? je supprime /gnuwin32/bin/make.exe ?

mfbellalouna commented 6 years ago

Si je comprends bien, il faut que je remplace dans mon ~/.profile le chemin export PATH="/mingw64/bin:$PATH" par le chemin export PATH="/Program Files/Git/usr/bin:$PATH", c'est bien cela ?... après avoir copié dedans le make obtenu de 7zip ?

vincentb1 commented 6 years ago

Non, ça serait export PATH="/c/Program Files/Git/usr/bin:$PATH", avec un /cdevant. Mais il suffit d'écrire : export PATH="/usr/bin:$PATH" puisque MSYS2 de Git Bash rend /usr/bin équivalent à C:\Program Files\Git\usr\bin.

À partir du echo $PATH que vous m'avez donné tantôt, on pourrait aussi donner le PATH en entier sans que ce soit un ajout ainsi :

export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64:/usr/bin/vendor_perl:/usr/bin/core_perl"
mfbellalouna commented 6 years ago

Bonsoir donc récapitulons: en mettant votre ligne de commandes, où il n'y a effectivement pas make, j'ai la réponse suivante:

$ which make which: no make in (/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64:/usr/bin/vendor_perl:/usr/bin/core_perl)

Peut-être que je dois faire quelque manipulation supplémentaire ?

vincentb1 commented 6 years ago

La réponse de which make ne dépend pas du répertoire courant. which xxxx explore tous les répertoires du PATH et teste si l'un d'eux contient le programme xxxx, et si oui retourne le 1er trouvé. La réponse de which make confirme que

  1. vous avez bien supprimé le chemin c:\gnuwin32 de votre PATH sous Git bash (en modifiant le fichier ~/.profile, et en le re-sourçant — c'est à dire avec la commande . ~/.profile — ou bien en sortant/re-rentrant de la console Git bash).
  2. vous avez aussi bien supprime le make d'EZWinports de /usr/bin de Git bash — c'est à dire du répertoire MSWindows C:\Program Files\Git\usr\bin.

Vous pouvez encore faire un test en tapant make --version dans la console Git bash, et normalement cela devrait faire une erreur en disant que la commande make n'est pas trouvée.

Si tout cela se passe comme prévu, alors la suite c'est de dézipper l'archive du make de MSYS2 (voir le point №3 de mon commentaire d'il y a 2 jours).

mfbellalouna commented 6 years ago

Bonsoir En faisant ce que vous m'avez dit de faire (dézipper le make et récupérer make.exe pour le mettre dans C:\Program Files\Git\usr\bin, j'obtiens en faisant les tests que vous préconisez:

$ which make /usr/bin/make

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make --version GNU Make 4.2.1 Built for x86_64-pc-msys Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Ma question est alors: c'est bon ? j'attaque make install? pas de problèmes pour cp?.. cp dont l'absence a fait "foirer le truc" à la première installation, rappelons-le !

vincentb1 commented 6 years ago

Oui, oui, là je pense que c'est bon, on croise les doigts et on fait make install dans le répertoire ~/Projects/fmtcount/dist, et ça marchera peut-être… ;-)

Pour rappel, ce n'est pas l'absence de cp qui a posé problème, c'était un mauvais diagnostic de ma part. Le problème c'était que le makefile passe au shell une commande du type command … qui suppose que le shell est bash, or nous avions installé un make natif, donc ça ne pouvait marcher que si la variable d'environnement SHELL était réglée pour que make utilise bash, or un tel réglage est impossible, car la variable SHELL est réglée en dur dans le makefile, et le make natif n'est pas capable de l'exploiter car il ne comprends pas les chemins du genre /bin/bash qui ne sont pas des chemins MSWindows. Ce qui est vraiment dommage c'est qu'il n'ait pas sorti un message d'erreur plus explicite du genre « désolé, mais je ne trouve pas ce shell » au lieu de se rabattre sur la valeur par défaut — MSDos — en silence.

En fait, le shell par défaut des make sous les système d'exploitation nix, c'est sh et non bash, comme le makefile utilise des commandes spécifiques à bash il règle la variable d'environnement SHELL pour demander bash et que ça marche quelque soit le shell d'où la commande make install est appelé. Mais bon, ça suppose qu'on est dans un système nix au niveau des chemins du genre /bin/bash. Pour info sous les systèmes *nix le même noyeau peut être appelé par plusieurs shells différents (sh, ksh, csh, …, y en a toute une palanquée). Mais bon, bash est quand même le plus employé, et le seul qui a été porté sous MSWindows à ma connaissance.

mfbellalouna commented 6 years ago

Bon.. malgrè tous nos talismans, j'ai une erreur.. d'un genre inédit ! je donne le rapport;

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make install Makefile:18: warning: overriding recipe for target '/c/Program' Makefile:15: warning: ignoring old recipe for target '/c/Program' Makefile:18: warning: overriding recipe for target 'Files/MiKTeX' Makefile:15: warning: ignoring old recipe for target 'Files/MiKTeX' latex fmtcount.ins make: "c:/Program: Command not found make: *** [Makefile:43: fmtcount.sty] Error 127

Tout se passe comme si le blanc de Program Files n'est pas accepté !

mfbellalouna commented 6 years ago

Je vous prie de noter que, désormais mon fichier ~/.profile est le suivant:

export TEXMF_INSTALL_DIR="/c/Program Files/MiKTeX 2.9" cd ~/Projects/fmtcount/dist export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/c/Users/Mfaouzi/AppData/Local/Programs/MiKTeX 2.9/miktex/bin/x64:/usr/bin/vendor_perl:/usr/bin/core_perl" export SHELL='C:\Program Files\Git\usr\bin\bash.exe'

vincentb1 commented 6 years ago

Juste pour info, vous pouvez virer la ligne export SHELL=… du ~/.profile. Ce n'est pas ça la cause de l'erreur, car comme je vous l'ai expliqué le makefile réglant en dur la variable SHELL, celle provenant de l'environnement est ignorée. Mais c'est juste que ce n'est jamais bon de garder dans le ~/.profile qq chose qui ne sert à rien…

Bon, voyons le côté positif des choses, on a quand même avancé, puisque maintenant on va plus loin que l'erreur sur command cp ….

On en est déjà à plus de 86 messages, le but initial était de développer fmtcount en arabe, mais la plupart des messages concerne l'installation d'outils pour pouvoir collaborer plus facilement… Je pense qu'il faut à un moment se poser la question si on suit la bonne voie. Il y a trois possibilités qui s'offrent à nous :

  1. on continue sur installer un make qui marche dans Git bash. Dans ce cas je vais desinstaller mon git et re-installer le dernier pour avoir la même config que vous et reproduire les pb que vous voyez chez moi , ça ira plus vite si je vous dis exactement quoi faire pour que ça marche plutôt que découvrir et résoudre les pb au fur et à mesure.
  2. on abandonne l'option avec Git bash, et vous installez MSYS2, après tout ce n'est pas si gros (le M de MSYS signifie « minimal »). C'est ce que j'utilise chez moi, donc on est à peu près assuré que ça aboutira dans un temps limité. Ceci dit l'installation ne sera pas immédiate, car après avoir fait tourner l'installateur, il faudra bien configurer le ~/.bashrc de MSYS2 qui contiendra à peu près la même chose que le ~/.profile de Git bash, mais qui ne sera pas au même endroit puisque le ~ de MSYS2 est typiquement un répertoire C:\Program Files\msys64\home\votre_nom qui ne correspond pas à celui de Git bash qui est typiquement un répertoire C:\Users\votre_nom.
  3. J'empaquette ce que je fais dans fmtcount et je vous l'envoie par mél. La il faudra l'installer manuellement, ça ne sera pas juste git pull suivi de make install.

Je suis désolé que ça prenne autant de temps. À dire vrai d'une part j'ai le travers d'être terriblement têtu, d'autre part je vous ai imposé une expérience d'installation un peu en free style, puisque ce n'est pas ce que j'utilise chez moi, à dire vrai je n'anticipais pas que cela serait aussi compliqué et ça partait de la bonne intention de vous proposer une installation plus légère en espace disque, et finalement en ce qui me concerne il est aussi motivant de comprendre ce qui n'a pas marché dans ce que nous avons fait, que de développer une nouvelle langue dans fmtcount — donc en bref j'ai un peu basculé sur autre chose sans tenir compte de ce qui était votre motivation initiale à savoir ajouter l'arabe.

En ce qui concerne le nouveau pb que vous avez rencontré, juste tant qu'on y est, est-ce que vous pouvez s'il vous plaît taper la commande :

pushd ../trunk
./cp2dist -f fmtcount.sty -f fcnumparser.sty -f fcprefix.sty README fmtcount-manual.tex ../dist
popd
mfbellalouna commented 6 years ago

Bonjour Courage on s'en sortira ! Plus sérieusement, je suis plutôt enclin à la solution 1. ou à la solution 3, car je pense que j'aurais encore des pépins aux installations, pour l'option 2 ! Choisissez l'option qui vous convient le mieux. En ce qui concerne vos recommandations de commandes, je vous envoie une copie de la console Git, où je ne vois pas d'effet "mesurable":

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ pushd ../trunk ~/Projects/fmtcount/trunk ~/Projects/fmtcount/dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/trunk (master) $ ./cp2dist -f fmtcount.sty -f fcnumparser.sty -f fcprefix.sty README fmtcount-manual.tex ../dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/trunk (master) $ popd ~/Projects/fmtcount/dist

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $

vincentb1 commented 6 years ago

Je vous propose qu'on fasse temporairement 1 & 3, c'est à dire que pendant que je regarde de plus près comment débourrer cette installation on commence en parallèle à regarder ce que fait déjà fmtcount en arabe, c'est quand même le but de tout ça…

Je vous ai envoyé par mél. l'état courant des choses. Pour installer manuellement, le plus simple c'est de :

  1. dézipper le fmtcount.tds.zip qui est dans fmtcount.zip dans un répertoire de votre choix — par ex. un répertoire C:\Users\Mfaouzi\Projects\texmf à créer,
  2. de rajouter ce répertoire dans l'onglet Roots de l'outil MiKTeX settings
  3. de cliquer sur « Refresh FNDB » sous l'onglet General de l'outil MiKTeX settings

Est-ce que vous pouvez au passage taper sous ~/Projects/fmtcount/dist la commande suivante :

make -C ../trunk dist
mfbellalouna commented 6 years ago

Bonjour je viens de faire les étapes demandées en 1., 2. et 3. Que tester maintenant ?

D'autre part, pour ce que vous avez demandé, j'ai la réponse suivante:.. essayé pour -C et -c car je ne sais jamais !

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make -C --/trunk dist make: *** --/trunk: No such file or directory. Stop.

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make -c --/trunk dist make: invalid option -- c make: unrecognized option '--/trunk' Usage: make [options] [target] ... Options: -b, -m Ignored for compatibility. -B, --always-make Unconditionally make all targets. -C DIRECTORY, --directory=DIRECTORY Change to DIRECTORY before doing anything. -d Print lots of debugging information. --debug[=FLAGS] Print various types of debugging information. -e, --environment-overrides Environment variables override makefiles. --eval=STRING Evaluate STRING as a makefile statement. -f FILE, --file=FILE, --makefile=FILE Read FILE as a makefile. -h, --help Print this message and exit. -i, --ignore-errors Ignore errors from recipes. -I DIRECTORY, --include-dir=DIRECTORY Search DIRECTORY for included makefiles. -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -k, --keep-going Keep going when some targets can't be made. -l [N], --load-average[=N], --max-load[=N] Don't start multiple jobs unless load is below N. -L, --check-symlink-times Use the latest mtime between symlinks and target. -n, --just-print, --dry-run, --recon Don't actually run any recipe; just print them. -o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it. -O[TYPE], --output-sync[=TYPE] Synchronize output of parallel jobs by TYPE. -p, --print-data-base Print make's internal database. -q, --question Run no recipe; exit status says if up to date. -r, --no-builtin-rules Disable the built-in implicit rules. -R, --no-builtin-variables Disable the built-in variable settings. -s, --silent, --quiet Don't echo recipes. -S, --no-keep-going, --stop Turns off -k. -t, --touch Touch targets instead of remaking them. --trace Print tracing information. -v, --version Print the version number of make and exit. -w, --print-directory Print the current directory. --no-print-directory Turn off -w, even if it was turned on implicitly. -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE Consider FILE to be infinitely new. --warn-undefined-variables Warn when an undefined variable is referenced.

This program built for x86_64-pc-msys Report bugs to bug-make@gnu.org

vincentb1 commented 6 years ago

Pour votre dernière expérience c'est normal que ça n'ait pas marché, parce que vous avez tapé --/trunk au lieu de ../trunk (vous avez mis des signes moins au lieu des points). Et sinon c'est -C (capital), et non -c (bas de casse).

Mais, bon, laissez tomber, je verrai tout ça chez moi, lorsque j'aurai le temps…

Pour info, faire :

make -C «répertoire» «cible» 

est une option de make revenant à faire :

pushd «répertoire»
make «cible»
popd 

En d'autres termes on construit la cible «cible» en se plaçant temporairment dans le répertoire «répertoire».

En tapant --/trunk vous avez recherché un répertoire inexistant nommé -- sous le répertoire courant — à savoir C:\Users\Mfaouzi\Projects\fmtcount\dist — au lieu d'un répertoire nommé trunk sous le parent du répertoire courant — à savoir C:\Users\Mfaouzi\Projects\fmtcount.

mfbellalouna commented 6 years ago

Bonjour Je vous prie d'excuser mes étourderies. Cela fait si longtemps que je travaille pas sur console.. J'ai donc repris la bonne commande, qui donne toujours cette même erreur dûe à la non-prise en charge de l'espace, je pense:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make -C ../trunk dist make: Entering directory '/c/Users/Mfaouzi/Projects/fmtcount/trunk' command cp CHANGES ../dist make: "c:/Program: Command not found make: *** [Makefile:12: dist] Error 127 make: Leaving directory '/c/Users/Mfaouzi/Projects/fmtcount/trunk'

mfbellalouna commented 6 years ago

D'autre part, je vous prie de m'indiquer comment procéder aux tests, sur le fichier fmtcount.tds.zip que vous m'avez envoyé

vincentb1 commented 6 years ago

Pour les tests sur le fmtcount avec l'arabe, il suffit de créer un fichier en arabe comme vous faites d'habitude avec xelatex. Vous mettez dans le préambule

\usepackage[arabic]{fmtcount}

Et dans le corps du document vous essayez une commande, par exemple:

\numberstringnum{12}
vincentb1 commented 6 years ago

Pour le problème avec Git bash, la solution devrait être la suivante :

  1. Ne retaper pas ce qui suit, faites des copier/coller pour éviter les erreurs de frappe. Pour info sous la console Git bash on peut faire clic droit + Paste, et ça fait un coller.

  2. Éditer le fichier C:\Program Files\Git\etc\fstab et ajouter dedans les deux lignes suivantes :

c:/Program\040Files/MiKTeX\0402.9/miktex/bin/x64 /miktex/bin ntfs binary,noacl 0 0
c:/Users/Mfaouzi/AppData/Local/Programs/MiKTeX\0402.9/miktex/bin/x64 /mfaouzi/miktex/bin ntfs binary,noacl 0 0
  1. Modifier votre fichier ~/.profile, et remplacer la ligne export PATH="…" par
export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/miktex/bin:/cmd:/c/Users/Mfaouzi/AppData/Roaming/MiKTeX/2.9/miktex/bin:/mfaouzi/miktex/bin:/usr/bin/vendor_perl:/usr/bin/core_perl"
  1. Renommer le fichier ~/.profile (c'est à dire C:\Users\Mfaouzi\.profile) en ~/.bashrc (C'est à dire C:\Users\Mfaouzi\.bashrc)

  2. Sortir et rerentrer dans la console Git bash

  3. Re essayer le make install.

vincentb1 commented 6 years ago

Je commente la solution. Le fichier /etc/fstab permet de remplacer un chemin absolu MSWindows comme c:\Program Files\MiKTeX 2.9\miktex\bin\x64 par un chemin MSYS comme /miktex/bin (ou n'importe quoi qui vous plaît, mais sans espace).

La syntaxe du fichier fstab pour les chemin MSWindows c'est :

  1. Remplacer les séparateurs de fichiers \ par /
  2. Remplacer les caractères spéciaux comme l'espace, par la séquence d'échappement octale équivalente \nnn. Le code ASCII de l'espace est 32 en décimal, 20 en hexadécimal, et 40 en octal, donc on met \040 pour chaque espace.
  3. Après on utilise le nom MSYS à chaque fois que c'est nécessaire, notamment dans le PATH ce qui permet de se débarrasser des espaces.
mfbellalouna commented 6 years ago

Bonsoir j'ai bien reçu vos commentaires, et je crois que nous sommes près du but d'après ce que j'en lis. Je m'attelle à la tâche demain matin et vous tiens au courant

vincentb1 commented 6 years ago

Oui, j'ai oublié de vous dire un truc, il faudra refaire un git pull avant le make install — ou bien après, et refaire make install de nouveau. En effet, j'avais bien commis les changements de fmtcount dans mon clone local de dépôt, mais j'avais oublié de les pousser dans le dépôt distant, c'est à dire sur GitHub, ce que je viens juste de faire, ce qui m'a permis au passage de voir que mon nouveau Git marche tout aussi bien que l'ancien… Vous pouvez voir la commission ici.

mfbellalouna commented 6 years ago

Bonjour Je vais commencer mon installation maintenant et j'ai une ou deux interrogations:

""dézipper le fmtcount.tds.zip qui est dans fmtcount.zip dans un répertoire de votre choix — par ex. un répertoire C:\Users\Mfaouzi\Projects\texmf à créer, de rajouter ce répertoire dans l'onglet Roots de l'outil MiKTeX settings de cliquer sur « Refresh FNDB » sous l'onglet General de l'outil MiKTeX settings""

Cette opération va-t-elle rafraichir l'ancienne version? J'ai fait un premier test et j'ai eu le message: ! LaTeX Error: Unknown optionarabic' for package fmtcount'.

mfbellalouna commented 6 years ago

Bonjour Apres toutes ces manipulations, il n'y a pas eu de résultats tangibles, pour la prise en charge de l'espace:

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master) $ make install Makefile:18: warning: overriding recipe for target '/c/Program' Makefile:15: warning: ignoring old recipe for target '/c/Program' Makefile:18: warning: overriding recipe for target 'Files/MiKTeX' Makefile:15: warning: ignoring old recipe for target 'Files/MiKTeX' latex fmtcount.ins make: "c:/Program: Command not found make: *** [Makefile:43: fmtcount.sty] Error 127

Mfaouzi@FanEnvy MINGW64 ~/Projects/fmtcount/dist (master)