Projet mkd/Cygwin
De Wiki EELL.
JPL (discuter | contributions) m (→Version Cygwin Only (beta)) |
JPL (discuter | contributions) m (→Version Cygwin Only (beta)) |
||
Ligne 48 : | Ligne 48 : | ||
==== Version Cygwin Only (beta) ==== | ==== Version Cygwin Only (beta) ==== | ||
- | Cette version utilise le Makefile standard pour générer mkd.exe sous cygwin. | + | Cette version utilise le Makefile standard pour générer mkd.exe et la doc sous cygwin. |
- | Cette version est intéressante car on peut créer une version de tests, non gobale, avec la documentation unix standard | + | ; DOC : |
+ | |||
+ | Cette version est intéressante car on peut créer une version de tests, non gobale, avec la documentation unix standard : | ||
"make -d install DESTDIR=../tests" | "make -d install DESTDIR=../tests" | ||
Ligne 57 : | Ligne 59 : | ||
cp -Rf ../tests/usr /. | cp -Rf ../tests/usr /. | ||
- | ; mkd_cygwin_only.bash : | + | ; EXE : |
+ | '''mkd_cygwin_only.bash :''' | ||
Recompiler l'exécutable pour le processeur courant (X86 ou X86_64) : | Recompiler l'exécutable pour le processeur courant (X86 ou X86_64) : | ||
Version du 3 décembre 2015 à 09:47
![]() | Cette page n'est pas finie. Veuillez considérer le plan et le contenu comme incomplets et en préparation, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable. |
↑ Retour vers les fichiers en développement
Sommaire |
Remarques
- _README-Cywin64-2015.txt
- Note : Les paquets make et gcc doivent être installés ainsi que le paquet gettext pour la version multilingue
Make mkd.exe version 2015 for cygwin under Windows 10. ------------------------------------------------------ This version 2015 update the release 2013 version.h : In english version (mkd_cywin_mkd_only), the Line GETTEXT is commented. In multilingual version (mkd_cygwin_multilang), the line GETTEXT is uncommented. Perform mkd.exe only under cygwin : ------------------------------------- you can compile this version with the command ./mkd_cygwin_only.bash with the _CYGWIN_cmd (konsole for cygwin) this version use the normal Makefile with //#define GETTEXT ( commented ) in version.h #define MinGW ( uncommented ) in version.h Perform mkd.exe under Windows_10 and under cygwin : ---------------------------------------------------- you can compile the new version ./mkd_cygwin_windows.bash in the _CYGWIN_cmd (konsole for cygwin) this version use mkd_cygwin_windows.mak with the gcc windows option -mno-cygwin and : #define version //#define GETTEXT ( commented ) in version.h #define MinGW ( uncommented ) in version.h Perform mkd.exe in multilingual version under cygwin : ----------------------------------------------------- Compile the new version with the command ./mkd_multilang.bash in the _CYGWIN_cmd (konsole for cygwin) This version use mkd_multilang.mak with the options : CFLAGS = -I/usr/i686-pc-cygwin/sys-root/usr/include LDFLAGS = -L/usr/i686-pc-cygwin/sys-root/usr/lib #define GETTEXT uncommented in version.h #define MinGW uncommented in version.h
Versions (en)
Version Cygwin Only (beta)
Cette version utilise le Makefile standard pour générer mkd.exe et la doc sous cygwin.
- DOC
Cette version est intéressante car on peut créer une version de tests, non gobale, avec la documentation unix standard :
"make -d install DESTDIR=../tests"
On peut, si on le désire, copier la documentation vers les répertoires cygwin :
cp -Rf ../tests/usr /.
- EXE
mkd_cygwin_only.bash : Recompiler l'exécutable pour le processeur courant (X86 ou X86_64) :
#!/bin/bash make mkd -d
- Makefile
#!/bin/make # file: Makefile for packaging mkd on debian or ubuntu sytems # modified by Jean-Paul Louyot 2012-06-08 # # Copyright: ©EELL http://edeulo.free.fr/wiki/index.php/Projet_mkd#LE_DROIT_DE_COPIE: # for tests type command "make -d install DESTDIR=../tests" for tests ################# # BIN = $(DESTDIR)/usr/bin CATMANDIR = $(DESTDIR)/var/cache/man ETC = $(DESTDIR)/etc DOC = $(DESTDIR)/usr/share/doc ICONS = $(DESTDIR)/usr/share/icons/hicolor LANG = $(DESTDIR)/usr/share/locale MAN = $(DESTDIR)/usr/share/man MIME = $(DESTDIR)/usr/share/mime PGM = mkd SRCS = mkd.c asm.c basic.c cpp.c fortran.c pascal.c shell.c tri.c HDRS = version.h asm.h basic.h cpp.h fortran.h pascal.h shell.h find.inc.h \ internationalisation.h find.inc.c OBJS = mkd.o asm.o cpp.o basic.o fortran.o pascal.o shell.o tri.o LIBS = CFLAGS = -O LDFLAGS = SPLINTFLAG = -weak # create bin files: $(PGM): $(SRCS) $(HDRS) # force recompilation $(SRCS) $(HDRS) # rm $(PGM) gcc -c $(CFLAGS) $(SRCS) $(LIBS) gcc -o $(LDFLAGS) $(PGM) $(OBJS) $(LIBS) chmod 755 $(PGM) # -@strip $(PGM) # clean ASM and Link reloc install: $(PGM) # create for tests $(DESTDIR) and copy executable in bin directory: install -d $(BIN) $(CATMANDIR) $(ETC) $(DOC) $(ICONS) $(LANG) $(MAN) $(MIME) install $(PGM) $(BIN)/. # install docs: #install -d $(DOC)/$(PGM)/html #install -m644 doc/*.html $(DOC)/$(PGM)/html/. # install icons and update cache: see update in post-install package install -d $(ICONS)/256x256/apps $(ICONS)/48x48/apps $(ICONS)/32x32/apps $(ICONS)/16x16/apps chmod 644 icons/* cp -f icons/mkd-256x256.png $(ICONS)/256x256/apps/mkd.png cp -f icons/mkd-48x48.png $(ICONS)/48x48/apps/mkd.png cp -f icons/mkd-32x32.png $(ICONS)/32x32/apps/mkd.png cp -f icons/mkd-16x16.png $(ICONS)/16x16/apps/mkd.png if [ -e "/usr/share/icons/hicolor/16x16/apps/mkd.png" ]; \ then gtk-update-icon-cache -t /usr/share/icons/hicolor; fi # install languages: # Installs for tests the local languages, 'de', 'es', 'fr', it, ro, etc.: install -d $(LANG)/en/LC_MESSAGES $(LANG)/de/LC_MESSAGES $(LANG)/fr/LC_MESSAGES chmod 644 lang/* cp -f lang/mkd_en.mo $(LANG)/en/LC_MESSAGES/mkd.mo cp -f lang/mkd_fr.mo $(LANG)/fr/LC_MESSAGES/mkd.mo # install manuals: ## install default manual: install -D -m644 lang/mkd_en.1.gz $(MAN)/man1/mkd.1.gz ## install 'de' manual: #if [ -d "/usr/share/man/de.UTF-8/man1" ]; \ # then \ # install -d $(MAN)/de.UTF-8/man1; \ # cp -f lang/mkd_de.1.gz $(MAN)/de.UTF-8/man1/mkd.1.gz; \ # elif [ -d "$(MAN)/de/" ]; \ # then \ # install -d $(MAN)/de/man1; \ # cp -f lang/mkd_de.1.gz $(MAN)/de/man1/mkd.1.gz; \ #fi ## install 'fr' manual: if [ -d "/usr/share/man/fr.UTF-8/man1" ]; \ then \ install -d $(MAN)/fr.UTF-8/man1;\ cp -f lang/mkd_fr.1.gz $(MAN)/fr.UTF-8/man1/mkd.1.gz; \ elif [ -d "/usr/share/man/fr/" ]; \ then \ install -d $(MAN)/fr/man1; \ cp -f lang/mkd_fr.1.gz $(MAN)/fr/man1/mkd.1.gz ; \ fi # install catman only if selected manuals exist: if [ -e $(MAN)"/man1" ]; then catman -M $(MAN)/man1/mkd.1.gz; fi if [ -e $(MAN)"/de.UTF-8/man1/mkd.1.gz" ]; then catman -M $(MAN)/de.UTF-8/man1/mkd.1.gz; fi if [ -e $(MAN)"/de/man1/mkd.1.gz" ]; then catman -M $(MAN)/de/man1/mkd.1.gz ; fi if [ -e $(MAN)"/fr.UTF-8/man1/mkd.1.gz" ]; then catman -M $(MAN)/fr.UTF-8/man1/mkd.1.gz; fi if [ -e $(MAN)"/fr/man1/mkd.1.gz" ]; then catman -M $(MAN)/fr/man1/mkd.1.gz ; fi # install and update MIME database: see update in post-install package install -D -m644 mkd.xml $(MIME)/packages/mkd.xml if [-e "/usr/share/mime/packages/mkd.xml" ]; then update-mime-database /usr/share/mime/; fi # create man only in programmers source file; not for packaging if mkd is not installed # else type command "make -d mkd.1" to create modified file "manuals" mkd.1: manuals if [ -e "/usr/bin/mkd" ]; \ then \ mkd -Ct F manuals mkd.1; \ gzip -c mkd.1 > mkd_fr.1.gz; \ mkd -Ctw M manuals mkd.1; \ gzip -c mkd.1 > mkd_en.1.gz; \ rm mkd.1; \ fi clean: # rm *.o # rm *~
Version Windows + Cygwin (alpha for tests)
Cette version est moins intéressante que la version compilée avec MinGW
- mkd_cygwin_windows.bash
#!/bin/bash # file: mkd_cygwin_windows.bash for cygwin64 5 Nov 2015 make -f mkd_cygwin_windows.mak make -f mkd_cygwin_windows.mak clean make -f mkd_cygwin_windows.mak copydoc
- mkd_cygwin_windows.mak
# file: mkd_cygwin_windows.mak # (Makefile pour cygwin et windows_10, mkd.exe version 151105) # problem with obsolete option -mno-cygwin # # terminal command : # make -f mkd_cygwin_windows.mak # make -f mkd_cygwin_windows.mak clean # make -f mkd_cygwin_windows.mak copydoc # # create nov 5,2015 by JPL for cygwin64 # amended November 6,2015 by Clara # modified ... by ... for # # Attention: avant de compiler, il faut valider les options de compilation # dans version.h (notamment version UNIX ou version PC MinGW ainsi que la version multilangue avec GETTEXT) # # i386 and x86-64 Windows Options : # -mconsole -mcygwin -mno-cygwin -mdll -mnop-fun-dllimport # -mthread -municode -mwin32 -mwindows # -fno-set-stack-executable # ###################################### PGM = mkd.exe CC = cc BINDIR = /usr/bin DOCDIR = /usr/share/doc BINMODE = 755 SRCS = mkd.c asm.c basic.c cpp.c fortran.c pascal.c shell.c tri.c HDRS = version.h mkd.h asm.h basic.h cpp.h fortran.h pascal.h shell.c \ find.inc.c find.inc.h tri.h OBJS = mkd.o asm.o basic.o cpp.o fortran.o pascal.o shell.o tri.o LIBS = CFLAGS = -mwindows -m64 # -mno-cygwin LDFLAGS = -mwindows -m64 # -mno-cygwin SPLINTFLAG = #install: $(BINDIR)/$(PGM) # $(MANUALS) $(BINDIR)/$(PGM): $(SRCS) $(HDRS) -@echo "*********** update $(PGM) :" $(CC) $(CFLAGS) $(SRCS) -c # $(CC) $(CFLAGS) -o $(PGM) $(SRCS) -c $(CC) $(LDFLAGS) -o $(PGM) $(OBJS) $(LIBS) # clean ASM and LINK reloc : -@strip $(PGM) # -@echo "*********** update $(BINDIR)/mkd.exe:" # install PGM in BINDIR -@if [ -d $(BINDIR) ]; then \ chmod $(BINMODE) $(PGM); \ cp -f $(PGM) $(BINDIR)/$(PGM); \ #if [ $(BINDIR) != "/bin" ]; then \ #rm -f /bin/$(PGM); \ #ln -s $(BINDIR)/$(PGM) /bin/$(PGM); \ #fi \ else \ echo "couldn't find $(BINDIR)";\ fi # copydoc: -@echo "*********** update $(DOCDIR)/mkd:" -@if [ -d $(DOCDIR) ]; then \ if [ ! -d $(DOCDIR)/mkd ]; then \ mkdir $(DOCDIR)/mkd; \ cp -rf doc/* $(DOCDIR)/mkd/.; \ #fi \ else if [ -d $(DOCDIR)/mkd ]; then \ cp -rf doc/* $(DOCDIR)/mkd/.; \ fi \ fi \ else \ echo "couldn't find $(DOCDIR)"; \ fi clean: rm -f $(OBJS)
version multilingue (en projet)
Note : Les paquets make, gcc et gettext doivent être installés
La compilation des sources de la version officielle avec cygwin permet normalement de créer des version multilingues de mkd.exe avec gettext.
- Cygwin X86_64
Ce projet à l'étude en fin 2015 n'a pas abouti faute de librairies associées à gettext dans la version cygwin X86_64.
- Cygwin X86
Cette version n'a pas été évaluée en fin 2015
Il semble que ces libraires soient présentes dans la version i686.
Sous versions 32 bits X86 il faut dé-commenter gettext dans version.h et de mettre à jour le numéro de version