diff options
author | Werner Lemberg <wl@gnu.org> | 2014-10-26 20:08:01 +0100 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2014-10-26 20:08:01 +0100 |
commit | cbd37b446c0e5f905a31d48305b69ea14c83c069 (patch) | |
tree | d4cdca04764db18ebc57b73152e918e419b4b765 | |
parent | fe33a2736386146c79da3b9dec507d2dfc2a6927 (diff) | |
download | groff-git-cbd37b446c0e5f905a31d48305b69ea14c83c069.tar.gz |
Add Windows `.cmd' wrapper files.
* arch/mingw/*: New files, provided by Eli.
* Makefile.in (make_winscripts, make_install_winscripts,
make_uninstall_winscripts): New target variables.
(MDEFINES): Add them.
(OTHERDIRS): Add `arch/mingw'.
* m4/groff.m4 (GROFF_CMD_FILES): New macro
* configure.ac: Call it.
* configure: Regenerated.
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | Makefile.in | 9 | ||||
-rw-r--r-- | arch/mingw/Makefile.sub | 66 | ||||
-rw-r--r-- | arch/mingw/afmtodit.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/chem.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/gperl.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/gpinyin.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/grap2graph.cmd | 86 | ||||
-rw-r--r-- | arch/mingw/groffer.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/grog.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/gropdf.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/mmroff.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/neqn.cmd | 6 | ||||
-rw-r--r-- | arch/mingw/pdfmom.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/roff2dvi.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/roff2html.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/roff2pdf.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/roff2ps.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/roff2text.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/roff2x.cmd | 2 | ||||
-rw-r--r-- | arch/mingw/zzz | 17 | ||||
-rwxr-xr-x | configure | 87 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | m4/groff.m4 | 23 |
24 files changed, 313 insertions, 28 deletions
@@ -1,3 +1,19 @@ +2014-10-26 Eli Zaretskii <eliz@gnu.org> + Werner LEMBERG <wl@gnu.org> + + Add Windows `.cmd' wrapper files. + + * arch/mingw/*: New files, provided by Eli. + + * Makefile.in (make_winscripts, make_install_winscripts, + make_uninstall_winscripts): New target variables. + (MDEFINES): Add them. + (OTHERDIRS): Add `arch/mingw'. + + * m4/groff.m4 (GROFF_CMD_FILES): New macro + * configure.ac: Call it. + * configure: Regenerated. + 2014-10-23 Bertrand Garrigues <bertrand.garrigues@laposte.net> Fix `install' and `uninstall' issues. diff --git a/Makefile.in b/Makefile.in index a34a6a5df..7351bbce3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -308,6 +308,11 @@ make_examples=@make_examples@ make_install_examples=@make_install_examples@ make_uninstall_examples=@make_uninstall_examples@ +# Windows `.cmd' files +make_winscripts=@make_winscripts@ +make_install_winscripts=@make_install_winscripts@ +make_uninstall_winscripts=@make_uninstall_winscripts@ + # All the previous installation directories, when used, are prefixed with # $(DESTDIR) during install and uninstall, to support staged installations. @@ -593,6 +598,9 @@ MDEFINES=\ "make_examples=$(make_examples)" \ "make_install_examples=$(make_install_examples)" \ "make_uninstall_examples=$(make_uninstall_examples)" \ + "make_winscripts=$(make_winscripts)" \ + "make_install_winscripts=$(make_install_winscripts)" \ + "make_uninstall_winscripts=$(make_uninstall_winscripts)" \ "man1dir=$(man1dir)" \ "man1ext=$(man1ext)" \ "man5dir=$(man5dir)" \ @@ -691,6 +699,7 @@ ALLTTYDEVDIRS=\ # pdf stuff must be processed before `contrib/mom' OTHERDIRS=\ font/devpdf \ + arch/mingw \ contrib/chem \ contrib/eqn2graph \ contrib/gdiffmk \ diff --git a/arch/mingw/Makefile.sub b/arch/mingw/Makefile.sub new file mode 100644 index 000000000..4c1e95768 --- /dev/null +++ b/arch/mingw/Makefile.sub @@ -0,0 +1,66 @@ +# Copyright (C) 2014 +# Free Software Foundation, Inc. +# +# This file is part of groff. +# +# groff is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# groff is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# Makefile.sub +# +WINSCRIPTS=\ + afmtodit.cmd \ + chem.cmd \ + gperl.cmd \ + gpinyin.cmd \ + grap2graph.cmd \ + groffer.cmd \ + grog.cmd \ + gropdf.cmd \ + mmroff.cmd \ + neqn.cmd \ + pdfmom.cmd \ + roff2dvi.cmd \ + roff2html.cmd \ + roff2pdf.cmd \ + roff2ps.cmd \ + roff2text.cmd \ + roff2x.cmd + +RM=rm -f + +all: $(make_winscripts) +install_data: $(make_install_winscripts) +uninstall_sub: $(make_uninstall_winscripts) + +winscripts: $(WINSCRIPTS) + +install_winscripts: $(WINSCRIPTS) + -test -d $(DESTDIR)$(bindir) || $(mkinstalldirs) $(DESTDIR)$(bindir) + for f in $(WINSCRIPTS); do \ + $(RM) $(DESTDIR)$(bindir)/$$f; \ + $(INSTALL_SCRIPT) $(srcdir)/$$f $(DESTDIR)$(bindir)/$$f; \ + done + +uninstall_winscripts: + -for f in $(WINSCRIPTS); do \ + $(RM) $(DESTDIR)$(bindir)/$$f; \ + done + +######################################################################## +# Emacs settings +######################################################################## +# +# Local Variables: +# mode: makefile +# End: diff --git a/arch/mingw/afmtodit.cmd b/arch/mingw/afmtodit.cmd new file mode 100644 index 000000000..36012ed6f --- /dev/null +++ b/arch/mingw/afmtodit.cmd @@ -0,0 +1,2 @@ +@echo off
+perl -w %~dpn0 %*
diff --git a/arch/mingw/chem.cmd b/arch/mingw/chem.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/chem.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/gperl.cmd b/arch/mingw/gperl.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/gperl.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/gpinyin.cmd b/arch/mingw/gpinyin.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/gpinyin.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/grap2graph.cmd b/arch/mingw/grap2graph.cmd new file mode 100644 index 000000000..84f408583 --- /dev/null +++ b/arch/mingw/grap2graph.cmd @@ -0,0 +1,86 @@ +@echo off
+REM grap2graph -- compile graph description descriptions to bitmap images
+REM
+REM by Eli Zaretskii <eliz@gnu.org>, translation of a Unix shell
+REM script written by Eric S. Raymond <esr@thyrsus.com>, May 2003
+REM
+REM In Unixland, the magic is in knowing what to string together...
+REM
+REM Take grap description on stdin, emit cropped bitmap on stdout.
+REM The pic markup should *not* be wrapped in .G1/.G2, this script will do that.
+REM A -U option on the command line enables gpic/groff "unsafe" mode.
+REM A -format FOO option changes the image output format to any format
+REM supported by convert(1). All other options are passed to convert(1).
+REM The default format is PNG.
+REM
+REM
+REM Requires the groff suite and the ImageMagick tools. Both are open source.
+REM This code is released to the public domain.
+REM
+REM Here are the assumptions behind the option processing:
+REM
+REM 1. None of the options of grap(1) are relevant.
+REM
+REM 2. Only the -U option of groff(1) is relevant.
+REM
+REM 3. Many options of convert(1) are potentially relevant, (especially
+REM -density, -interlace, -transparency, -border, and -comment).
+REM
+REM Thus, we pass -U to groff(1), and everything else to convert(1).
+REM
+setlocal
+set groff_opts=
+set convert_opts=
+set format=png
+
+:loop
+if "%1" == "" goto body
+if "%1" == "-v" goto version
+if "%1" == "--version" goto version
+if "%1" == "--help" goto usage
+if not "%1%" == "-unsafe" goto format
+set groff_opts=-U
+shift
+goto loop
+:format
+if not "%1" == "-format" goto convert
+set format=%2
+shift
+shift
+goto loop
+:convert
+set convert_opts=%convert_opts% %1
+shift
+goto loop
+
+:body
+REM echo %groff_opts% %convert_opts% %format%
+
+set rnd1=%RANDOM%
+set rnd2=%RANDOM%
+if "%GROFF_TMPDIR%" == "" goto deftmp
+set tdir=%GROFF_TMPDIR%\grap2graph-%rnd1%
+goto runpipe
+:deftmp
+sei tdir=%TEMP%\grap2graph-%rnd1%
+
+:runpipe
+mkdir %tdir%
+echo .G1 > %tdir%\wrap
+cat >> %tdir%\wrap
+echo .G2 >> %tdir%\wrap
+grap %tdir%\wrap | groff -p %groff_opts% -Tps -P-pletter | convert -trim -crop 0x0 %convert_opts% - %tdir%/grap2graph.%format%
+cat %tdir%/grap2graph.%format%
+rm -rf %tdir%
+goto end
+
+:version
+echo GNU grap2graph (groff) version 1.22.3
+goto end
+
+:usage
+echo usage: grap2graph ^[ option ...^] ^< in ^> out
+echo.
+
+:end
+endlocal
diff --git a/arch/mingw/groffer.cmd b/arch/mingw/groffer.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/groffer.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/grog.cmd b/arch/mingw/grog.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/grog.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/gropdf.cmd b/arch/mingw/gropdf.cmd new file mode 100644 index 000000000..36012ed6f --- /dev/null +++ b/arch/mingw/gropdf.cmd @@ -0,0 +1,2 @@ +@echo off
+perl -w %~dpn0 %*
diff --git a/arch/mingw/mmroff.cmd b/arch/mingw/mmroff.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/mmroff.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/neqn.cmd b/arch/mingw/neqn.cmd new file mode 100644 index 000000000..d50169284 --- /dev/null +++ b/arch/mingw/neqn.cmd @@ -0,0 +1,6 @@ +@echo off
+setlocal
+set Path=%~dp0;%Path%
+if not "%GROFF_BIN_PATH%" == "" set Path=%GROFF_BIN_PATH%;%Path%
+eqn -Tascii %*
+endlocal
diff --git a/arch/mingw/pdfmom.cmd b/arch/mingw/pdfmom.cmd new file mode 100644 index 000000000..36012ed6f --- /dev/null +++ b/arch/mingw/pdfmom.cmd @@ -0,0 +1,2 @@ +@echo off
+perl -w %~dpn0 %*
diff --git a/arch/mingw/roff2dvi.cmd b/arch/mingw/roff2dvi.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/roff2dvi.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/roff2html.cmd b/arch/mingw/roff2html.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/roff2html.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/roff2pdf.cmd b/arch/mingw/roff2pdf.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/roff2pdf.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/roff2ps.cmd b/arch/mingw/roff2ps.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/roff2ps.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/roff2text.cmd b/arch/mingw/roff2text.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/roff2text.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/roff2x.cmd b/arch/mingw/roff2x.cmd new file mode 100644 index 000000000..3fb18d437 --- /dev/null +++ b/arch/mingw/roff2x.cmd @@ -0,0 +1,2 @@ +@echo off
+perl %~dpn0 %*
diff --git a/arch/mingw/zzz b/arch/mingw/zzz new file mode 100644 index 000000000..f6c6f3c5f --- /dev/null +++ b/arch/mingw/zzz @@ -0,0 +1,17 @@ +afmtodit.cmd +chem.cmd +gperl.cmd +gpinyin.cmd +grap2graph.cmd +groffer.cmd +grog.cmd +gropdf.cmd +mmroff.cmd +neqn.cmd +pdfmom.cmd +roff2dvi.cmd +roff2html.cmd +roff2pdf.cmd +roff2ps.cmd +roff2text.cmd +roff2x.cmd @@ -710,6 +710,9 @@ X_LIBS X_PRE_LIBS X_CFLAGS XMKMF +make_uninstall_winscripts +make_install_winscripts +make_winscripts OTHERDEVDIRS TTYDEVDIRS ac_ct_CXX @@ -4679,6 +4682,25 @@ $as_echo "yes" >&6; } ;; $as_echo "no" >&6; } ;; esac fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install .cmd wrapper scripts for Windows" >&5 +$as_echo_n "checking whether to install .cmd wrapper scripts for Windows... " >&6; } + case "$host_os" in + *mingw*) + make_winscripts=winscripts + make_install_winscripts=install_winscripts + make_uninstall_winscripts=uninstall_winscripts + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } ;; + *) + make_winscripts= + make_install_winscripts= + make_uninstall_winscripts= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } @@ -6034,11 +6056,11 @@ $as_echo "$as_me: WARNING: Invalid \`--with-doc' argument: $i" >&2;} done fi if test $docadd_html = yes; then - make_install_shipped_htmldoc=install_shipped_htmldoc - make_uninstall_shipped_htmldoc=uninstall_shipped_htmldoc + make_install_shipped_htmldoc=install_shipped_htmldoc + make_uninstall_shipped_htmldoc=uninstall_shipped_htmldoc else - make_install_shipped_htmldoc= - make_uninstall_shipped_htmldoc= + make_install_shipped_htmldoc= + make_uninstall_shipped_htmldoc= fi if test $docadd_other = yes; then make_otherdoc=otherdoc @@ -6065,6 +6087,8 @@ $as_echo "$as_me: WARNING: Invalid \`--with-doc' argument: $i" >&2;} + + if test $docadd_info = yes; then missing= # Extract the first word of "makeinfo", so it can be a program name with args. @@ -9183,36 +9207,42 @@ else if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi - if test "$cross_compiling" = yes; then : - - case "$host_os" in - aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; - *) am_cv_func_iconv_works="guessing yes" ;; - esac - + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <iconv.h> #include <string.h> -int main () + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + +int +main () { - int result = 0; +int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { - static const char input[] = "\342\202\254"; /* EURO SIGN */ + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; - const char *inptr = input; + ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, - (char **) &inptr, &inbytesleft, + &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; @@ -9225,14 +9255,14 @@ int main () iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { - static const char input[] = "\263"; + static ICONV_CONST char input[] = "\263"; char buf[10]; - const char *inptr = input; + ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, - (char **) &inptr, &inbytesleft, + &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; @@ -9244,14 +9274,14 @@ int main () iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { - static const char input[] = "\304"; + static ICONV_CONST char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; - const char *inptr = input; + ICONV_CONST char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, + &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; @@ -9264,14 +9294,14 @@ int main () iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { - static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; - const char *inptr = input; + ICONV_CONST char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, - (char **) &inptr, &inbytesleft, + &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; @@ -9291,17 +9321,20 @@ int main () && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; + + ; + return 0; } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : am_cv_func_iconv_works=yes -else - am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi + test "$am_cv_func_iconv_works" = no || break + done LIBS="$am_save_LIBS" fi diff --git a/configure.ac b/configure.ac index 838c11bb3..c77916556 100644 --- a/configure.ac +++ b/configure.ac @@ -54,6 +54,7 @@ AC_PROG_CXX GROFF_CXX_CHECK GROFF_EBCDIC GROFF_OS390 +GROFF_CMD_FILES GROFF_X11 GROFF_APPRESDIR_OPTION GROFF_APPRESDIR_DEFAULT diff --git a/m4/groff.m4 b/m4/groff.m4 index 8e8105756..28ff570b9 100644 --- a/m4/groff.m4 +++ b/m4/groff.m4 @@ -68,7 +68,7 @@ AC_DEFUN([GROFF_PERL], AC_MSG_ERROR([perl version is too old], 1))]) -# It is possible to fine-tune generation of documenation. +# It is possible to fine-tune generation of documentation. AC_DEFUN([GROFF_DOC_CHECK], [AC_ARG_WITH([doc], @@ -991,6 +991,27 @@ AC_DEFUN([GROFF_OS390], fi]) +# Check whether Windows scripts like `afmtodit.cmd' should be installed. + +AC_DEFUN([GROFF_CMD_FILES], + [AC_MSG_CHECKING([whether to install .cmd wrapper scripts for Windows]) + case "$host_os" in + *mingw*) + make_winscripts=winscripts + make_install_winscripts=install_winscripts + make_uninstall_winscripts=uninstall_winscripts + AC_MSG_RESULT([yes]) ;; + *) + make_winscripts= + make_install_winscripts= + make_uninstall_winscripts= + AC_MSG_RESULT([no]) ;; + esac + AC_SUBST([make_winscripts]) + AC_SUBST([make_install_winscripts]) + AC_SUBST([make_uninstall_winscripts])]) + + # Check whether we need a declaration for a function. # # Stolen from GNU bfd. |