pdf2djvu-0.7.17/0000755000000000000000000000000012151732431012027 5ustar rootrootpdf2djvu-0.7.17/version.hh.in0000644000000000000000000000420012151732417014442 0ustar rootroot/* version.hh.in. Generated from configure.ac by autoheader. */ /* Define to the version of DjVuLibre */ #undef DJVULIBRE_VERSION_STRING /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define to the version of GraphicsMagick++ */ #undef GRAPHICSMAGICK_VERSION_STRING /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define if fork(3) is available. */ #undef HAVE_FORK /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have GraphicsMagick++ installed */ #undef HAVE_GRAPHICSMAGICK /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define if you have GNOME XSLT library installed */ #undef HAVE_LIBXSLT /* Define if OpenMP is enabled */ #undef HAVE_OPENMP /* Define if you have PStreams installed and usable */ #undef HAVE_PSTREAMS /* Define if you have the file */ #undef HAVE_PSTREAMS_PSTREAM_H /* Define if you have the file */ #undef HAVE_PSTREAM_H /* Define if wchar_t encoding is UTF-32 or UTF-16 */ #undef HAVE_UNICODE_WCHAR_T /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the version of poppler */ #undef POPPLER_VERSION /* Define to the version of poppler */ #undef POPPLER_VERSION_STRING /* Define to use MinGW ANSI stdio */ #undef USE_MINGW_ANSI_STDIO pdf2djvu-0.7.17/configure0000755000000000000000000074576712151732416013773 0ustar rootroot#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for pdf2djvu 0.7.17. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://code.google.com/p/pdf2djvu/issues/ about your $0: system, including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='pdf2djvu' PACKAGE_TARNAME='pdf2djvu' PACKAGE_VERSION='0.7.17' PACKAGE_STRING='pdf2djvu 0.7.17' PACKAGE_BUGREPORT='http://code.google.com/p/pdf2djvu/issues/' PACKAGE_URL='http://pdf2djvu.googlecode.com/' gt_needs= ac_subst_vars='LTLIBOBJS LIBOBJS OPENMP_CXXFLAGS POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS EGREP GREP host_os host_vendor host_cpu host build_os build_vendor build_cpu build ac_ct_CC CFLAGS CC XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS mkdir_p MKDIR_P SET_MAKE XSLT_LIBS XSLT_CFLAGS GRAPHICSMAGICK_LIBS GRAPHICSMAGICK_CFLAGS POPPLER_LIBS POPPLER_CFLAGS djvulibre_bindir DJVULIBRE_LIBS DJVULIBRE_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG WINDRES CXXCPP INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_graphicsmagick with_xslt enable_nls with_gnu_ld enable_rpath with_libiconv_prefix with_libintl_prefix enable_openmp ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR DJVULIBRE_CFLAGS DJVULIBRE_LIBS POPPLER_CFLAGS POPPLER_LIBS GRAPHICSMAGICK_CFLAGS GRAPHICSMAGICK_LIBS XSLT_CFLAGS XSLT_LIBS CC CFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures pdf2djvu 0.7.17 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/pdf2djvu] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of pdf2djvu 0.7.17:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --disable-openmp do not use the OpenMP API Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-graphicsmagick do not use the GraphicsMagick library --without-xslt do not use the GNOME XSLT library --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path DJVULIBRE_CFLAGS C compiler flags for DJVULIBRE, overriding pkg-config DJVULIBRE_LIBS linker flags for DJVULIBRE, overriding pkg-config POPPLER_CFLAGS C compiler flags for POPPLER, overriding pkg-config POPPLER_LIBS linker flags for POPPLER, overriding pkg-config GRAPHICSMAGICK_CFLAGS C compiler flags for GRAPHICSMAGICK, overriding pkg-config GRAPHICSMAGICK_LIBS linker flags for GRAPHICSMAGICK, overriding pkg-config XSLT_CFLAGS C compiler flags for XSLT, overriding pkg-config XSLT_LIBS linker flags for XSLT, overriding pkg-config CC C compiler command CFLAGS C compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . pdf2djvu home page: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF pdf2djvu configure 0.7.17 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_cxx_check_func LINENO FUNC VAR # ------------------------------------ # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_cxx_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_func # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_cxx_try_run LINENO # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_run cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by pdf2djvu $as_me 0.7.17, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs need-ngettext" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in tools "$srcdir"/tools; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in tools \"$srcdir\"/tools" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ac_tool_prefix}windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINDRES=$ac_cv_prog_WINDRES if test -n "$WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 $as_echo "$WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_WINDRES"; then ac_ct_WINDRES=$WINDRES # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_WINDRES"; then ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_WINDRES="windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES if test -n "$ac_ct_WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 $as_echo "$ac_ct_WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_WINDRES" = x; then WINDRES="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac WINDRES=$ac_ct_WINDRES fi else WINDRES="$ac_cv_prog_WINDRES" fi fi rm -f conftest.err conftest.i conftest.$ac_ext # Checks for libraries. if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DJVULIBRE" >&5 $as_echo_n "checking for DJVULIBRE... " >&6; } if test -n "$DJVULIBRE_CFLAGS"; then pkg_cv_DJVULIBRE_CFLAGS="$DJVULIBRE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ddjvuapi >= 3.5.17\""; } >&5 ($PKG_CONFIG --exists --print-errors "ddjvuapi >= 3.5.17") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DJVULIBRE_CFLAGS=`$PKG_CONFIG --cflags "ddjvuapi >= 3.5.17" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$DJVULIBRE_LIBS"; then pkg_cv_DJVULIBRE_LIBS="$DJVULIBRE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ddjvuapi >= 3.5.17\""; } >&5 ($PKG_CONFIG --exists --print-errors "ddjvuapi >= 3.5.17") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_DJVULIBRE_LIBS=`$PKG_CONFIG --libs "ddjvuapi >= 3.5.17" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then DJVULIBRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ddjvuapi >= 3.5.17" 2>&1` else DJVULIBRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ddjvuapi >= 3.5.17" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$DJVULIBRE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (ddjvuapi >= 3.5.17) were not met: $DJVULIBRE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables DJVULIBRE_CFLAGS and DJVULIBRE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables DJVULIBRE_CFLAGS and DJVULIBRE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else DJVULIBRE_CFLAGS=$pkg_cv_DJVULIBRE_CFLAGS DJVULIBRE_LIBS=$pkg_cv_DJVULIBRE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi djvulibre_bin_path=$($PKG_CONFIG --variable exec_prefix ddjvuapi)/bin djvulibre_bindir="$djvulibre_bin_path" djvulibre_version=$($PKG_CONFIG --modversion ddjvuapi) PACKAGE_STRING="$PACKAGE_STRING (DjVuLibre $djvulibre_version" cat >>confdefs.h <<_ACEOF #define DJVULIBRE_VERSION_STRING "$djvulibre_version" _ACEOF djvulibre_bugs='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking DjVuLibre fitness" >&5 $as_echo_n "checking DjVuLibre fitness... " >&6; } for tool in cjb2 c44 csepdjvu ddjvu djvused djvuextract djvumake djvmcvt do if test ! -x "$djvulibre_bin_path/$tool" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: incomplete set of tools" >&5 $as_echo "incomplete set of tools" >&6; } as_fn_error $? "$tool not found" "$LINENO" 5 fi done # Test for Debian bug #458211 . # csepdjvu affected by the bug is unable to use subsample ratio 12. # Prior to pdf2djvu 0.5.0, pdf2djvu simply dissalowed subsample ratio 12 by # itself. echo 'P1 12 12' > conftest.458211.pbm yes 0 | head -n 144 >> conftest.458211.pbm "$djvulibre_bin_path/cjb2" conftest.458211.pbm conftest.458211.djvu "$djvulibre_bin_path/ddjvu" -format=rle conftest.458211.djvu conftest.458211.sep printf 'P6 1 1 255 xxx' >> conftest.458211.sep "$djvulibre_bin_path/csepdjvu" conftest.458211.sep conftest.458211.djvu 2>/dev/null || djvulibre_bugs="$djvulibre_bugs 458211" # Test for Debian bug #471149 . # djvused affected by the bug is unable to correctly set annotations. printf 'P1 3 3 0 0 0 0 0 0 0 0 0' > conftest.471149.pbm "$djvulibre_bin_path/cjb2" conftest.471149.pbm conftest.471149.djvu cat > conftest.471149.djvused <<_ACEOF select 1 set-ant (x) . _ACEOF "$djvulibre_bin_path/djvused" -f conftest.471149.djvused -s conftest.471149.djvu if ! "$djvulibre_bin_path/djvused" -e output-ant conftest.471149.djvu | grep '(x)' > /dev/null then djvulibre_bugs="$djvulibre_bugs 471149" fi # Test for Debian bug #458086 . # djvused affected by the bug is unable to set bookmarks for indirect # multi-page documents. # Prior to pdf2djvu 0.5.3, the bug was worked around. printf 'P1 3 3 0 0 0 0 0 0 0 0 0 0' > conftest.458086.pbm "$djvulibre_bin_path/cjb2" conftest.458086.pbm conftest.458086.p1.djvu "$djvulibre_bin_path/cjb2" conftest.458086.pbm conftest.458086.p2.djvu printf 'AT&TFORM\0\0\0\065DJVMDIRM\0\0\0\051\001\0\002\377\377\306\277\212' > conftest.458086.djvu printf '\037\353\113\377\100\216\067\206\077\154\276\170\002\074\223\233' >> conftest.458086.djvu printf '\027\127\026\147\035\172\353\127\370\363\176\144\062\102\210\322\117' >> conftest.458086.djvu printf '(bookmarks ("" ""))' > conftest.458086.outline "$djvulibre_bin_path/djvused" -s -e 'set-outline conftest.458086.outline' conftest.458086.djvu if ! "$djvulibre_bin_path/djvused" -e print-outline conftest.458086.djvu | grep '(bookmarks' > /dev/null then djvulibre_bugs="$djvulibre_bugs 458086" fi if test -n "$djvulibre_bugs" then result='' for bug in $djvulibre_bugs do if test -n "$result" then result="$result, " fi result="${result}" done { $as_echo "$as_me:${as_lineno-$LINENO}: result: buggy" >&5 $as_echo "buggy" >&6; } as_fn_error $? "See $result for details." "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for POPPLER" >&5 $as_echo_n "checking for POPPLER... " >&6; } if test -n "$POPPLER_CFLAGS"; then pkg_cv_POPPLER_CFLAGS="$POPPLER_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"poppler-splash >= 0.7.3\""; } >&5 ($PKG_CONFIG --exists --print-errors "poppler-splash >= 0.7.3") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_POPPLER_CFLAGS=`$PKG_CONFIG --cflags "poppler-splash >= 0.7.3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$POPPLER_LIBS"; then pkg_cv_POPPLER_LIBS="$POPPLER_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"poppler-splash >= 0.7.3\""; } >&5 ($PKG_CONFIG --exists --print-errors "poppler-splash >= 0.7.3") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_POPPLER_LIBS=`$PKG_CONFIG --libs "poppler-splash >= 0.7.3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then POPPLER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "poppler-splash >= 0.7.3" 2>&1` else POPPLER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "poppler-splash >= 0.7.3" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$POPPLER_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (poppler-splash >= 0.7.3) were not met: $POPPLER_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables POPPLER_CFLAGS and POPPLER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables POPPLER_CFLAGS and POPPLER_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else POPPLER_CFLAGS=$pkg_cv_POPPLER_CFLAGS POPPLER_LIBS=$pkg_cv_POPPLER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi poppler_version=$($PKG_CONFIG --modversion poppler-splash) cat >>confdefs.h <<_ACEOF #define POPPLER_VERSION_STRING "$poppler_version" _ACEOF PACKAGE_STRING="$PACKAGE_STRING, poppler $poppler_version" poppler_version=$(printf '%s' "$poppler_version" | sed -e 's/\(^[0-9]\+[.][0-9]\+$\)/\1.0/; s/[.]/ /g') poppler_version=$(printf '%02d' $poppler_version | sed -e 's/^0*//g') cat >>confdefs.h <<_ACEOF #define POPPLER_VERSION $poppler_version _ACEOF # Check whether --with-graphicsmagick was given. if test "${with_graphicsmagick+set}" = set; then : withval=$with_graphicsmagick; fi if test "$with_graphicsmagick" != "no" then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GRAPHICSMAGICK" >&5 $as_echo_n "checking for GRAPHICSMAGICK... " >&6; } if test -n "$GRAPHICSMAGICK_CFLAGS"; then pkg_cv_GRAPHICSMAGICK_CFLAGS="$GRAPHICSMAGICK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"GraphicsMagick++\""; } >&5 ($PKG_CONFIG --exists --print-errors "GraphicsMagick++") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GRAPHICSMAGICK_CFLAGS=`$PKG_CONFIG --cflags "GraphicsMagick++" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GRAPHICSMAGICK_LIBS"; then pkg_cv_GRAPHICSMAGICK_LIBS="$GRAPHICSMAGICK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"GraphicsMagick++\""; } >&5 ($PKG_CONFIG --exists --print-errors "GraphicsMagick++") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GRAPHICSMAGICK_LIBS=`$PKG_CONFIG --libs "GraphicsMagick++" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GRAPHICSMAGICK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "GraphicsMagick++" 2>&1` else GRAPHICSMAGICK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "GraphicsMagick++" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GRAPHICSMAGICK_PKG_ERRORS" >&5 : elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else GRAPHICSMAGICK_CFLAGS=$pkg_cv_GRAPHICSMAGICK_CFLAGS GRAPHICSMAGICK_LIBS=$pkg_cv_GRAPHICSMAGICK_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GRAPHICSMAGICK 1" >>confdefs.h graphicsmagick_version=$($PKG_CONFIG --modversion GraphicsMagick++) cat >>confdefs.h <<_ACEOF #define GRAPHICSMAGICK_VERSION_STRING "$graphicsmagick_version" _ACEOF PACKAGE_STRING="$PACKAGE_STRING, GraphicsMagick++ $graphicsmagick_version" fi fi # Check whether --with-xslt was given. if test "${with_xslt+set}" = set; then : withval=$with_xslt; fi if test "$with_xslt" != "no" then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSLT" >&5 $as_echo_n "checking for XSLT... " >&6; } if test -n "$XSLT_CFLAGS"; then pkg_cv_XSLT_CFLAGS="$XSLT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxslt") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XSLT_CFLAGS=`$PKG_CONFIG --cflags "libxslt" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$XSLT_LIBS"; then pkg_cv_XSLT_LIBS="$XSLT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxslt") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XSLT_LIBS=`$PKG_CONFIG --libs "libxslt" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then XSLT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxslt" 2>&1` else XSLT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxslt" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$XSLT_PKG_ERRORS" >&5 : elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } : else XSLT_CFLAGS=$pkg_cv_XSLT_CFLAGS XSLT_LIBS=$pkg_cv_XSLT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LIBXSLT 1" >>confdefs.h libxml2_version=$($PKG_CONFIG --modversion libxml-2.0) libxslt_version=$($PKG_CONFIG --modversion libxslt) PACKAGE_STRING="$PACKAGE_STRING, GNOME XSLT $libxslt_version, GNOME XML $libxml2_version" fi fi PACKAGE_STRING="$PACKAGE_STRING)" cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : fi rm -f conftest.err conftest.i conftest.$ac_ext have_pstreams=maybe ac_fn_cxx_check_func "$LINENO" "fork" "ac_cv_func_fork" if test "x$ac_cv_func_fork" = xyes; then : $as_echo "#define HAVE_FORK 1" >>confdefs.h else have_pstreams=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PStreams" >&5 $as_echo_n "checking for PStreams... " >&6; } if test "$have_pstreams" = "maybe" then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : $as_echo "#define HAVE_PSTREAM_H 1" >>confdefs.h have_pstreams=yes fi rm -f conftest.err conftest.i conftest.$ac_ext fi if test "$have_pstreams" = "maybe" then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : $as_echo "#define HAVE_PSTREAMS_PSTREAM_H 1" >>confdefs.h have_pstreams=yes fi rm -f conftest.err conftest.i conftest.$ac_ext fi if test "$have_pstreams" = "yes" then $as_echo "#define HAVE_PSTREAMS 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (or not usable)" >&5 $as_echo "no (or not usable)" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" 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 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { /* 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 */ char buf[10]; 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, &outptr, &outbytesleft); if (res == 0) return 1; } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; 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, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { 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"; char buf[50]; 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, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; 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 LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t encoding" >&5 $as_echo_n "checking for wchar_t encoding... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined(__STDC_ISO_10646__) #elif defined(__WIN32__) #elif defined(__APPLE__) #else #error #endif _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: UTF-32 or UTF-16" >&5 $as_echo "UTF-32 or UTF-16" >&6; } have_unicode_wchar_t=yes $as_echo "#define HAVE_UNICODE_WCHAR_T 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } have_unicode_wchar_t=maybe fi rm -f conftest.err conftest.i conftest.$ac_ext # Check whether --enable-openmp was given. if test "${enable_openmp+set}" = set; then : enableval=$enable_openmp; fi if test "$enable_openmp" != "no" then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenMP flag of C++ compiler" >&5 $as_echo_n "checking for OpenMP flag of C++ compiler... " >&6; } if ${ax_cv_cxx_openmp+:} false; then : $as_echo_n "(cached) " >&6 else saveCXXFLAGS=$CXXFLAGS ax_cv_cxx_openmp=unknown # Flags to try: -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI), # -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none" if test "x$OPENMP_CXXFLAGS" != x; then ax_openmp_flags="$OPENMP_CXXFLAGS $ax_openmp_flags" fi for ax_openmp_flag in $ax_openmp_flags; do case $ax_openmp_flag in none) CXXFLAGS=$saveCXX ;; *) CXXFLAGS="$saveCXXFLAGS $ax_openmp_flag" ;; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char omp_set_num_threads (); int main () { return omp_set_num_threads (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ax_cv_cxx_openmp=$ax_openmp_flag; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done CXXFLAGS=$saveCXXFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_openmp" >&5 $as_echo "$ax_cv_cxx_openmp" >&6; } if test "x$ax_cv_cxx_openmp" = "xunknown"; then : else if test "x$ax_cv_cxx_openmp" != "xnone"; then OPENMP_CXXFLAGS=$ax_cv_cxx_openmp fi $as_echo "#define HAVE_OPENMP 1" >>confdefs.h fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MinGW ANSI stdio" >&5 $as_echo_n "checking for MinGW ANSI stdio... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "__mingw_vsnprintf" >/dev/null 2>&1; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } cat >>confdefs.h <<_ACEOF #define USE_MINGW_ANSI_STDIO 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f conftest* # Turn on compile warnings ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking CXXFLAGS for maximum warnings" >&5 $as_echo_n "checking CXXFLAGS for maximum warnings... " >&6; } if ${ac_cv_cxxflags_warn_all+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_cxxflags_warn_all="no, unknown" ac_save_CXXFLAGS="$CXXFLAGS" for ac_arg in "-warn all % -warn all" "-pedantic % -Wall" "-xstrconst % -v" "-std1 % -verbose -w0 -warnprotos" "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" "-ansi -ansiE % -fullwarn" "+ESlit % +w1" "-Xc % -pvctl,fullmsg" "-h conform % -h msglevel 2" # do CXXFLAGS="$ac_save_CXXFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_cxxflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CXXFLAGS="$ac_save_CXXFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxxflags_warn_all" >&5 $as_echo "$ac_cv_cxxflags_warn_all" >&6; } case ".$ac_cv_cxxflags_warn_all" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if ${CXXFLAGS+:} false; then : case " $CXXFLAGS " in *" $ac_cv_cxxflags_warn_all "*) { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS already contains \$ac_cv_cxxflags_warn_all"; } >&5 (: CXXFLAGS already contains $ac_cv_cxxflags_warn_all) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; *) { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXXFLAGS=\"\$CXXFLAGS \$ac_cv_cxxflags_warn_all\""; } >&5 (: CXXFLAGS="$CXXFLAGS $ac_cv_cxxflags_warn_all") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CXXFLAGS="$CXXFLAGS $ac_cv_cxxflags_warn_all" ;; esac else CXXFLAGS="$ac_cv_cxxflags_warn_all" fi ;; esac ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test "$GXX" = yes then CXXFLAGS="$CXXFLAGS -Werror=overloaded-virtual" fi # Output files ac_config_files="$ac_config_files Makefile.common" ac_config_headers="$ac_config_headers version.hh" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by pdf2djvu $as_me 0.7.17, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to . pdf2djvu home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ pdf2djvu config.status 0.7.17 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common" ;; "version.hh") CONFIG_HEADERS="$CONFIG_HEADERS version.hh" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi # Final remarks if test "$ax_cv_cxx_openmp" = "unknown" then cat <<_ACEOF WARNING: Parallel page rendering will be disabled. Please consider using a compiler with OpenMP support to enable this functionality. _ACEOF fi if test "$with_graphicsmagick" != "no" && test -z "$graphicsmagick_version" then cat <<_ACEOF INFO: Color quantization using GraphicsMagick will be disabled. Please consider installing the GraphicsMagick++ library to enable this functionality. _ACEOF fi if test "$with_xslt" != "no" && test -z "$libxslt_version" then cat <<_ACEOF WARNING: Updating XMP metadata will be disabled. Please consider installing the GNOME XSLT library to enable this functionality. _ACEOF fi if test "$have_unicode_wchar_t" = maybe then cat <<_ACEOF WARNING: pdf2djvu assumes that wchar_t encoding is UTF-32 or UTF-16. This might NOT be the case for your system. Please file a bug to $PACKAGE_BUGREPORT. _ACEOF fi # vim:ts=2 sw=2 et pdf2djvu-0.7.17/aclocal.m40000644000000000000000000000441312151732416013674 0ustar rootroot# generated automatically by aclocal 1.13.2 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for 'mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl FIXME we are no longer going to remove this! adjust warning dnl FIXME message accordingly. AC_DIAGNOSE([obsolete], [$0: this macro is deprecated, and will soon be removed. You should use the Autoconf-provided 'AC][_PROG_MKDIR_P' macro instead, and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.]) dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) m4_include([m4/ax_append_flag.m4]) m4_include([m4/ax_cflags_warn_all.m4]) m4_include([m4/ax_openmp.m4]) m4_include([m4/gettext.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/nls.m4]) m4_include([m4/pkg.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) pdf2djvu-0.7.17/m4/0000755000000000000000000000000012151732410012344 5ustar rootrootpdf2djvu-0.7.17/m4/progtest.m40000644000000000000000000000557312151732410014467 0ustar rootroot# progtest.m4 serial 6 (gettext-0.18) dnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) pdf2djvu-0.7.17/m4/po.m40000644000000000000000000004461612151732410013237 0ustar rootroot# po.m4 serial 17 (gettext-0.18) dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <. # # This program 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 2 of the License, or # (at your option) any later version. # # This program 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES pdf2djvu-0.7.17/m4/nls.m40000644000000000000000000000231512151732410013403 0ustar rootroot# nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) pdf2djvu-0.7.17/m4/lib-prefix.m40000644000000000000000000002042212151732410014647 0ustar rootroot# lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) pdf2djvu-0.7.17/m4/lib-link.m40000644000000000000000000010020212151732410014302 0ustar rootroot# lib-link.m4 serial 21 (gettext-0.18) dnl Copyright (C) 2001-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) pdf2djvu-0.7.17/m4/lib-ld.m40000644000000000000000000000660312151732410013756 0ustar rootroot# lib-ld.m4 serial 4 (gettext-0.18) dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT([$LD]) else AC_MSG_RESULT([no]) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) pdf2djvu-0.7.17/m4/intlmacosx.m40000644000000000000000000000457512151732410015002 0ustar rootroot# intlmacosx.m4 serial 3 (gettext-0.18) dnl Copyright (C) 2004-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) pdf2djvu-0.7.17/m4/iconv.m40000644000000000000000000001653712151732410013740 0ustar rootroot# iconv.m4 serial 11 (gettext-0.18.1) dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_TRY_RUN([ #include #include int main () { /* 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 */ char buf[10]; 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, &outptr, &outbytesleft); if (res == 0) return 1; } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; 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, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { 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"; char buf[50]; 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, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; }], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) fi ]) pdf2djvu-0.7.17/m4/gettext.m40000644000000000000000000003513212151732410014276 0ustar rootroot# gettext.m4 serial 63 (gettext-0.18) dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) pdf2djvu-0.7.17/m4/ax_openmp.m40000644000000000000000000001027412151732410014600 0ustar rootroot# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_openmp.html # =========================================================================== # # SYNOPSIS # # AX_OPENMP([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro tries to find out how to compile programs that use OpenMP a # standard API and set of compiler directives for parallel programming # (see http://www-unix.mcs/) # # On success, it sets the OPENMP_CFLAGS/OPENMP_CXXFLAGS/OPENMP_F77FLAGS # output variable to the flag (e.g. -omp) used both to compile *and* link # OpenMP programs in the current language. # # NOTE: You are assumed to not only compile your program with these flags, # but also link it with them as well. # # If you want to compile everything with OpenMP, you should set: # # CFLAGS="$CFLAGS $OPENMP_CFLAGS" # #OR# CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS" # #OR# FFLAGS="$FFLAGS $OPENMP_FFLAGS" # # (depending on the selected language). # # The user can override the default choice by setting the corresponding # environment variable (e.g. OPENMP_CFLAGS). # # ACTION-IF-FOUND is a list of shell commands to run if an OpenMP flag is # found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is # not found. If ACTION-IF-FOUND is not specified, the default action will # define HAVE_OPENMP. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # # This program 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. # # This program 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 . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 8 AC_DEFUN([AX_OPENMP], [ AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX AC_CACHE_CHECK([for OpenMP flag of _AC_LANG compiler], ax_cv_[]_AC_LANG_ABBREV[]_openmp, [save[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS ax_cv_[]_AC_LANG_ABBREV[]_openmp=unknown # Flags to try: -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI), # -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none" if test "x$OPENMP_[]_AC_LANG_PREFIX[]FLAGS" != x; then ax_openmp_flags="$OPENMP_[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flags" fi for ax_openmp_flag in $ax_openmp_flags; do case $ax_openmp_flag in none) []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[] ;; *) []_AC_LANG_PREFIX[]FLAGS="$save[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flag" ;; esac AC_TRY_LINK_FUNC(omp_set_num_threads, [ax_cv_[]_AC_LANG_ABBREV[]_openmp=$ax_openmp_flag; break]) done []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[]FLAGS ]) if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" = "xunknown"; then m4_default([$2],:) else if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" != "xnone"; then OPENMP_[]_AC_LANG_PREFIX[]FLAGS=$ax_cv_[]_AC_LANG_ABBREV[]_openmp fi m4_default([$1], [AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])]) fi ])dnl AX_OPENMP pdf2djvu-0.7.17/m4/ax_cflags_warn_all.m40000644000000000000000000001163412151732410016421 0ustar rootroot# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_cflags_warn_all.html # =========================================================================== # # SYNOPSIS # # AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] # AX_CXXFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] # AX_FCFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] # # DESCRIPTION # # Try to find a compiler option that enables most reasonable warnings. # # For the GNU compiler it will be -Wall (and -ansi -pedantic) The result # is added to the shellvar being CFLAGS, CXXFLAGS, or FCFLAGS by default. # # Currently this macro knows about the GCC, Solaris, Digital Unix, AIX, # HP-UX, IRIX, NEC SX-5 (Super-UX 10), Cray J90 (Unicos 10.0.0.8), and # Intel compilers. For a given compiler, the Fortran flags are much more # experimental than their C equivalents. # # - $1 shell-variable-to-add-to : CFLAGS, CXXFLAGS, or FCFLAGS # - $2 add-value-if-not-found : nothing # - $3 action-if-found : add value to shellvariable # - $4 action-if-not-found : nothing # # NOTE: These macros depend on AX_APPEND_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2010 Rhys Ulerich # # This program 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. # # This program 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 . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 13 AC_DEFUN([AX_FLAGS_WARN_ALL],[dnl AS_VAR_PUSHDEF([FLAGS],[_AC_LANG_PREFIX[]FLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_[]_AC_LANG_ABBREV[]flags_warn_all])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], VAR,[VAR="no, unknown" ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-warn all % -warn all" dnl Intel "-pedantic % -Wall" dnl GCC "-xstrconst % -v" dnl Solaris C "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX "-ansi -ansiE % -fullwarn" dnl IRIX "+ESlit % +w1" dnl HP-UX C "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2" dnl Cray C (Unicos) # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" ]) AS_VAR_POPDEF([FLAGS])dnl case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_default($4,[m4_ifval($2,[AX_APPEND_FLAG([$2], [$1])])]) ;; *) m4_default($3,[AX_APPEND_FLAG([$VAR], [$1])]) ;; esac AS_VAR_POPDEF([VAR])dnl ])dnl AX_FLAGS_WARN_ALL dnl implementation tactics: dnl the for-argument contains a list of options. The first part of dnl these does only exist to detect the compiler - usually it is dnl a global option to enable -ansi or -extrawarnings. All other dnl compilers will fail about it. That was needed since a lot of dnl compilers will give false positives for some option-syntax dnl like -Woption or -Xoption as they think of it is a pass-through dnl to later compile stages or something. The "%" is used as a dnl delimiter. A non-option comment can be given after "%%" marks dnl which will be shown but not added to the respective C/CXXFLAGS. AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl AC_LANG_PUSH([C]) AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) AC_LANG_POP([C]) ]) AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl AC_LANG_PUSH([C++]) AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) AC_LANG_POP([C++]) ]) AC_DEFUN([AX_FCFLAGS_WARN_ALL],[dnl AC_LANG_PUSH([Fortran]) AX_FLAGS_WARN_ALL([$1], [$2], [$3], [$4]) AC_LANG_POP([Fortran]) ]) pdf2djvu-0.7.17/m4/ax_append_flag.m40000644000000000000000000000530412151732410015540 0ustar rootroot# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_append_flag.html # =========================================================================== # # SYNOPSIS # # AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) # # DESCRIPTION # # FLAG is appended to the FLAGS-VARIABLE shell variable, with a space # added in between. # # If FLAGS-VARIABLE is not specified, the current language's flags (e.g. # CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains # FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly # FLAG. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # This program 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. # # This program 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 . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 2 AC_DEFUN([AX_APPEND_FLAG], [AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])dnl AS_VAR_SET_IF(FLAGS, [case " AS_VAR_GET(FLAGS) " in *" $1 "*) AC_RUN_LOG([: FLAGS already contains $1]) ;; *) AC_RUN_LOG([: FLAGS="$FLAGS $1"]) AS_VAR_SET(FLAGS, ["AS_VAR_GET(FLAGS) $1"]) ;; esac], [AS_VAR_SET(FLAGS,["$1"])]) AS_VAR_POPDEF([FLAGS])dnl ])dnl AX_APPEND_FLAG pdf2djvu-0.7.17/xmp.hh0000644000000000000000000000120312151732402013146 0ustar rootroot/* Copyright © 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_XMP_H #define PDF2DJVU_XMP_H #include #include #include "pdf-backend.hh" namespace xmp { std::string transform(const std::string &data, const pdf::Metadata &metadata); class XmlError : public std::runtime_error { public: explicit XmlError(const std::string message) : std::runtime_error(message) { } }; } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/xmp.cc0000644000000000000000000001347012151732402013145 0ustar rootroot/* Copyright © 2009, 2010 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include "i18n.hh" #include "version.hh" #include "xmp.hh" #if HAVE_LIBXSLT #include #include #include #include #include #include #include #include #include static void throw_xml_error() { xmlErrorPtr error = xmlGetLastError(); if (error != NULL) throw xmp::XmlError(error->message); else throw xmp::XmlError(_("Unknown error")); } class Xsl; class Xml { protected: xmlDocPtr c_xml; Xml(xmlDocPtr c_xml) : c_xml(c_xml) { } public: explicit Xml(const std::string &data) { this->c_xml = xmlReadMemory(data.c_str(), data.length(), NULL, NULL, XML_PARSE_NONET); if (this->c_xml == NULL) throw_xml_error(); } virtual ~Xml() { xmlFreeDoc(this->c_xml); } std::string serialize() { xmlBufferPtr buffer = xmlBufferCreate(); if (buffer == NULL) throw_xml_error(); xmlSaveCtxtPtr context = xmlSaveToBuffer(buffer, "ASCII", XML_SAVE_NO_DECL); if (context == NULL) { xmlBufferFree(buffer); throw_xml_error(); } xmlSaveDoc(context, this->c_xml); xmlSaveClose(context); std::string result = reinterpret_cast(buffer->content); xmlBufferFree(buffer); return result; } friend class Xsl; }; class Xsl : public Xml { protected: xsltStylesheetPtr c_xsl; public: explicit Xsl(const std::string &s) : Xml(s) { this->c_xsl = xsltParseStylesheetDoc(this->c_xml); if (this->c_xsl == NULL) throw_xml_error(); } virtual ~Xsl() { this->c_xml = NULL; xsltFreeStylesheet(this->c_xsl); } Xml *transform(const Xml &xml, const std::vector ¶ms) { xmlDocPtr c_document; const char **c_params = new const char*[params.size() + 1]; for (size_t i = 0; i < params.size(); i++) c_params[i] = params[i].c_str(); c_params[params.size()] = NULL; c_document = xsltApplyStylesheet(this->c_xsl, xml.c_xml, c_params); delete[] c_params; if (c_document == NULL) throw_xml_error(); return new Xml(c_document); } }; class XmlEnvironment { public: XmlEnvironment() { LIBXML_TEST_VERSION } ~XmlEnvironment() { xsltCleanupGlobals(); xmlCleanupParser(); } }; static inline void char_as_xpath(char c, std::ostream &stream) { if (c < 0 || c >= ' ' || c == '\r' || c == '\n' || c == '\t') stream << c; else { /* These are invalid characters for XML documents. * Replace them with U+FFFD (replacement character). * * See * http://www.w3.org/TR/REC-xml/#charsets * for details. */ stream << "\xef\xbf\xbd"; } } static void string_as_xpath(const std::string &string, std::ostream &stream) { char quote = '"'; bool first = true; std::string::const_iterator left = string.begin(); std::string::const_iterator right = string.begin(); while (right != string.end()) { if (*right != quote) right++; else { if (right > left) { if (first) { stream << "concat("; first = false; } else stream << ','; stream << quote; while (left < right) char_as_xpath(*left++, stream); stream << quote; left = right; } quote ^= ('"' ^ '\''); } } if (!first) stream << ','; stream << quote; while (left < right) char_as_xpath(*left++, stream); stream << quote; right++; left = right; if (!first) stream << ')'; } static std::string string_as_xpath(const std::string &string) { std::ostringstream stream; string_as_xpath(string, stream); return stream.str(); } #include "xmp-xslt.hh" #include "xmp-dummy.hh" static std::string pdf_key_to_xslt_key(const std::string &string) { std::string result = "pdf"; for (std::string::const_iterator it = string.begin(); it != string.end(); it++) { if (*it >= 'A' && *it <= 'Z') { result += '-'; result += *it - 'A' + 'a'; } else result += *it; } return result; } static void add_meta_string(const char *key, const std::string &value, std::vector ¶ms) { params.push_back(pdf_key_to_xslt_key(key)); params.push_back(string_as_xpath(value)); } static void add_meta_date(const char *key, const pdf::Timestamp &value, std::vector ¶ms) { std::string string_value; try { string_value = value.format('T'); } catch (pdf::Timestamp::Invalid) { /* Ignore the error. User should be warned somewhere else anyway. */ return; } params.push_back(pdf_key_to_xslt_key(key)); params.push_back(string_as_xpath(string_value)); } std::string xmp::transform(const std::string &data, const pdf::Metadata &metadata) { std::string result; XmlEnvironment xml_environment; { std::vector params; params.push_back("djvu-producer"); params.push_back(string_as_xpath(PACKAGE_STRING)); params.push_back("now"); params.push_back(string_as_xpath(pdf::Timestamp::now().format('T'))); metadata.iterate >(add_meta_string, add_meta_date, params); Xml xmp(data.length() > 0 ? data : dummy_xmp); Xsl xsl(xmp::xslt); std::auto_ptr transformed_data; transformed_data.reset(xsl.transform(xmp, params)); result = transformed_data->serialize(); } return result; } #else std::string xmp::transform(const std::string &data, const pdf::Metadata &metadata) { throw XmlError(_("pdf2djvu was built without GNOME XSLT; XML transformations are disabled.")); } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/xmp-xslt.xml0000644000000000000000000001036312151732402014346 0ustar rootroot image/vnd.djvu image/vnd.djvu pdf2djvu-0.7.17/xmp-dummy.xml0000644000000000000000000000037412151732402014510 0ustar rootroot pdf2djvu-0.7.17/win32/0000755000000000000000000000000012151732402012767 5ustar rootrootpdf2djvu-0.7.17/win32/xmlexports.h0000644000000000000000000000057412151732402015373 0ustar rootroot#ifndef __XML_EXPORTS_H__ #define __XML_EXPORTS_H__ #if defined(IN_LIBXML) #define XMLPUBFUN __declspec(dllexport) #define XMLPUBVAR __declspec(dllexport) extern #else #define XMLPUBFUN __declspec(dllimport) #define XMLPUBVAR __declspec(dllimport) extern #endif #define XMLCALL __cdecl #define XMLCDECL __cdecl #if !defined _REENTRANT #define _REENTRANT #endif #endif pdf2djvu-0.7.17/win32/freetype-config0000755000000000000000000000021212151732402015776 0ustar rootroot#!/bin/sh case "$1" in --cflags) echo "-I$(dirname "$0")/include/freetype2/";; --libs) echo "-lfreetype";; esac # vim:ts=4 sw=4 et pdf2djvu-0.7.17/win32/Makefile0000644000000000000000000003420712151732402014435 0ustar rootroot# Copyright © 2009, 2010, 2011 Jakub Wilk # # This package 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; version 2 dated June, 1991. usr = $(CURDIR) host = i686-w64-mingw32 docbook_xsl = http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl version := $(shell cat ../doc/changelog | head -n1 | cut -d' ' -f2 | tr -d '()') djvulibre_tools = djvmcvt djvused bzz csepdjvu djvuextract cjb2 c44 djvumake untar = tar --strip-components=1 -xf ship_dll = cp bin/$1*.dll dist/ && $(STRIP) dist/$1*.dll && chmod a-x dist/$1*.dll export CC = $(host)-gcc export CXX = $(host)-g++ export AS = $(host)-as export DLLTOOL = $(host)-dlltool export OBJDUMP = $(host)-objdump export STRIP = $(host)-strip export PKG_CONFIG_PATH = $(usr)/lib/pkgconfig export CPATH = $(usr)/include export LDFLAGS = -L$(usr)/lib export CFLAGS = -Os export CXXFLAGS = -Os export CPPFLAGS = -D__USE_MINGW_ANSI_STDIO .PHONY: all all: @echo Usage: @echo ' make source-dist' @echo ' make binary-dist' # Source tarballs src_tarball_topdir = pdf2djvu-win32-source-$(version) src_tarball_name = pdf2djvu-win32-source_$(version) export TAR_OPTIONS = --owner root --group root --mode a+rX export XZ_OPT = -8 .PHONY: source-dist: rm -rf src/*/ $(MAKE) $(shell grep '[^ ]*source[-]stamp:' Makefile | cut -d: -f1) mkdir -p $(src_tarball_topdir) cp -rl src/*/ $(src_tarball_topdir)/ find $(src_tarball_topdir) -name source-stamp -delete tar -cf $(src_tarball_name).tar $(src_tarball_topdir) xz -v $(src_tarball_name).tar rm -rf $(src_tarball_topdir) # Binary zipballs zipball_topdir = pdf2djvu-$(version) zipball_name = pdf2djvu-win32_$(version) export ZIPOPT = -9 -X -r .PHONY: binary-dist binary-dist: install mkdir -p $(zipball_topdir) cp -rl dist/* $(zipball_topdir) zip $(zipball_name).zip $(zipball_topdir) rm -r $(zipball_topdir) .PHONY: install install: src/pdf2djvu/install-stamp install: src/libs-install-stamp install: src/urw-fonts/install-stamp # pdf2djvu src/pdf2djvu/source-stamp: src/pdf2djvu_$(version).tar.gz mkdir -p $(dir $@) cd $(dir $@) && $(untar) $(CURDIR)/$(<) sed -i \ -e '/^extern/d; /^"C"$$/d; /^const char [*]_nl_/d; s/ + _nl_[a-z_]* + .*$$//' \ $(dir $@)/configure sed -i -e 's/%zu/%Iu/g; s/%ju/%I64u/g' \ $(dir $@)/*.cc \ $(dir $@)/*.hh \ $(dir $@)/po/*.po* rm -f $(dir $@)/paths.hh touch $@ src/pdf2djvu/config.status: src/pdf2djvu/source-stamp src/pdf2djvu/config.status: src/djvulibre/install-stamp src/pdf2djvu/config.status: src/libxslt/install-stamp src/pdf2djvu/config.status: src/poppler/install-stamp src/pdf2djvu/config.status: src/gettext/install-stamp src/pdf2djvu/config.status: src/mingwrt/install-stamp cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --bindir=$(usr)/dist/ \ --localedir=$(usr)/dist/locale/ \ --without-graphicsmagick src/pdf2djvu/build-stamp: src/pdf2djvu/config.status $(MAKE) djvulibre_bindir=. localedir=./locale -C $(dir $@) touch $@ src/pdf2djvu/install-stamp: src/pdf2djvu/build-stamp mkdir -p dist/doc/ $(MAKE) install -C $(dir $@) mv dist/pdf2djvu dist/pdf2djvu.exe $(STRIP) dist/pdf2djvu.exe chmod a-x dist/pdf2djvu.exe xsltproc --nonet $(docbook_xsl) src/pdf2djvu/doc/pdf2djvu.xml > dist/doc/manual-page.html $(MAKE) -C $(dir $@)/doc/po/ xml cd src/pdf2djvu/doc/po/ && set -e && \ for file in pdf2djvu.*.xml; do \ suffix="$${file#*.}"; \ locale="$${suffix%.*}"; \ xsltproc --nonet $(docbook_xsl) $$file > $(usr)/dist/doc/manual-page-$$locale.html; \ done sed -e 's/$$/\r/' < src/pdf2djvu/COPYING > dist/doc/COPYING.txt cd src/pdf2djvu/doc && set -e && \ for file in *.txt; do \ rst2html $$file > $(usr)/dist/doc/$${file%.txt}.html; \ done sed -e 's/$$/\r/' < src/pdf2djvu/doc/changelog > dist/doc/changelog.txt touch $@ # Various libraries src/libs-install-stamp: src/djvulibre/install-stamp src/libs-install-stamp: src/fontconfig/install-stamp src/libs-install-stamp: src/freetype/install-stamp src/libs-install-stamp: src/gettext/install-stamp src/libs-install-stamp: src/libjpeg/install-stamp src/libs-install-stamp: src/libxml2/install-stamp src/libs-install-stamp: src/libxslt/install-stamp src/libs-install-stamp: src/poppler/install-stamp src/libs-install-stamp: src/winiconv/install-stamp mkdir -p dist/doc/ rst2html COPYING.libs.txt > dist/doc/COPYING.libs.html touch $@ # Poppler src/poppler/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://poppler.freedesktop.org/poppler-0.18.4.tar.gz echo '33421148cdc8e043da291dece2cce1cea6220d49a50c00c56d56d6435501d42e src/poppler-0.18.4.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../poppler-*.tar.gz cd $(dir $@) && sed -i -e 's/^void str\(cat\|cpy\)/void poppler_str\1/' test/perf-test.cc rm src/poppler-*.tar.gz touch $@ src/poppler/config.status: src/poppler/source-stamp src/poppler/config.status: src/fontconfig/install-stamp src/poppler/config.status: src/libjpeg/install-stamp cd $(dir $@) && \ CPPFLAGS='-DWIN32_LEAN_AND_MEAN -DXMD_H' \ ./configure --host=$(host) --prefix=$(usr) \ --with-font-configuration=fontconfig \ --enable-xpdf-headers \ --disable-static \ --disable-cms \ --disable-abiword-output \ --disable-cairo-output \ --disable-poppler-cpp \ --disable-poppler-glib \ --disable-poppler-qt \ --disable-poppler-qt4 \ --disable-utils \ --disable-libpng \ --disable-compile-warnings sed -i -e 's!^\(#define POPPLER_DATADIR\) .*!\1 "./poppler-data/"!' $(dir $@)/config.h src/poppler/build-stamp: src/poppler/config.status $(MAKE) -C $(dir $@) touch $@ src/poppler/install-stamp: src/poppler/build-stamp $(MAKE) -C $(dir $@) install $(call ship_dll,libpoppler) touch $@ # DjVuLibre src/djvulibre/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://downloads.sourceforge.net/djvu/djvulibre-3.5.25.3.tar.gz echo '898d7ed6dd2fa311a521baa95407a91b20a872d80c45e8245442d64f142cb1e0 src/djvulibre-3.5.25.3.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../djvulibre-*.tar.gz sed -i \ -e '/LIBS=-lmsvcp60/d' \ -e 's/mingw32)/mingw32*)/' \ $(dir $@)/configure sed -i -e 's/define USE_WIN32_INTERLOCKED 1/define USE_GCC_I386_ASM 1/' $(dir $@)/libdjvu/atomic.cpp sed -i -e 's/#if.*def.*AUTOCONF.*/#if 0/' $(dir $@)/libdjvu/DjVuMessage.cpp rm src/djvulibre-*.tar.gz touch $@ src/djvulibre/config.status: src/djvulibre/source-stamp src/djvulibre/config.status: src/libjpeg/config.status cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --disable-static src/djvulibre/build-stamp: src/djvulibre/config.status $(MAKE) -C $(dir $@)/libdjvu $(MAKE) -C $(dir $@)/tools touch $@ src/djvulibre/install-stamp: src/djvulibre/build-stamp mkdir -p dist/ $(MAKE) -C $(dir $@)/libdjvu install $(MAKE) -C $(dir $@)/tools install set -e && \ for tool in $(djvulibre_tools); do \ cp bin/$$tool dist/$$tool.exe; \ $(STRIP) dist/$$tool.exe; \ chmod a-x dist/$$tool.exe; \ done $(call ship_dll,libdjvulibre) touch $@ # libxml2 src/libxml2/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz echo 'cda23bc9ebd26474ca8f3d67e7d1c4a1f1e7106364b690d822e009fdc3c417ec src/libxml2-2.7.8.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../libxml2-*.tar.gz sed -i -e '/^#undef v\?snprintf$$/d' $(dir $@)/config.h.in rm src/libxml2-*.tar.gz rm -r src/libxml2/test rm -r src/libxml2/result touch $@ src/libxml2/config.status: src/libxml2/source-stamp cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --disable-static \ --with-minimum \ --with-html \ --with-output \ --with-tree \ --with-writer \ --with-xpath \ --with-sax1 src/libxml2/build-stamp: src/libxml2/config.status $(MAKE) -C $(dir $@) touch $@ src/libxml2/install-stamp: src/libxml2/build-stamp mkdir -p dist/ $(MAKE) -C $(dir $@) install cp xmlexports.h include/libxml2/libxml/xmlexports.h $(call ship_dll,libxml2) touch $@ # libxslt src/libxslt/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://xmlsoft.org/sources/libxslt-1.1.26.tar.gz echo '55dd52b42861f8a02989d701ef716d6280bfa02971e967c285016f99c66e3db1 src/libxslt-1.1.26.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../libxslt-*.tar.gz rm src/libxslt-*.tar.gz sed -i -e 's/^\(#if defined(WIN32)\).*/\1/' $(dir $@)/libxslt/libxslt.h touch $@ src/libxslt/config.status: src/libxslt/source-stamp src/libxslt/config.status: src/libxml2/install-stamp cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --disable-static \ --with-libxml-prefix=$(usr) \ --with-libxml-include-prefix=$(usr)/include/libxml2/ \ --without-crypto \ --without-debug \ --without-debugger \ --without-plugins src/libxslt/build-stamp: src/libxslt/config.status $(MAKE) -C $(dir $@)/libxslt/ touch $@ src/libxslt/install-stamp: src/libxslt/build-stamp mkdir -p dist/ $(MAKE) -C $(dir $@)/libxslt/ install $(call ship_dll,libxslt) touch $@ # FreeType src/freetype/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://download.savannah.gnu.org/releases/freetype/freetype-2.4.9.tar.bz2 echo 'c4204ac1d48e99d4375a2f32bf4f3f92780a9d9f015e64e57e852f6c004859b9 src/freetype-2.4.9.tar.bz2' | sha256sum -c cd $(dir $@) && $(untar) ../freetype-*.tar.bz2 rm src/freetype-*.tar.bz2 touch $@ src/freetype/config.status: src/freetype/source-stamp cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --without-zlib \ --disable-static touch $@ src/freetype/build-stamp: src/freetype/config.status $(MAKE) -C $(dir $@) touch $@ src/freetype/install-stamp: src/freetype/build-stamp mkdir -p dist/ $(MAKE) -C $(dir $@) install $(call ship_dll,libfreetype) touch $@ # fontconfig src/fontconfig/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.9.0.tar.gz echo 'ca7e25071cf044bdcdaf7c48845243c115b9269b4e369c6bd78a29e71f01b41a src/fontconfig-2.9.0.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../fontconfig-*.tar.gz rm src/fontconfig-*.tar.gz sed -i -e 's/"append"/"prepend"/g' src/fontconfig/conf.d/*-urw-aliases.conf touch $@ src/fontconfig/config.status: src/fontconfig/source-stamp src/fontconfig/config.status: src/freetype/install-stamp src/fontconfig/config.status: src/libxml2/install-stamp cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --with-freetype-config=$(usr)/freetype-config \ --with-add-fonts=CUSTOMFONTDIR \ --enable-libxml2 \ --disable-static \ --disable-docs src/fontconfig/build-stamp: src/fontconfig/config.status $(MAKE) -C $(dir $@)/ touch $@ src/fontconfig/install-stamp: src/fontconfig/build-stamp mkdir -p dist/etc/fonts/conf.d/ $(MAKE) -C $(dir $@)/ install RUN_FC_CACHE_TEST=false $(call ship_dll,libfontconfig) cp etc/fonts/fonts.conf dist/etc/fonts/ cp etc/fonts/fonts.dtd dist/etc/fonts/ cp etc/fonts/conf.d/[3-6]*.conf dist/etc/fonts/conf.d/ touch $@ # GNU gettext src/gettext/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz echo '93ac71a7afa5b70c1b1032516663658c51e653087f42a3fc8044752c026443e9 src/gettext-0.18.1.1.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../gettext-*.tar.gz --exclude='gettext-tools' rm src/gettext-*.tar.gz sed -r -i -e '/(#undef|#define|extern .*) (v?sn?printf|[*]?setlocale)/d' $(dir $@)/gettext-runtime/intl/libgnuintl.h.in sed -r -i -e 's/(-DENABLE_RELOCATABLE)=1/\1=0/' $(dir $@)/gettext-runtime/intl/Makefile.in touch $@ src/gettext/config.status: src/gettext/source-stamp src/gettext/config.status: src/winiconv/install-stamp cp lib/libiconv.dll $(dir $@)/gettext-runtime/ cd $(dir $@)/gettext-runtime/ && \ ./configure --host=$(host) --prefix=$(usr) \ --disable-static \ --disable-libasprintf touch $@ src/gettext/build-stamp: src/gettext/config.status $(MAKE) -C $(dir $@)/gettext-runtime/intl/ \ aliaspath='\""; return NULL; "\"' \ localedir='.' touch $@ src/gettext/install-stamp: src/gettext/build-stamp mkdir -p dist/ $(MAKE) -C $(dir $@)/gettext-runtime/intl/ install $(call ship_dll,libintl) touch $@ # winiconv src/winiconv/source-stamp: mkdir -p $(dir $@) cd src && wget -c ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/win-iconv-dev_tml-20100912_win32.zip echo 'a5a8f1f6578ce6fcce88bd0fe3b4e7866d4fc158ee6d5dec164f10b443c82f6e src/win-iconv-dev_tml-20100912_win32.zip' | sha256sum -c unzip src/win-iconv-dev_tml-20100912_win32.zip 'src/tml/win_iconv/*' mv src/tml/win_iconv/* $(dir $@) rm -r src/tml/ rm src/win-iconv-*.zip sed -i -e '/iconv(/ s/const//' $(dir $@)/iconv.h touch $@ src/winiconv/build-stamp: src/winiconv/source-stamp $(CC) $(CFLAGS) -shared $(dir $@)/win_iconv.c -o $(dir $@)/libiconv.dll touch $@ src/winiconv/install-stamp: src/winiconv/build-stamp mkdir -p include/ bin/ lib/ dist/ cp $(dir $@)/iconv.h include/ cp $(dir $@)/libiconv.dll bin/ cp $(dir $@)/libiconv.dll lib/ $(call ship_dll,libiconv) touch $@ # libjpeg src/libjpeg/source-stamp: mkdir -p $(dir $@) cd src && wget -c http://ftp.debian.org/debian/pool/main/libj/libjpeg6b/libjpeg6b_6b1.orig.tar.gz echo 'dbe673129e69eaaed47e3cfccf86b1582fa19862a3ce8189ea8f8cfc1800d9aa src/libjpeg6b_6b1.orig.tar.gz' | sha256sum -c cd $(dir $@) && $(untar) ../libjpeg6b_*.tar.gz rm src/libjpeg6b_*.tar.gz touch $@ src/libjpeg/config.status: src/libjpeg/source-stamp cd $(dir $@) && \ ./configure --host=$(host) --prefix=$(usr) \ --disable-static src/libjpeg/build-stamp: src/libjpeg/config.status $(MAKE) -C $(dir $@) touch $@ src/libjpeg/install-stamp: src/libjpeg/build-stamp mkdir -p dist/ $(MAKE) -C $(dir $@) install $(call ship_dll,libjpeg) touch $@ # URW fonts src/urw-fonts/source-stamp: mkdir -p $(dir $@) cd $(dir $@) && wget -A '*.pfb' -r -nd -np http://svn.ghostscript.com/ghostscript/trunk/urw-fonts/ touch $@ src/urw-fonts/build-stamp: src/urw-fonts/source-stamp touch $@ src/urw-fonts/install-stamp: src/urw-fonts/build-stamp mkdir -p dist/fonts/ dist/doc/ cp $(dir $@)/*.pfb dist/fonts/ rst2html COPYING.fonts.txt > dist/doc/COPYING.fonts.html touch $@ # MinGW runtime src/mingwrt/install-stamp: mkdir -p $(dir $@) bin/ dist/ cp $(shell $(CXX) -print-file-name=libstdc++-6.dll) bin/ cp $(shell $(CXX) -print-file-name=libgcc_s_sjlj-1.dll) bin/ $(call ship_dll,libstdc++) $(call ship_dll,libgcc_s) touch $(@) # vim:ts=4 sw=4 noet pdf2djvu-0.7.17/win32/COPYING.libs.txt0000644000000000000000000002171612151732402015577 0ustar rootrootlibdjvulibre-\*.dll =================== Copyright © 2001 AT&T Copyright © 2002 Leon Bottou and Yann Le Cun. This software is subject to, and may be distributed under, the GNU General Public License, either Version 2 of the license, or (at your option) any later version. This program 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. libpoppler-\*.dll ================= Copyright © 1996-2004 Glyph & Cog, LLC Copyright © 2005-2009 `The Poppler Developers `_ This program 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; version 2 dated June, 1991. This program 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. freetype\*.dll ============== The FreeType 2 font engine is copyrighted work and cannot be used legally without a software license. In order to make this project usable to a vast majority of developers, we distribute it under two mutually exclusive open-source licenses. This means that *you* must choose *one* of the two licenses described below, then obey all its terms and conditions when using FreeType 2 in any of your projects or products. - The FreeType License, which is similar to the original BSD license *with* an advertising clause that forces you to explicitly cite the FreeType project in your product's documentation. All details are in the license file. This license is suited to products which don't use the GNU General Public License. - The GNU General Public License version 2, for programs which already use the GPL. Note that the FTL is incompatible with the GPL due to its advertisement clause. The contributed PCF driver comes with a license similar to that of the X Window System. It is compatible to the above two licenses. libfontconfig-\*.dll ==================== Copyright © 2001, 2003 Keith Packard Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Keith Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Keith Packard makes no representations about the suitability of this software for any purpose. It is provided “as is” without express or implied warranty. KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. libjpeg-\*.dll ============== This software is copyright © 1991-2009, Thomas G. Lane. All Rights Reserved except as specified below. Permission is hereby granted to use, copy, modify, and distribute this software (or portions thereof) for any purpose, without fee, subject to these conditions: 1) If any part of the source code for this software is distributed, then the README file must be included, with this copyright and no-warranty notice unaltered; and any additions, deletions, or changes to the original files must be clearly indicated in accompanying documentation. 2) If only executable code is distributed, then the accompanying documentation must state that “this software is based in part on the work of the Independent JPEG Group”. 3) Permission for use of this software is granted only if the user accepts full responsibility for any undesirable consequences; the authors accept NO LIABILITY for damages of any kind. These conditions apply to any software derived from or based on the IJG code, not just to the unmodified library. If you use our work, you ought to acknowledge us. Permission is NOT granted for the use of any IJG author's name or company name in advertising or publicity relating to this software or products derived from it. This software may be referred to only as “the Independent JPEG Group's software”. We specifically permit and encourage the use of this software as the basis of commercial products, provided that all warranty or liability claims are assumed by the product vendor. libxml2-\*.dll ============== Except where otherwise noted in the source code (e.g. the files hash.c, list.c and the trio files, which are covered by a similar licence but with different Copyright notices) [#]_ all the files are: Copyright © 1998-2003 Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from him. .. [#] The *otherwise noted* license and copyright notices are: | Copyright © 1998 Bjorn Reese and Daniel Stenberg. | Copyright © 2000 Bjorn Reese and Daniel Stenberg. | Copyright © 2000 Bjorn Reese and Daniel Veillard. | Copyright © 2000 Gary Pennington and Daniel Veillard. | Copyright © 2001 Bjorn Reese and Daniel Stenberg. | Copyright © 2001 Bjorn Reese. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THIS SOFTWARE IS PROVIDED “AS IS” AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. libxslt1-\*.dll =============== Copyright © 2001-2002 Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from him. libintl-\*.dll ============== Copyright © 1995-2007 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program 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 Library General Public License for more details. pdf2djvu-0.7.17/win32/COPYING.fonts.txt0000644000000000000000000000102312151732402015764 0ustar rootrootURW Type 1 fonts ================ Copyright © 1997 URW Software This program 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; version 2 dated June, 1991. As a special exception, permission is granted to include this font program in a Postscript or PDF file that consists of a document that contains text to be displayed or printed using this font, regardless of the conditions or license applying to the document itself. pdf2djvu-0.7.17/version.rc0000644000000000000000000000131612151732402014041 0ustar rootroot#include #include "version.hh" VS_VERSION_INFO VERSIONINFO FILEVERSION 0,7,17,0 PRODUCTVERSION 0,7,17,0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "04090000" BEGIN VALUE "ProductName", PACKAGE_STRING VALUE "FileDescription", "PDF to DjVu converter\0" VALUE "FileVersion", PACKAGE_VERSION VALUE "LegalCopyright", "Copyright 2007, 2008, 2009, 2010, 2011, 2012 Jakub Wilk\0" VALUE "Comments", "This package 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; version 2 dated June, 1991.\0" END END END pdf2djvu-0.7.17/tools/0000755000000000000000000000000012151732402013165 5ustar rootrootpdf2djvu-0.7.17/tools/config.rpath0000755000000000000000000004401212151732402015476 0ustar rootroot#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2010 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux* | k*bsd*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) library_names_spec='$libname.a' ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd1*) ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; nto-qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: pdf2djvu-0.7.17/tools/config.sub0000755000000000000000000010532712151732402015160 0ustar rootroot#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-04-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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 2 of the License, or # (at your option) any later version. # # This program 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 . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: pdf2djvu-0.7.17/tools/install-sh0000755000000000000000000003253712151732402015203 0ustar rootroot#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pdf2djvu-0.7.17/tools/xml2c0000755000000000000000000000065212151732402014143 0ustar rootroot#!/bin/sh # Copyright © 2009 Jakub Wilk # # This package 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; version 2 dated June, 1991. exec sed \ -e '// { s//\1/; b; }' \ -e '// { s///g; b; }' \ -e 's/\\\\/\\\\/g' \ -e 's/"/\\"/g' \ -e 's/^/"/; s/$/\\n"/' # vim:ts=2 sw=2 et pdf2djvu-0.7.17/tools/install-poppler-h-files0000755000000000000000000000116712151732402017572 0ustar rootroot#!/bin/sh if [ $# -ne 1 ] then printf 'Usage: %s \n' "$0" >&2 exit 1 fi source_dir=$1 include_dir=$(pkg-config --cflags-only-I poppler-splash | sed -n -e '/^-I/ { s/^-I//; s/ .*//; p; q;}') if [ "x$include_dir" = "x" ] then printf 'Unable to determine destination directory\n' >&2 exit 1 fi cat <&2 I will copy header files from $source_dir into $include_dir Press enter to continue EOF read n mkdir -p "$include_dir/goo" mkdir -p "$include_dir/splash" cp "$source_dir/poppler/"*.h "$include_dir" cp "$source_dir/goo/"*.h "$include_dir/goo" cp "$source_dir/splash/"*.h "$include_dir/splash" pdf2djvu-0.7.17/tools/generate-po-template0000755000000000000000000000126712151732402017140 0ustar rootroot#!/bin/sh # Copyright © 2009, 2010, 2011 Jakub Wilk # # This package 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; version 2 dated June, 1991. if ! command -v "$1" >/dev/null then printf 'Usage: %s xgettext [xgettext-option]...\n' "$0" >&2 exit 1 fi options=$(cat < paths.hh cat < Makefile.dep # vim:ts=2 sw=2 et pdf2djvu-0.7.17/tools/bump-version0000755000000000000000000000123112151732402015536 0ustar rootroot#!/bin/sh version=${1:?"no version number provided"} windows_version="$(printf -- '%s' "$version" | sed -e 's/[.]/,/g'),0" set -e set -x dch -m -v "$version" -c doc/changelog sed -i -r -e "s/(AC_INIT[(]\[pdf2djvu\],) \[[0-9.]+\]/\1 [$version]/" configure.ac sed -i -r -e "s/(VERSION) [0-9,]+/\1 $windows_version/" version.rc sed -i -r -e "s/<(!ENTITY version) '[0-9.]+'>/<\1 '$version'>/" doc/*.xml sed -i -r -e 's/(Project-Id-Version: pdf2djvu) [0-9.]+/\1 '"$version"'/' po/*.po $(ls po/*.pot) doc/po/*.po $(ls doc/po/*.pot) sed -i -r -e '/#[.] type: Content of the version entity/,/^$/ { s/(msg(id|str)) ".*"/\1 "'"$version"'"/; }' doc/po/*.po $(ls doc/po/*.pot) pdf2djvu-0.7.17/tools/build-source-tarball0000755000000000000000000000311012151732402017122 0ustar rootroot#!/bin/sh # Copyright © 2009, 2010, 2011, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. set -e set -x pwd="$PWD" buildroot=$(mktemp -dt pdf2djvu-source-XXXXXXXX) export TAR_OPTIONS='--owner root --group root --mode a+rX' export GZIP='-9n' cd "$buildroot" # Mercurial archive: hg archive "$@" -R "$pwd" pdf2djvu rm -f pdf2djvu/.hg* version=$(sed -e '/.*(\([0-9.]\+\)).*/ { s//\1/g; q; }' < pdf2djvu/doc/changelog) mv pdf2djvu "pdf2djvu-$version" # Autoconf & company: cd "pdf2djvu-$version" tools/autogen rm -Rf *.cache cd .. # Build the manual page and translations: sed -n -e '/^AC_INIT(\[\([^]]*\)\], *\[\([^]]*\)\], *\[\([^]]*\)\],.*/ { s//PACKAGE_NAME=\1\nPACKAGE_VERSION=\2\nPACKAGE_BUGREPORT=\3/p; q }' \ "pdf2djvu-$version/configure.ac" \ > "pdf2djvu-$version/Makefile.common" grep -E 'MSGFMT|MSGMERGE|XGETTEXT' "pdf2djvu-$version/Makefile.common.in" \ | sed >> "pdf2djvu-$version/Makefile.common" \ -e 's/@MSGFMT@/msgfmt/' \ -e 's/@MSGMERGE@/msgmerge/' \ -e 's/@XGETTEXT@/xgettext/' cat "pdf2djvu-$version/Makefile.common" make -C "pdf2djvu-$version/po/" 'quality-check=1' make -C "pdf2djvu-$version/doc/" make -C "pdf2djvu-$version/doc/po/" all pdf2djvu.pot 'quality-check=1' rm "pdf2djvu-$version/Makefile.common" # Prepare tests: make -C "pdf2djvu-$version/tests/" prepare # Tarball with raw source: tar -czf "$pwd/pdf2djvu_$version.tar.gz" "pdf2djvu-$version" # Cleanup: rm -Rf "$buildroot" pdf2djvu-0.7.17/tools/autogen0000755000000000000000000000047012151732402014556 0ustar rootroot#!/bin/sh set -e -u set -x for file in install-sh config.sub config.guess do rm -f tools/$file cp $(ls -d /usr/share/automake*/$file | head -n1) tools/ done rm -f tools/config.rpath cp /usr/share/gettext/config.rpath tools/ ${ACLOCAL:-aclocal} -I m4 --install ${AUTOCONF:-autoconf} ${AUTOHEADER:-autoheader} pdf2djvu-0.7.17/tests/0000755000000000000000000000000012151732440013171 5ustar rootrootpdf2djvu-0.7.17/tests/test-xmp-broken.pdf0000644000000000000000000000230112151732440016717 0ustar rootroot%PDF-1.5 % 1 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Metadata /Subtype /XML /Length 132 >> stream endstream endobj 5 0 obj << /Length 0 >> stream endstream endobj 4 0 obj << /Type /Page /Contents 5 0 R /Resources 3 0 R /MediaBox [0 0 595.276 841.89] /Parent 6 0 R >> endobj 3 0 obj << /ProcSet [ /PDF ] >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [4 0 R] >> endobj 7 0 obj << /Type /Catalog /Pages 6 0 R /Metadata 2 0 R >> endobj 8 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000072 00000 n 0000000460 00000 n 0000000349 00000 n 0000000292 00000 n 0000000499 00000 n 0000000556 00000 n 0000000621 00000 n trailer << /Size 9 /Root 7 0 R /Info 8 0 R /ID [<0FA940059C0AFD4A8E6F436BA53C5358> <0FA940059C0AFD4A8E6F436BA53C5358>] >> startxref 886 %%EOF pdf2djvu-0.7.17/tests/test-multipage.pdf0000644000000000000000000002153512151732440016636 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 54 /Filter /FlateDecode >> stream xs w3TԳ432SIS06035T0403PIQ0Ԍ r I endstream endobj 9 0 obj << /Length 54 /Filter /FlateDecode >> stream xs w3TԳ432SIS06035T0403PIQ0Ҍ r R endstream endobj 11 0 obj << /Length1 1403 /Length2 6624 /Length3 0 /Length 7578 /Filter /FlateDecode >> stream xڍtT>% H 1tw 30  Q$i$%$CiF9soZyw~9Y Mu%D""bB""NNS( K 4 8 !`F Fap $e@R2""@QH* j#o 3 uuCa}8ARÁJ$ QnLE'0 hpBPH#By =HWy^4xCg/@}OdBNO FB {c"|$Sh 4tAWo !п+;pW  Q@0#ă}P`#A .P/>fpDK/ o+B'7_Mp^8,+limo'ٔ AqdRC?5CdԂ b4oт篕>eԷq|@,B>0o3oc{@a9`¬vzg[P`z(]aj#[q6SAC7c lszyP1m`%N_'*! #fIl37Bp   _ c_20[G!'$u@!Nql{eT{~kG8,^ M!|.Hn?-όX@(=i#]Q9Vf ڪ[b3>xx09Dy0KC'!zWyC:Oڜ9^>H PuhDŌK] &= /ucG 2QPaNl'Y/>= +1n砷c= RLӦ**<_'WXŬ ЦhF98^^7 Zyr5f@]`O{alvQk<1ouq8- pm+5g\OgӘg=5+! ~ >57 Ш~ {rA |{ڱw%rV7/O(DDJ8~zO&ÓG|"l%z4-XJ#Z,1yQ Ѿ6Qg~.'k^jL"ψuu;^:[92Cys;e;oR=OLrh6{mteБ}Tٗգ&JK?*'w^7i8 l28I63s}ݾAE+_W8`@Y'鸰$.։WG y]Λ)UM3Vd~,lw)nsgS݌d/f)^$/󶭜:~w߶ cAUw¡K篿k}G -OfbVd"R%2i<kEn21PL-5JP|zHD\TG6 $Ln>>Բ569v7(^D}ՏM]"51GpM8Hn`cѰãrY `o{U5瓙=n9Q ߿PwP8Jۢ!˹e螿8h>jLkXV26& -+*MTiHI#'fN0uqq_V S7>_R^wgY`zw}J/7Hr.u|M)njW+Y=:A*Mf8vQeZ.JjShmZF!=g] :}\偱}>Gz%t>9|w4PБJKetv5Kx`Ǐp|-Fg}[ڌiA Q{^_V"̅t+Wq*j<9: (4C4$n__)h}!UUǧL9wHFLԉt&~\ł[#˳5ϊN^jԺtӿZ5:yP߂VmfѡXc1SJ_1)2߅ë) ).Y&NC5\fs%^e]u94ͮ%Z%[)o4 &[~\? %VԽ ID2yk)-Ϫ>uN0BȞr|5cRqdػ S0*@+~Q,=}ʼnTOobHjף>pz(>! }M[ 7iha o֤{J/>_gLASKSԠЅn2l?{Kgo3`iQN9ͱod9+y= uKM9xā@p 1:fB+)Ơ`7맶;3z+]ìtVC9 r#tÿ2vq$//S5 @4/v 獵nX^{$%TWOg=`|D8)&)dH,5JTtсB;+z;;gD6h ,\hQ[lť뒶;ɥd |qr>_餌DzH$VQs6m(e@aԱᮬǶ6R ՚ZDqޤeJup5_ T}4m?D. qusix9_^Jtԫff8η?q-{@07Ů |LỼ0[F<%G(%Cf9UC._z^}DbPR8 K|E=uZ8ѢgKgaۓ .]9Ox0;u2m^t}w (dYT,}CTwQDl%68X m&o6LjMJ180B,_V͚8Ԉ;s j `.ga9o[\Vh0SYQ):\?[ҴeygJHq?F{ʋJi7(_U{ }tQOm$@)[ןY.b!@G@/>η{ۉEQn2i}΄UL^a9 ^mʧ wC~ G/vN岆;nrY0uWǍ,85 7HPZcBSVpw426f-A]bxZ [4v3TՏi>'&80)Qߗt|le)Oȧn>y&0{:1뼺P8A =cUvw*w"xD4zegpw>4&͖{u>骀R,; /^I^_ VA*&-yG̐~"wizӽQa<#5aO} )l+H\0o<8N3tѺn\',SgF"|*304߱YGF֊F^pn:n3̸<էn >~4ROFgc놶\xdK 4dždZaG+J%- 02䉲#kzT5cߐxS##gBmC幃_M:d6_?%amsM{_)dߘTOdoSPwxzAiB :id(Sb%ǪkOGHe^]yxZMKϥxMgS>GO-;͏6u.8"ĽFϼP=ncRna t*lsH{;P᳝|WFKE.3Q6„B3#է|s)-/j%C8|8ݮ'7 ڞi1qʮuK|isiAr6tMlR%)oA1r¢+ήko~>ֲW9|3xrꭥvaY%֖v6>)i+r[{3L\_6[bq~o 3te/n w72OOCi5t7hK4kzNݞt[3FB(^eԛTw畳psXk|,3dq\U{,E}%ip 2iR& ˼T[ql#:'#I95$ Wv)L D-ߍĚ>7FWC/ĺekɠwf8kQI{s nv3m7.n~:Ǖ@4l˒ sqSBl+Z5G ((Nn6l+mp[owSWqK`kgrkX9r%@ZVzHG)Q-Hu`ɾXW[IՒC"# քH\xn( ERq2I-"[Ks8=coDBhFmق& ̦?gMG.={|4Ҭ lߕ2 ר̢;{A],c^]Db:dT [iP,:b h}ס;VeBW h,lSK7!O4nf2R;v s)!4]9i0T;hs:e욾O۷M@%*zgFQU6rf2x3 N'; &1gl\7M5έ9[tTqᗜmR=IYgE[p"_*9ku~tbK~]e3OY)5#;h:f/h? }S4j-gޱZT:: _uS'0~a& }&BswI;E)LF_PW)U_wOvunXk""x2-3 gKVB㺒O=VV $A^c||mx|le8w! BWvNk5&cNPۚɚ52jfadP|t@qZv~ȳW,686N/iH47]3Lv3%}?ǻ\7+IinXmFlkn57e~b^F BI-̓MÅ-O 4>8TQz@VssCѕ-!ß5f^LSyچ>2l`6zE|ޏFc?r4]8G^k}#zjĶ=4әz0%UǑƘCEփzy*koXԸpgrӴ.Dkl%\#2n*T[ai?(\hUGт鸉U?Oz>a 5GHc3+ܧq0 RNzɖhkƬNiK9 |6>)ؠ·[b{:ox>6W< G:Hw'wK  X-vkmz)]Hļ\}(bpR$āC&),Es=B4~6\ ,4 4UŲu+ ?|GpQ4jnЗIϡ韁59 G'ֿSe 'f0H/? SX =GQJX/{iO7"QȏВbm>g%M|u޻𶫽OU!0 H!Hv\"X x;G ~ ƞ ϯpqw7l endstream endobj 14 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj 5 0 obj << /Type /ObjStm /N 9 /First 54 /Length 395 /Filter /FlateDecode >> stream xڽ_O0)`ۭ-!&2`CCXYKo/zo{$)RLRԣ@)d@蒢Hԥn~b}?6X񴮜 cm ve;Q=h*y' Jrh-?}♄$ >n|j!}7_5zJ=< 8pWMqucWdf,M@| Kjwa(A ĄH/mLp3՛)qȸWke~YkCOy}@OJ V2ܽէ;Y2)ж/= 0mMXMhoX;lҤ`V*˥[YB7ҼEb=ڋT ' ͸ endstream endobj 15 0 obj << /Type /XRef /Index [0 16] /Size 16 /W [1 2 1] /Root 13 0 R /Info 14 0 R /ID [<27919458FFE2FDA07700AF4E7B5478A5> <27919458FFE2FDA07700AF4E7B5478A5>] /Length 57 /Filter /FlateDecode >> stream x9 d136"ԣz_j`' qV7$,bn) endstream endobj startxref 8747 %%EOF pdf2djvu-0.7.17/tests/test-fg-colors-2+gm.pdf0000644000000000000000000000545612151732440017304 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 30 >> stream q 72 0 0 144 0 0 cm /Im1 Do Q endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 72 144] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Image /Width 100 /Height 100 /BitsPerComponent 8 /Length 1733 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?a{SŶ{Uj{W4XXjSeտ{SڰΧ4sfښmqںZڭb.qί)_j_V _j^$'4co OjKlvSGvbqژS$8U0k8k0r T87-+R8⣴8--+ֱ؜=ڥڶ,*y˖'< TyNNKOj%u{U m}"mR _j[ojm}Ϙ2* N:Vuݶ3}bo#&L5tWp˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0g> /ProcSet [ /PDF /ImageC ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 7 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 8 0000000000 65535 f 0000000205 00000 n 0000002106 00000 n 0000000102 00000 n 0000000015 00000 n 0000002179 00000 n 0000002236 00000 n 0000002285 00000 n trailer << /Size 8 /Root 6 0 R /Info 7 0 R /ID [<54977AAB5A9B6EA99FCEAE69BD641613> <54977AAB5A9B6EA99FCEAE69BD641613>] >> startxref 2550 %%EOF pdf2djvu-0.7.17/tests/test-crop-text.pdf0000644000000000000000000000320612151732440016567 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 56 >> stream BT /F51 11.9552 Tf 0 2.989 Td [(Lorem)-250(ipsum)]TJ ET endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 32.877 12.951] /Parent 5 0 R >> endobj 1 0 obj << /Font << /F51 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 7 0 obj [611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500] endobj 8 0 obj << /Type /FontDescriptor /FontName /Times-Roman /Flags 34 /FontBBox [0 -216 1000 678] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 83 /XHeight 450 >> endobj 6 0 obj << /Type /Encoding /Differences [76/L 101/e 105/i 109/m 111/o/p 114/r/s 117/u] >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /FontDescriptor 8 0 R /FirstChar 76 /LastChar 117 /Widths 7 0 R /Encoding 6 0 R >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 9 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 10 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 11 0000000000 65535 f 0000000238 00000 n 0000000128 00000 n 0000000015 00000 n 0000000771 00000 n 0000000923 00000 n 0000000674 00000 n 0000000306 00000 n 0000000491 00000 n 0000000980 00000 n 0000001029 00000 n trailer << /Size 11 /Root 9 0 R /Info 10 0 R /ID [<3E79B1B6FA4E21E9D048160D23A1918E> <3E79B1B6FA4E21E9D048160D23A1918E>] >> startxref 1295 %%EOF pdf2djvu-0.7.17/tests/test-fg-colors-2.pdf0000644000000000000000000000545612151732440016705 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 30 >> stream q 72 0 0 144 0 0 cm /Im1 Do Q endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 72 144] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Image /Width 100 /Height 100 /BitsPerComponent 8 /Length 1733 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?a{SŶ{Uj{W4XXjSeտ{SڰΧ4sfښmqںZڭb.qί)_j_V _j^$'4co OjKlvSGvbqژS$8U0k8k0r T87-+R8⣴8--+ֱ؜=ڥڶ,*y˖'< TyNNKOj%u{U m}"mR _j[ojm}Ϙ2* N:Vuݶ3}bo#&L5tWp˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0g> /ProcSet [ /PDF /ImageC ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 7 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 8 0000000000 65535 f 0000000205 00000 n 0000002106 00000 n 0000000102 00000 n 0000000015 00000 n 0000002179 00000 n 0000002236 00000 n 0000002285 00000 n trailer << /Size 8 /Root 6 0 R /Info 7 0 R /ID [ ] >> startxref 2550 %%EOF pdf2djvu-0.7.17/tests/test-xmp-recreate.pdf0000644000000000000000000000156412151732440017243 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 595.276 841.89] /Parent 4 0 R >> endobj 1 0 obj << /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 5 0 obj << /Type /Catalog /Pages 4 0 R >> endobj 6 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 7 0000000000 65535 f 0000000183 00000 n 0000000072 00000 n 0000000015 00000 n 0000000222 00000 n 0000000279 00000 n 0000000328 00000 n trailer << /Size 7 /Root 5 0 R /Info 6 0 R /ID [<82E10610D4973854CA5652C7A9B05839> <82E10610D4973854CA5652C7A9B05839>] >> startxref 593 %%EOF pdf2djvu-0.7.17/tests/test-1px-font.pdf0000644000000000000000000000356712151732440016330 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 59 >> stream BT /F52 0.0996 Tf 0 -8.966 Td [(Lorem)-250(ipsum...)]TJ ET endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 0.996 0.996] /Parent 5 0 R >> endobj 1 0 obj << /Font << /F52 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 7 0 obj [250 277.9 500.2 500.2 500.2 500.2 500.2 500.2 500.2 500.2 500.2 500.2 277.9 277.9 564.1 564.1 564.1 444 921.2 722.1 667.1 667.1 722.1 611.1 556 722.1 722.1 333 389 722.1 611.1 889.2 722.1 722.1 556 722.1 667.1 556 611.1 722.1 722.1 944.1 722.1 722.1 611.1 333 277.9 333 469 500.2 333 444 500.2 444 500.2 444 333 500.2 500.2 277.9 277.9 500.2 277.9 778.1 500.2 500.2 500.2 500.2 333 389 277.9 500.2] endobj 8 0 obj << /Type /FontDescriptor /FontName /Times-Roman /Flags 34 /FontBBox [0 -216 1000 678] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 83 /XHeight 450 >> endobj 6 0 obj << /Type /Encoding /Differences [46/period 76/L 101/e 105/i 109/m 111/o/p 114/r/s 117/u] >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /FontDescriptor 8 0 R /FirstChar 46 /LastChar 117 /Widths 7 0 R /Encoding 6 0 R >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 9 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 10 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 11 0000000000 65535 f 0000000239 00000 n 0000000131 00000 n 0000000015 00000 n 0000001012 00000 n 0000001164 00000 n 0000000905 00000 n 0000000307 00000 n 0000000722 00000 n 0000001221 00000 n 0000001270 00000 n trailer << /Size 11 /Root 9 0 R /Info 10 0 R /ID [<9B5A7A63C52EE054FF9988BBAC03C815> <9B5A7A63C52EE054FF9988BBAC03C815>] >> startxref 1536 %%EOF pdf2djvu-0.7.17/tests/test-dpi-detection.pdf0000644000000000000000000000545612151732440017403 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 30 >> stream q 72 0 0 144 0 0 cm /Im1 Do Q endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 72 144] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Image /Width 100 /Height 100 /BitsPerComponent 8 /Length 1733 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?a{SŶ{Uj{W4XXjSeտ{SڰΧ4sfښmqںZڭb.qί)_j_V _j^$'4co OjKlvSGvbqژS$8U0k8k0r T87-+R8⣴8--+ֱ؜=ڥڶ,*y˖'< TyNNKOj%u{U m}"mR _j[ojm}Ϙ2* N:Vuݶ3}bo#&L5tWp˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0g> /ProcSet [ /PDF /ImageC ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 7 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 8 0000000000 65535 f 0000000205 00000 n 0000002106 00000 n 0000000102 00000 n 0000000015 00000 n 0000002179 00000 n 0000002236 00000 n 0000002285 00000 n trailer << /Size 8 /Root 6 0 R /Info 7 0 R /ID [<83A2844887698625CD1F6DAEAF15311C> <83A2844887698625CD1F6DAEAF15311C>] >> startxref 2550 %%EOF pdf2djvu-0.7.17/tests/test-monochrome.pdf0000644000000000000000000000545412151732440017017 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 29 >> stream q 72 0 0 72 0 0 cm /Im1 Do Q endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 72 72] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Image /Width 100 /Height 100 /BitsPerComponent 8 /Length 1733 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?a{SŶ{Uj{W4XXjSeտ{SڰΧ4sfښmqںZڭb.qί)_j_V _j^$'4co OjKlvSGvbqژS$8U0k8k0r T87-+R8⣴8--+ֱ؜=ڥڶ,*y˖'< TyNNKOj%u{U m}"mR _j[ojm}Ϙ2* N:Vuݶ3}bo#&L5tWp˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0g> /ProcSet [ /PDF /ImageC ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 7 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 8 0000000000 65535 f 0000000203 00000 n 0000002104 00000 n 0000000101 00000 n 0000000015 00000 n 0000002177 00000 n 0000002234 00000 n 0000002283 00000 n trailer << /Size 8 /Root 6 0 R /Info 7 0 R /ID [<6FD2FD2E10B0655BBCE86EAC8AEDDE6C> <6FD2FD2E10B0655BBCE86EAC8AEDDE6C>] >> startxref 2548 %%EOF pdf2djvu-0.7.17/tests/test-xmp-mediatype.pdf0000644000000000000000000000261412151732440017427 0ustar rootroot%PDF-1.5 % 1 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Metadata /Subtype /XML /Length 334 >> stream application/pdf endstream endobj 5 0 obj << /Length 0 >> stream endstream endobj 4 0 obj << /Type /Page /Contents 5 0 R /Resources 3 0 R /MediaBox [0 0 595.276 841.89] /Parent 6 0 R >> endobj 3 0 obj << /ProcSet [ /PDF ] >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [4 0 R] >> endobj 7 0 obj << /Type /Catalog /Pages 6 0 R /Metadata 2 0 R >> endobj 8 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000072 00000 n 0000000662 00000 n 0000000551 00000 n 0000000494 00000 n 0000000701 00000 n 0000000758 00000 n 0000000823 00000 n trailer << /Size 9 /Root 7 0 R /Info 8 0 R /ID [<4597606427402058EA427924612A5556> <4597606427402058EA427924612A5556>] >> startxref 1088 %%EOF pdf2djvu-0.7.17/tests/test-100x101.pdf0000644000000000000000000000545312151732440015562 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 31 >> stream q 100 0 0 101 0 0 cm /Im1 Do Q endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 100 101] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Image /Width 100 /Height 101 /BitsPerComponent 8 /Length 1728 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222ed" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Aiܚ9Vjkrc,ZA5{SڱΧ4c6ҚmoD־ksuyL__k[|_Y1~i܊]1pXŊaLVUtㇹj\e`'U}XVXs+n8VkK؊ v6yf{,v}:8u~x|<\x=vqk׊^[)kSi%YK_j|>~x-m8Y7-+PxSAg {3sIk!5&$kpkp5/bOxSG{[t\uZ|8s4* zcj:΃N+\GU=xYiMQ=*pJU+|2mXZxbⱵ3+i$<-yާnpW#}lg^Z+̝;`뤏ˠՌ`WS+[ekq]8Zⶭa8MU\ѲLbΔZ1SʙX_xdcMZΚjܖ:,9X{%f$>:EVVaCǍ,1]b`xEgA_Wd8\;uukXeW<%;Y|(l^V{z8wQ)A*gΔQEg endstream endobj 2 0 obj << /XObject << /Im1 1 0 R >> /ProcSet [ /PDF /ImageC ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 7 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 8 0000000000 65535 f 0000000207 00000 n 0000002103 00000 n 0000000103 00000 n 0000000015 00000 n 0000002176 00000 n 0000002233 00000 n 0000002282 00000 n trailer << /Size 8 /Root 6 0 R /Info 7 0 R /ID [<42B7268198D54EE4D86CB01C3E746288> <42B7268198D54EE4D86CB01C3E746288>] >> startxref 2547 %%EOF pdf2djvu-0.7.17/tests/test-nfkc.pdf0000644000000000000000000000361112151732440015563 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 56 >> stream BT /F51 11.9552 Tf 0 2.989 Td [(\003uorogra\002a)]TJ ET endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 56.787 12.951] /Parent 5 0 R >> endobj 1 0 obj << /Font << /F51 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 7 0 obj [556 556 167 333 611 278 333 333 0 333 564 0 611 444 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 180 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500] endobj 8 0 obj << /Type /FontDescriptor /FontName /Times-Roman /Flags 34 /FontBBox [0 -216 1000 678] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 83 /XHeight 450 >> endobj 6 0 obj << /Type /Encoding /Differences [2/fi/fl 97/a 103/g 111/o 114/r 117/u] >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /FontDescriptor 8 0 R /FirstChar 2 /LastChar 117 /Widths 7 0 R /Encoding 6 0 R >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 9 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 10 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222256+02'00') /ModDate (D:20130530222256+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 11 0000000000 65535 f 0000000238 00000 n 0000000128 00000 n 0000000015 00000 n 0000001031 00000 n 0000001182 00000 n 0000000942 00000 n 0000000306 00000 n 0000000759 00000 n 0000001239 00000 n 0000001288 00000 n trailer << /Size 11 /Root 9 0 R /Info 10 0 R /ID [ ] >> startxref 1554 %%EOF pdf2djvu-0.7.17/tests/test-fg-colors-1.pdf0000644000000000000000000000156412151732437016706 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 595.276 841.89] /Parent 4 0 R >> endobj 1 0 obj << /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 5 0 obj << /Type /Catalog /Pages 4 0 R >> endobj 6 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 7 0000000000 65535 f 0000000183 00000 n 0000000072 00000 n 0000000015 00000 n 0000000222 00000 n 0000000279 00000 n 0000000328 00000 n trailer << /Size 7 /Root 5 0 R /Info 6 0 R /ID [<2257B001619A28F281CB6BF8EF704D3D> <2257B001619A28F281CB6BF8EF704D3D>] >> startxref 593 %%EOF pdf2djvu-0.7.17/tests/test-fg-colors-1+gm.pdf0000644000000000000000000000156412151732437017305 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 595.276 841.89] /Parent 4 0 R >> endobj 1 0 obj << /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 5 0 obj << /Type /Catalog /Pages 4 0 R >> endobj 6 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 7 0000000000 65535 f 0000000183 00000 n 0000000072 00000 n 0000000015 00000 n 0000000222 00000 n 0000000279 00000 n 0000000328 00000 n trailer << /Size 7 /Root 5 0 R /Info 6 0 R /ID [ ] >> startxref 593 %%EOF pdf2djvu-0.7.17/tests/test-utf16-meta.pdf0000644000000000000000000000207412151732437016543 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 0.996 0.996] /Parent 4 0 R >> endobj 1 0 obj << /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 5 0 obj << /Type /Catalog /Pages 4 0 R >> endobj 6 0 obj << /Producer (pdfTeX-1.40.14) /Title (\376\377\003\232\003\311\003\264\003\271\003\272\003\277\003\300\003\277\003\257\003\267\003\303\003\267\000\040\003\307\003\261\003\301\003\261\003\272\003\304\003\256\003\301\003\311\003\275) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 7 0000000000 65535 f 0000000180 00000 n 0000000072 00000 n 0000000015 00000 n 0000000219 00000 n 0000000276 00000 n 0000000325 00000 n trailer << /Size 7 /Root 5 0 R /Info 6 0 R /ID [<0A24A15390B4A647039533553FC6B31B> <0A24A15390B4A647039533553FC6B31B>] >> startxref 793 %%EOF pdf2djvu-0.7.17/tests/test-no-meta.pdf0000644000000000000000000000156112151732437016212 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 0.996 0.996] /Parent 4 0 R >> endobj 1 0 obj << /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 5 0 obj << /Type /Catalog /Pages 4 0 R >> endobj 6 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 7 0000000000 65535 f 0000000180 00000 n 0000000072 00000 n 0000000015 00000 n 0000000219 00000 n 0000000276 00000 n 0000000325 00000 n trailer << /Size 7 /Root 5 0 R /Info 6 0 R /ID [<005CEA080B7B702D7DBFEC65504373B0> <005CEA080B7B702D7DBFEC65504373B0>] >> startxref 590 %%EOF pdf2djvu-0.7.17/tests/test-rotated-page.pdf0000644000000000000000000000745612151732437017237 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 31 >> stream q 255 0 0 100 0 0 cm /Im1 Do Q endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 255 100] /Parent 5 0 R >> endobj 1 0 obj << /Type /XObject /Subtype /Image /Width 255 /Height 100 /BitsPerComponent 8 /Length 2744 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222d" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Q/WV/jaCP?(5ڡ3t,e _jQi[+kR-CX^ԿalAeJ3qړ^/jaFoC'=6~iU';dոm=ڟ keղm>TA_j>[?f/h\_Y1~K_j//}T/dշ_j_{V\>b}ښm}{tڴT bojiڶڣh=EaE/j-UDHVu-Z)܃m.ʔ-8%?-Mtڬ$>4q{UCgY ڮoVY8BzZU8}v+?j?/JԂϧ},~Njyuc{/j^=V{/jqE}]{WDq'^v9ں7k]=z9׵oj{oj`u:WK zgr-NME1k,)P`JՠR{Tj!}ӱ  zU > /ProcSet [ /PDF /ImageC ] >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] /Rotate 90 >> endobj 6 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 7 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 8 0000000000 65535 f 0000000207 00000 n 0000003119 00000 n 0000000103 00000 n 0000000015 00000 n 0000003192 00000 n 0000003260 00000 n 0000003309 00000 n trailer << /Size 8 /Root 6 0 R /Info 7 0 R /ID [<73FB9B3EFCF3D9008B64C3034E10F132> <73FB9B3EFCF3D9008B64C3034E10F132>] >> startxref 3574 %%EOF pdf2djvu-0.7.17/tests/test-solid-nonwhite-background.pdf0000644000000000000000000000325312151732437021732 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 99 >> stream q 1 0 0 rg 1 0 0 RG n 0 0 216 216 re f Q BT /F51 11.9552 Tf 0 206.037 Td [(Lorem)-250(ipsum)]TJ ET endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 216 216] /Parent 5 0 R >> endobj 1 0 obj << /Font << /F51 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 7 0 obj [611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500] endobj 8 0 obj << /Type /FontDescriptor /FontName /Times-Roman /Flags 34 /FontBBox [0 -216 1000 678] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 83 /XHeight 450 >> endobj 6 0 obj << /Type /Encoding /Differences [76/L 101/e 105/i 109/m 111/o/p 114/r/s 117/u] >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /FontDescriptor 8 0 R /FirstChar 76 /LastChar 117 /Widths 7 0 R /Encoding 6 0 R >> endobj 5 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 9 0 obj << /Type /Catalog /Pages 5 0 R >> endobj 10 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 11 0000000000 65535 f 0000000275 00000 n 0000000171 00000 n 0000000015 00000 n 0000000808 00000 n 0000000960 00000 n 0000000711 00000 n 0000000343 00000 n 0000000528 00000 n 0000001017 00000 n 0000001066 00000 n trailer << /Size 11 /Root 9 0 R /Info 10 0 R /ID [<922D63A54F1522C95B062990E945306A> <922D63A54F1522C95B062990E945306A>] >> startxref 1332 %%EOF pdf2djvu-0.7.17/tests/test-hyperlinks.pdf0000644000000000000000000000506512151732437017045 0ustar rootroot%PDF-1.5 % 4 0 obj << /Length 45 >> stream BT /F51 11.9552 Tf 0 2.989 Td [(Lorem)]TJ ET endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 99.626 12.951] /Parent 7 0 R /Annots [ 1 0 R ] >> endobj 1 0 obj << /Type /Annot /Subtype /Link /Rect [0 2.905 34.861 10.771] /A << /S /GoTo /D (P2) >> >> endobj 5 0 obj << /D [3 0 R /Fit] >> endobj 2 0 obj << /Font << /F51 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 12 0 obj << /Length 45 >> stream BT /F51 11.9552 Tf 0 2.989 Td [(ipsum)]TJ ET endstream endobj 11 0 obj << /Type /Page /Contents 12 0 R /Resources 10 0 R /MediaBox [0 0 99.626 12.951] /Parent 7 0 R /Annots [ 9 0 R ] >> endobj 9 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0.5 0] /Rect [0 0.401 32.219 11.094] /A << /S /GoTo /D (P1) >> >> endobj 8 0 obj << /D [11 0 R /Fit] >> endobj 10 0 obj << /Font << /F51 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 14 0 obj [611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500] endobj 15 0 obj << /Type /FontDescriptor /FontName /Times-Roman /Flags 34 /FontBBox [0 -216 1000 678] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 83 /XHeight 450 >> endobj 13 0 obj << /Type /Encoding /Differences [76/L 101/e 105/i 109/m 111/o/p 114/r/s 117/u] >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /FontDescriptor 15 0 R /FirstChar 76 /LastChar 117 /Widths 14 0 R /Encoding 13 0 R >> endobj 7 0 obj << /Type /Pages /Count 2 /Kids [3 0 R 11 0 R] >> endobj 16 0 obj << /Names [(P1) 5 0 R (P2) 8 0 R] /Limits [(P1) (P2)] >> endobj 17 0 obj << /Dests 16 0 R >> endobj 18 0 obj << /Type /Catalog /Pages 7 0 R /Names 17 0 R >> endobj 19 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 20 0000000000 65535 f 0000000245 00000 n 0000000387 00000 n 0000000117 00000 n 0000000015 00000 n 0000000350 00000 n 0000001399 00000 n 0000001554 00000 n 0000000824 00000 n 0000000689 00000 n 0000000862 00000 n 0000000558 00000 n 0000000455 00000 n 0000001301 00000 n 0000000931 00000 n 0000001117 00000 n 0000001618 00000 n 0000001691 00000 n 0000001727 00000 n 0000001791 00000 n trailer << /Size 20 /Root 18 0 R /Info 19 0 R /ID [ ] >> startxref 2057 %%EOF pdf2djvu-0.7.17/tests/test-duplicate-pages.pdf0000644000000000000000000000156112151732437017721 0ustar rootroot%PDF-1.5 % 3 0 obj << /Length 0 >> stream endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 0.996 0.996] /Parent 4 0 R >> endobj 1 0 obj << /ProcSet [ /PDF ] >> endobj 4 0 obj << /Type /Pages /Count 1 /Kids [2 0 R] >> endobj 5 0 obj << /Type /Catalog /Pages 4 0 R >> endobj 6 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 7 0000000000 65535 f 0000000180 00000 n 0000000072 00000 n 0000000015 00000 n 0000000219 00000 n 0000000276 00000 n 0000000325 00000 n trailer << /Size 7 /Root 5 0 R /Info 6 0 R /ID [<6055D2BC8493A6F89E7C78347D0D1240> <6055D2BC8493A6F89E7C78347D0D1240>] >> startxref 590 %%EOF pdf2djvu-0.7.17/tests/test-empty-outline.pdf0000644000000000000000000000300112151732437017454 0ustar rootroot%PDF-1.5 % 1 0 obj << /Type /Outlines /Count 0 >> endobj 4 0 obj << /Length 42 >> stream BT /F51 11.9552 Tf 0 -8.966 Td [(1)]TJ ET endstream endobj 3 0 obj << /Type /Page /Contents 4 0 R /Resources 2 0 R /MediaBox [0 0 0.996 0.996] /Parent 6 0 R >> endobj 2 0 obj << /Font << /F51 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 8 0 obj [500] endobj 9 0 obj << /Type /FontDescriptor /FontName /Times-Roman /Flags 34 /FontBBox [0 -216 1000 678] /Ascent 678 /CapHeight 651 /Descent -216 /ItalicAngle 0 /StemV 83 /XHeight 450 >> endobj 7 0 obj << /Type /Encoding /Differences [49/one] >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /Times-Roman /FontDescriptor 9 0 R /FirstChar 49 /LastChar 49 /Widths 8 0 R /Encoding 7 0 R >> endobj 6 0 obj << /Type /Pages /Count 1 /Kids [3 0 R] >> endobj 10 0 obj << /Type /Catalog /Pages 6 0 R /Outlines 1 0 R >> endobj 11 0 obj << /Producer (pdfTeX-1.40.14) /Creator (TeX) /CreationDate (D:20130530222255+02'00') /ModDate (D:20130530222255+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 12 0000000000 65535 f 0000000015 00000 n 0000000269 00000 n 0000000161 00000 n 0000000062 00000 n 0000000600 00000 n 0000000751 00000 n 0000000541 00000 n 0000000337 00000 n 0000000358 00000 n 0000000808 00000 n 0000000875 00000 n trailer << /Size 12 /Root 10 0 R /Info 11 0 R /ID [<456B61CA394D86F3BDD5A25300478AE2> <456B61CA394D86F3BDD5A25300478AE2>] >> startxref 1141 %%EOF pdf2djvu-0.7.17/tests/test-fg-colors-2.jpeg0000644000000000000000000000330512151732436017055 0ustar rootrootJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222dd" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?a{SŶ{Uj{W4XXjSeտ{SڰΧ4sfښmqںZڭb.qί)_j_V _j^$'4co OjKlvSGvbqژS$8U0k8k0r T87-+R8⣴8--+ֱ؜=ڥڶ,*y˖'< TyNNKOj%u{U m}"mR _j[ojm}Ϙ2* N:Vuݶ3}bo#&L5tWp˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0g˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0g˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0gv6yf{,v}:8u~x|<\x=vqk׊^[)kSi%YK_j|>~x-m8Y7-+PxSAg {3sIk!5&$kpkp5/bOxSG{[t\uZ|8s4* zcj:΃N+\GU=xYiMQ=*pJU+|2mXZxbⱵ3+i$<-yާnpW#}lg^Z+̝;`뤏ˠՌ`WS+[ekq]8Zⶭa8MU\ѲLbΔZ1SʙX_xdcMZΚjܖ:,9X{%f$>:EVVaCǍ,1]b`xEgA_Wd8\;uukXeW<%;Y|(l^V{z8wQ)A*gΔQEgpdf2djvu-0.7.17/tests/test-rotated-page.jpeg0000644000000000000000000000527012151732434017400 0ustar rootrootJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222d" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Q/WV/jaCP?(5ڡ3t,e _jQi[+kR-CX^ԿalAeJ3qړ^/jaFoC'=6~iU';dոm=ڟ keղm>TA_j>[?f/h\_Y1~K_j//}T/dշ_j_{V\>b}ښm}{tڴT bojiڶڣh=EaE/j-UDHVu-Z)܃m.ʔ-8%?-Mtڬ$>4q{UCgY ڮoVY8BzZU8}v+?j?/JԂϧ},~Njyuc{/j^=V{/jqE}]{WDq'^v9ں7k]=z9׵oj{oj`u:WK zgr-NME1k,)P`JՠR{Tj!}ӱ  zU ˖6yf{/jӬ*͗^+秉ϊ#ʙg׊̞ڻ kxb2t__$ˡk6Et|(W>/GYZWCe1W8Xq+ ES\вLbΔZ1SJ 314}k:h}nXT冺|61TYX}Uڽ9lx.:V]Ј0gimage/vnd.djvu<') # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-xmp-mediatype.tex0000644000000000000000000000150412151732402017451 0ustar rootroot% Copyright © 2009, 2012 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \immediate\pdfobj stream {} % dummy stream to fool poppler \immediate\pdfobj stream attr {/Type /Metadata /Subtype /XML} {% application/pdf } \pdfcatalog{/Metadata \the\pdflastobj\space 0 R} {\ } \end % vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-xmp-mediatype.py0000644000000000000000000000153312151732402017303 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import ( case, assert_grep, assert_well_formed_xml, ) class test(case): ''' http://code.google.com/p/pdf2djvu/issues/detail?id=12 fixed in [490a08283fb4] ''' def test_verbatim(self): self.pdf2djvu('--verbatim-metadata').assert_() xmp = self.extract_xmp() assert_well_formed_xml(xmp) assert_grep(xmp, '>application/pdf<') def test_no_verbatim(self): self.pdf2djvu().assert_() xmp = self.extract_xmp() assert_well_formed_xml(xmp) assert_grep(xmp, '>image/vnd.djvu<') # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-xmp-broken.tex0000644000000000000000000000112712151732402016751 0ustar rootroot% Copyright © 2009, 2012 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \immediate\pdfobj stream {} % dummy stream to fool poppler \immediate\pdfobj stream attr {/Type /Metadata /Subtype /XML} {% } \pdfcatalog{/Metadata \the\pdflastobj\space 0 R} {\ } \end % vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-xmp-broken.py0000644000000000000000000000223012151732402016575 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import ( case, assert_grep, ) class test(case): def test_verbatim(self): self.pdf2djvu('--verbatim-metadata').assert_() xmp = self.extract_xmp() assert_grep(xmp, ' ^ Entity: line 1: parser error : attributes construct error ^ Entity: line 1: parser error : Couldn't find end of Start Tag broken line 1 ^ ''') xmp = self.extract_xmp() assert_grep(xmp, '> } \edef\outlineobj{\the\pdflastobj} \outlineobj \pdfcatalog{% /Outlines \outlineobj\space 0 R } \end % vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-empty-outline.py0000644000000000000000000000076712151732402017343 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import ( case, ) class test(case): ''' http://bugs.debian.org/508391 fixed in [f5d4727b2490] ''' def test(self): self.pdf2djvu().assert_() self.print_outline().assert_() # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-duplicate-pages.tex0000644000000000000000000000045412151732402017740 0ustar rootroot% Copyright © 2009 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \pdfpagewidth 1pt \pdfpageheight 1pt {\ } \end pdf2djvu-0.7.17/tests/test-duplicate-pages.py0000644000000000000000000000152212151732402017565 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. import re from common import ( assert_not_equal, case, ) class test(case): ''' http://code.google.com/p/pdf2djvu/issues/detail?id=23 fixed in [ede3c622526a] ''' def test_bundled(self): r = self.pdf2djvu('--pages=1,1') r.assert_(stderr=re.compile('^Duplicate page identifier:', re.M), rc=None) assert_not_equal(r.rc, 0) def test_indirect(self): r = self.pdf2djvu_indirect('--pages=1,1') r.assert_(stderr=re.compile('^Duplicate page identifier:', re.M), rc=None) assert_not_equal(r.rc, 0) # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-dpi-detection.tex0000644000000000000000000000062212151732402017416 0ustar rootroot% Copyright © 2009 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \pdfpagewidth=1in \pdfpageheight=2in \pdfximage width \pdfpagewidth height \pdfpageheight {test-dpi-detection.jpeg} \pdfrefximage\pdflastximage \end pdf2djvu-0.7.17/tests/test-dpi-detection.py0000644000000000000000000000115612151732402017251 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. import re from common import ( case, ) class test(case): ''' http://sf.net/tracker/?func=detail&aid=1972089&group_id=32953&atid=406583 fixed in [5e3937296514] ''' def test(self): self.pdf2djvu('--guess-dpi').assert_() r = self.djvudump() r.assert_(stdout=re.compile('INFO .* DjVu 100x200,')) # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-dpi-detection.jpeg.in0000755000000000000000000000060012151732402020147 0ustar rootroot#!/usr/bin/python # encoding=UTF-8 # Copyright © 2009 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import rainbow image = rainbow(100, 100) image.save('test-dpi-detection.jpeg') # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-crop-text.tex0000644000000000000000000000051112151732402016610 0ustar rootroot% Copyright © 2009 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \pdfpagewidth 33pt \pdfpageheight 13pt Lorem ipsum \end % vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-crop-text.py0000644000000000000000000000136412151732402016447 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. import re from common import ( case, ) class test(case): ''' http://code.google.com/p/pdf2djvu/issues/detail?id=20 fixed in [c06a41afdc46] ''' def test_no_crop(self): self.pdf2djvu().assert_() r = self.print_pure_txt() r.assert_(stdout=re.compile('^Lorem ipsum *\n')) def test_crop(self): self.pdf2djvu('--crop-text').assert_() r = self.print_pure_txt() r.assert_(stdout=re.compile('^Lorem *\n')) # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-1px-font.tex0000644000000000000000000000054212151732402016343 0ustar rootroot% Copyright © 2009 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \pdfpagewidth 1pt \pdfpageheight 1pt \font\tinytimes=ptmr8r at 0.1pt \tinytimes Lorem ipsum... \end pdf2djvu-0.7.17/tests/test-1px-font.py0000644000000000000000000000074612151732402016201 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import ( case ) class test(case): ''' http://code.google.com/p/pdf2djvu/issues/detail?id=5 fixed in [1a39024ea13a] ''' def test(self): self.pdf2djvu().assert_() # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-100x101.tex0000644000000000000000000000044212151732402015600 0ustar rootroot% Copyright © 2009 Jakub Wilk % % This package 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; version 2 dated June, 1991. \input common \pdfpageimage{test-100x101.jpeg} \end pdf2djvu-0.7.17/tests/test-100x101.py0000644000000000000000000000116312151732402015431 0ustar rootroot# encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import ( case, re, ) class test(case): ''' http://sf.net/tracker/?func=detail&aid=1972089&group_id=32953&atid=406583 fixed in [5e3937296514] ''' def test(self): self.pdf2djvu('--bg-subsample=11', '--dpi=72').assert_() r = self.djvudump() r.assert_(stdout=re('BG44.* 10x11$', re.M)) # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/test-100x101.jpeg.in0000755000000000000000000000057212151732402016341 0ustar rootroot#!/usr/bin/python # encoding=UTF-8 # Copyright © 2009 Jakub Wilk # # This package 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; version 2 dated June, 1991. from common import rainbow image = rainbow(100, 101) image.save('test-100x101.jpeg') # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/common.tex0000644000000000000000000000123212151732402015177 0ustar rootroot% Copyright © 2009 Jakub Wilk % % This package 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; version 2 dated June, 1991. \pdfcompresslevel=0 \pdfobjcompresslevel=0 \hoffset -1in \voffset -1in \parindent 0in \nopagenumbers \edef\0{\string\0}% \edef\1{\string\1}% \edef\2{\string\2}% \edef\3{\string\3}% \def\pdfpageimage#1{ \setbox0\hbox{\pdfximage{#1}\pdfrefximage\pdflastximage}% \pdfpagewidth=\wd0 \pdfpageheight=\ht0 \shipout\box0 } \pdfmapline{ptmr8r Times-Roman <8r.enc} \font\times=ptmr8r at 12pt \times % vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/common.py0000644000000000000000000001136012151732402015032 0ustar rootroot#!/usr/bin/python # encoding=UTF-8 # Copyright © 2009, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. import inspect import os import re import subprocess as ipc import xml.etree.cElementTree as etree re.compile.M = re.M re = re.compile re.type = type(re('')) from nose.tools import ( assert_true, assert_equal, assert_not_equal, ) try: from nose.tools import assert_multi_line_equal except ImportError: assert_multi_line_equal = assert_equal else: assert_multi_line_equal.im_class.maxDiff = None try: from nose.tools import assert_regexp_matches as assert_grep except ImportError: def assert_grep(text, expected_regexp, msg=None): '''Fail the test unless the text matches the regular expression.''' if not isinstance(expected_regexp, re.type): expected_regexp = re(expected_regexp) if expected_regexp.search(text): return if msg is None: msg = "Regexp didn't match" msg = '%s: %r not found in %r' % (msg, expected_regexp.pattern, text) raise AssertionError(msg) def assert_well_formed_xml(xml): try: etree.fromstring(xml) except SyntaxError, ex: raise AssertionError(ex) class ipc_result(object): def __init__(self, stdout, stderr, rc): self.stdout = stdout self.stderr = stderr self.rc = rc def assert_(self, stdout='', stderr='', rc=0): if stderr is None: pass elif isinstance(stderr, re.type): assert_grep(self.stderr, stderr) else: assert_multi_line_equal(self.stderr, stderr) if rc is not None: assert_equal(self.rc, rc) if stdout is None: pass elif isinstance(stdout, re.type): assert_grep(self.stdout, stdout) else: assert_multi_line_equal(self.stdout, stdout) class case(object): _pdf2djvu_command = os.getenv('pdf2djvu') or 'pdf2djvu' def get_pdf2djvu_command(self): return self._pdf2djvu_command def get_source_file(self, strip_py=False): result = inspect.getsourcefile(type(self)) if strip_py and result.endswith('.py'): return result[:-3] else: return result def get_pdf_file(self): return self.get_source_file(strip_py=True) + '.pdf' def get_djvu_file(self): return self.get_source_file(strip_py=True) + '.djvu' def run(self, *commandline): child = ipc.Popen(list(commandline), stdout=ipc.PIPE, stderr=ipc.PIPE) stdout, stderr = child.communicate() stderr = re('^(?: \S+ --> \S+ \(\d+ bytes\)\n)+$').sub('', stderr) # strip djvuextract cruft return ipc_result(stdout, stderr, child.returncode) def _pdf2djvu(self, *args): return self.run( self.get_pdf2djvu_command(), '-q', self.get_pdf_file(), *args ) def pdf2djvu(self, *args): return self._pdf2djvu('-o', self.get_djvu_file(), *args) def pdf2djvu_indirect(self, *args): return self._pdf2djvu('-i', self.get_djvu_file(), *args) def djvudump(self, *args): return self.run('djvudump', self.get_djvu_file(), *args) def djvused(self, expr): return self.run( 'djvused', '-e', expr, self.get_djvu_file() ) def print_pure_txt(self): return self.djvused('print-pure-txt') def print_outline(self): return self.djvused('print-outline') def print_ant(self, page): return self.djvused('select %d; print-ant' % page) def print_meta(self): return self.djvused('print-meta') def decode(self): return self.run( 'ddjvu', self.get_djvu_file() ) def extract_xmp(self): r = self.djvused('output-ant') assert_equal(r.stderr, '') assert_equal(r.rc, 0) xmp_lines = [line for line in r.stdout.splitlines() if line.startswith('(xmp "')] if len(xmp_lines) == 0: return [xmp_line] = xmp_lines assert_equal(xmp_line[-2:], '")') xmp = xmp_line[5:-1] xmp = eval(xmp) return xmp def rainbow(width, height): import Image import ImageColor image = Image.new('RGB', (width, height)) pixels = image.load() for x in xrange(width): for y in xrange(height): hue = 255 * x // (width - 1) luminance = 100 * y // height color = ImageColor.getrgb('hsl(%(hue)d, 100%%, %(luminance)d%%)' % locals()) pixels[x, y] = color return image # vim:ts=4 sw=4 et pdf2djvu-0.7.17/tests/Makefile0000644000000000000000000000216412151732402014632 0ustar rootroot# Copyright © 2009, 2011, 2012 Jakub Wilk # # This package 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; version 2 dated June, 1991. # To test everything, run: # # make # # You can use the ‘skip’ variable to skip some tests. E.g. to skip tests # requiring GraphicsMagick, run: # # make skip='*+gm' export LC_ALL = C pdf2djvu = ../pdf2djvu export pdf2djvu all_test_scripts = $(wildcard test-*.py) skipped_test_scripts = $(wildcard $(addprefix test-,$(addsuffix .py,$(skip)))) test_scripts = $(filter-out $(skipped_test_scripts),$(all_test_scripts)) tests = $(test_scripts:.py=) pdf_files = $(tests:%=%.pdf) in_files = $(wildcard *.in) generated_files = $(in_files:.in=) $(pdf_files) .PHONY: all all: $(generated_files) $(pdf2djvu) nosetests -v $(test_scripts) .PHONY: prepare prepare: $(in_files:.in=) $(pdf_files) rm -f *.pyc .PHONY: clean clean: rm -f $(generated_files) *.djvu *.pyc %.pdf: %.tex pdftex $(<) rm -f $(<:.tex=.log) %: %.in ./$(<) ../pdf2djvu: $(MAKE) -C ../ # vim:ts=4 sw=4 noet pdf2djvu-0.7.17/system.hh0000644000000000000000000001221112151732402013667 0ustar rootroot/* Copyright © 2007, 2008, 2009, 2010 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_SYSTEM_HH #define PDF2DJVU_SYSTEM_HH #include #include #include #include #include "version.hh" #if HAVE_PSTREAMS # if HAVE_PSTREAM_H # include # endif # if HAVE_PSTREAMS_PSTREAM_H # include # endif #else #include #endif class OSError : public std::runtime_error { protected: explicit OSError(const std::string &message) : std::runtime_error(message) { }; }; class POSIXError : public OSError { protected: static std::string error_message(const std::string &context); public: explicit POSIXError(const std::string &context) : OSError(error_message(context)) { }; }; class NoSuchFileOrDirectory : public POSIXError { public: NoSuchFileOrDirectory(const std::string &context) : POSIXError(context) { }; }; class NotADirectory : public POSIXError { public: NotADirectory(const std::string &context) : POSIXError(context) { }; }; class Command { protected: std::string command; #if HAVE_PSTREAMS redi::pstreams::argv_type argv; #else std::vector argv; #endif void call(std::ostream *my_stdout, bool quiet = false); public: class CommandFailed : public std::runtime_error { public: CommandFailed(const std::string &message) : std::runtime_error(message) { } }; explicit Command(const std::string& command); Command &operator <<(const std::string& arg); Command &operator <<(int i); void operator()(std::ostream &my_stdout, bool quiet = false); void operator()(bool quiet = false); static std::string filter(const std::string &command_line, const std::string string); }; class Directory { protected: std::string name; void *posix_dir; void open(const char *name); void close(); Directory() : name(""), posix_dir(NULL) { } public: explicit Directory(const std::string &name); virtual ~Directory() throw (); friend std::ostream &operator<<(std::ostream &, const Directory &); }; class TemporaryDirectory : public Directory { private: TemporaryDirectory(const TemporaryDirectory&); // not defined TemporaryDirectory& operator=(const TemporaryDirectory&); // not defined public: TemporaryDirectory(); virtual ~TemporaryDirectory() throw (); }; class File : public std::fstream { private: File(const File&); // not defined File& operator=(const File&); // not defined protected: std::string name; std::string base_name; void open(const char* path, bool truncate = true); File() { } public: explicit File(const std::string &name); File(const Directory& directory, const std::string &name); virtual ~File() throw () { } size_t size(); void reopen(bool truncate = false); const std::string& get_basename() const; operator const std::string& () const; friend std::ostream &operator<<(std::ostream &, const File &); }; class TemporaryFile : public File { private: TemporaryFile(const TemporaryFile &); // not defined TemporaryFile& operator=(const TemporaryFile &); // not defined protected: void construct(); public: TemporaryFile(const Directory& directory, const std::string &name) : File(directory, name) { } TemporaryFile(const std::string &name) : File(name) { } TemporaryFile(); virtual ~TemporaryFile() throw (); }; class ExistingFile : public File { private: ExistingFile(const ExistingFile &); // not defined ExistingFile& operator=(const ExistingFile &); // not defined public: explicit ExistingFile(const std::string &name); virtual ~ExistingFile() throw () { } ExistingFile(const Directory& directory, const std::string &name); }; #if WIN32 class Cwd { protected: std::string previous_cwd; private: Cwd(const Cwd &); // not defined Cwd& operator=(const Cwd &); // not defined public: explicit Cwd(const std::string &path); ~Cwd(); }; #endif namespace encoding { enum encoding { native, terminal, utf8, }; template class proxy; template std::ostream &operator << (std::ostream &, const proxy &); template class proxy { protected: const std::string &string; public: explicit proxy(const std::string &string) : string(string) { } friend std::ostream &operator << <>(std::ostream &, const proxy &); }; } void copy_stream(std::istream &istream, std::ostream &ostream, bool seek); void copy_stream(std::istream &istream, std::ostream &ostream, bool seek, std::streamsize limit); std::string string_vprintf(const char *message, va_list args); std::string string_printf(const char *message, ...); bool is_stream_a_tty(const std::ostream &ostream); void split_path(const std::string &path, std::string &directory_name, std::string &file_name); std::string absolute_path(const std::string &path, const std::string &dir_name); void prevent_pop_out(); #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/system.cc0000644000000000000000000011023512151732402013662 0ustar rootroot/* Copyright © 2007, 2008, 2009, 2010 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if WIN32 #include #include #endif #include "system.hh" #include "debug.hh" #include "i18n.hh" #if !HAVE_PSTREAMS && HAVE_FORK #include #include #endif #if USE_MINGW_ANSI_STDIO #define vsnprintf __mingw_vsnprintf #endif /* constants * ========= */ static const char unix_path_separator = '/'; #if !WIN32 static const char path_separator = unix_path_separator; #else static const char path_separator = '\\'; #endif /* class POSIXError : OSError * ========================== */ std::string POSIXError::error_message(const std::string &context) { std::string message; #if WIN32 /* Win32 systems tends to return POSIX-style error messages in English. * Translation is required. */ /* L10N: Windows error message for EPERM */ N_("Operation not permitted"); /* L10N: Windows error message for ENOENT */ N_("No such file or directory"); /* L10N: Windows error message for ESRCH */ N_("No such process"); /* L10N: Windows error message for EINTR */ N_("Interrupted function call"); /* L10N: Windows error message for EINTR */ N_("Interrupted system call"); /* L10N: Windows error message for EIO */ N_("Input/output error"); /* L10N: Windows error message for ENXIO */ N_("No such device or address"); /* L10N: Windows error message for E2BIG */ N_("Arg list too long"); /* L10N: Windows error message for E2BIG */ N_("Argument list too long"); /* L10N: Windows error message for ENOEXEC */ N_("Exec format error"); /* L10N: Windows error message for EBADF */ N_("Bad file descriptor"); /* L10N: Windows error message for ECHILD */ N_("No child processes"); /* L10N: Windows error message for EAGAIN */ N_("Resource temporarily unavailable"); /* L10N: Windows error message for ENOMEM */ N_("Not enough space"); /* L10N: Windows error message for ENOMEM */ N_("Cannot allocate memory"); /* L10N: Windows error message for EACCES */ N_("Permission denied"); /* L10N: Windows error message for EFAULT */ N_("Bad address"); /* L10N: Windows error message for EBUSY */ N_("Resource device"); /* L10N: Windows error message for EBUSY */ N_("Device or resource busy"); /* L10N: Windows error message for EEXIST */ N_("File exists"); /* L10N: Windows error message for EXDEV */ N_("Improper link"); /* L10N: Windows error message for EXDEV */ N_("Invalid cross-device link"); /* L10N: Windows error message for ENODEV */ N_("No such device"); /* L10N: Windows error message for ENOTDIR */ N_("Not a directory"); /* L10N: Windows error message for EISDIR */ N_("Is a directory"); /* L10N: Windows error message for EINVAL */ N_("Invalid argument"); /* L10N: Windows error message for ENFILE */ N_("Too many open files in system"); /* L10N: Windows error message for EMFILE */ N_("Too many open files"); /* L10N: Windows error message for ENOTTY */ N_("Inappropriate I/O control operation"); /* L10N: Windows error message for ENOTTY */ N_("Inappropriate ioctl for device"); /* L10N: Windows error message for EFBIG */ N_("File too large"); /* L10N: Windows error message for ENOSPC */ N_("No space left on device"); /* L10N: Windows error message for ESEEK */ N_("Invalid seek"); /* L10N: Windows error message for ESEEK */ N_("Illegal seek"); /* L10N: Windows error message for EROFS */ N_("Read-only file system"); /* L10N: Windows error message for EMLINK */ N_("Too many links"); /* L10N: Windows error message for EPIPE */ N_("Broken pipe"); /* L10N: Windows error message for EDOM */ N_("Domain error"); /* L10N: Windows error message for EDOM */ N_("Numerical argument out of domain"); /* L10N: Windows error message for ERANGE */ N_("Result too large"); /* L10N: Windows error message for ERANGE */ N_("Numerical result out of range"); /* L10N: Windows error message for EDEADLK */ N_("Resource deadlock avoided"); /* L10N: Windows error message for ENAMETOOLONG */ N_("Filename too long"); /* L10N: Windows error message for ENAMETOOLONG */ N_("File name too long"); /* L10N: Windows error message for ENOLOCK */ N_("No locks available"); /* L10N: Windows error message for ENOSYS */ N_("Function not implemented"); /* L10N: Windows error message for ENOTEMPTY */ N_("Directory not empty"); /* L10N: Windows error message for EILSEQ */ N_("Illegal byte sequence"); /* L10N: Windows error message for EILSEQ */ N_("Invalid or incomplete multibyte or wide character"); message = _(strerror(errno)); #else /* POSIX says that ``strerror()`` returns a locale-dependent error message. * No need to translate. */ message = strerror(errno); #endif if (context.length()) message = context + ": " + message; return message; } static void throw_posix_error(const std::string &context) { switch (errno) { case ENOTDIR: throw NotADirectory(context); case ENOENT: throw NoSuchFileOrDirectory(context); default: throw POSIXError(context); } } static void warn_posix_error(const std::string &context) { try { throw_posix_error(context); } catch (const POSIXError &e) { error_log << string_printf(_("Warning: %s"), e.what()) << std::endl; } } #if WIN32 /* class Win32Error : OSError * ========================== */ class Win32Error : public OSError { protected: static std::string error_message(const std::string &context); public: explicit Win32Error(const std::string &context) : OSError(error_message(context)) { }; }; std::string Win32Error::error_message(const std::string &context) { char *buffer; std::string message = context + ": "; unsigned long error_code = GetLastError(); unsigned long nbytes = FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (char*) &buffer, 0, NULL ); if (nbytes == 0) message.append(_("possibly memory allocation error")); else { message.append(buffer); LocalFree(buffer); } return message; } static void throw_win32_error(const std::string &context) { throw Win32Error(context); } #endif /* class Command * ============= */ Command::Command(const std::string& command) : command(command) { if (this->argv.size() == 0 && path_separator != unix_path_separator) { /* Convert path separators: */ std::ostringstream stream; for (std::string::const_iterator it = command.begin(); it != command.end(); it++) { if (*it == unix_path_separator) stream << path_separator; else stream << *it; } this->argv.push_back(stream.str()); } else this->argv.push_back(command); } Command &Command::operator <<(const std::string& arg) { this->argv.push_back(arg); return *this; } Command &Command::operator <<(int i) { std::ostringstream stream; stream << i; return *this << stream.str(); } void Command::operator()(std::ostream &my_stdout, bool quiet) { this->call(&my_stdout, quiet); } void Command::operator()(bool quiet) { this->call(NULL, quiet); } #if !HAVE_PSTREAMS static const std::string argv_to_command_line(const std::vector &argv) /* Translate a sequence of arguments into a command line string. */ { std::ostringstream buffer; #if WIN32 /* Using the same rules as the MS C runtime: * * 1) Arguments are delimited by white space, which is either a space or a * tab. * * 2) A string surrounded by double quotation marks is interpreted as a * single argument, regardless of white space contained within. A * quoted string can be embedded in an argument. * * 3) A double quotation mark preceded by a backslash is interpreted as a * literal double quotation mark. * * 4) Backslashes are interpreted literally, unless they immediately * precede a double quotation mark. * * 5) If backslashes immediately precede a double quotation mark, every * pair of backslashes is interpreted as a literal backslash. If the * number of backslashes is odd, the last backslash escapes the next * double quotation mark as described in rule 3. * * See . */ for (std::vector::const_iterator parg = argv.begin(); parg != argv.end(); parg++) { int backslashed = 0; bool need_quote = parg->find_first_of(" \t") != std::string::npos; if (need_quote) buffer << '"'; for (std::string::const_iterator pch = parg->begin(); pch != parg->end(); pch++) { if (*pch == '\\') { backslashed++; } else if (*pch == '"') { for (int i = 0; i < backslashed; i++) buffer << "\\\\"; backslashed = 0; buffer << "\\\""; } else { for (int i = 0; i < backslashed; i++) buffer << '\\'; backslashed = 0; buffer << *pch; } } for (int i = 0; i < backslashed; i++) buffer << '\\'; if (need_quote) buffer << '"'; buffer << ' '; } #else /* Assume POSIX shell. */ for (std::vector::const_iterator parg = argv.begin(); parg != argv.end(); parg++) { buffer << "'"; if (parg->find("\'") == std::string::npos) buffer << *parg; else for (std::string::const_iterator pch = parg->begin(); pch != parg->end(); pch++) { if (*pch == '\'') buffer << "'\\''"; else buffer << *pch; } buffer << "' "; } #endif return buffer.str(); } #endif #if HAVE_PSTREAMS void Command::call(std::ostream *my_stdout, bool quiet) { int status; redi::ipstream xsystem(this->command, this->argv, redi::pstream::pstdout | redi::pstream::pstderr); if (!xsystem.rdbuf()->error()) { if (my_stdout != NULL) { xsystem.out(); copy_stream(xsystem, *my_stdout, false); } { xsystem.err(); copy_stream(xsystem, quiet ? dev_null : std::cerr, false); } xsystem.close(); } status = xsystem.rdbuf()->status(); if (status != 0) { std::string message; if (WIFEXITED(status)) { message = string_printf( _("External command \"%s ...\" failed with exit code %u"), this->command.c_str(), static_cast(WEXITSTATUS(status)) ); } else { message = string_printf( _("External command \"%s ...\" failed"), this->command.c_str() ); } throw CommandFailed(message); } } #elif WIN32 void Command::call(std::ostream *my_stdout, bool quiet) { int status = 0; unsigned long rc; PROCESS_INFORMATION process_info; HANDLE read_end, write_end, error_handle; SECURITY_ATTRIBUTES security_attributes; memset(&process_info, 0, sizeof process_info); security_attributes.nLength = sizeof (SECURITY_ATTRIBUTES); security_attributes.lpSecurityDescriptor = NULL; security_attributes.bInheritHandle = true; if (CreatePipe(&read_end, &write_end, &security_attributes, 0) == 0) throw_win32_error("CreatePipe"); rc = SetHandleInformation(read_end, HANDLE_FLAG_INHERIT, 0); if (rc == 0) { if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) { /* Presumably it's Windows 9x, so the call is not supported. * Punt on security and let the pipe end be inherited. */ } else throw_win32_error("SetHandleInformation"); } if (!quiet) { error_handle = GetStdHandle(STD_ERROR_HANDLE);; if (error_handle != INVALID_HANDLE_VALUE) { rc = DuplicateHandle( GetCurrentProcess(), error_handle, GetCurrentProcess(), &error_handle, 0, true, DUPLICATE_SAME_ACCESS ); if (rc == 0) throw_win32_error("DuplicateHandle"); } } else { error_handle = CreateFile("nul", GENERIC_WRITE, FILE_SHARE_WRITE, &security_attributes, OPEN_EXISTING, 0, NULL); /* Errors can be safely ignored: * - For the Windows NT family, INVALID_HANDLE_VALUE does actually the right thing. * - For Windows 9x, spurious debug messages could be generated, tough luck! */ } { const std::string &command_line = argv_to_command_line(this->argv); STARTUPINFO startup_info; memset(&startup_info, 0, sizeof startup_info); startup_info.cb = sizeof startup_info; startup_info.hStdOutput = write_end; startup_info.hStdError = error_handle; startup_info.dwFlags = STARTF_USESTDHANDLES; char *c_command_line = strdup(command_line.c_str()); if (c_command_line == NULL) throw_posix_error("strdup"); rc = CreateProcess( NULL, c_command_line, NULL, NULL, true, 0, NULL, NULL, &startup_info, &process_info ); free(c_command_line); if (rc == 0) status = -1; else { if (error_handle != INVALID_HANDLE_VALUE) CloseHandle(error_handle); /* ignore errors */ } } if (status == 0) { unsigned long exit_code; CloseHandle(write_end); /* ignore errors */ while (true) { char buffer[BUFSIZ]; unsigned long nbytes; bool success = ReadFile(read_end, buffer, sizeof buffer, &nbytes, NULL); if (!success) { status = -(GetLastError() != ERROR_BROKEN_PIPE); break; } if (my_stdout != NULL) my_stdout->write(buffer, nbytes); } CloseHandle(read_end); /* ignore errors */ rc = WaitForSingleObject(process_info.hProcess, INFINITE); if (rc == WAIT_FAILED) throw_win32_error("WaitForSingleObject"); rc = GetExitCodeProcess(process_info.hProcess, &exit_code); CloseHandle(process_info.hProcess); /* ignore errors */ CloseHandle(process_info.hThread); /* ignore errors */ if (rc == 0) status = -1; else if (exit_code != 0) { std::string message = string_printf( _("External command \"%s ...\" failed with exit code %u"), this->command.c_str(), static_cast(exit_code) ); throw CommandFailed(message); } } if (status < 0) { std::string message = string_printf( _("External command \"%s ...\" failed"), this->command.c_str() ); throw Win32Error(message); } } #else void Command::call(std::ostream *my_stdout, bool quiet) { int status; FILE *file; { const std::string &command_line = argv_to_command_line(this->argv); file = ::popen(command_line.c_str(), "r"); } if (file != NULL) { char buffer[BUFSIZ]; size_t nbytes; status = 0; while (!feof(file)) { nbytes = fread(buffer, 1, sizeof buffer, file); if (ferror(file)) { status = -1; break; } if (my_stdout != NULL) my_stdout->write(buffer, nbytes); } int wait_status = pclose(file); if (wait_status == -1) throw_posix_error("pclose"); else if (status == 0) { if (WIFEXITED(wait_status)) { unsigned int exit_code = WEXITSTATUS(wait_status); if (exit_code != 0) { std::string message = string_printf( _("External command \"%s ...\" failed with exit code %u"), this->command.c_str(), exit_code ); throw CommandFailed(message); } } else status = -1; } } else status = -1; if (status < 0) { std::string message = string_printf( _("External command \"%s ...\" failed"), this->command.c_str() ); throw_posix_error(message); } } #endif #if WIN32 class FilterWriterData { public: HANDLE handle; const std::string &string; FilterWriterData(HANDLE handle, const std::string &string) : handle(handle), string(string) { } }; unsigned long WINAPI filter_writer(void *data_) { bool success; FilterWriterData *data = reinterpret_cast(data_); success = WriteFile(data->handle, data->string.c_str(), data->string.length(), NULL, NULL); if (!success) throw_win32_error("WriteFile"); success = CloseHandle(data->handle); if (!success) throw_win32_error("CloseHandle"); return 0; } std::string Command::filter(const std::string &command_line, const std::string string) { int status = 0; unsigned long rc; HANDLE stdin_read, stdin_write, stdout_read, stdout_write, error_handle; PROCESS_INFORMATION process_info; SECURITY_ATTRIBUTES security_attributes; memset(&process_info, 0, sizeof process_info); security_attributes.nLength = sizeof (SECURITY_ATTRIBUTES); security_attributes.lpSecurityDescriptor = NULL; security_attributes.bInheritHandle = true; if (CreatePipe(&stdin_read, &stdin_write, &security_attributes, 0) == 0) throw_win32_error("CreatePipe"); if (CreatePipe(&stdout_read, &stdout_write, &security_attributes, 0) == 0) throw_win32_error("CreatePipe"); rc = SetHandleInformation(stdout_read, HANDLE_FLAG_INHERIT, 0) && SetHandleInformation(stdin_write, HANDLE_FLAG_INHERIT, 0); if (rc == 0) { if (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) { /* Presumably it's Windows 9x, so the call is not supported. * Punt on security and let the pipe end be inherited. */ } else throw_win32_error("SetHandleInformation"); } error_handle = GetStdHandle(STD_ERROR_HANDLE);; if (error_handle != INVALID_HANDLE_VALUE) { rc = DuplicateHandle( GetCurrentProcess(), error_handle, GetCurrentProcess(), &error_handle, 0, true, DUPLICATE_SAME_ACCESS ); if (rc == 0) throw_win32_error("DuplicateHandle"); } { STARTUPINFO startup_info; memset(&startup_info, 0, sizeof startup_info); startup_info.cb = sizeof startup_info; startup_info.hStdInput = stdin_read; startup_info.hStdOutput = stdout_write; startup_info.hStdError = error_handle; startup_info.dwFlags = STARTF_USESTDHANDLES; char *c_command_line = strdup(command_line.c_str()); if (c_command_line == NULL) throw_posix_error("strdup"); rc = CreateProcess( NULL, c_command_line, NULL, NULL, true, 0, NULL, NULL, &startup_info, &process_info ); free(c_command_line); if (rc == 0) status = -1; else { if (error_handle != INVALID_HANDLE_VALUE) CloseHandle(error_handle); /* ignore errors */ } } if (status == 0) { unsigned long exit_code; std::ostringstream stream; CloseHandle(stdin_read); /* ignore errors */ CloseHandle(stdout_write); /* ignore errors */ FilterWriterData writer_data(stdin_write, string); HANDLE thread_handle = CreateThread(NULL, 0, filter_writer, &writer_data, 0, NULL); if (thread_handle == NULL) throw_win32_error("CreateThread"); while (true) { char buffer[BUFSIZ]; unsigned long nbytes; bool success = ReadFile(stdout_read, buffer, sizeof buffer, &nbytes, NULL); if (!success) { status = -(GetLastError() != ERROR_BROKEN_PIPE); break; } stream.write(buffer, nbytes); } CloseHandle(stdout_read); /* ignore errors */ rc = WaitForSingleObject(thread_handle, INFINITE); if (rc == WAIT_FAILED) throw_win32_error("WaitForSingleObject"); CloseHandle(thread_handle); /* ignore errors */ rc = WaitForSingleObject(process_info.hProcess, INFINITE); if (rc == WAIT_FAILED) throw_win32_error("WaitForSingleObject"); rc = GetExitCodeProcess(process_info.hProcess, &exit_code); CloseHandle(process_info.hProcess); /* ignore errors */ CloseHandle(process_info.hThread); /* ignore errors */ if (rc == 0) status = -1; else if (exit_code != 0) { std::string message = string_printf( _("External command \"%s\" failed with exit code %u"), command_line.c_str(), static_cast(exit_code) ); throw CommandFailed(message); } return stream.str(); } if (status < 0) { std::string message = string_printf( _("External command \"%s\" failed"), command_line.c_str() ); throw Win32Error(message); } return string; /* Should not really happen. */ } #elif HAVE_FORK std::string Command::filter(const std::string &command_line, const std::string string) { int rc; int pipe_fds[2]; rc = pipe(pipe_fds); if (rc != 0) throw_posix_error("pipe"); pid_t writer_pid = fork(); if (writer_pid == -1) throw_posix_error("fork"); else if (writer_pid == 0) { /* Writer: */ close(pipe_fds[0]); /* Deliberately ignore errors. */ rc = dup2(pipe_fds[1], STDOUT_FILENO); if (rc == -1) throw_posix_error("dup2"); FILE *fp = popen(command_line.c_str(), "w"); if (fp == NULL) throw_posix_error("popen"); if (fputs(string.c_str(), fp) == EOF) throw_posix_error("fputs"); rc = pclose(fp); if (rc == -1) throw_posix_error("pclose"); else if (WIFEXITED(rc)) exit(WEXITSTATUS(rc)); else exit(-1); exit(rc); } else { /* Main process: */ close(pipe_fds[1]); /* Deliberately ignore errors. */ std::ostringstream stream; while (1) { char buffer[BUFSIZ]; ssize_t n = read(pipe_fds[0], buffer, sizeof buffer); if (n < 0) throw_posix_error("read"); else if (n == 0) break; else stream.write(buffer, n); } int status; writer_pid = wait(&status); if (writer_pid == static_cast(-1)) throw_posix_error("wait"); if (status != 0) { std::string message; if (WIFEXITED(status)) { message = string_printf( _("External command \"%s\" failed with exit code %u"), command_line.c_str(), static_cast(WEXITSTATUS(status)) ); } else { message = string_printf( _("External command \"%s\" failed"), command_line.c_str() ); } throw CommandFailed(message); } return stream.str(); } return string; /* Should not really happen. */ } #else std::string Command::filter(const std::string &command_line, const std::string string) { /* Should not really happen. */ errno = ENOSYS; throw_posix_error("fork"); } #endif /* class Directory * =============== */ Directory::Directory(const std::string &name) : name(name), posix_dir(NULL) { this->open(name.c_str()); } Directory::~Directory() throw () { this->close(); } void Directory::open(const char* path) { this->posix_dir = opendir(path); if (this->posix_dir == NULL) throw_posix_error(path); } void Directory::close(void) { if (this->posix_dir == NULL) return; if (closedir(static_cast(this->posix_dir)) != 0) throw_posix_error(this->name); } /* class Array * =============== */ template class Array { private: Array(const Array &); // not defined Array& operator=(const Array &); // not defined protected: tp *buffer; public: explicit Array(size_t size) { buffer = new tp[size]; } operator tp * () { return this->buffer; } ~Array() throw () { delete[] this->buffer; } }; /* class TemporaryPathTemplate : Array * ========================================= */ class TemporaryPathTemplate : public Array { protected: static const char *temporary_directory() { const char *result = getenv("TMPDIR"); if (result == NULL) result = P_tmpdir; return result; } public: TemporaryPathTemplate() : Array(strlen(this->temporary_directory()) + strlen(PACKAGE_NAME) + 9) { sprintf(*this, "%s%c%s.XXXXXX", this->temporary_directory(), path_separator, PACKAGE_NAME); } }; /* class TemporaryDirectory : Directory * ==================================== */ TemporaryDirectory::TemporaryDirectory() : Directory() { #if !WIN32 TemporaryPathTemplate path_buffer; if (mkdtemp(path_buffer) == NULL) throw_posix_error(static_cast(path_buffer)); #else char base_path_buffer[PATH_MAX]; char path_buffer[PATH_MAX]; if (GetTempPath(PATH_MAX, base_path_buffer) == 0) throw_win32_error("GetTempPath"); if (GetTempFileName(base_path_buffer, PACKAGE_NAME, 0, path_buffer) == 0) throw_win32_error("GetTempFileName"); if (unlink(path_buffer) < 0) throw_posix_error(path_buffer); if (mkdir(path_buffer) < 0) throw_posix_error(path_buffer); #endif this->name += path_buffer; } TemporaryDirectory::~TemporaryDirectory() throw () { if (rmdir(this->name.c_str()) == -1) warn_posix_error(this->name); } /* class File : std::fstream * ========================= */ void File::open(const char* path, bool truncate) { std::fstream::openmode mode = std::fstream::in | std::fstream::out | std::fstream::binary; if (truncate) mode |= std::fstream::trunc; this->exceptions(std::ifstream::failbit | std::ifstream::badbit); if (path == NULL) this->std::fstream::open(this->name.c_str(), mode); else { this->name = path; this->std::fstream::open(path, mode); } this->exceptions(std::ifstream::badbit); } File::File(const std::string &name) { this->open(name.c_str()); } File::File(const Directory& directory, const std::string &name) { std::ostringstream stream; this->base_name = name; stream << directory << path_separator << name; this->open(stream.str().c_str()); } size_t File::size() { this->seekg(0, std::ios::end); return this->tellg(); } void File::reopen(bool truncate) { if (this->is_open()) this->close(); this->open(NULL, truncate); } const std::string& File::get_basename() const { return this->base_name; } File::operator const std::string& () const { return this->name; } std::ostream &operator<<(std::ostream &out, const Directory &directory) { return out << directory.name; } std::ostream &operator<<(std::ostream &out, const File &file) { return out << file.name; } /* class TemporaryFile : File * ========================== */ void TemporaryFile::construct() { #if !WIN32 TemporaryPathTemplate path_buffer; int fd = mkstemp(path_buffer); if (fd == -1) throw_posix_error(static_cast(path_buffer)); if (::close(fd) == -1) throw_posix_error(static_cast(path_buffer)); #else char base_path_buffer[PATH_MAX]; char path_buffer[PATH_MAX]; if (GetTempPath(PATH_MAX, base_path_buffer) == 0) throw_win32_error("GetTempPath"); if (GetTempFileName(base_path_buffer, PACKAGE_NAME, 0, path_buffer) == 0) throw_win32_error("GetTempFileName"); HANDLE handle = CreateFile(path_buffer, 0, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_TEMPORARY, NULL); if (handle == 0) throw_win32_error("CreateFile"); CloseHandle(handle); /* ignore errors */ #endif this->open(path_buffer); } TemporaryFile::TemporaryFile() { this->construct(); } TemporaryFile::~TemporaryFile() throw () { if (this->is_open()) this->close(); if (unlink(this->name.c_str()) == -1) warn_posix_error(this->name); } /* class ExistingFile : File * ========================= */ ExistingFile::ExistingFile(const std::string &name) : File() { this->name = name; this->open(NULL, false); } ExistingFile::ExistingFile(const Directory& directory, const std::string &name) : File() { std::ostringstream stream; stream << directory << "/" << name; this->name = stream.str(); this->open(NULL, false); } #if WIN32 /* class Cwd * ========= */ Cwd::Cwd(const std::string &path) { int rc; size_t size = 32; while (1) { Array buffer(size); rc = getcwd(buffer, size) == NULL; if (rc != 0) { if (errno == ERANGE && size < std::numeric_limits::max() / 2) { size *= 2; continue; } throw_posix_error("getcwd"); } this->previous_cwd = buffer; break; } rc = chdir(path.c_str()); if (rc != 0) throw_posix_error("chdir"); } Cwd::~Cwd() { if (this->previous_cwd.length()) { int rc = chdir(this->previous_cwd.c_str()); if (rc != 0) { warn_posix_error("chdir"); abort(); } } } #endif /* utility functions * ================= */ namespace encoding { #if WIN32 /* The native encoding (so called ANSI character set) can differ from the * terminal encoding (typically: so called OEM charset). */ template <> std::ostream &operator <<(std::ostream &stream, const proxy &converter) { const std::string &string = converter.string; size_t wide_length, new_length, length = converter.string.length(); if (length == 0) return stream; Array buffer(length * 2); Array wide_buffer(length); wide_length = MultiByteToWideChar( CP_ACP, 0, string.c_str(), length, wide_buffer, length ); if (wide_length == 0) throw_win32_error("MultiByteToWideChar"); new_length = WideCharToMultiByte( GetConsoleOutputCP(), 0, wide_buffer, wide_length, buffer, length * 2, NULL, NULL ); if (new_length == 0) throw_win32_error("WideCharToMultiByte"); stream.write(buffer, new_length); return stream; } #else template <> std::ostream &operator <<(std::ostream &stream, const proxy &converter) { stream << converter.string; return stream; } #endif template <> std::ostream &operator <<(std::ostream &stream, const proxy &converter) { /* The following code assumes that wchar_t strings are UTF-32 or UTF-16. * This is not necessarily the case for every system. * * See * http://unicode.org/faq/utf_bom.html * for description of both UTF-16 and UTF-8. */ const std::string &string = converter.string; size_t length = string.length(); Array wstring(length + 1); length = mbstowcs(wstring, string.c_str(), length + 1); if (length == static_cast(-1)) throw_posix_error("mbstowcs"); uint32_t code, code_shift = 0; for (size_t i = 0; i < length; i++) { code = wstring[i]; if (code_shift) { /* A leading surrogate has been encountered. */ if (code >= 0xdc00 && code < 0xe000) { /* A trailing surrogate is encountered. */ code = code_shift + (code & 0x3ff); } else { /* An unpaired surrogate is encountered. */ errno = EILSEQ; throw_posix_error(__FUNCTION__); } code_shift = 0; } else if (code >= 0xd800 && code < 0xdc00) { /* A leading surrogate is encountered. */ code_shift = 0x10000 + ((code & 0x3ff) << 10); continue; } if (code >= 0x110000 || (code & 0xfffe) == 0xfffe) { /* Code is out of range or a non-character is encountered. */ errno = EILSEQ; throw_posix_error(__FUNCTION__); } if (code < 0x80) { char ascii = code; stream << ascii; } else { char buffer[4]; size_t nbytes; for (nbytes = 2; nbytes < 4; nbytes++) if (code < (1U << (5 * nbytes + 1))) break; buffer[0] = (0xff00 >> nbytes) & 0xff; for (size_t i = nbytes - 1; i; i--) { buffer[i] = 0x80 | (code & 0x3f); code >>= 6; } buffer[0] |= code; stream.write(buffer, nbytes); } } return stream; } } void copy_stream(std::istream &istream, std::ostream &ostream, bool seek) { if (seek) istream.seekg(0, std::ios::beg); char buffer[BUFSIZ]; while (!istream.eof()) { istream.read(buffer, sizeof buffer); ostream.write(buffer, istream.gcount()); } } void copy_stream(std::istream &istream, std::ostream &ostream, bool seek, std::streamsize limit) { if (seek) istream.seekg(0, std::ios::beg); char buffer[BUFSIZ]; while (!istream.eof() && limit > 0) { std::streamsize chunk_size = std::min(static_cast(sizeof buffer), limit); istream.read(buffer, chunk_size); ostream.write(buffer, istream.gcount()); limit -= chunk_size; } } bool is_stream_a_tty(const std::ostream &ostream) { if (&ostream == &std::cout) return isatty(STDOUT_FILENO); else { /* Not implemented for streams other that ``std::cout``. * See http://www.ginac.de/~kreckel/fileno/ for a more general * (although unportable, GCC-specific) solution. */ throw std::invalid_argument("is_a_tty(const std::ostream &)"); } } void split_path(const std::string &path, std::string &directory_name, std::string &file_name) { #ifdef __MINGW32__ /* MinGW32 implementations of ``basename()`` and ``dirname()`` are broken: * http://bugs.debian.org/607215 * Therefore, we cannot use the generic code. This implementation is less * sophisticated than MinGW32 one, yet it should be sufficient for our * purposes. */ bool append_dot = true; size_t l = 0, r = 0; if (path.length() >= 2 && path[1] == ':') l = r = 2; while (l < path.length() && (path[l] == '/' || path[l] == '\\')) { l++, r++; append_dot = false; } for (size_t i = l; i < path.length(); i++) { if (path[i] == '/' || path[i] == '\\') { l = i; r = i + 1; append_dot = false; } } directory_name = path.substr(0, l); file_name = path.substr(r); if (append_dot) directory_name += "."; #else /* POSIX-compliant ``basename()`` and ``dirname()`` would split ``/foo/bar/`` * into ``/foo`` and ``bar``, instead of desired ``foo/bar`` and an empty * string. To deal with this weirdness, a trailing ``!`` character is * appended to the splitted path. */ { Array buffer(path.length() + 2); sprintf(buffer, "%s!", path.c_str()); directory_name = ::dirname(buffer); } { Array buffer(path.length() + 2); sprintf(buffer, "%s!", path.c_str()); file_name = ::basename(buffer); size_t length = file_name.length(); assert(length > 0); assert(file_name[length - 1] == '!'); file_name.erase(length - 1); } #endif } std::string absolute_path(const std::string &path, const std::string &dir_name) { if (path.length() == 0) return path; if (path[0] != '.') return path; if (path.length() == 1 || (path.length() >= 2 && (path[1] == unix_path_separator || path[1] == path_separator))) return dir_name + path_separator + path.substr(std::min(static_cast(2), path.length())); assert(path.length() >= 2); if (path[1] != '.') return path; if (path.length() == 2 || (path.length() >= 3 && (path[2] == unix_path_separator || path[2] == path_separator))) return dir_name + path_separator + path; return path; } #if defined(va_copy) #elif defined(__va_copy) #define va_copy __va_copy #else #define va_copy(dest, src) memcpy((dest), (src), sizeof (va_list)) #endif std::string string_vprintf(const char *message, va_list args) { va_list args_copy; va_copy(args_copy, args); int length = vsnprintf(NULL, 0, message, args_copy); va_end(args_copy); assert(length >= 0); if (length < 0) throw_posix_error("vsnprintf"); Array buffer(length + 1); length = vsprintf(buffer, message, args); assert(length >= 0); if (length < 0) throw_posix_error("vsprintf"); return static_cast(buffer); } std::string string_printf(const char *message, ...) { va_list args; va_start(args, message); std::string result = string_vprintf(message, args); va_end(args); return result; } void prevent_pop_out(void) { #if WIN32 /* GetConsoleProcessList() function is not available for some systems (e.g., * Wine, Windows 98), so it's not desireable to import it at link time. */ typedef DWORD (WINAPI *get_console_process_list_fn)(LPDWORD, DWORD); get_console_process_list_fn get_console_process_list; HMODULE dll = GetModuleHandle("kernel32"); if (dll == NULL) return; get_console_process_list = (get_console_process_list_fn) GetProcAddress(dll, "GetConsoleProcessList"); if (get_console_process_list != NULL) { unsigned long pid, rc; rc = get_console_process_list(&pid, 1); if (rc == 1) MessageBox(NULL, _("pdf2djvu is intended to be run from the command prompt."), PACKAGE_NAME, MB_OK | MB_ICONINFORMATION); } #endif } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/string-format.hh0000644000000000000000000000235512151732402015147 0ustar rootroot/* Copyright © 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include namespace string_format { typedef unsigned long uint_tp; class Bindings : public std::map { public: uint_tp get(const std::string &value) const { const_iterator it = this->find(value); if (it == this->end()) return 0; return it->second; } }; class Chunk { public: virtual void format(const Bindings &bindings, std::ostream &stream) const = 0; virtual ~Chunk() throw () { } }; class Template { private: Template(const Template &); // not defined Template & operator=(const Template &); // not defined protected: std::vector chunks; public: explicit Template(const std::string &); ~Template() throw (); void format(const Bindings &, std::ostream &) const; std::string format(const Bindings &) const; }; class ParseError : public std::runtime_error { public: explicit ParseError() : std::runtime_error("") { } }; } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/string-format.cc0000644000000000000000000001430612151732402015134 0ustar rootroot/* Copyright © 2009 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #include #include #include #include #include #include #include #include "string-format.hh" #include "i18n.hh" namespace string_format { class StaticChunk : public Chunk { protected: std::string value; public: StaticChunk(const std::string &value) : value(value) { } virtual ~StaticChunk() throw () { } virtual void format(const Bindings &bindings, std::ostream &stream) const { stream << this->value; } }; class VariableChunk : public Chunk { protected: std::string variable; bool negative_offset; uint_tp offset; unsigned int width; bool auto_width; bool pad_0; public: explicit VariableChunk(const std::string &); virtual ~VariableChunk() throw () { } virtual void format(const Bindings &, std::ostream &) const; }; class IntegerOverflow : public std::overflow_error { public: IntegerOverflow() : std::overflow_error(_("Integer overflow")) { } }; } string_format::VariableChunk::VariableChunk(const std::string &description) : negative_offset(false), offset(0), width(0), auto_width(false), pad_0(false) { enum { NAME, OFFSET_1, OFFSET_2, WIDTH_1, WIDTH_2, END } mode = NAME; std::string::const_iterator it = description.begin(); while (it != description.end()) { switch (mode) { case NAME: if (*it == '+' || *it == '-' || *it == ':') { this->variable = description.substr(0, it - description.begin()); if (*it == ':') mode = WIDTH_1; else { this->negative_offset = *it == '-'; mode = OFFSET_1; } } break; case OFFSET_1: if (*it >= '0' && *it <= '9') { this->offset = *it - '0'; mode = OFFSET_2; } else throw ParseError(); break; case OFFSET_2: if (*it >= '0' && *it <= '9') { if (this->offset > (std::numeric_limits::max() - 9) / 10) throw IntegerOverflow(); this->offset = this->offset * 10 + (*it - '0'); } else if (*it == ':') mode = WIDTH_1; else throw ParseError(); break; case WIDTH_1: if (*it == '0') this->pad_0 = true; else if (*it >= '0' && *it <= '9') this->width = *it - '0'; else throw ParseError(); mode = WIDTH_2; break; case WIDTH_2: if (*it >= '0' && *it <= '9') { if (this->width > (std::numeric_limitswidth)>::max() - 9) / 10) throw IntegerOverflow(); this->width = this->width * 10 + (*it - '0'); } else if (*it == '*') { this->auto_width = true; mode = END; } else throw ParseError(); break; case END: throw ParseError(); break; } it++; } if (mode == NAME) this->variable = description; } static string_format::uint_tp shift(string_format::uint_tp value, string_format::uint_tp offset, bool negative_offset) { if (negative_offset) { if (offset > value) value = 0; else value -= offset; } else if (value + offset >= value) value += offset; else throw string_format::IntegerOverflow(); return value; } void string_format::VariableChunk::format(const Bindings &bindings, std::ostream &stream) const { uint_tp value = shift(bindings.get(this->variable), this->offset, this->negative_offset); unsigned int width = this->width; if (auto_width) { uint_tp max_value = shift(bindings.get("max_" + this->variable), this->offset, this->negative_offset); unsigned int max_digits = 0; while (max_value > 0) { max_digits++; max_value /= 10; } if (max_digits > width) width = max_digits; } stream << std::setfill(this->pad_0 ? '0' : ' ') << std::setw(width) << value; } string_format::Template::Template(const std::string &source) { enum { TEXT, KET, FORMAT_1, FORMAT_2 } mode = TEXT; std::string::const_iterator left = source.begin(); std::string::const_iterator right = left; while (right != source.end()) { switch (mode) { case TEXT: if (*right == '{' || *right == '}') { if (left != right) { std::string text = source.substr(left - source.begin(), right - left); this->chunks.push_back(new StaticChunk(text)); } left = right + 1; mode = *right == '}' ? KET : FORMAT_1; } break; case KET: if (*right == '}') { left = right; mode = TEXT; } else throw ParseError(); break; case FORMAT_1: if (*right == '{') { left = right; mode = TEXT; } else mode = FORMAT_2; break; case FORMAT_2: if (*right == '}') { std::string text = source.substr(left - source.begin(), right - left); this->chunks.push_back(new VariableChunk(text)); left = right + 1; mode = TEXT; } break; } right++; } if (mode != TEXT) throw ParseError(); if (left != source.end()) { std::string text = source.substr(left - source.begin(), std::string::npos); this->chunks.push_back(new StaticChunk(text)); } } string_format::Template::~Template() throw () { typedef std::vector::iterator iterator; for (iterator it = this->chunks.begin(); it != this->chunks.end(); it++) delete *it; } void string_format::Template::format(const Bindings &bindings, std::ostream &stream) const { typedef std::vector::const_iterator iterator; for (iterator it = this->chunks.begin(); it != this->chunks.end(); it++) (**it).format(bindings, stream); } std::string string_format::Template::format(const Bindings &bindings) const { std::ostringstream stream; this->format(bindings, stream); return stream.str(); } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/sexpr.hh0000644000000000000000000000347212151732402013515 0ustar rootroot/* Copyright © 2008, 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_SEXPR_H #define PDF2DJVU_SEXPR_H #include #include namespace sexpr { typedef miniexp_t Expr; class Ref { minivar_t var; public: Ref() : var(miniexp_nil) { } Ref(const Ref &ref) : var(ref.var) { } Ref(miniexp_t expr) : var(expr) { } Ref& operator =(miniexp_t expr) { this->var = expr; return *this; } operator Expr&() const { return const_cast(this)->var; } inline void reverse() { this->var = miniexp_reverse(this->var); } friend std::ostream &operator<<(std::ostream &, const Ref &); }; static inline Expr cons(Expr car, Expr cdr) { return miniexp_cons(car, cdr); } static inline Expr symbol(const char *name) { return miniexp_symbol(name); } static inline Expr symbol(const std::string &name) { return miniexp_symbol(name.c_str()); } static inline Expr string(const char *value) { return miniexp_string(value); } static inline Expr string(const std::string &value) { return miniexp_string(value.c_str()); } static inline Expr integer(int n) { return miniexp_number(n); } static const Expr nil = miniexp_nil; static const Ref &empty_string = string(""); class GCLock /* Having a live `sexpr::GCLock` object disables garbage-collecting of S-expressions. * The purpose is to work around a nasty bug in old DjVuLibre releases: * http://sf.net/tracker/?func=detail&aid=1915053&group_id=32953&atid=406583 */ { public: GCLock() { minilisp_acquire_gc_lock(0); } ~GCLock() throw () { minilisp_release_gc_lock(0); } }; } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/sexpr.cc0000644000000000000000000000134312151732402013476 0ustar rootroot/* Copyright © 2008, 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include "sexpr.hh" static std::ostream *puts_stream = NULL; static int my_puts(const char *s) { *puts_stream << s; return -(!puts_stream->good()); } namespace sexpr { std::ostream &operator<<(std::ostream &stream, const sexpr::Ref &expr) { int (*old_minilisp_puts)(const char *s) = minilisp_puts; minilisp_puts = my_puts; puts_stream = &stream; miniexp_pprin(expr, 1 << 10); minilisp_puts = old_minilisp_puts; return stream; } } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/rle.hh0000644000000000000000000000410012151732402013123 0ustar rootroot/* Copyright © 2010 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_RLE_H #define PDF2DJVU_RLE_H #include #include /* Support for RLE formats. * Please refer to csepdjvu(1) for the format specifications. */ namespace rle { class R4 { protected: std::ostream &stream; unsigned int x, width, height; unsigned int run_length; int last_pixel; public: template R4(std::ostream &, T width, T height); void operator <<(int pixel); template void output_run(T); }; } template rle::R4::R4(std::ostream &stream, T width_, T height_) : stream(stream), x(0), width(width_), height(height_), run_length(0), last_pixel(0) { assert(width_ > 0); assert(height_ > 0); assert(static_cast(this->width) == width_); assert(static_cast(this->height) == height_); this->stream << "R4 " << this->width << " " << this->height << " "; } void rle::R4::operator <<(int pixel) { pixel = !!pixel; this->x++; assert(this->x > 0); if (this->last_pixel != pixel) { this->output_run(this->run_length); this->run_length = 1; this->last_pixel = pixel; } else this->run_length++; if (this->x == this->width) { this->output_run(this->run_length); this->last_pixel = 0; this->x = 0; this->run_length = 0; } } template void rle::R4::output_run(T length_) { unsigned int length = length_; static const unsigned int max_length = 0x3fff; assert(length_ >= 0); assert(static_cast(length) == length_); assert(length <= this->width); while (length > max_length) { this->stream.write("\xff\xff", 3); length -= max_length; } if (length >= 192) { this->stream << static_cast(0xc0 + (length >> 8)) << static_cast(length & 0xff); } else this->stream << static_cast(length); } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/po/0000755000000000000000000000000012151732417012451 5ustar rootrootpdf2djvu-0.7.17/po/uk.mo0000644000000000000000000004400712151732417013432 0ustar rootroot   # 2 L 8l 8    B _l  1I ]j 2.$ S_r&  #7Viz14 MZi |4D\l }  (17RiM8 CUq P?4Ft$"9\y1-!(>#]"  3: 1Dv)%(` (m%((Dm7HS+G "*)$Ty@Ha 0 !'9!a!#!X!]!0\"""" B#,O#|#t#=#=6$#t$8$$3$?%1]%%2%B%:"&I]&Q&i&Mc'e'(*+(&V(*}(*(7(+ )67)8n)%)G)4*&J*5q*)*0*4+)7+=a+&+X+>,8^, ,,,:,0 -3>-$r-7-(-:-03.&d.-..!.N.R=////6/50WD0&0u0911x2!3/(3MX3f33 46A40x44a55(676I6:F7X7I7C$8Ch8i8{9Q9f94K:d:d:J;#j;;;b;)<d<D=WS=E=C=g5>R?/?N @@o@+@%@4AO7AHA)A AYBkuBBmCCC52D;hDID<D4+E<`E=E=E8FdRF:FOFIBG2GGGOJS2FUk(.hnvM^l{4 =a& ) W1A/K6;t>7f5u |Loq,b\:I0BEG~T<ZDQVdPry]j'Y $Cz8?"X9iwH#ps_m N-%}R`+!3@*gx[ec --filter-text=COMMAND-LINE --page-size=WxH --page-title-template=TEMPLATE --pageid-prefix=NAME --pageid-template=TEMPLATE pdf2djvu -i [options] pdf2djvu [-o ] [options] -d, --dpi=RESOLUTION -i, --indirect=FILE -o, --output=FILE%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out%s (%jd): %s%s is not a valid number%s: %s%zu bytes out%zu bytes outArg list too longArgument list too longBad addressBad file descriptorBroken pipeCannot allocate memoryCannot find link destinationDevice or resource busyDirectory not emptyDomain errorDuplicate page identifier: %sDuplicate page title: %sExec format errorExternal command "%s ..." failedExternal command "%s ..." failed with exit code %uExternal command "%s" failedExternal command "%s" failed with exit code %uFile existsFile name too longFile too largeFilename too longFunction not implementedI won't write DjVu data to a terminal.I/O error (%s)Illegal byte sequenceIllegal seekImproper linkInappropriate I/O control operationInappropriate ioctl for deviceInput/output errorInteger overflowInternal Poppler errorInterrupted function callInterrupted system callInvalid argumentInvalid cross-device linkInvalid date formatInvalid or incomplete multibyte or wide characterInvalid output file nameInvalid seekIs a directoryNo child processesNo input file name was specifiedNo locks availableNo page for a bookmarkNo pages selectedNo space left on deviceNo such deviceNo such device or addressNo such file or directoryNo such processNo title for a bookmarkNot a directoryNot enough spaceNumerical argument out of domainNumerical result out of rangeOperation not permittedOptions: PDF errorPDF feature not implementedPDF syntax errorPDF syntax warningPage not foundPageid cannot start with a '+' or a '-' characterPageid cannot start with a '.' character or contain two consecutive '.' charactersPageid must consist only of letters, digits, '_', '+', '-' and '.' charactersPageid must end with the '.djvu' or the '.djv' extensionPermission deniedPoppler configuration errorRead-only file systemResource deadlock avoidedResource deviceResource temporarily unavailableResult too largeThe specified number of foreground colors is outside the allowed range: %u .. %uThe specified resolution is outside the allowed range: %d .. %dThe specified subsampling ratio is outside the allowed range: %u .. %uToo many linksToo many open filesToo many open files in systemUnable to load documentUnable to parse command-line optionsUnable to parse hyperlinks optionsUnable to parse page numbersUnable to parse page sizeUnable to parse page title template specificationUnable to parse pageid template specificationUnable to set antialias parameterUnable to set vector antialias parameterUnexpected output from djvusedUnexpected subsampled bitmap heightUnexpected subsampled bitmap widthUnknown errorUnknown optionUsage: Warning: %sWarning: Unable to convert link with a named actionWarning: Unable to convert link with a remote go-to actionWarning: Unable to convert link without an actionWarning: Unknown link actionWarning: metadata[%s] is not a valid dateadding non-raster data with `djvused`creating document outline with `djvused`creating multi-page indirect document (%d page)creating multi-page indirect document (%d pages)creating new background image with `c44`encoding layers with `csepdjvu`encoding monochrome image with `cjb2`estimated resolution: %d dpiextracting XMP metadataextracting annotationsextracting document outlineextracting document-information metadataguessed resolution: %s dpiimage size: %dx%dpage #%d -> #%dpdf2djvu is intended to be run from the command prompt.pdf2djvu was built without GNOME XSLT; XML transformations are disabled.pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled.pdf2djvu was built without OpenMP support; multi-threading is disabled.possibly memory allocation errorpreparing data for `csepdjvu`re-assembling page with `djvumake`recovering image chunks with `djvuextract`recovering images with `djvuextract`recovering text with `djvused`rendering background imagerendering page (1st pass)rendering page (2nd pass)setting metadata with `djvused`setting metadata with `djvused` (working around a DjVuLibre bug)storing background imagestoring dummy background imagestoring foreground imagestoring text layerunable to guess resolutionProject-Id-Version: pdf2djvu 0.7.17 Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/ POT-Creation-Date: 2013-05-30 22:22+0200 PO-Revision-Date: 2012-09-18 11:33+0300 Last-Translator: Serhij Dubyk / Сергій Дубик Language-Team: Ukrainian Linux Team Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); --filter-text=КОМАНДНИЙ_РЯДОК --page-size=ШИР×ВИС --page-title-template=ШАБЛОН --pageid-prefix=НАЗВА --pageid-template=ШАБЛОН pdf2djvu -i <файл_djvu-індексу> [параметри] pdf2djvu [-o <результуючий_djvu-файл>] [параметри] -d, --dpi=РОЗДІЛЬНА_ЗДАТНІСТЬ -i, --indirect=ФАЙЛ -o, --output=ФАЙЛ%.3f біт/піксель; %.3f:1, %.2f%% збережено, %ju байт початково, %zu байт в результаті%s (%jd): %s%s не є правильним числом%s: %s%zu байт в результаті%zu байти в результаті%zu байтів в результатіЗанадто довгий список аргументівЗанадто довгий список аргументівНеправильна адресаНеправильний дескриптор файлуОбрив каналуНеможливо виділити пам’ятьПризначення посилання не знайденоПристрій чи ресурс зайнятоТека не порожняПомилка області визначенняПовторний ідентифікатор сторінки: %sПовторний заголовок сторінки: %sНеправильний формат виконуваного файлуНе вдалося виконати зовнішню команду „%s …“Не вдалося виконати зовнішню команду „%s …“. Код виходу %uНе вдалося виконати зовнішню команду „%s“Не вдалося виконати зовнішню команду „%s“. Код виходу %uФайл існуєНадто довге ім’я файлуФайл занадто великийНадто довге ім’я файлуФункція не реалізованаЯ не буду писати DjVu в термінал.Помилка вводу/виводу (%s)Невірна послідовність байтівНеправильна операція зміщенняПомилкове посиланняНевідповідна операція введення/виводуНепридатний ioctl для пристроюПомилка вводу/виводуЦілочисельне переповнюванняВнутрішня помилка PopplerПерерваний виклик функціїПерерваний системний викликНеправильний аргументНевірне посилання між пристроямиНевірний формат датиНеправильний або неповний багатобайтний символНеправильне ім’я вихідного файлуНеправильна операція зміщенняЦе текаНемає дочірніх процесівНе вказано назву вхідного файлуНемає доступних блокуваньНемає сторінки для закладкиНе вибрані сторінкиНа пристрої закінчилося місцеНемає такого пристроюНемає такого пристрою чи адресиНемає такого файлу чи текиНемає такого процесуНемає назви для закладкиНе є текоюНедостатньо місцяЧисловий аргумент поза області визначенняЧисловий результат поза можливим діапазономДія не дозволенаПараметри: Помилка PDFВластивість PDF не реалізованаПомилка синтаксису у PDF-файліПопередження про синтаксичну помилку у PDF-файліСторінку не знайденоІдентифікатор сторінки не може починатися зі знаків „+“ чи „-“Ідентифікатор сторінки не може починатися зі знаку „.“ або включати два послідовних знаки „.“Ідентифікатор сторінки повинен включати лише букви, цифри та знаки „_“, „+“, „-“ та „.“ Ідентифікатор сторінки повинен мати розширення „*.djvu“ або „*.djv“Доступ забороненоПомилка налаштування PopplerФайлова система доступна лише для читанняПопереджено тупикову ситуацію при зверненні до ресурсуПристрій або ресурс зайнятоРесурс тимчасово недоступнийРезультат занадто великийЗазначена кількість кольорів переднього плану знаходиться поза межами дозволеного діапазону: %u .. %uЗазначена роздільна здатність знаходиться поза межами дозволеного діапазону: %d .. %dЗадане співвідношення підвибірки знаходиться поза межами дозволеного діапазону: %u .. %uНадто багато посиланьНадто багато відкритих файлівНадто багато відкритих файлів у системіНеможливо завантажити документНеможливо розібрати параметри командного рядкаНеможливо розібрати параметри посиланьНеможливо розібрати номери сторінокНеможливо розібрати розмір сторінкиНеможливо розібрати специфікацію шаблону назви сторінкиНеможливо розібрати специфікацію шаблону ідентифікатора сторінкиНеможливо виставити параметри згладжуванняНеможливо виставити параметри векторного згладжуванняНеочікуваний вивід з „djvused“Неочікувана висота розділеного растрового зображенняНеочікувана ширина розділеного растрового зображенняНевідома помилкаНевідомий параметрВикористання: Попередження: %sПопередження: неможливо перетворити посилання з дієюПопередження: неможливо перетворити посилання на зовнішній документПопередження: неможливо перетворити посилання без діїПопередження: невідома дія посиланняПопередження: метадані[%s] є неприпустимою датоюдодавання нерастрових даних з „djvused“створення змісту документа з „djvused“створення багатосторінкового роздільного документа (%d сторінка)створення багатосторінкового роздільного документа (%d сторінки)створення багатосторінкового роздільного документа (%d сторінок)створення нового фонового зображення з „c44“кодування шарів з „csepdjvu“кодування монохромного зображення з „cjb2“очікувана роздільна здатність: %d dpiвитягнення метаданих XMPвитягнення анотаційвитягнення змісту документавитягнення метаданих інформації документапередбачувана роздільна здатність: %s dpiрозмір зображення: %d×%dсторінка №%d ⇒ №%dpdf2djvu призначений для запуску з командного рядка.pdf2djvu скомпільований без GNOME XSLT; XML-перетворення відключені.Pdf2djvu скомпільований без GraphicsMagick; покращене квантування кольору відключено.Pdf2djvu скомпільований без підтримки OpenMP; багатопотоковість відключена.ймовірно, помилка виділення пам’ятіпідготовка даних для „csepdjvu“перезбирання сторінки з „djvumake“відновлення шматків малюнка з „djvuextract“відновлення малюнків з „djvuextract“відновлення тексту з „djvused“промальовка фонового зображенняпромальовка сторінки (1-ий прохід)промальовка сторінки (2-ий прохід)присвоєння метаданих з „djvused“присвоєння метаданих з „djvused“ (оминаючи помилку DjVuLibre)збереження фонового зображеннязбереження порожнього фонового зображеннязбереження зображення переднього планузбереження текстового шарунеможливо оцінити роздільну здатністьpdf2djvu-0.7.17/po/pl.mo0000644000000000000000000003345112151732417013427 0ustar rootroot   # 2 L 8l 8    B _l  1I ]j 2.$ S_r&  #7Viz14 MZi |4D\l }  (17RiM8 CUq P?4Ft$"9\y1-!(>#]"  3: 1Dv)%(` (m%((Dm7HS+G "*)$Ty@Ha!  "  !7$!:\!!!!\! 7"D"b"Ai""""" # #"=#`##!#$####5$FU$1$B$ %%5%E%[%%x%%(%%*%#&#?&c&(|&&&& &* '7'(L'!u''''#''(-(?([(%v(!(((( )!%)G)d)z)) ))1)*7*iS*K*; + E+S+%p+!++++P,?b,K,,-%- C-+d-'-#-$-9.1;.+m.>..0.1'/Y/i/ x//C/K/;#0$_03030201-1& 2532"i222"2#2# 3.3D3>V3Q3f3WN4*4%4'4750W5*55$5!5*6G;666$66*6OJS2FUk(.hnvM^l{4 =a& ) W1A/K6;t>7f5u |Loq,b\:I0BEG~T<ZDQVdPry]j'Y $Cz8?"X9iwH#ps_m N-%}R`+!3@*gx[ec --filter-text=COMMAND-LINE --page-size=WxH --page-title-template=TEMPLATE --pageid-prefix=NAME --pageid-template=TEMPLATE pdf2djvu -i [options] pdf2djvu [-o ] [options] -d, --dpi=RESOLUTION -i, --indirect=FILE -o, --output=FILE%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out%s (%jd): %s%s is not a valid number%s: %s%zu bytes out%zu bytes outArg list too longArgument list too longBad addressBad file descriptorBroken pipeCannot allocate memoryCannot find link destinationDevice or resource busyDirectory not emptyDomain errorDuplicate page identifier: %sDuplicate page title: %sExec format errorExternal command "%s ..." failedExternal command "%s ..." failed with exit code %uExternal command "%s" failedExternal command "%s" failed with exit code %uFile existsFile name too longFile too largeFilename too longFunction not implementedI won't write DjVu data to a terminal.I/O error (%s)Illegal byte sequenceIllegal seekImproper linkInappropriate I/O control operationInappropriate ioctl for deviceInput/output errorInteger overflowInternal Poppler errorInterrupted function callInterrupted system callInvalid argumentInvalid cross-device linkInvalid date formatInvalid or incomplete multibyte or wide characterInvalid output file nameInvalid seekIs a directoryNo child processesNo input file name was specifiedNo locks availableNo page for a bookmarkNo pages selectedNo space left on deviceNo such deviceNo such device or addressNo such file or directoryNo such processNo title for a bookmarkNot a directoryNot enough spaceNumerical argument out of domainNumerical result out of rangeOperation not permittedOptions: PDF errorPDF feature not implementedPDF syntax errorPDF syntax warningPage not foundPageid cannot start with a '+' or a '-' characterPageid cannot start with a '.' character or contain two consecutive '.' charactersPageid must consist only of letters, digits, '_', '+', '-' and '.' charactersPageid must end with the '.djvu' or the '.djv' extensionPermission deniedPoppler configuration errorRead-only file systemResource deadlock avoidedResource deviceResource temporarily unavailableResult too largeThe specified number of foreground colors is outside the allowed range: %u .. %uThe specified resolution is outside the allowed range: %d .. %dThe specified subsampling ratio is outside the allowed range: %u .. %uToo many linksToo many open filesToo many open files in systemUnable to load documentUnable to parse command-line optionsUnable to parse hyperlinks optionsUnable to parse page numbersUnable to parse page sizeUnable to parse page title template specificationUnable to parse pageid template specificationUnable to set antialias parameterUnable to set vector antialias parameterUnexpected output from djvusedUnexpected subsampled bitmap heightUnexpected subsampled bitmap widthUnknown errorUnknown optionUsage: Warning: %sWarning: Unable to convert link with a named actionWarning: Unable to convert link with a remote go-to actionWarning: Unable to convert link without an actionWarning: Unknown link actionWarning: metadata[%s] is not a valid dateadding non-raster data with `djvused`creating document outline with `djvused`creating multi-page indirect document (%d page)creating multi-page indirect document (%d pages)creating new background image with `c44`encoding layers with `csepdjvu`encoding monochrome image with `cjb2`estimated resolution: %d dpiextracting XMP metadataextracting annotationsextracting document outlineextracting document-information metadataguessed resolution: %s dpiimage size: %dx%dpage #%d -> #%dpdf2djvu is intended to be run from the command prompt.pdf2djvu was built without GNOME XSLT; XML transformations are disabled.pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled.pdf2djvu was built without OpenMP support; multi-threading is disabled.possibly memory allocation errorpreparing data for `csepdjvu`re-assembling page with `djvumake`recovering image chunks with `djvuextract`recovering images with `djvuextract`recovering text with `djvused`rendering background imagerendering page (1st pass)rendering page (2nd pass)setting metadata with `djvused`setting metadata with `djvused` (working around a DjVuLibre bug)storing background imagestoring dummy background imagestoring foreground imagestoring text layerunable to guess resolutionProject-Id-Version: pdf2djvu 0.7.17 Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/ POT-Creation-Date: 2013-05-30 22:22+0200 PO-Revision-Date: 2012-07-06 09:59+0200 Last-Translator: Jakub Wilk Language-Team: none Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); --filter-text=LINIA-POLECEŃ --page-size=SZERxWYS --page-title-template=SZABLON --pageid-prefix=NAZWA --pageid-template=SZABLON pdf2djvu -i [opcje] pdf2djvu [-o ] [opcje] -d, --dpi=ROZDZIELCZOŚĆ -i, --indirect=PLIK -o, --output=PLIK%.3f bitów/piksel; %.3f:1, %.2f%% zysku, %ju bajtów wejściowych, %zu bajtów wyjściowych%s (%jd): %s%s nie jest poprawną liczbą%s: %s%zu bajt wyjściowy%zu bajty wyjściowe%zu bajtów wyjściowychLista argumentów za długaLista argumentów za długaBłędny adresBłędny deskryptor plikuPrzerwany potokNie można przydzielić pamięciNie można odnaleźć celu łączaUrządzenie lub zasoby zajęteKatalog nie jest pustyArgument liczbowy spoza dziedzinyPowtórzony identyfikator strony: %sPowtórzony tytuł strony: %sBłędny format pliku wykonywalnegoZewnętrzne polecenie “%s …” nie powiodło sięZewnętrzne polecenie “%s …” nie powiodło się; kod wyjścia %uZewnętrzne polecenie “%s” nie powiodło sięZewnętrzne polecenie “%s” nie powiodło się; kod wyjścia %uPlik istniejeZa długa nazwa plikuPlik zbyt dużyZa długa nazwa plikuNie zaimplementowana funkcjaNie wypiszę danych DjVu na terminal.Błąd We/Wy (%s)Błędny lub niepełny znak wielobajtowyBłędne przesunięcieBłędne dowiązanie między urządzeniamiNiewłaściwy ioctl dla urządzeniaNiewłaściwy ioctl dla urządzeniaBłąd wejścia/wyjściaPrzekroczenie zakresu liczb całkowitychWewnętrzny bład PoppleraPrzerwane wywołanie systemowePrzerwane wywołanie systemoweZły argumentBłędne dowiązanie między urządzeniamiBłędny format datyBłędny lub niepełny znak wielobajtowyBłędna nazwa pliku wyjściowegoBłędne przesunięcieJest katalogiemBrak procesów potomnychNie podano nazwy pliku wejściowegoBrak dostępnych blokadBrak strony dla zakładkiNie wybrano stronBrak miejsca na urządzeniuNie ma takiego urządzeniaNie ma takiego urządzenia ani adresuNie ma takiego pliku ani kataloguNie ma takiego procesuBrak tytułu dla zakładkiNie jest katalogiemNie można przydzielić pamięciArgument liczbowy spoza dziedzinyWynik liczbowy poza zakresemOperacja niedozwolonaOpcje: Błąd pliku PDFNie zaimplementowana funkcja PDFBłąd składniowy w pliku PDFOstrzeżenie o błędzie składniowym w pliku PDFNie znaleziono stronyPageid nie może rozpoczynać się od znaku '+' ani '-'Pageid nie może rozpoczynać się od znaku '.' ani zawierać dwóch występujących po sobie znaków '.'Pageid może zawierać jedynie litery, cyfry oraz znaki '_', '+', '-' i '.'Pageid musi kończyć się rozszerzeniem '.djvu' lub '.djv'Brak dostępuBłąd konfiguracji PoppleraSystem plików wyłącznie do odczytuUniknięto zakleszczenia zasobówUrządzenie lub zasoby zajęteZasoby chwilowo niedostępneWynik liczbowy poza zakresemPodana liczba kolorów pierwszego planu jest spoza dozwolonego zakresu: %u .. %uPodana rozdzielczość jest spoza dozwolonego zakresu: %d .. %dPodany współczynnik próbkowania jest spoza dozwolonego zakresu: %u .. %uZa dużo dowiązańZa dużo otwartych plikówZa dużo otwartych plików w systemieNie można załadować dokumentuBłąd przetwarzania opcji wiersza poleceńBłąd przetwarzania opcji hiperłączyBłąd przetwarzania numerów stronBłąd przetwarzania rozmiaru stronyBłąd przetwarzania specyfikacji szablonu tytułu stronyBłąd przetwarzania specyfikacji szablonu pageidNie można ustawić parametru antyaliasinguNie można ustawić parametru antyaliasingu grafiki wektorowejNieoczekiwany wynik z djvusedNieoczekiwana wysokość podpróbkowanej bitmapyNieoczekiwana szerokość podpróbkowanej bitmapyNieznany błądNieznana opcjaUżycie: Ostrzeżenie: %sOstrzeżenie: Nie można przekonwertować łącza z nazwaną akcjąOstrzeżenie: Nie można przekonwertować łącza ze zdalną akcją idź-doOstrzeżenie: Nie można przekonwertować łącza bez akcjiOstrzeżenie: Nieznana akcja łączaOstrzeżenie: metadata[%s] nie jest poprawną datądodawanie danych nierastrowych za pomocą `djvused`tworzenie konspektu dokumentu za pomocą `djvused`tworzenie wielostronicowego dokumentu rozdzielonego (%d strona)tworzenie wielostronicowego dokumentu rozdzielonego (%d strony)tworzenie wielostronicowego dokumentu rozdzielonego (%d stron)tworzenie nowego obrazu tła za pomocą `c44`kodowanie warstw za pomocą `csepdjvu`kodowanie obrazu monochromatycznego za pomocą `cjb2`oszacowana rozdzielczość: %d dpiwyodrębnianie metadanych XMPwyodrębnianie adnotacjiwyodrębnianie konspektu dokumentuwyodrębnianie metadanych dokumentuodgadnięta rozdzielczość: %s dpiwymiary obrazu: %dx%dstrona #%d -> #%dpdf2djvu powinien być uruchamiany z poziomu wiersza poleceń.pdf2djvu zostało skompilowane bez GNOME XSLT; transformacje XML są wyłączone.pdf2djvu zostało skompilowane bez GraphicsMagick; zaawansowana kwantyzacja kolorów jest wyłączona.pdf2djvu zostało skompilowane bez obsługi OpenMP; wielowątkowość jest wyłączona.prawdopodobnie błąd przydziału pamięciprzygotowywanie danych dla `csepdjvu`składanie strony za pomocą `djvumake`wyodrębnianie urywków obrazu za pomocą `djvuextract`wyodrębnianie obrazów za pomocą `djvuextract`wyodrębnianie tekstu za pomocą `djvused`tworzenie obrazu tłatworzenie strony (pierwszy przebieg)tworzenie strony (drugi przebieg)ustawianie metadanych za pomocą `djvused`ustawianie metadanych za pomocą `djvused` (omijanie błędu DjVuLibre)zapisywanie obrazu tłazapisywanie pustego obrazu tłazapisywanie obrazu pierwszoplanowegozapisywanie warstwy tekstowejnie udało się odgadnąć rozdzielczościpdf2djvu-0.7.17/po/de.mo0000644000000000000000000003361612151732417013407 0ustar rootroot   # 2 L 8l 8    B _l  1I ]j 2.$ S_r&  #7Viz14 MZi |4D\l }  (17RiM8 CUq P?4Ft$"9\y1-!(>#]"  3: 1Dv)%(` (m%((Dm7HS+G "*)$Ty@Ha{  $  ;!<L!!!!I! " "<"!C"e"x"""""%"&#!)#K#b#r###)#:#%/$6U$$$$$$8$%%5%K%c%#x%)%%%% &(&D&,Y&&@&&&'+')='g' ''"''#'&(?(W(w((+(,(( ) )"))L)])o)Y)})u\*I*+/+"L+o+ +%++^+L2,n,,-&-"?-6b-4-.---<+.Mh.3.9.$/<D/=//// /I/LC0:0!0/0:17X1|1/ 2&=2-d2#222203E3d3w3?3I3`4bs4&4*42(5=[535+55'6(@6(i6J6 6+6 *7K7'f7OJS2FUk(.hnvM^l{4 =a& ) W1A/K6;t>7f5u |Loq,b\:I0BEG~T<ZDQVdPry]j'Y $Cz8?"X9iwH#ps_m N-%}R`+!3@*gx[ec --filter-text=COMMAND-LINE --page-size=WxH --page-title-template=TEMPLATE --pageid-prefix=NAME --pageid-template=TEMPLATE pdf2djvu -i [options] pdf2djvu [-o ] [options] -d, --dpi=RESOLUTION -i, --indirect=FILE -o, --output=FILE%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out%s (%jd): %s%s is not a valid number%s: %s%zu bytes out%zu bytes outArg list too longArgument list too longBad addressBad file descriptorBroken pipeCannot allocate memoryCannot find link destinationDevice or resource busyDirectory not emptyDomain errorDuplicate page identifier: %sDuplicate page title: %sExec format errorExternal command "%s ..." failedExternal command "%s ..." failed with exit code %uExternal command "%s" failedExternal command "%s" failed with exit code %uFile existsFile name too longFile too largeFilename too longFunction not implementedI won't write DjVu data to a terminal.I/O error (%s)Illegal byte sequenceIllegal seekImproper linkInappropriate I/O control operationInappropriate ioctl for deviceInput/output errorInteger overflowInternal Poppler errorInterrupted function callInterrupted system callInvalid argumentInvalid cross-device linkInvalid date formatInvalid or incomplete multibyte or wide characterInvalid output file nameInvalid seekIs a directoryNo child processesNo input file name was specifiedNo locks availableNo page for a bookmarkNo pages selectedNo space left on deviceNo such deviceNo such device or addressNo such file or directoryNo such processNo title for a bookmarkNot a directoryNot enough spaceNumerical argument out of domainNumerical result out of rangeOperation not permittedOptions: PDF errorPDF feature not implementedPDF syntax errorPDF syntax warningPage not foundPageid cannot start with a '+' or a '-' characterPageid cannot start with a '.' character or contain two consecutive '.' charactersPageid must consist only of letters, digits, '_', '+', '-' and '.' charactersPageid must end with the '.djvu' or the '.djv' extensionPermission deniedPoppler configuration errorRead-only file systemResource deadlock avoidedResource deviceResource temporarily unavailableResult too largeThe specified number of foreground colors is outside the allowed range: %u .. %uThe specified resolution is outside the allowed range: %d .. %dThe specified subsampling ratio is outside the allowed range: %u .. %uToo many linksToo many open filesToo many open files in systemUnable to load documentUnable to parse command-line optionsUnable to parse hyperlinks optionsUnable to parse page numbersUnable to parse page sizeUnable to parse page title template specificationUnable to parse pageid template specificationUnable to set antialias parameterUnable to set vector antialias parameterUnexpected output from djvusedUnexpected subsampled bitmap heightUnexpected subsampled bitmap widthUnknown errorUnknown optionUsage: Warning: %sWarning: Unable to convert link with a named actionWarning: Unable to convert link with a remote go-to actionWarning: Unable to convert link without an actionWarning: Unknown link actionWarning: metadata[%s] is not a valid dateadding non-raster data with `djvused`creating document outline with `djvused`creating multi-page indirect document (%d page)creating multi-page indirect document (%d pages)creating new background image with `c44`encoding layers with `csepdjvu`encoding monochrome image with `cjb2`estimated resolution: %d dpiextracting XMP metadataextracting annotationsextracting document outlineextracting document-information metadataguessed resolution: %s dpiimage size: %dx%dpage #%d -> #%dpdf2djvu is intended to be run from the command prompt.pdf2djvu was built without GNOME XSLT; XML transformations are disabled.pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled.pdf2djvu was built without OpenMP support; multi-threading is disabled.possibly memory allocation errorpreparing data for `csepdjvu`re-assembling page with `djvumake`recovering image chunks with `djvuextract`recovering images with `djvuextract`recovering text with `djvused`rendering background imagerendering page (1st pass)rendering page (2nd pass)setting metadata with `djvused`setting metadata with `djvused` (working around a DjVuLibre bug)storing background imagestoring dummy background imagestoring foreground imagestoring text layerunable to guess resolutionProject-Id-Version: pdf2djvu 0.7.17 Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/ POT-Creation-Date: 2013-05-30 22:22+0200 PO-Revision-Date: 2012-08-19 11:50+0100 Last-Translator: Chris Leick Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; --filter-text=BEFEHLSZEILE --page-size=BxH --page-title-template=SCHABLONE --pageid-prefix=NAME --pageid-template=SCHABLONE pdf2djvu -i [Optionen] pdf2djvu [-o ] [Optionen] -d, --dpi=AUFLÖSUNG -i, --indirect=DATEI -o, --output=DATEI%.3f Bits/Bildpunkt; %.3f:1, %.2f%% gespart, %ju Byte rein, %zu Byte raus%s (%jd): %s%s ist keine gültige Zahl.%s: %s%zu Byte Ausgabe%zu Byte AusgabeArg.-Liste zu langArgumentenliste zu langfalsche Adressefalscher Dateideskriptorunterbrochene Weiterleitung (Pipe)Speicher kann nicht reserviert werdenVerweisziel kann nicht gefunden werdenGerät oder Ressource ausgelastetVerzeichnis nicht leerDomänen-Fehlerdoppelter Seitenbezeichner: %sdoppelter Seitentitel: %sFehler des Ausführungsformatsexterner Befehl »%s …« fehlgeschlagenexterner Befehl »%s …« mit Exit-Kode %u fehlgeschlagenexterner Befehl »%s« fehlgeschlagenexterner Befehl »%s« mit Exit-Kode %u fehlgeschlagenDatei existiertDateiname zu langDatei zu großDateiname zu langFunktion nicht implementiertEs werden keine Djvu-Daten auf das Terminal geschrieben.E/A-Fehler (%s)illegale Byte-Abfolgeillegale Positionierungungeeigneter Verweisungeeignete E/A-Steuerungsoperationungeeigneter ioctl-Aufruf für das GerätEingabe-/AusgabefehlerGanzzahlenüberlaufinterner Poppler-Fehlerunterbrochener Funktionsaufrufunterbrochener Systemaufrufungültiges Argumentfalscher Verweis über Gerätegrenzen hinwegungültiges Datumsformatungültiger oder unvollständiges Multibyte- oder Wide-Characterungültiger Ausgabedateinameungültige Positionierungist ein Verzeichniskeine KindprozessEs wurde kein Eingabedateiname angegeben.keine Sperren verfügbarkeine Seite für ein Lesezeichenkeine Seiten ausgewähltSpeicher auf dem Gerät erschöpftkein derartiges Gerätkeine deratiges Gerät oder Adressekeine derartige Datei oder Verzeichniskein derartiger Prozesskein Titel für ein Lesezeichenkein Verzeichnisnicht genug Speichernumerisches Argument außerhalb der Domänenumerisches Ergebnis außerhalb des BereichsOperation nicht unterstütztOptionen: PDF-FehlerPDF-Fähigkeit nicht implementiertPDF-SyntaxfehlerPDF-SyntaxwarnungSeite nicht gefundenSeitenidentifikationsnummer darf nicht mit einem »+«- oder einem »-«-Zeichen beginnenSeitenidentifikationsnummer darf nicht mit einem ».«-Zeichen beginnen oder zwei aufeinanderfolgende ».«-Zeichen enthaltenSeitenidentifikationsnummer darf nur aus Buchstaben, Ziffern und den Zeichen »_«, »+«, »-« sowie ».« bestehenSeitenidentifikationsnummer muss die Endung ».djvu« oder ».djv« habenZugriff verweigertPoppler-KonfigurationsfehlerDateisystem mit reinem LesezugriffRessourcenblockierung vermiedenQuellgerätRessource zeitweilig nicht verfügbarErgebnis zu großDie angegebene Anzahl der Vordergrundfarben liegt außerhalb des erlaubten Bereichs: %u … %uDie angegebene Auflösung liegt außerhalb des erlaubten Bereichs: %d … %dDas angegebene Verhältnis der Unterabtastung (subsampling) liegt außerhalb des erlaubten Bereichs: %u … %uzu viele Verweisezu viele offene Dateienzu viele offene Dateien auf dem SystemDokument kann nicht geladen werdenBefehlszeilenoptionen konnten nicht ausgewertet werdenQuerverweisoptionen konnten nicht ausgewertet werdenSeitennummern konnten nicht ausgewertet werdenSeitengröße konnte nicht ausgewertet werdenSeitentitel-Schablonenangabe konnte nicht ausgewertet werdenSeitenidentifikationsnummern-Schablonenangabe konnte nicht ausgewertet werdenKantenglättungsparameter kann nicht gesetzt werdenVektorkantenglättungsparameter kann nicht gesetzt werdenunerwartete Ausgabe von Djvusedunerwartete Höhe des unterabgetasteten (subsampled) Bitmapsunerwartete Breite des unterabgetasteten (subsampled) Bitmapsunbekannter Fehlerunbekannte OptionAufruf: Warnung: %sWarnung: Verweis mit einer benannten Aktion kann nicht umgewandelt werdenWarnung: Verweis mit einem fernen Sprungbefehl kann nicht umgewandelt werdenWarnung: Verweis ohne Aktion kann nicht umgewandelt werdenWarnung: unbekannte VerweisaktionWarnung: Metadatum[%s] ist kein gültiges Datumnicht gerasterte Daten werden mit »djvused« hinzugefügtein Entwurf des Dokuments wird mit »djvused« erstelltein mehrseitiges indirektes Dokument wird erstellt (%d Seite)ein mehrseitiges indirektes Dokument wird erstellt (%d Seiten)neues Hintergrundbild wird mit »c44« erstelltEbenen werden mit »csepdjvu« kodierteinfarbige Bilder werden mit »cjb2« kodiertvoraussichtliche Auflösung: %d dpiXMO-Metadaten werden extrahiertAnmerkungen werden ausgelesenDokumententwurf wird extrahiertDokument-Informationsmetadaten werden ausgelesengeschätzte Auflösung: %s dpiBildgröße: %dx%dSeite #%d -> #%dpdf2djvu ist für die Ausführung von der Befehlszeile gedacht.pdf2djvu wurde ohne GNOME-XSLT gebaut. XML-Umwandlungen sind deaktiviert.pdf2djvu wurde ohne GraphicsMagick gebaut. Fortgeschrittene Farbquantifizierung ist deaktiviert.Pdf2djvu wurde ohne OpenMP-Unterstützung gebaut. Die Verwendung mehrerer Threads ist deaktiviert.möglicher SpeicherreservierungsfehlerDaten für »csepdjvu« werden vorbereitetSeite wird mit »djvumake« erneut zusammengesetztgroße Bildteile werden mit »djvuextract« wiederhergestelltBilder werden mit »djvuextract« wiederhergestelltText wird mit »djvused« wiederhergestelltHintergrundbild wird aufgebautSeite wird aufgebaut (erster Durchgang)Seite wird aufgebaut (zweiter Durchgang)Metadaten werden mit »djvused« gesetztMetadaten werden mit »djvused« gesetzt (umgehen eines DjVuLibre-Fehlers)Hintergrundbild wird gespeichertPlatzhalterhintergrundbild wird gespeichertVordergrundbild wird gespeichertTextebene wird gespeichertAuflösung kann nicht geschätzt werdenpdf2djvu-0.7.17/po/ru.mo0000644000000000000000000004360112151732417013440 0ustar rootroot   # 2 L 8l 8    B _l  1I ]j 2.$ S_r&  #7Viz14 MZi |4D\l }  (17RiM8 CUq P?4Ft$"9\y1-!(>#]"  3: 1Dv)%(` (m%((Dm7HS+G "*)$Ty@Ha2  '  !#Ni?/?P?/9@-i@'@<@Q@9NA*AA]Ak-BBxC>C3C3 DI?D>D6D:D9:E9tE6E\E<BFKFIF2G8HGOJS2FUk(.hnvM^l{4 =a& ) W1A/K6;t>7f5u |Loq,b\:I0BEG~T<ZDQVdPry]j'Y $Cz8?"X9iwH#ps_m N-%}R`+!3@*gx[ec --filter-text=COMMAND-LINE --page-size=WxH --page-title-template=TEMPLATE --pageid-prefix=NAME --pageid-template=TEMPLATE pdf2djvu -i [options] pdf2djvu [-o ] [options] -d, --dpi=RESOLUTION -i, --indirect=FILE -o, --output=FILE%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out%s (%jd): %s%s is not a valid number%s: %s%zu bytes out%zu bytes outArg list too longArgument list too longBad addressBad file descriptorBroken pipeCannot allocate memoryCannot find link destinationDevice or resource busyDirectory not emptyDomain errorDuplicate page identifier: %sDuplicate page title: %sExec format errorExternal command "%s ..." failedExternal command "%s ..." failed with exit code %uExternal command "%s" failedExternal command "%s" failed with exit code %uFile existsFile name too longFile too largeFilename too longFunction not implementedI won't write DjVu data to a terminal.I/O error (%s)Illegal byte sequenceIllegal seekImproper linkInappropriate I/O control operationInappropriate ioctl for deviceInput/output errorInteger overflowInternal Poppler errorInterrupted function callInterrupted system callInvalid argumentInvalid cross-device linkInvalid date formatInvalid or incomplete multibyte or wide characterInvalid output file nameInvalid seekIs a directoryNo child processesNo input file name was specifiedNo locks availableNo page for a bookmarkNo pages selectedNo space left on deviceNo such deviceNo such device or addressNo such file or directoryNo such processNo title for a bookmarkNot a directoryNot enough spaceNumerical argument out of domainNumerical result out of rangeOperation not permittedOptions: PDF errorPDF feature not implementedPDF syntax errorPDF syntax warningPage not foundPageid cannot start with a '+' or a '-' characterPageid cannot start with a '.' character or contain two consecutive '.' charactersPageid must consist only of letters, digits, '_', '+', '-' and '.' charactersPageid must end with the '.djvu' or the '.djv' extensionPermission deniedPoppler configuration errorRead-only file systemResource deadlock avoidedResource deviceResource temporarily unavailableResult too largeThe specified number of foreground colors is outside the allowed range: %u .. %uThe specified resolution is outside the allowed range: %d .. %dThe specified subsampling ratio is outside the allowed range: %u .. %uToo many linksToo many open filesToo many open files in systemUnable to load documentUnable to parse command-line optionsUnable to parse hyperlinks optionsUnable to parse page numbersUnable to parse page sizeUnable to parse page title template specificationUnable to parse pageid template specificationUnable to set antialias parameterUnable to set vector antialias parameterUnexpected output from djvusedUnexpected subsampled bitmap heightUnexpected subsampled bitmap widthUnknown errorUnknown optionUsage: Warning: %sWarning: Unable to convert link with a named actionWarning: Unable to convert link with a remote go-to actionWarning: Unable to convert link without an actionWarning: Unknown link actionWarning: metadata[%s] is not a valid dateadding non-raster data with `djvused`creating document outline with `djvused`creating multi-page indirect document (%d page)creating multi-page indirect document (%d pages)creating new background image with `c44`encoding layers with `csepdjvu`encoding monochrome image with `cjb2`estimated resolution: %d dpiextracting XMP metadataextracting annotationsextracting document outlineextracting document-information metadataguessed resolution: %s dpiimage size: %dx%dpage #%d -> #%dpdf2djvu is intended to be run from the command prompt.pdf2djvu was built without GNOME XSLT; XML transformations are disabled.pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled.pdf2djvu was built without OpenMP support; multi-threading is disabled.possibly memory allocation errorpreparing data for `csepdjvu`re-assembling page with `djvumake`recovering image chunks with `djvuextract`recovering images with `djvuextract`recovering text with `djvused`rendering background imagerendering page (1st pass)rendering page (2nd pass)setting metadata with `djvused`setting metadata with `djvused` (working around a DjVuLibre bug)storing background imagestoring dummy background imagestoring foreground imagestoring text layerunable to guess resolutionProject-Id-Version: pdf2djvu 0.7.17 Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/ POT-Creation-Date: 2013-05-30 22:22+0200 PO-Revision-Date: 2012-08-19 18:46+0300 Last-Translator: Kyrill Detinov Language-Team: none Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); --filter-text=КОМАНДНАЯ-СТРОКА --page-size=ШИРxВЫС --page-title-template=ШАБЛОН --pageid-prefix=ИМЯ --pageid-template=ШАБЛОН pdf2djvu -i <файл-индекса-djvu> [параметры] pdf2djvu [-o <результирующий-djvu-файл>] [параметры] -d, --dpi=РАЗРЕШЕНИЕ -i, --indirect=ФАЙЛ -o, --output=ФАЙЛ%.3f бит/пиксел; %.3f:1, %.2f%% сохранено, %ju байт исходно, %zu байт результат%s (%jd): %s%s не является правильным числом%s: %s%zu байт результат%zu байта результат%zu байт результатСлишком длинный список аргументовСлишком длинный список аргументовНеправильный адресНеправильный дескриптор файлаОбрыв каналаНевозможно выделить памятьНазначение ссылки не найденоУстройство или ресурс занятоКаталог не пустОшибка области определенияПовторный идентификатор страницы: %sПовторный заголовок страницы: %sНеправильный формат исполняемого файлаНе удалось выполнить внешнюю команду "%s ..."Не удалось выполнить внешнюю команду "%s ...". Код выхода %uНе удалось выполнить внешнюю команду "%s"Не удалось выполнить внешнюю команду "%s". Код выхода %uФайл существуетСлишком длинное имя файлаФайл слишком великСлишком длинное имя файлаФункция не реализованаЯ не буду писать DjVu в терминал.Ошибка ввода/вывода (%s)Неверная последовательность байтовНедопустимая операция смещенияОшибочная ссылкаНеподходящая операция ввода/выводаНеподходящий ioctl для устройстваОшибка ввода/выводаЦелочисленное переполнениеВнутренняя ошибка PopplerПрерванный вызов функцииПрерванный системный вызовНеверный аргументНеверная ссылка между устройствамиНеверный формат датыНеверный или неполный многобайтовый символНеправильное имя выходного файлаНедопустимая операция смещенияЭто каталогНет дочерних процессовНе указано имя входного файлаНет доступных блокировокНет страницы для закладкиНе выбраны страницыНа устройстве закончилось местоНет такого устройстваНет такого устройства или адресаНет такого файла или каталогаНет такого процессаНет названия для закладкиНе является каталогомНедостаточно местаЧисловой аргумент вне области определенияЧисловой результат вне представимого диапазонаДействие не разрешеноПараметры:Ошибка PDFСвойство PDF не реализованоОшибка синтаксиса в PDF-файлеПредупреждение о синтаксической ошибке в PDF-файлеСтраница не найденаИдентификатор страницы не может начинаться со знаков '+' или '-'Идентификатор страницы не может начинаться со знака '.' или включать два последовательных знака '.'Идентификатор страницы должен включать только буквы, цифры и знаки '_', '+', '-' и '.'Идентификатор страницы должен заканчиваться расширением '.djvu' или '.djv'Доступ запрещёнОшибка конфигурации PopplerФайловая система доступна только для чтенияПредотвращена тупиковая ситуация при обращении к ресурсуУстройство или ресурс занятоРесурс временно недоступенРезультат слишком великУказанное количество цветов переднего плана находится за пределами разрешённого диапазона: %u .. %uУказанное разрешение находится за пределами разрешённого диапазона: %d .. %dЗаданное соотношение подвыборки находится за пределами разрешённого диапазона: %u .. %uСлишком много ссылокСлишком много открытых файловСлишком много открытых файлов в системеНевозможно загрузить документНевозможно разобрать параметры командной строкиНевозможно разобрать параметры ссылокНевозможно разобрать номера страницНевозможно разобрать размер страницыНевозможно разобрать спецификацию шаблона названия страницыНевозможно разобрать спецификацию шаблона идентификатора страницыНевозможно выставить параметры сглаживанияНевозможно выставить параметры векторного сглаживанияНеожиданный вывод из djvusedНеожиданная высота разделённого растрового изображенияНеожиданная ширина разделённого растрового изображенияНеизвестная ошибкаНеизвестный параметрИспользование:Предупреждение: %sПредупреждение: невозможно преобразовать ссылку с действиемПредупреждение: невозможно преобразовать ссылку на внешний документПредупреждение: невозможно преобразовать ссылку без действияПредупреждение: неизвестное действие ссылкиПредупреждение: метаданные[%s] являются недопустимой датойдобавление нерастровых данных с `djvused`создание оглавления документа с `djvused`создание многостраничного раздельного документа (%d страница)создание многостраничного раздельного документа (%d страницы)создание многостраничного раздельного документа (%d страниц)создание нового фонового изображения с `c44`кодирование слоёв с `csepdjvu`кодирование монохромного изображения с `cjb2`ожидаемое разрешение: %d dpiизвлечение метаданных XMPизвлечение аннотацийизвлечение оглавления документаизвлечение метаданных информации документапредполагаемое разрешение: %s dpiразмер изображения: %dx%dстраница #%d -> #%dpdf2djvu предназначен для запуска из командной строки.pdf2djvu скомпилирован без GNOME XSLT; XML-преобразования отключены.pdf2djvu скомпилирован без GraphicsMagick; улучшенное квантование цвета отключено.pdf2djvu скомпилирован без поддержки OpenMP; многопоточность отключена.вероятно, ошибка выделения памятиподготовка данных для `csepdjvu`пересборка страницы с `djvumake`восстановление кусков рисунка с `djvuextract`восстановление рисунков с `djvuextract`восстановление текста с `djvused`рендеринг фонового изображениярендеринг страницы (1-ый проход)рендеринг страницы (2-ой проход)присвоение метаданных с `djvused`присвоение метаданных с `djvused` (обходя ошибку DjVuLibre)сохранение фонового изображениясохранение пустого фонового изображениясохранение изображения переднего планасохранение текстового слояневозможно оценить разрешениеpdf2djvu-0.7.17/po/pdf2djvu.pot0000644000000000000000000002466312151732417014734 0ustar rootroot# Copyright © 2007, 2008, 2009, 2010, 2011 Jakub Wilk # # This package 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; version 2 dated June, 1991. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2013-05-30 22:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" msgid " --filter-text=COMMAND-LINE" msgstr "" msgid " --page-size=WxH" msgstr "" msgid " --page-title-template=TEMPLATE" msgstr "" msgid " --pageid-prefix=NAME" msgstr "" msgid " --pageid-template=TEMPLATE" msgstr "" msgid " pdf2djvu -i [options] " msgstr "" msgid " pdf2djvu [-o ] [options] " msgstr "" msgid " -d, --dpi=RESOLUTION" msgstr "" msgid " -i, --indirect=FILE" msgstr "" msgid " -o, --output=FILE" msgstr "" #, c-format msgid "%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out" msgstr "" #. L10N: " (): " #, c-format msgid "%s (%jd): %s" msgstr "" #, c-format msgid "%s is not a valid number" msgstr "" #. L10N: ": " #, c-format msgid "%s: %s" msgstr "" #, c-format msgid "%zu bytes out" msgid_plural "%zu bytes out" msgstr[0] "" msgstr[1] "" #. L10N: Windows error message for E2BIG msgid "Arg list too long" msgstr "" #. L10N: Windows error message for E2BIG msgid "Argument list too long" msgstr "" #. L10N: Windows error message for EFAULT msgid "Bad address" msgstr "" #. L10N: Windows error message for EBADF msgid "Bad file descriptor" msgstr "" #. L10N: Windows error message for EPIPE msgid "Broken pipe" msgstr "" #. L10N: Windows error message for ENOMEM msgid "Cannot allocate memory" msgstr "" msgid "Cannot find link destination" msgstr "" #. L10N: Windows error message for EBUSY msgid "Device or resource busy" msgstr "" #. L10N: Windows error message for ENOTEMPTY msgid "Directory not empty" msgstr "" #. L10N: Windows error message for EDOM msgid "Domain error" msgstr "" #, c-format msgid "Duplicate page identifier: %s" msgstr "" #, c-format msgid "Duplicate page title: %s" msgstr "" #. L10N: Windows error message for ENOEXEC msgid "Exec format error" msgstr "" #, c-format msgid "External command \"%s ...\" failed" msgstr "" #, c-format msgid "External command \"%s ...\" failed with exit code %u" msgstr "" #, c-format msgid "External command \"%s\" failed" msgstr "" #, c-format msgid "External command \"%s\" failed with exit code %u" msgstr "" #. L10N: Windows error message for EEXIST msgid "File exists" msgstr "" #. L10N: Windows error message for ENAMETOOLONG msgid "File name too long" msgstr "" #. L10N: Windows error message for EFBIG msgid "File too large" msgstr "" #. L10N: Windows error message for ENAMETOOLONG msgid "Filename too long" msgstr "" #. L10N: Windows error message for ENOSYS msgid "Function not implemented" msgstr "" msgid "I won't write DjVu data to a terminal." msgstr "" #, c-format msgid "I/O error (%s)" msgstr "" #. L10N: Windows error message for EILSEQ msgid "Illegal byte sequence" msgstr "" #. L10N: Windows error message for ESEEK msgid "Illegal seek" msgstr "" #. L10N: Windows error message for EXDEV msgid "Improper link" msgstr "" #. L10N: Windows error message for ENOTTY msgid "Inappropriate I/O control operation" msgstr "" #. L10N: Windows error message for ENOTTY msgid "Inappropriate ioctl for device" msgstr "" #. L10N: Windows error message for EIO msgid "Input/output error" msgstr "" msgid "Integer overflow" msgstr "" msgid "Internal Poppler error" msgstr "" #. L10N: Windows error message for EINTR msgid "Interrupted function call" msgstr "" #. L10N: Windows error message for EINTR msgid "Interrupted system call" msgstr "" #. L10N: Windows error message for EINVAL msgid "Invalid argument" msgstr "" #. L10N: Windows error message for EXDEV msgid "Invalid cross-device link" msgstr "" msgid "Invalid date format" msgstr "" #. L10N: Windows error message for EILSEQ msgid "Invalid or incomplete multibyte or wide character" msgstr "" msgid "Invalid output file name" msgstr "" #. L10N: Windows error message for ESEEK msgid "Invalid seek" msgstr "" #. L10N: Windows error message for EISDIR msgid "Is a directory" msgstr "" #. L10N: Windows error message for ECHILD msgid "No child processes" msgstr "" msgid "No input file name was specified" msgstr "" #. L10N: Windows error message for ENOLOCK msgid "No locks available" msgstr "" msgid "No page for a bookmark" msgstr "" msgid "No pages selected" msgstr "" #. L10N: Windows error message for ENOSPC msgid "No space left on device" msgstr "" #. L10N: Windows error message for ENODEV msgid "No such device" msgstr "" #. L10N: Windows error message for ENXIO msgid "No such device or address" msgstr "" #. L10N: Windows error message for ENOENT msgid "No such file or directory" msgstr "" #. L10N: Windows error message for ESRCH msgid "No such process" msgstr "" msgid "No title for a bookmark" msgstr "" #. L10N: Windows error message for ENOTDIR msgid "Not a directory" msgstr "" #. L10N: Windows error message for ENOMEM msgid "Not enough space" msgstr "" #. L10N: Windows error message for EDOM msgid "Numerical argument out of domain" msgstr "" #. L10N: Windows error message for ERANGE msgid "Numerical result out of range" msgstr "" #. L10N: Windows error message for EPERM msgid "Operation not permitted" msgstr "" msgid "Options: " msgstr "" msgid "PDF error" msgstr "" msgid "PDF feature not implemented" msgstr "" msgid "PDF syntax error" msgstr "" msgid "PDF syntax warning" msgstr "" msgid "Page not found" msgstr "" msgid "Pageid cannot start with a '+' or a '-' character" msgstr "" msgid "Pageid cannot start with a '.' character or contain two consecutive '.' characters" msgstr "" msgid "Pageid must consist only of letters, digits, '_', '+', '-' and '.' characters" msgstr "" msgid "Pageid must end with the '.djvu' or the '.djv' extension" msgstr "" #. L10N: Windows error message for EACCES msgid "Permission denied" msgstr "" msgid "Poppler configuration error" msgstr "" #. L10N: Windows error message for EROFS msgid "Read-only file system" msgstr "" #. L10N: Windows error message for EDEADLK msgid "Resource deadlock avoided" msgstr "" #. L10N: Windows error message for EBUSY msgid "Resource device" msgstr "" #. L10N: Windows error message for EAGAIN msgid "Resource temporarily unavailable" msgstr "" #. L10N: Windows error message for ERANGE msgid "Result too large" msgstr "" #, c-format msgid "The specified number of foreground colors is outside the allowed range: %u .. %u" msgstr "" #, c-format msgid "The specified resolution is outside the allowed range: %d .. %d" msgstr "" #, c-format msgid "The specified subsampling ratio is outside the allowed range: %u .. %u" msgstr "" #. L10N: Windows error message for EMLINK msgid "Too many links" msgstr "" #. L10N: Windows error message for EMFILE msgid "Too many open files" msgstr "" #. L10N: Windows error message for ENFILE msgid "Too many open files in system" msgstr "" msgid "Unable to load document" msgstr "" msgid "Unable to parse command-line options" msgstr "" msgid "Unable to parse hyperlinks options" msgstr "" msgid "Unable to parse page numbers" msgstr "" msgid "Unable to parse page size" msgstr "" msgid "Unable to parse page title template specification" msgstr "" msgid "Unable to parse pageid template specification" msgstr "" msgid "Unable to set antialias parameter" msgstr "" msgid "Unable to set vector antialias parameter" msgstr "" msgid "Unexpected output from djvused" msgstr "" msgid "Unexpected subsampled bitmap height" msgstr "" msgid "Unexpected subsampled bitmap width" msgstr "" msgid "Unknown error" msgstr "" msgid "Unknown option" msgstr "" msgid "Usage: " msgstr "" #, c-format msgid "Warning: %s" msgstr "" msgid "Warning: Unable to convert link with a named action" msgstr "" msgid "Warning: Unable to convert link with a remote go-to action" msgstr "" msgid "Warning: Unable to convert link without an action" msgstr "" msgid "Warning: Unknown link action" msgstr "" #, c-format msgid "Warning: metadata[%s] is not a valid date" msgstr "" msgid "adding non-raster data with `djvused`" msgstr "" msgid "creating document outline with `djvused`" msgstr "" #, c-format msgid "creating multi-page indirect document (%d page)" msgid_plural "creating multi-page indirect document (%d pages)" msgstr[0] "" msgstr[1] "" msgid "creating new background image with `c44`" msgstr "" msgid "encoding layers with `csepdjvu`" msgstr "" msgid "encoding monochrome image with `cjb2`" msgstr "" #, c-format msgid "estimated resolution: %d dpi" msgstr "" msgid "extracting XMP metadata" msgstr "" msgid "extracting annotations" msgstr "" msgid "extracting document outline" msgstr "" msgid "extracting document-information metadata" msgstr "" #, c-format msgid "guessed resolution: %s dpi" msgstr "" #, c-format msgid "image size: %dx%d" msgstr "" #, c-format msgid "page #%d -> #%d" msgstr "" msgid "pdf2djvu is intended to be run from the command prompt." msgstr "" msgid "pdf2djvu was built without GNOME XSLT; XML transformations are disabled." msgstr "" msgid "pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled." msgstr "" msgid "pdf2djvu was built without OpenMP support; multi-threading is disabled." msgstr "" msgid "possibly memory allocation error" msgstr "" msgid "preparing data for `csepdjvu`" msgstr "" msgid "re-assembling page with `djvumake`" msgstr "" msgid "recovering image chunks with `djvuextract`" msgstr "" msgid "recovering images with `djvuextract`" msgstr "" msgid "recovering text with `djvused`" msgstr "" msgid "rendering background image" msgstr "" msgid "rendering page (1st pass)" msgstr "" msgid "rendering page (2nd pass)" msgstr "" msgid "setting metadata with `djvused`" msgstr "" msgid "setting metadata with `djvused` (working around a DjVuLibre bug)" msgstr "" msgid "storing background image" msgstr "" msgid "storing dummy background image" msgstr "" msgid "storing foreground image" msgstr "" msgid "storing text layer" msgstr "" msgid "unable to guess resolution" msgstr "" pdf2djvu-0.7.17/po/uk.po0000644000000000000000000005006612151732417013437 0ustar rootroot# Copyright © 2012 Serhij Dubyk # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2013-05-30 22:22+0200\n" "PO-Revision-Date: 2012-09-18 11:33+0300\n" "Last-Translator: Serhij Dubyk / Сергій Дубик \n" "Language-Team: Ukrainian Linux Team \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid " --filter-text=COMMAND-LINE" msgstr " --filter-text=КОМАНДНИЙ_РЯДОК" msgid " --page-size=WxH" msgstr " --page-size=ШИР×ВИС" msgid " --page-title-template=TEMPLATE" msgstr " --page-title-template=ШАБЛОН" msgid " --pageid-prefix=NAME" msgstr " --pageid-prefix=НАЗВА" msgid " --pageid-template=TEMPLATE" msgstr " --pageid-template=ШАБЛОН" msgid " pdf2djvu -i [options] " msgstr " pdf2djvu -i <файл_djvu-індексу> [параметри] " msgid " pdf2djvu [-o ] [options] " msgstr " pdf2djvu [-o <результуючий_djvu-файл>] [параметри] " msgid " -d, --dpi=RESOLUTION" msgstr " -d, --dpi=РОЗДІЛЬНА_ЗДАТНІСТЬ" msgid " -i, --indirect=FILE" msgstr " -i, --indirect=ФАЙЛ" msgid " -o, --output=FILE" msgstr " -o, --output=ФАЙЛ" #, c-format msgid "%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out" msgstr "%.3f біт/піксель; %.3f:1, %.2f%% збережено, %ju байт початково, %zu байт в результаті" #. L10N: " (): " #, c-format msgid "%s (%jd): %s" msgstr "%s (%jd): %s" #, c-format msgid "%s is not a valid number" msgstr "%s не є правильним числом" #. L10N: ": " #, c-format msgid "%s: %s" msgstr "%s: %s" #, c-format msgid "%zu bytes out" msgid_plural "%zu bytes out" msgstr[0] "%zu байт в результаті" msgstr[1] "%zu байти в результаті" msgstr[2] "%zu байтів в результаті" #. L10N: Windows error message for E2BIG msgid "Arg list too long" msgstr "Занадто довгий список аргументів" #. L10N: Windows error message for E2BIG msgid "Argument list too long" msgstr "Занадто довгий список аргументів" #. L10N: Windows error message for EFAULT msgid "Bad address" msgstr "Неправильна адреса" #. L10N: Windows error message for EBADF msgid "Bad file descriptor" msgstr "Неправильний дескриптор файлу" #. L10N: Windows error message for EPIPE msgid "Broken pipe" msgstr "Обрив каналу" #. L10N: Windows error message for ENOMEM msgid "Cannot allocate memory" msgstr "Неможливо виділити пам’ять" msgid "Cannot find link destination" msgstr "Призначення посилання не знайдено" #. L10N: Windows error message for EBUSY msgid "Device or resource busy" msgstr "Пристрій чи ресурс зайнято" #. L10N: Windows error message for ENOTEMPTY msgid "Directory not empty" msgstr "Тека не порожня" #. L10N: Windows error message for EDOM msgid "Domain error" msgstr "Помилка області визначення" #, c-format msgid "Duplicate page identifier: %s" msgstr "Повторний ідентифікатор сторінки: %s" #, c-format msgid "Duplicate page title: %s" msgstr "Повторний заголовок сторінки: %s" #. L10N: Windows error message for ENOEXEC msgid "Exec format error" msgstr "Неправильний формат виконуваного файлу" #, c-format msgid "External command \"%s ...\" failed" msgstr "Не вдалося виконати зовнішню команду „%s …“" #, c-format msgid "External command \"%s ...\" failed with exit code %u" msgstr "Не вдалося виконати зовнішню команду „%s …“. Код виходу %u" #, c-format msgid "External command \"%s\" failed" msgstr "Не вдалося виконати зовнішню команду „%s“" #, c-format msgid "External command \"%s\" failed with exit code %u" msgstr "Не вдалося виконати зовнішню команду „%s“. Код виходу %u" #. L10N: Windows error message for EEXIST msgid "File exists" msgstr "Файл існує" #. L10N: Windows error message for ENAMETOOLONG msgid "File name too long" msgstr "Надто довге ім’я файлу" #. L10N: Windows error message for EFBIG msgid "File too large" msgstr "Файл занадто великий" #. L10N: Windows error message for ENAMETOOLONG msgid "Filename too long" msgstr "Надто довге ім’я файлу" #. L10N: Windows error message for ENOSYS msgid "Function not implemented" msgstr "Функція не реалізована" msgid "I won't write DjVu data to a terminal." msgstr "Я не буду писати DjVu в термінал." #, c-format msgid "I/O error (%s)" msgstr "Помилка вводу/виводу (%s)" #. L10N: Windows error message for EILSEQ msgid "Illegal byte sequence" msgstr "Невірна послідовність байтів" #. L10N: Windows error message for ESEEK msgid "Illegal seek" msgstr "Неправильна операція зміщення" #. L10N: Windows error message for EXDEV msgid "Improper link" msgstr "Помилкове посилання" #. L10N: Windows error message for ENOTTY msgid "Inappropriate I/O control operation" msgstr "Невідповідна операція введення/виводу" #. L10N: Windows error message for ENOTTY msgid "Inappropriate ioctl for device" msgstr "Непридатний ioctl для пристрою" #. L10N: Windows error message for EIO msgid "Input/output error" msgstr "Помилка вводу/виводу" msgid "Integer overflow" msgstr "Цілочисельне переповнювання" msgid "Internal Poppler error" msgstr "Внутрішня помилка Poppler" #. L10N: Windows error message for EINTR msgid "Interrupted function call" msgstr "Перерваний виклик функції" #. L10N: Windows error message for EINTR msgid "Interrupted system call" msgstr "Перерваний системний виклик" #. L10N: Windows error message for EINVAL msgid "Invalid argument" msgstr "Неправильний аргумент" #. L10N: Windows error message for EXDEV msgid "Invalid cross-device link" msgstr "Невірне посилання між пристроями" msgid "Invalid date format" msgstr "Невірний формат дати" #. L10N: Windows error message for EILSEQ msgid "Invalid or incomplete multibyte or wide character" msgstr "Неправильний або неповний багатобайтний символ" msgid "Invalid output file name" msgstr "Неправильне ім’я вихідного файлу" #. L10N: Windows error message for ESEEK msgid "Invalid seek" msgstr "Неправильна операція зміщення" #. L10N: Windows error message for EISDIR msgid "Is a directory" msgstr "Це тека" #. L10N: Windows error message for ECHILD msgid "No child processes" msgstr "Немає дочірніх процесів" msgid "No input file name was specified" msgstr "Не вказано назву вхідного файлу" #. L10N: Windows error message for ENOLOCK msgid "No locks available" msgstr "Немає доступних блокувань" msgid "No page for a bookmark" msgstr "Немає сторінки для закладки" msgid "No pages selected" msgstr "Не вибрані сторінки" #. L10N: Windows error message for ENOSPC msgid "No space left on device" msgstr "На пристрої закінчилося місце" #. L10N: Windows error message for ENODEV msgid "No such device" msgstr "Немає такого пристрою" #. L10N: Windows error message for ENXIO msgid "No such device or address" msgstr "Немає такого пристрою чи адреси" #. L10N: Windows error message for ENOENT msgid "No such file or directory" msgstr "Немає такого файлу чи теки" #. L10N: Windows error message for ESRCH msgid "No such process" msgstr "Немає такого процесу" msgid "No title for a bookmark" msgstr "Немає назви для закладки" #. L10N: Windows error message for ENOTDIR msgid "Not a directory" msgstr "Не є текою" #. L10N: Windows error message for ENOMEM msgid "Not enough space" msgstr "Недостатньо місця" #. L10N: Windows error message for EDOM msgid "Numerical argument out of domain" msgstr "Числовий аргумент поза області визначення" #. L10N: Windows error message for ERANGE msgid "Numerical result out of range" msgstr "Числовий результат поза можливим діапазоном" #. L10N: Windows error message for EPERM msgid "Operation not permitted" msgstr "Дія не дозволена" msgid "Options: " msgstr "Параметри: " msgid "PDF error" msgstr "Помилка PDF" msgid "PDF feature not implemented" msgstr "Властивість PDF не реалізована" msgid "PDF syntax error" msgstr "Помилка синтаксису у PDF-файлі" msgid "PDF syntax warning" msgstr "Попередження про синтаксичну помилку у PDF-файлі" msgid "Page not found" msgstr "Сторінку не знайдено" msgid "Pageid cannot start with a '+' or a '-' character" msgstr "Ідентифікатор сторінки не може починатися зі знаків „+“ чи „-“" msgid "Pageid cannot start with a '.' character or contain two consecutive '.' characters" msgstr "Ідентифікатор сторінки не може починатися зі знаку „.“ або включати два послідовних знаки „.“" msgid "Pageid must consist only of letters, digits, '_', '+', '-' and '.' characters" msgstr "Ідентифікатор сторінки повинен включати лише букви, цифри та знаки „_“, „+“, „-“ та „.“ " msgid "Pageid must end with the '.djvu' or the '.djv' extension" msgstr "Ідентифікатор сторінки повинен мати розширення „*.djvu“ або „*.djv“" #. L10N: Windows error message for EACCES msgid "Permission denied" msgstr "Доступ заборонено" msgid "Poppler configuration error" msgstr "Помилка налаштування Poppler" #. L10N: Windows error message for EROFS msgid "Read-only file system" msgstr "Файлова система доступна лише для читання" #. L10N: Windows error message for EDEADLK msgid "Resource deadlock avoided" msgstr "Попереджено тупикову ситуацію при зверненні до ресурсу" #. L10N: Windows error message for EBUSY msgid "Resource device" msgstr "Пристрій або ресурс зайнято" #. L10N: Windows error message for EAGAIN msgid "Resource temporarily unavailable" msgstr "Ресурс тимчасово недоступний" #. L10N: Windows error message for ERANGE msgid "Result too large" msgstr "Результат занадто великий" #, c-format msgid "The specified number of foreground colors is outside the allowed range: %u .. %u" msgstr "Зазначена кількість кольорів переднього плану знаходиться поза межами дозволеного діапазону: %u .. %u" #, c-format msgid "The specified resolution is outside the allowed range: %d .. %d" msgstr "Зазначена роздільна здатність знаходиться поза межами дозволеного діапазону: %d .. %d" #, c-format msgid "The specified subsampling ratio is outside the allowed range: %u .. %u" msgstr "Задане співвідношення підвибірки знаходиться поза межами дозволеного діапазону: %u .. %u" #. L10N: Windows error message for EMLINK msgid "Too many links" msgstr "Надто багато посилань" #. L10N: Windows error message for EMFILE msgid "Too many open files" msgstr "Надто багато відкритих файлів" #. L10N: Windows error message for ENFILE msgid "Too many open files in system" msgstr "Надто багато відкритих файлів у системі" msgid "Unable to load document" msgstr "Неможливо завантажити документ" msgid "Unable to parse command-line options" msgstr "Неможливо розібрати параметри командного рядка" msgid "Unable to parse hyperlinks options" msgstr "Неможливо розібрати параметри посилань" msgid "Unable to parse page numbers" msgstr "Неможливо розібрати номери сторінок" msgid "Unable to parse page size" msgstr "Неможливо розібрати розмір сторінки" msgid "Unable to parse page title template specification" msgstr "Неможливо розібрати специфікацію шаблону назви сторінки" msgid "Unable to parse pageid template specification" msgstr "Неможливо розібрати специфікацію шаблону ідентифікатора сторінки" msgid "Unable to set antialias parameter" msgstr "Неможливо виставити параметри згладжування" msgid "Unable to set vector antialias parameter" msgstr "Неможливо виставити параметри векторного згладжування" msgid "Unexpected output from djvused" msgstr "Неочікуваний вивід з „djvused“" msgid "Unexpected subsampled bitmap height" msgstr "Неочікувана висота розділеного растрового зображення" msgid "Unexpected subsampled bitmap width" msgstr "Неочікувана ширина розділеного растрового зображення" msgid "Unknown error" msgstr "Невідома помилка" msgid "Unknown option" msgstr "Невідомий параметр" msgid "Usage: " msgstr "Використання: " #, c-format msgid "Warning: %s" msgstr "Попередження: %s" msgid "Warning: Unable to convert link with a named action" msgstr "Попередження: неможливо перетворити посилання з дією" msgid "Warning: Unable to convert link with a remote go-to action" msgstr "Попередження: неможливо перетворити посилання на зовнішній документ" msgid "Warning: Unable to convert link without an action" msgstr "Попередження: неможливо перетворити посилання без дії" msgid "Warning: Unknown link action" msgstr "Попередження: невідома дія посилання" #, c-format msgid "Warning: metadata[%s] is not a valid date" msgstr "Попередження: метадані[%s] є неприпустимою датою" msgid "adding non-raster data with `djvused`" msgstr "додавання нерастрових даних з „djvused“" msgid "creating document outline with `djvused`" msgstr "створення змісту документа з „djvused“" #, c-format msgid "creating multi-page indirect document (%d page)" msgid_plural "creating multi-page indirect document (%d pages)" msgstr[0] "створення багатосторінкового роздільного документа (%d сторінка)" msgstr[1] "створення багатосторінкового роздільного документа (%d сторінки)" msgstr[2] "створення багатосторінкового роздільного документа (%d сторінок)" msgid "creating new background image with `c44`" msgstr "створення нового фонового зображення з „c44“" msgid "encoding layers with `csepdjvu`" msgstr "кодування шарів з „csepdjvu“" msgid "encoding monochrome image with `cjb2`" msgstr "кодування монохромного зображення з „cjb2“" #, c-format msgid "estimated resolution: %d dpi" msgstr "очікувана роздільна здатність: %d dpi" msgid "extracting XMP metadata" msgstr "витягнення метаданих XMP" msgid "extracting annotations" msgstr "витягнення анотацій" msgid "extracting document outline" msgstr "витягнення змісту документа" msgid "extracting document-information metadata" msgstr "витягнення метаданих інформації документа" #, c-format msgid "guessed resolution: %s dpi" msgstr "передбачувана роздільна здатність: %s dpi" #, c-format msgid "image size: %dx%d" msgstr "розмір зображення: %d×%d" #, c-format msgid "page #%d -> #%d" msgstr "сторінка №%d ⇒ №%d" msgid "pdf2djvu is intended to be run from the command prompt." msgstr "pdf2djvu призначений для запуску з командного рядка." msgid "pdf2djvu was built without GNOME XSLT; XML transformations are disabled." msgstr "pdf2djvu скомпільований без GNOME XSLT; XML-перетворення відключені." msgid "pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled." msgstr "Pdf2djvu скомпільований без GraphicsMagick; покращене квантування кольору відключено." msgid "pdf2djvu was built without OpenMP support; multi-threading is disabled." msgstr "Pdf2djvu скомпільований без підтримки OpenMP; багатопотоковість відключена." msgid "possibly memory allocation error" msgstr "ймовірно, помилка виділення пам’яті" msgid "preparing data for `csepdjvu`" msgstr "підготовка даних для „csepdjvu“" msgid "re-assembling page with `djvumake`" msgstr "перезбирання сторінки з „djvumake“" msgid "recovering image chunks with `djvuextract`" msgstr "відновлення шматків малюнка з „djvuextract“" msgid "recovering images with `djvuextract`" msgstr "відновлення малюнків з „djvuextract“" msgid "recovering text with `djvused`" msgstr "відновлення тексту з „djvused“" msgid "rendering background image" msgstr "промальовка фонового зображення" msgid "rendering page (1st pass)" msgstr "промальовка сторінки (1-ий прохід)" msgid "rendering page (2nd pass)" msgstr "промальовка сторінки (2-ий прохід)" msgid "setting metadata with `djvused`" msgstr "присвоєння метаданих з „djvused“" msgid "setting metadata with `djvused` (working around a DjVuLibre bug)" msgstr "присвоєння метаданих з „djvused“ (оминаючи помилку DjVuLibre)" msgid "storing background image" msgstr "збереження фонового зображення" msgid "storing dummy background image" msgstr "збереження порожнього фонового зображення" msgid "storing foreground image" msgstr "збереження зображення переднього плану" msgid "storing text layer" msgstr "збереження текстового шару" msgid "unable to guess resolution" msgstr "неможливо оцінити роздільну здатність" pdf2djvu-0.7.17/po/ru.po0000644000000000000000000004770012151732417013447 0ustar rootroot# Copyright © 2011, 2012 Kyrill Detinov # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2013-05-30 22:22+0200\n" "PO-Revision-Date: 2012-08-19 18:46+0300\n" "Last-Translator: Kyrill Detinov \n" "Language-Team: none\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid " --filter-text=COMMAND-LINE" msgstr " --filter-text=КОМАНДНАЯ-СТРОКА" msgid " --page-size=WxH" msgstr " --page-size=ШИРxВЫС" msgid " --page-title-template=TEMPLATE" msgstr " --page-title-template=ШАБЛОН" msgid " --pageid-prefix=NAME" msgstr " --pageid-prefix=ИМЯ" msgid " --pageid-template=TEMPLATE" msgstr " --pageid-template=ШАБЛОН" msgid " pdf2djvu -i [options] " msgstr " pdf2djvu -i <файл-индекса-djvu> [параметры] " msgid " pdf2djvu [-o ] [options] " msgstr " pdf2djvu [-o <результирующий-djvu-файл>] [параметры] " msgid " -d, --dpi=RESOLUTION" msgstr " -d, --dpi=РАЗРЕШЕНИЕ" msgid " -i, --indirect=FILE" msgstr " -i, --indirect=ФАЙЛ" msgid " -o, --output=FILE" msgstr " -o, --output=ФАЙЛ" #, c-format msgid "%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out" msgstr "%.3f бит/пиксел; %.3f:1, %.2f%% сохранено, %ju байт исходно, %zu байт результат" #. L10N: " (): " #, c-format msgid "%s (%jd): %s" msgstr "%s (%jd): %s" #, c-format msgid "%s is not a valid number" msgstr "%s не является правильным числом" #. L10N: ": " #, c-format msgid "%s: %s" msgstr "%s: %s" #, c-format msgid "%zu bytes out" msgid_plural "%zu bytes out" msgstr[0] "%zu байт результат" msgstr[1] "%zu байта результат" msgstr[2] "%zu байт результат" #. L10N: Windows error message for E2BIG msgid "Arg list too long" msgstr "Слишком длинный список аргументов" #. L10N: Windows error message for E2BIG msgid "Argument list too long" msgstr "Слишком длинный список аргументов" #. L10N: Windows error message for EFAULT msgid "Bad address" msgstr "Неправильный адрес" #. L10N: Windows error message for EBADF msgid "Bad file descriptor" msgstr "Неправильный дескриптор файла" #. L10N: Windows error message for EPIPE msgid "Broken pipe" msgstr "Обрыв канала" #. L10N: Windows error message for ENOMEM msgid "Cannot allocate memory" msgstr "Невозможно выделить память" msgid "Cannot find link destination" msgstr "Назначение ссылки не найдено" #. L10N: Windows error message for EBUSY msgid "Device or resource busy" msgstr "Устройство или ресурс занято" #. L10N: Windows error message for ENOTEMPTY msgid "Directory not empty" msgstr "Каталог не пуст" #. L10N: Windows error message for EDOM msgid "Domain error" msgstr "Ошибка области определения" #, c-format msgid "Duplicate page identifier: %s" msgstr "Повторный идентификатор страницы: %s" #, c-format msgid "Duplicate page title: %s" msgstr "Повторный заголовок страницы: %s" #. L10N: Windows error message for ENOEXEC msgid "Exec format error" msgstr "Неправильный формат исполняемого файла" #, c-format msgid "External command \"%s ...\" failed" msgstr "Не удалось выполнить внешнюю команду \"%s ...\"" #, c-format msgid "External command \"%s ...\" failed with exit code %u" msgstr "Не удалось выполнить внешнюю команду \"%s ...\". Код выхода %u" #, c-format msgid "External command \"%s\" failed" msgstr "Не удалось выполнить внешнюю команду \"%s\"" #, c-format msgid "External command \"%s\" failed with exit code %u" msgstr "Не удалось выполнить внешнюю команду \"%s\". Код выхода %u" #. L10N: Windows error message for EEXIST msgid "File exists" msgstr "Файл существует" #. L10N: Windows error message for ENAMETOOLONG msgid "File name too long" msgstr "Слишком длинное имя файла" #. L10N: Windows error message for EFBIG msgid "File too large" msgstr "Файл слишком велик" #. L10N: Windows error message for ENAMETOOLONG msgid "Filename too long" msgstr "Слишком длинное имя файла" #. L10N: Windows error message for ENOSYS msgid "Function not implemented" msgstr "Функция не реализована" msgid "I won't write DjVu data to a terminal." msgstr "Я не буду писать DjVu в терминал." #, c-format msgid "I/O error (%s)" msgstr "Ошибка ввода/вывода (%s)" #. L10N: Windows error message for EILSEQ msgid "Illegal byte sequence" msgstr "Неверная последовательность байтов" #. L10N: Windows error message for ESEEK msgid "Illegal seek" msgstr "Недопустимая операция смещения" #. L10N: Windows error message for EXDEV msgid "Improper link" msgstr "Ошибочная ссылка" #. L10N: Windows error message for ENOTTY msgid "Inappropriate I/O control operation" msgstr "Неподходящая операция ввода/вывода" #. L10N: Windows error message for ENOTTY msgid "Inappropriate ioctl for device" msgstr "Неподходящий ioctl для устройства" #. L10N: Windows error message for EIO msgid "Input/output error" msgstr "Ошибка ввода/вывода" msgid "Integer overflow" msgstr "Целочисленное переполнение" msgid "Internal Poppler error" msgstr "Внутренняя ошибка Poppler" #. L10N: Windows error message for EINTR msgid "Interrupted function call" msgstr "Прерванный вызов функции" #. L10N: Windows error message for EINTR msgid "Interrupted system call" msgstr "Прерванный системный вызов" #. L10N: Windows error message for EINVAL msgid "Invalid argument" msgstr "Неверный аргумент" #. L10N: Windows error message for EXDEV msgid "Invalid cross-device link" msgstr "Неверная ссылка между устройствами" msgid "Invalid date format" msgstr "Неверный формат даты" #. L10N: Windows error message for EILSEQ msgid "Invalid or incomplete multibyte or wide character" msgstr "Неверный или неполный многобайтовый символ" msgid "Invalid output file name" msgstr "Неправильное имя выходного файла" #. L10N: Windows error message for ESEEK msgid "Invalid seek" msgstr "Недопустимая операция смещения" #. L10N: Windows error message for EISDIR msgid "Is a directory" msgstr "Это каталог" #. L10N: Windows error message for ECHILD msgid "No child processes" msgstr "Нет дочерних процессов" msgid "No input file name was specified" msgstr "Не указано имя входного файла" #. L10N: Windows error message for ENOLOCK msgid "No locks available" msgstr "Нет доступных блокировок" msgid "No page for a bookmark" msgstr "Нет страницы для закладки" msgid "No pages selected" msgstr "Не выбраны страницы" #. L10N: Windows error message for ENOSPC msgid "No space left on device" msgstr "На устройстве закончилось место" #. L10N: Windows error message for ENODEV msgid "No such device" msgstr "Нет такого устройства" #. L10N: Windows error message for ENXIO msgid "No such device or address" msgstr "Нет такого устройства или адреса" #. L10N: Windows error message for ENOENT msgid "No such file or directory" msgstr "Нет такого файла или каталога" #. L10N: Windows error message for ESRCH msgid "No such process" msgstr "Нет такого процесса" msgid "No title for a bookmark" msgstr "Нет названия для закладки" #. L10N: Windows error message for ENOTDIR msgid "Not a directory" msgstr "Не является каталогом" #. L10N: Windows error message for ENOMEM msgid "Not enough space" msgstr "Недостаточно места" #. L10N: Windows error message for EDOM msgid "Numerical argument out of domain" msgstr "Числовой аргумент вне области определения" #. L10N: Windows error message for ERANGE msgid "Numerical result out of range" msgstr "Числовой результат вне представимого диапазона" #. L10N: Windows error message for EPERM msgid "Operation not permitted" msgstr "Действие не разрешено" msgid "Options: " msgstr "Параметры:" msgid "PDF error" msgstr "Ошибка PDF" msgid "PDF feature not implemented" msgstr "Свойство PDF не реализовано" msgid "PDF syntax error" msgstr "Ошибка синтаксиса в PDF-файле" msgid "PDF syntax warning" msgstr "Предупреждение о синтаксической ошибке в PDF-файле" msgid "Page not found" msgstr "Страница не найдена" msgid "Pageid cannot start with a '+' or a '-' character" msgstr "Идентификатор страницы не может начинаться со знаков '+' или '-'" msgid "Pageid cannot start with a '.' character or contain two consecutive '.' characters" msgstr "Идентификатор страницы не может начинаться со знака '.' или включать два последовательных знака '.'" msgid "Pageid must consist only of letters, digits, '_', '+', '-' and '.' characters" msgstr "Идентификатор страницы должен включать только буквы, цифры и знаки '_', '+', '-' и '.'" msgid "Pageid must end with the '.djvu' or the '.djv' extension" msgstr "Идентификатор страницы должен заканчиваться расширением '.djvu' или '.djv'" #. L10N: Windows error message for EACCES msgid "Permission denied" msgstr "Доступ запрещён" msgid "Poppler configuration error" msgstr "Ошибка конфигурации Poppler" #. L10N: Windows error message for EROFS msgid "Read-only file system" msgstr "Файловая система доступна только для чтения" #. L10N: Windows error message for EDEADLK msgid "Resource deadlock avoided" msgstr "Предотвращена тупиковая ситуация при обращении к ресурсу" #. L10N: Windows error message for EBUSY msgid "Resource device" msgstr "Устройство или ресурс занято" #. L10N: Windows error message for EAGAIN msgid "Resource temporarily unavailable" msgstr "Ресурс временно недоступен" #. L10N: Windows error message for ERANGE msgid "Result too large" msgstr "Результат слишком велик" #, c-format msgid "The specified number of foreground colors is outside the allowed range: %u .. %u" msgstr "Указанное количество цветов переднего плана находится за пределами разрешённого диапазона: %u .. %u" #, c-format msgid "The specified resolution is outside the allowed range: %d .. %d" msgstr "Указанное разрешение находится за пределами разрешённого диапазона: %d .. %d" #, c-format msgid "The specified subsampling ratio is outside the allowed range: %u .. %u" msgstr "Заданное соотношение подвыборки находится за пределами разрешённого диапазона: %u .. %u" #. L10N: Windows error message for EMLINK msgid "Too many links" msgstr "Слишком много ссылок" #. L10N: Windows error message for EMFILE msgid "Too many open files" msgstr "Слишком много открытых файлов" #. L10N: Windows error message for ENFILE msgid "Too many open files in system" msgstr "Слишком много открытых файлов в системе" msgid "Unable to load document" msgstr "Невозможно загрузить документ" msgid "Unable to parse command-line options" msgstr "Невозможно разобрать параметры командной строки" msgid "Unable to parse hyperlinks options" msgstr "Невозможно разобрать параметры ссылок" msgid "Unable to parse page numbers" msgstr "Невозможно разобрать номера страниц" msgid "Unable to parse page size" msgstr "Невозможно разобрать размер страницы" msgid "Unable to parse page title template specification" msgstr "Невозможно разобрать спецификацию шаблона названия страницы" msgid "Unable to parse pageid template specification" msgstr "Невозможно разобрать спецификацию шаблона идентификатора страницы" msgid "Unable to set antialias parameter" msgstr "Невозможно выставить параметры сглаживания" msgid "Unable to set vector antialias parameter" msgstr "Невозможно выставить параметры векторного сглаживания" msgid "Unexpected output from djvused" msgstr "Неожиданный вывод из djvused" msgid "Unexpected subsampled bitmap height" msgstr "Неожиданная высота разделённого растрового изображения" msgid "Unexpected subsampled bitmap width" msgstr "Неожиданная ширина разделённого растрового изображения" msgid "Unknown error" msgstr "Неизвестная ошибка" msgid "Unknown option" msgstr "Неизвестный параметр" msgid "Usage: " msgstr "Использование:" #, c-format msgid "Warning: %s" msgstr "Предупреждение: %s" msgid "Warning: Unable to convert link with a named action" msgstr "Предупреждение: невозможно преобразовать ссылку с действием" msgid "Warning: Unable to convert link with a remote go-to action" msgstr "Предупреждение: невозможно преобразовать ссылку на внешний документ" msgid "Warning: Unable to convert link without an action" msgstr "Предупреждение: невозможно преобразовать ссылку без действия" msgid "Warning: Unknown link action" msgstr "Предупреждение: неизвестное действие ссылки" #, c-format msgid "Warning: metadata[%s] is not a valid date" msgstr "Предупреждение: метаданные[%s] являются недопустимой датой" msgid "adding non-raster data with `djvused`" msgstr "добавление нерастровых данных с `djvused`" msgid "creating document outline with `djvused`" msgstr "создание оглавления документа с `djvused`" #, c-format msgid "creating multi-page indirect document (%d page)" msgid_plural "creating multi-page indirect document (%d pages)" msgstr[0] "создание многостраничного раздельного документа (%d страница)" msgstr[1] "создание многостраничного раздельного документа (%d страницы)" msgstr[2] "создание многостраничного раздельного документа (%d страниц)" msgid "creating new background image with `c44`" msgstr "создание нового фонового изображения с `c44`" msgid "encoding layers with `csepdjvu`" msgstr "кодирование слоёв с `csepdjvu`" msgid "encoding monochrome image with `cjb2`" msgstr "кодирование монохромного изображения с `cjb2`" #, c-format msgid "estimated resolution: %d dpi" msgstr "ожидаемое разрешение: %d dpi" msgid "extracting XMP metadata" msgstr "извлечение метаданных XMP" msgid "extracting annotations" msgstr "извлечение аннотаций" msgid "extracting document outline" msgstr "извлечение оглавления документа" msgid "extracting document-information metadata" msgstr "извлечение метаданных информации документа" #, c-format msgid "guessed resolution: %s dpi" msgstr "предполагаемое разрешение: %s dpi" #, c-format msgid "image size: %dx%d" msgstr "размер изображения: %dx%d" #, c-format msgid "page #%d -> #%d" msgstr "страница #%d -> #%d" msgid "pdf2djvu is intended to be run from the command prompt." msgstr "pdf2djvu предназначен для запуска из командной строки." msgid "pdf2djvu was built without GNOME XSLT; XML transformations are disabled." msgstr "pdf2djvu скомпилирован без GNOME XSLT; XML-преобразования отключены." msgid "pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled." msgstr "pdf2djvu скомпилирован без GraphicsMagick; улучшенное квантование цвета отключено." msgid "pdf2djvu was built without OpenMP support; multi-threading is disabled." msgstr "pdf2djvu скомпилирован без поддержки OpenMP; многопоточность отключена." msgid "possibly memory allocation error" msgstr "вероятно, ошибка выделения памяти" msgid "preparing data for `csepdjvu`" msgstr "подготовка данных для `csepdjvu`" msgid "re-assembling page with `djvumake`" msgstr "пересборка страницы с `djvumake`" msgid "recovering image chunks with `djvuextract`" msgstr "восстановление кусков рисунка с `djvuextract`" msgid "recovering images with `djvuextract`" msgstr "восстановление рисунков с `djvuextract`" msgid "recovering text with `djvused`" msgstr "восстановление текста с `djvused`" msgid "rendering background image" msgstr "рендеринг фонового изображения" msgid "rendering page (1st pass)" msgstr "рендеринг страницы (1-ый проход)" msgid "rendering page (2nd pass)" msgstr "рендеринг страницы (2-ой проход)" msgid "setting metadata with `djvused`" msgstr "присвоение метаданных с `djvused`" msgid "setting metadata with `djvused` (working around a DjVuLibre bug)" msgstr "присвоение метаданных с `djvused` (обходя ошибку DjVuLibre)" msgid "storing background image" msgstr "сохранение фонового изображения" msgid "storing dummy background image" msgstr "сохранение пустого фонового изображения" msgid "storing foreground image" msgstr "сохранение изображения переднего плана" msgid "storing text layer" msgstr "сохранение текстового слоя" msgid "unable to guess resolution" msgstr "невозможно оценить разрешение" pdf2djvu-0.7.17/po/pl.po0000644000000000000000000003761312151732417013436 0ustar rootroot# Copyright © 2009 Mateusz Turcza # Copyright © 2009, 2010, 2011, 2012 Jakub Wilk # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2013-05-30 22:22+0200\n" "PO-Revision-Date: 2012-07-06 09:59+0200\n" "Last-Translator: Jakub Wilk \n" "Language-Team: none\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid " --filter-text=COMMAND-LINE" msgstr " --filter-text=LINIA-POLECEŃ" msgid " --page-size=WxH" msgstr " --page-size=SZERxWYS" msgid " --page-title-template=TEMPLATE" msgstr " --page-title-template=SZABLON" msgid " --pageid-prefix=NAME" msgstr " --pageid-prefix=NAZWA" msgid " --pageid-template=TEMPLATE" msgstr " --pageid-template=SZABLON" msgid " pdf2djvu -i [options] " msgstr " pdf2djvu -i [opcje] " msgid " pdf2djvu [-o ] [options] " msgstr " pdf2djvu [-o ] [opcje] " msgid " -d, --dpi=RESOLUTION" msgstr " -d, --dpi=ROZDZIELCZOŚĆ" msgid " -i, --indirect=FILE" msgstr " -i, --indirect=PLIK" msgid " -o, --output=FILE" msgstr " -o, --output=PLIK" #, c-format msgid "%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out" msgstr "%.3f bitów/piksel; %.3f:1, %.2f%% zysku, %ju bajtów wejściowych, %zu bajtów wyjściowych" #. L10N: " (): " #, c-format msgid "%s (%jd): %s" msgstr "%s (%jd): %s" #, c-format msgid "%s is not a valid number" msgstr "%s nie jest poprawną liczbą" #. L10N: ": " #, c-format msgid "%s: %s" msgstr "%s: %s" #, c-format msgid "%zu bytes out" msgid_plural "%zu bytes out" msgstr[0] "%zu bajt wyjściowy" msgstr[1] "%zu bajty wyjściowe" msgstr[2] "%zu bajtów wyjściowych" #. L10N: Windows error message for E2BIG msgid "Arg list too long" msgstr "Lista argumentów za długa" #. L10N: Windows error message for E2BIG msgid "Argument list too long" msgstr "Lista argumentów za długa" #. L10N: Windows error message for EFAULT msgid "Bad address" msgstr "Błędny adres" #. L10N: Windows error message for EBADF msgid "Bad file descriptor" msgstr "Błędny deskryptor pliku" #. L10N: Windows error message for EPIPE msgid "Broken pipe" msgstr "Przerwany potok" #. L10N: Windows error message for ENOMEM msgid "Cannot allocate memory" msgstr "Nie można przydzielić pamięci" msgid "Cannot find link destination" msgstr "Nie można odnaleźć celu łącza" #. L10N: Windows error message for EBUSY msgid "Device or resource busy" msgstr "Urządzenie lub zasoby zajęte" #. L10N: Windows error message for ENOTEMPTY msgid "Directory not empty" msgstr "Katalog nie jest pusty" #. L10N: Windows error message for EDOM msgid "Domain error" msgstr "Argument liczbowy spoza dziedziny" #, c-format msgid "Duplicate page identifier: %s" msgstr "Powtórzony identyfikator strony: %s" #, c-format msgid "Duplicate page title: %s" msgstr "Powtórzony tytuł strony: %s" #. L10N: Windows error message for ENOEXEC msgid "Exec format error" msgstr "Błędny format pliku wykonywalnego" #, c-format msgid "External command \"%s ...\" failed" msgstr "Zewnętrzne polecenie “%s …” nie powiodło się" #, c-format msgid "External command \"%s ...\" failed with exit code %u" msgstr "Zewnętrzne polecenie “%s …” nie powiodło się; kod wyjścia %u" #, c-format msgid "External command \"%s\" failed" msgstr "Zewnętrzne polecenie “%s” nie powiodło się" #, c-format msgid "External command \"%s\" failed with exit code %u" msgstr "Zewnętrzne polecenie “%s” nie powiodło się; kod wyjścia %u" #. L10N: Windows error message for EEXIST msgid "File exists" msgstr "Plik istnieje" #. L10N: Windows error message for ENAMETOOLONG msgid "File name too long" msgstr "Za długa nazwa pliku" #. L10N: Windows error message for EFBIG msgid "File too large" msgstr "Plik zbyt duży" #. L10N: Windows error message for ENAMETOOLONG msgid "Filename too long" msgstr "Za długa nazwa pliku" #. L10N: Windows error message for ENOSYS msgid "Function not implemented" msgstr "Nie zaimplementowana funkcja" msgid "I won't write DjVu data to a terminal." msgstr "Nie wypiszę danych DjVu na terminal." #, c-format msgid "I/O error (%s)" msgstr "Błąd We/Wy (%s)" #. L10N: Windows error message for EILSEQ msgid "Illegal byte sequence" msgstr "Błędny lub niepełny znak wielobajtowy" #. L10N: Windows error message for ESEEK msgid "Illegal seek" msgstr "Błędne przesunięcie" #. L10N: Windows error message for EXDEV msgid "Improper link" msgstr "Błędne dowiązanie między urządzeniami" #. L10N: Windows error message for ENOTTY msgid "Inappropriate I/O control operation" msgstr "Niewłaściwy ioctl dla urządzenia" #. L10N: Windows error message for ENOTTY msgid "Inappropriate ioctl for device" msgstr "Niewłaściwy ioctl dla urządzenia" #. L10N: Windows error message for EIO msgid "Input/output error" msgstr "Błąd wejścia/wyjścia" msgid "Integer overflow" msgstr "Przekroczenie zakresu liczb całkowitych" msgid "Internal Poppler error" msgstr "Wewnętrzny bład Popplera" #. L10N: Windows error message for EINTR msgid "Interrupted function call" msgstr "Przerwane wywołanie systemowe" #. L10N: Windows error message for EINTR msgid "Interrupted system call" msgstr "Przerwane wywołanie systemowe" #. L10N: Windows error message for EINVAL msgid "Invalid argument" msgstr "Zły argument" #. L10N: Windows error message for EXDEV msgid "Invalid cross-device link" msgstr "Błędne dowiązanie między urządzeniami" msgid "Invalid date format" msgstr "Błędny format daty" #. L10N: Windows error message for EILSEQ msgid "Invalid or incomplete multibyte or wide character" msgstr "Błędny lub niepełny znak wielobajtowy" msgid "Invalid output file name" msgstr "Błędna nazwa pliku wyjściowego" #. L10N: Windows error message for ESEEK msgid "Invalid seek" msgstr "Błędne przesunięcie" #. L10N: Windows error message for EISDIR msgid "Is a directory" msgstr "Jest katalogiem" #. L10N: Windows error message for ECHILD msgid "No child processes" msgstr "Brak procesów potomnych" msgid "No input file name was specified" msgstr "Nie podano nazwy pliku wejściowego" #. L10N: Windows error message for ENOLOCK msgid "No locks available" msgstr "Brak dostępnych blokad" msgid "No page for a bookmark" msgstr "Brak strony dla zakładki" msgid "No pages selected" msgstr "Nie wybrano stron" #. L10N: Windows error message for ENOSPC msgid "No space left on device" msgstr "Brak miejsca na urządzeniu" #. L10N: Windows error message for ENODEV msgid "No such device" msgstr "Nie ma takiego urządzenia" #. L10N: Windows error message for ENXIO msgid "No such device or address" msgstr "Nie ma takiego urządzenia ani adresu" #. L10N: Windows error message for ENOENT msgid "No such file or directory" msgstr "Nie ma takiego pliku ani katalogu" #. L10N: Windows error message for ESRCH msgid "No such process" msgstr "Nie ma takiego procesu" msgid "No title for a bookmark" msgstr "Brak tytułu dla zakładki" #. L10N: Windows error message for ENOTDIR msgid "Not a directory" msgstr "Nie jest katalogiem" #. L10N: Windows error message for ENOMEM msgid "Not enough space" msgstr "Nie można przydzielić pamięci" #. L10N: Windows error message for EDOM msgid "Numerical argument out of domain" msgstr "Argument liczbowy spoza dziedziny" #. L10N: Windows error message for ERANGE msgid "Numerical result out of range" msgstr "Wynik liczbowy poza zakresem" #. L10N: Windows error message for EPERM msgid "Operation not permitted" msgstr "Operacja niedozwolona" msgid "Options: " msgstr "Opcje: " msgid "PDF error" msgstr "Błąd pliku PDF" msgid "PDF feature not implemented" msgstr "Nie zaimplementowana funkcja PDF" msgid "PDF syntax error" msgstr "Błąd składniowy w pliku PDF" msgid "PDF syntax warning" msgstr "Ostrzeżenie o błędzie składniowym w pliku PDF" msgid "Page not found" msgstr "Nie znaleziono strony" msgid "Pageid cannot start with a '+' or a '-' character" msgstr "Pageid nie może rozpoczynać się od znaku '+' ani '-'" msgid "Pageid cannot start with a '.' character or contain two consecutive '.' characters" msgstr "Pageid nie może rozpoczynać się od znaku '.' ani zawierać dwóch występujących po sobie znaków '.'" msgid "Pageid must consist only of letters, digits, '_', '+', '-' and '.' characters" msgstr "Pageid może zawierać jedynie litery, cyfry oraz znaki '_', '+', '-' i '.'" msgid "Pageid must end with the '.djvu' or the '.djv' extension" msgstr "Pageid musi kończyć się rozszerzeniem '.djvu' lub '.djv'" #. L10N: Windows error message for EACCES msgid "Permission denied" msgstr "Brak dostępu" msgid "Poppler configuration error" msgstr "Błąd konfiguracji Popplera" #. L10N: Windows error message for EROFS msgid "Read-only file system" msgstr "System plików wyłącznie do odczytu" #. L10N: Windows error message for EDEADLK msgid "Resource deadlock avoided" msgstr "Uniknięto zakleszczenia zasobów" #. L10N: Windows error message for EBUSY msgid "Resource device" msgstr "Urządzenie lub zasoby zajęte" #. L10N: Windows error message for EAGAIN msgid "Resource temporarily unavailable" msgstr "Zasoby chwilowo niedostępne" #. L10N: Windows error message for ERANGE msgid "Result too large" msgstr "Wynik liczbowy poza zakresem" #, c-format msgid "The specified number of foreground colors is outside the allowed range: %u .. %u" msgstr "Podana liczba kolorów pierwszego planu jest spoza dozwolonego zakresu: %u .. %u" #, c-format msgid "The specified resolution is outside the allowed range: %d .. %d" msgstr "Podana rozdzielczość jest spoza dozwolonego zakresu: %d .. %d" #, c-format msgid "The specified subsampling ratio is outside the allowed range: %u .. %u" msgstr "Podany współczynnik próbkowania jest spoza dozwolonego zakresu: %u .. %u" #. L10N: Windows error message for EMLINK msgid "Too many links" msgstr "Za dużo dowiązań" #. L10N: Windows error message for EMFILE msgid "Too many open files" msgstr "Za dużo otwartych plików" #. L10N: Windows error message for ENFILE msgid "Too many open files in system" msgstr "Za dużo otwartych plików w systemie" msgid "Unable to load document" msgstr "Nie można załadować dokumentu" msgid "Unable to parse command-line options" msgstr "Błąd przetwarzania opcji wiersza poleceń" msgid "Unable to parse hyperlinks options" msgstr "Błąd przetwarzania opcji hiperłączy" msgid "Unable to parse page numbers" msgstr "Błąd przetwarzania numerów stron" msgid "Unable to parse page size" msgstr "Błąd przetwarzania rozmiaru strony" msgid "Unable to parse page title template specification" msgstr "Błąd przetwarzania specyfikacji szablonu tytułu strony" msgid "Unable to parse pageid template specification" msgstr "Błąd przetwarzania specyfikacji szablonu pageid" msgid "Unable to set antialias parameter" msgstr "Nie można ustawić parametru antyaliasingu" msgid "Unable to set vector antialias parameter" msgstr "Nie można ustawić parametru antyaliasingu grafiki wektorowej" msgid "Unexpected output from djvused" msgstr "Nieoczekiwany wynik z djvused" msgid "Unexpected subsampled bitmap height" msgstr "Nieoczekiwana wysokość podpróbkowanej bitmapy" msgid "Unexpected subsampled bitmap width" msgstr "Nieoczekiwana szerokość podpróbkowanej bitmapy" msgid "Unknown error" msgstr "Nieznany błąd" msgid "Unknown option" msgstr "Nieznana opcja" msgid "Usage: " msgstr "Użycie: " #, c-format msgid "Warning: %s" msgstr "Ostrzeżenie: %s" msgid "Warning: Unable to convert link with a named action" msgstr "Ostrzeżenie: Nie można przekonwertować łącza z nazwaną akcją" msgid "Warning: Unable to convert link with a remote go-to action" msgstr "Ostrzeżenie: Nie można przekonwertować łącza ze zdalną akcją idź-do" msgid "Warning: Unable to convert link without an action" msgstr "Ostrzeżenie: Nie można przekonwertować łącza bez akcji" msgid "Warning: Unknown link action" msgstr "Ostrzeżenie: Nieznana akcja łącza" #, c-format msgid "Warning: metadata[%s] is not a valid date" msgstr "Ostrzeżenie: metadata[%s] nie jest poprawną datą" msgid "adding non-raster data with `djvused`" msgstr "dodawanie danych nierastrowych za pomocą `djvused`" msgid "creating document outline with `djvused`" msgstr "tworzenie konspektu dokumentu za pomocą `djvused`" #, c-format msgid "creating multi-page indirect document (%d page)" msgid_plural "creating multi-page indirect document (%d pages)" msgstr[0] "tworzenie wielostronicowego dokumentu rozdzielonego (%d strona)" msgstr[1] "tworzenie wielostronicowego dokumentu rozdzielonego (%d strony)" msgstr[2] "tworzenie wielostronicowego dokumentu rozdzielonego (%d stron)" msgid "creating new background image with `c44`" msgstr "tworzenie nowego obrazu tła za pomocą `c44`" msgid "encoding layers with `csepdjvu`" msgstr "kodowanie warstw za pomocą `csepdjvu`" msgid "encoding monochrome image with `cjb2`" msgstr "kodowanie obrazu monochromatycznego za pomocą `cjb2`" #, c-format msgid "estimated resolution: %d dpi" msgstr "oszacowana rozdzielczość: %d dpi" msgid "extracting XMP metadata" msgstr "wyodrębnianie metadanych XMP" msgid "extracting annotations" msgstr "wyodrębnianie adnotacji" msgid "extracting document outline" msgstr "wyodrębnianie konspektu dokumentu" msgid "extracting document-information metadata" msgstr "wyodrębnianie metadanych dokumentu" #, c-format msgid "guessed resolution: %s dpi" msgstr "odgadnięta rozdzielczość: %s dpi" #, c-format msgid "image size: %dx%d" msgstr "wymiary obrazu: %dx%d" #, c-format msgid "page #%d -> #%d" msgstr "strona #%d -> #%d" msgid "pdf2djvu is intended to be run from the command prompt." msgstr "pdf2djvu powinien być uruchamiany z poziomu wiersza poleceń." msgid "pdf2djvu was built without GNOME XSLT; XML transformations are disabled." msgstr "pdf2djvu zostało skompilowane bez GNOME XSLT; transformacje XML są wyłączone." msgid "pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled." msgstr "pdf2djvu zostało skompilowane bez GraphicsMagick; zaawansowana kwantyzacja kolorów jest wyłączona." msgid "pdf2djvu was built without OpenMP support; multi-threading is disabled." msgstr "pdf2djvu zostało skompilowane bez obsługi OpenMP; wielowątkowość jest wyłączona." msgid "possibly memory allocation error" msgstr "prawdopodobnie błąd przydziału pamięci" msgid "preparing data for `csepdjvu`" msgstr "przygotowywanie danych dla `csepdjvu`" msgid "re-assembling page with `djvumake`" msgstr "składanie strony za pomocą `djvumake`" msgid "recovering image chunks with `djvuextract`" msgstr "wyodrębnianie urywków obrazu za pomocą `djvuextract`" msgid "recovering images with `djvuextract`" msgstr "wyodrębnianie obrazów za pomocą `djvuextract`" msgid "recovering text with `djvused`" msgstr "wyodrębnianie tekstu za pomocą `djvused`" msgid "rendering background image" msgstr "tworzenie obrazu tła" msgid "rendering page (1st pass)" msgstr "tworzenie strony (pierwszy przebieg)" msgid "rendering page (2nd pass)" msgstr "tworzenie strony (drugi przebieg)" msgid "setting metadata with `djvused`" msgstr "ustawianie metadanych za pomocą `djvused`" msgid "setting metadata with `djvused` (working around a DjVuLibre bug)" msgstr "ustawianie metadanych za pomocą `djvused` (omijanie błędu DjVuLibre)" msgid "storing background image" msgstr "zapisywanie obrazu tła" msgid "storing dummy background image" msgstr "zapisywanie pustego obrazu tła" msgid "storing foreground image" msgstr "zapisywanie obrazu pierwszoplanowego" msgid "storing text layer" msgstr "zapisywanie warstwy tekstowej" msgid "unable to guess resolution" msgstr "nie udało się odgadnąć rozdzielczości" pdf2djvu-0.7.17/po/de.po0000644000000000000000000003767712151732417013425 0ustar rootroot# Copyright © 2011, 2012 Chris Leick # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2013-05-30 22:22+0200\n" "PO-Revision-Date: 2012-08-19 11:50+0100\n" "Last-Translator: Chris Leick \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" msgid " --filter-text=COMMAND-LINE" msgstr " --filter-text=BEFEHLSZEILE" msgid " --page-size=WxH" msgstr " --page-size=BxH" msgid " --page-title-template=TEMPLATE" msgstr " --page-title-template=SCHABLONE" msgid " --pageid-prefix=NAME" msgstr " --pageid-prefix=NAME" msgid " --pageid-template=TEMPLATE" msgstr " --pageid-template=SCHABLONE" msgid " pdf2djvu -i [options] " msgstr " pdf2djvu -i [Optionen] " msgid " pdf2djvu [-o ] [options] " msgstr " pdf2djvu [-o ] [Optionen] " msgid " -d, --dpi=RESOLUTION" msgstr " -d, --dpi=AUFLÖSUNG" msgid " -i, --indirect=FILE" msgstr " -i, --indirect=DATEI" msgid " -o, --output=FILE" msgstr " -o, --output=DATEI" #, c-format msgid "%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out" msgstr "%.3f Bits/Bildpunkt; %.3f:1, %.2f%% gespart, %ju Byte rein, %zu Byte raus" #. L10N: " (): " #, c-format msgid "%s (%jd): %s" msgstr "%s (%jd): %s" #, c-format msgid "%s is not a valid number" msgstr "%s ist keine gültige Zahl." #. L10N: ": " #, c-format msgid "%s: %s" msgstr "%s: %s" #, c-format msgid "%zu bytes out" msgid_plural "%zu bytes out" msgstr[0] "%zu Byte Ausgabe" msgstr[1] "%zu Byte Ausgabe" #. L10N: Windows error message for E2BIG msgid "Arg list too long" msgstr "Arg.-Liste zu lang" #. L10N: Windows error message for E2BIG msgid "Argument list too long" msgstr "Argumentenliste zu lang" #. L10N: Windows error message for EFAULT msgid "Bad address" msgstr "falsche Adresse" #. L10N: Windows error message for EBADF msgid "Bad file descriptor" msgstr "falscher Dateideskriptor" #. L10N: Windows error message for EPIPE msgid "Broken pipe" msgstr "unterbrochene Weiterleitung (Pipe)" #. L10N: Windows error message for ENOMEM msgid "Cannot allocate memory" msgstr "Speicher kann nicht reserviert werden" msgid "Cannot find link destination" msgstr "Verweisziel kann nicht gefunden werden" #. L10N: Windows error message for EBUSY msgid "Device or resource busy" msgstr "Gerät oder Ressource ausgelastet" #. L10N: Windows error message for ENOTEMPTY msgid "Directory not empty" msgstr "Verzeichnis nicht leer" #. L10N: Windows error message for EDOM msgid "Domain error" msgstr "Domänen-Fehler" #, c-format msgid "Duplicate page identifier: %s" msgstr "doppelter Seitenbezeichner: %s" #, c-format msgid "Duplicate page title: %s" msgstr "doppelter Seitentitel: %s" #. L10N: Windows error message for ENOEXEC msgid "Exec format error" msgstr "Fehler des Ausführungsformats" #, c-format msgid "External command \"%s ...\" failed" msgstr "externer Befehl »%s …« fehlgeschlagen" #, c-format msgid "External command \"%s ...\" failed with exit code %u" msgstr "externer Befehl »%s …« mit Exit-Kode %u fehlgeschlagen" #, c-format msgid "External command \"%s\" failed" msgstr "externer Befehl »%s« fehlgeschlagen" #, c-format msgid "External command \"%s\" failed with exit code %u" msgstr "externer Befehl »%s« mit Exit-Kode %u fehlgeschlagen" #. L10N: Windows error message for EEXIST msgid "File exists" msgstr "Datei existiert" #. L10N: Windows error message for ENAMETOOLONG msgid "File name too long" msgstr "Dateiname zu lang" #. L10N: Windows error message for EFBIG msgid "File too large" msgstr "Datei zu groß" #. L10N: Windows error message for ENAMETOOLONG msgid "Filename too long" msgstr "Dateiname zu lang" #. L10N: Windows error message for ENOSYS msgid "Function not implemented" msgstr "Funktion nicht implementiert" msgid "I won't write DjVu data to a terminal." msgstr "Es werden keine Djvu-Daten auf das Terminal geschrieben." #, c-format msgid "I/O error (%s)" msgstr "E/A-Fehler (%s)" #. L10N: Windows error message for EILSEQ msgid "Illegal byte sequence" msgstr "illegale Byte-Abfolge" #. L10N: Windows error message for ESEEK msgid "Illegal seek" msgstr "illegale Positionierung" #. L10N: Windows error message for EXDEV msgid "Improper link" msgstr "ungeeigneter Verweis" #. L10N: Windows error message for ENOTTY msgid "Inappropriate I/O control operation" msgstr "ungeeignete E/A-Steuerungsoperation" #. L10N: Windows error message for ENOTTY msgid "Inappropriate ioctl for device" msgstr "ungeeigneter ioctl-Aufruf für das Gerät" #. L10N: Windows error message for EIO msgid "Input/output error" msgstr "Eingabe-/Ausgabefehler" msgid "Integer overflow" msgstr "Ganzzahlenüberlauf" msgid "Internal Poppler error" msgstr "interner Poppler-Fehler" #. L10N: Windows error message for EINTR msgid "Interrupted function call" msgstr "unterbrochener Funktionsaufruf" #. L10N: Windows error message for EINTR msgid "Interrupted system call" msgstr "unterbrochener Systemaufruf" #. L10N: Windows error message for EINVAL msgid "Invalid argument" msgstr "ungültiges Argument" #. L10N: Windows error message for EXDEV msgid "Invalid cross-device link" msgstr "falscher Verweis über Gerätegrenzen hinweg" msgid "Invalid date format" msgstr "ungültiges Datumsformat" #. L10N: Windows error message for EILSEQ msgid "Invalid or incomplete multibyte or wide character" msgstr "ungültiger oder unvollständiges Multibyte- oder Wide-Character" msgid "Invalid output file name" msgstr "ungültiger Ausgabedateiname" #. L10N: Windows error message for ESEEK msgid "Invalid seek" msgstr "ungültige Positionierung" #. L10N: Windows error message for EISDIR msgid "Is a directory" msgstr "ist ein Verzeichnis" #. L10N: Windows error message for ECHILD msgid "No child processes" msgstr "keine Kindprozess" msgid "No input file name was specified" msgstr "Es wurde kein Eingabedateiname angegeben." #. L10N: Windows error message for ENOLOCK msgid "No locks available" msgstr "keine Sperren verfügbar" msgid "No page for a bookmark" msgstr "keine Seite für ein Lesezeichen" msgid "No pages selected" msgstr "keine Seiten ausgewählt" #. L10N: Windows error message for ENOSPC msgid "No space left on device" msgstr "Speicher auf dem Gerät erschöpft" #. L10N: Windows error message for ENODEV msgid "No such device" msgstr "kein derartiges Gerät" #. L10N: Windows error message for ENXIO msgid "No such device or address" msgstr "keine deratiges Gerät oder Adresse" #. L10N: Windows error message for ENOENT msgid "No such file or directory" msgstr "keine derartige Datei oder Verzeichnis" #. L10N: Windows error message for ESRCH msgid "No such process" msgstr "kein derartiger Prozess" msgid "No title for a bookmark" msgstr "kein Titel für ein Lesezeichen" #. L10N: Windows error message for ENOTDIR msgid "Not a directory" msgstr "kein Verzeichnis" #. L10N: Windows error message for ENOMEM msgid "Not enough space" msgstr "nicht genug Speicher" #. L10N: Windows error message for EDOM msgid "Numerical argument out of domain" msgstr "numerisches Argument außerhalb der Domäne" #. L10N: Windows error message for ERANGE msgid "Numerical result out of range" msgstr "numerisches Ergebnis außerhalb des Bereichs" #. L10N: Windows error message for EPERM msgid "Operation not permitted" msgstr "Operation nicht unterstützt" msgid "Options: " msgstr "Optionen: " msgid "PDF error" msgstr "PDF-Fehler" msgid "PDF feature not implemented" msgstr "PDF-Fähigkeit nicht implementiert" msgid "PDF syntax error" msgstr "PDF-Syntaxfehler" msgid "PDF syntax warning" msgstr "PDF-Syntaxwarnung" msgid "Page not found" msgstr "Seite nicht gefunden" msgid "Pageid cannot start with a '+' or a '-' character" msgstr "Seitenidentifikationsnummer darf nicht mit einem »+«- oder einem »-«-Zeichen beginnen" msgid "Pageid cannot start with a '.' character or contain two consecutive '.' characters" msgstr "Seitenidentifikationsnummer darf nicht mit einem ».«-Zeichen beginnen oder zwei aufeinanderfolgende ».«-Zeichen enthalten" msgid "Pageid must consist only of letters, digits, '_', '+', '-' and '.' characters" msgstr "Seitenidentifikationsnummer darf nur aus Buchstaben, Ziffern und den Zeichen »_«, »+«, »-« sowie ».« bestehen" msgid "Pageid must end with the '.djvu' or the '.djv' extension" msgstr "Seitenidentifikationsnummer muss die Endung ».djvu« oder ».djv« haben" #. L10N: Windows error message for EACCES msgid "Permission denied" msgstr "Zugriff verweigert" msgid "Poppler configuration error" msgstr "Poppler-Konfigurationsfehler" #. L10N: Windows error message for EROFS msgid "Read-only file system" msgstr "Dateisystem mit reinem Lesezugriff" #. L10N: Windows error message for EDEADLK msgid "Resource deadlock avoided" msgstr "Ressourcenblockierung vermieden" #. L10N: Windows error message for EBUSY msgid "Resource device" msgstr "Quellgerät" #. L10N: Windows error message for EAGAIN msgid "Resource temporarily unavailable" msgstr "Ressource zeitweilig nicht verfügbar" #. L10N: Windows error message for ERANGE msgid "Result too large" msgstr "Ergebnis zu groß" #, c-format msgid "The specified number of foreground colors is outside the allowed range: %u .. %u" msgstr "Die angegebene Anzahl der Vordergrundfarben liegt außerhalb des erlaubten Bereichs: %u … %u" #, c-format msgid "The specified resolution is outside the allowed range: %d .. %d" msgstr "Die angegebene Auflösung liegt außerhalb des erlaubten Bereichs: %d … %d" #, c-format msgid "The specified subsampling ratio is outside the allowed range: %u .. %u" msgstr "Das angegebene Verhältnis der Unterabtastung (subsampling) liegt außerhalb des erlaubten Bereichs: %u … %u" #. L10N: Windows error message for EMLINK msgid "Too many links" msgstr "zu viele Verweise" #. L10N: Windows error message for EMFILE msgid "Too many open files" msgstr "zu viele offene Dateien" #. L10N: Windows error message for ENFILE msgid "Too many open files in system" msgstr "zu viele offene Dateien auf dem System" msgid "Unable to load document" msgstr "Dokument kann nicht geladen werden" msgid "Unable to parse command-line options" msgstr "Befehlszeilenoptionen konnten nicht ausgewertet werden" msgid "Unable to parse hyperlinks options" msgstr "Querverweisoptionen konnten nicht ausgewertet werden" msgid "Unable to parse page numbers" msgstr "Seitennummern konnten nicht ausgewertet werden" msgid "Unable to parse page size" msgstr "Seitengröße konnte nicht ausgewertet werden" msgid "Unable to parse page title template specification" msgstr "Seitentitel-Schablonenangabe konnte nicht ausgewertet werden" msgid "Unable to parse pageid template specification" msgstr "Seitenidentifikationsnummern-Schablonenangabe konnte nicht ausgewertet werden" msgid "Unable to set antialias parameter" msgstr "Kantenglättungsparameter kann nicht gesetzt werden" msgid "Unable to set vector antialias parameter" msgstr "Vektorkantenglättungsparameter kann nicht gesetzt werden" msgid "Unexpected output from djvused" msgstr "unerwartete Ausgabe von Djvused" msgid "Unexpected subsampled bitmap height" msgstr "unerwartete Höhe des unterabgetasteten (subsampled) Bitmaps" msgid "Unexpected subsampled bitmap width" msgstr "unerwartete Breite des unterabgetasteten (subsampled) Bitmaps" msgid "Unknown error" msgstr "unbekannter Fehler" msgid "Unknown option" msgstr "unbekannte Option" msgid "Usage: " msgstr "Aufruf: " #, c-format msgid "Warning: %s" msgstr "Warnung: %s" msgid "Warning: Unable to convert link with a named action" msgstr "Warnung: Verweis mit einer benannten Aktion kann nicht umgewandelt werden" msgid "Warning: Unable to convert link with a remote go-to action" msgstr "Warnung: Verweis mit einem fernen Sprungbefehl kann nicht umgewandelt werden" msgid "Warning: Unable to convert link without an action" msgstr "Warnung: Verweis ohne Aktion kann nicht umgewandelt werden" msgid "Warning: Unknown link action" msgstr "Warnung: unbekannte Verweisaktion" #, c-format msgid "Warning: metadata[%s] is not a valid date" msgstr "Warnung: Metadatum[%s] ist kein gültiges Datum" msgid "adding non-raster data with `djvused`" msgstr "nicht gerasterte Daten werden mit »djvused« hinzugefügt" msgid "creating document outline with `djvused`" msgstr "ein Entwurf des Dokuments wird mit »djvused« erstellt" #, c-format msgid "creating multi-page indirect document (%d page)" msgid_plural "creating multi-page indirect document (%d pages)" msgstr[0] "ein mehrseitiges indirektes Dokument wird erstellt (%d Seite)" msgstr[1] "ein mehrseitiges indirektes Dokument wird erstellt (%d Seiten)" msgid "creating new background image with `c44`" msgstr "neues Hintergrundbild wird mit »c44« erstellt" msgid "encoding layers with `csepdjvu`" msgstr "Ebenen werden mit »csepdjvu« kodiert" msgid "encoding monochrome image with `cjb2`" msgstr "einfarbige Bilder werden mit »cjb2« kodiert" #, c-format msgid "estimated resolution: %d dpi" msgstr "voraussichtliche Auflösung: %d dpi" msgid "extracting XMP metadata" msgstr "XMO-Metadaten werden extrahiert" msgid "extracting annotations" msgstr "Anmerkungen werden ausgelesen" msgid "extracting document outline" msgstr "Dokumententwurf wird extrahiert" msgid "extracting document-information metadata" msgstr "Dokument-Informationsmetadaten werden ausgelesen" #, c-format msgid "guessed resolution: %s dpi" msgstr "geschätzte Auflösung: %s dpi" #, c-format msgid "image size: %dx%d" msgstr "Bildgröße: %dx%d" #, c-format msgid "page #%d -> #%d" msgstr "Seite #%d -> #%d" msgid "pdf2djvu is intended to be run from the command prompt." msgstr "pdf2djvu ist für die Ausführung von der Befehlszeile gedacht." msgid "pdf2djvu was built without GNOME XSLT; XML transformations are disabled." msgstr "pdf2djvu wurde ohne GNOME-XSLT gebaut. XML-Umwandlungen sind deaktiviert." msgid "pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled." msgstr "pdf2djvu wurde ohne GraphicsMagick gebaut. Fortgeschrittene Farbquantifizierung ist deaktiviert." msgid "pdf2djvu was built without OpenMP support; multi-threading is disabled." msgstr "Pdf2djvu wurde ohne OpenMP-Unterstützung gebaut. Die Verwendung mehrerer Threads ist deaktiviert." msgid "possibly memory allocation error" msgstr "möglicher Speicherreservierungsfehler" msgid "preparing data for `csepdjvu`" msgstr "Daten für »csepdjvu« werden vorbereitet" msgid "re-assembling page with `djvumake`" msgstr "Seite wird mit »djvumake« erneut zusammengesetzt" msgid "recovering image chunks with `djvuextract`" msgstr "große Bildteile werden mit »djvuextract« wiederhergestellt" msgid "recovering images with `djvuextract`" msgstr "Bilder werden mit »djvuextract« wiederhergestellt" msgid "recovering text with `djvused`" msgstr "Text wird mit »djvused« wiederhergestellt" msgid "rendering background image" msgstr "Hintergrundbild wird aufgebaut" msgid "rendering page (1st pass)" msgstr "Seite wird aufgebaut (erster Durchgang)" msgid "rendering page (2nd pass)" msgstr "Seite wird aufgebaut (zweiter Durchgang)" msgid "setting metadata with `djvused`" msgstr "Metadaten werden mit »djvused« gesetzt" msgid "setting metadata with `djvused` (working around a DjVuLibre bug)" msgstr "Metadaten werden mit »djvused« gesetzt (umgehen eines DjVuLibre-Fehlers)" msgid "storing background image" msgstr "Hintergrundbild wird gespeichert" msgid "storing dummy background image" msgstr "Platzhalterhintergrundbild wird gespeichert" msgid "storing foreground image" msgstr "Vordergrundbild wird gespeichert" msgid "storing text layer" msgstr "Textebene wird gespeichert" msgid "unable to guess resolution" msgstr "Auflösung kann nicht geschätzt werden" pdf2djvu-0.7.17/po/Makefile0000644000000000000000000000236612151732402014112 0ustar rootroot# Copyright © 2009, 2011 Jakub Wilk # # This package 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; version 2 dated June, 1991. srcdir = .. include $(srcdir)/Makefile.common PO_FILES = $(wildcard *.po) MO_FILES = $(PO_FILES:.po=.mo) SOURCE_FILES = $(wildcard $(srcdir)/*.cc $(srcdir)/*.hh) gettext-common-options = \ --no-location \ --sort-output \ --no-wrap \ xgettext = $(XGETTEXT) \ $(gettext-common-options) \ --language=C++ \ --keyword=_ --keyword=N_ \ --package-name=pdf2djvu \ --package-version=$(PACKAGE_VERSION) \ --msgid-bugs-address=$(PACKAGE_BUGREPORT) \ --add-comments=L10N: \ msgmerge = $(MSGMERGE) \ $(gettext-common-options) \ --verbose \ msgfmt = $(MSGFMT) \ --check \ --verbose \ .PHONY: all all: pdf2djvu.pot $(PO_FILES) $(MO_FILES) pdf2djvu.pot: $(XGETTEXT_HELPER) $(SOURCE_FILES) $(xgettext) -D $(srcdir) $(notdir $(SOURCE_FILES)) > $(@) %.po: pdf2djvu.pot $(msgmerge) -o $(@) $(@) $(<) %.mo: %.po ifneq "$(quality-check)" "" ! msgattrib --only-fuzzy $(<) | grep . ! msgattrib --untranslated $(<) | grep . endif $(msgfmt) -o $(@) -c $(<) .PHONY: clean clean: rm -f *.mo pdf2djvu.pot # vim:ts=4 sw=4 noet pdf2djvu-0.7.17/pdf2djvu.cc0000644000000000000000000014606312151732402014072 0ustar rootroot/* Copyright © 2007, 2008, 2009, 2010 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #include #include #include #include #include #include #include #include #include #include #include #if _OPENMP #include #endif #include "pdf-backend.hh" #include "pdf-dpi.hh" #include "config.hh" #include "debug.hh" #include "djvuconst.hh" #include "paths.hh" #include "image-filter.hh" #include "sexpr.hh" #include "system.hh" #include "version.hh" #include "i18n.hh" #include "xmp.hh" Config config; static inline DebugStream &debug(int n) { return debug(n, config.verbose); } class NoLinkDestination : public std::runtime_error { public: NoLinkDestination() : std::runtime_error(_("Cannot find link destination")) { } }; static int get_page_for_LinkGoTo(pdf::link::GoTo *goto_link, pdf::Catalog *catalog) { std::auto_ptr dest; dest.reset(goto_link->getDest()); if (dest.get() == NULL) dest.reset(catalog->findDest(goto_link->getNamedDest())); else dest.reset(dest.release()->copy()); if (dest.get() != NULL) { int page; if (dest->isPageRef()) { Ref pageref = dest->getPageRef(); page = catalog->findPage(pageref.num, pageref.gen); } else page = dest->getPageNum(); return page; } else throw NoLinkDestination(); } static bool is_foreground_color_map(pdf::gfx::ImageColorMap *color_map) { return (color_map->getNumPixelComps() <= 1 && color_map->getBits() <= 1); } class PageMap : protected std::map { protected: int max; public: PageMap() { this->max = std::numeric_limits::min(); } int get_max() const { return this->max; } int get(int n) const { const_iterator it = this->find(n); if (it == this->end()) throw std::logic_error(_("Page not found")); return it->second; } int get(int n, int m) const { const_iterator it = this->find(n); if (it == this->end()) return m; return it->second; } void set(int n, int m) { if (m > this->max) this->max = m; (*this)[n] = m; } }; class DocumentMap { protected: intmax_t byte_size; const std::vector &filenames; std::vector map; public: DocumentMap(const std::vector &filenames_) : byte_size(0), filenames(filenames_) { int n_all_pages = 0; for (std::vector::iterator it = config.filenames.begin(); it != config.filenames.end(); it++) { { std::ifstream ifs(*it, std::ifstream::in | std::ifstream::binary); ifs.seekg(0, std::ios::end); this->byte_size += ifs.tellg(); ifs.close(); } { std::auto_ptr doc(new pdf::Document(*it)); int n_pages = doc->getNumPages(); this->map.push_back(n_all_pages); n_all_pages += n_pages; } } this->map.push_back(n_all_pages); } intmax_t get_byte_size(void) { return this->byte_size; } int get_n_pages(void) { return this->map.back(); } void get(int n, const char *&filename, int &m) { assert(n >= 1); size_t i = std::upper_bound(this->map.begin(), this->map.end(), n - 1) - this->map.begin() - 1; filename = this->filenames.at(i); m = n - this->map[i]; } }; class Component { protected: std::auto_ptr title; File *file; public: explicit Component(File &file, const std::string *title = NULL) : file(&file) { if (title != NULL) this->title.reset(new std::string(*title)); file.close(); } Component(const Component &component) : file(component.file) { if (component.title.get() != NULL) this->title.reset(new std::string(*component.title)); } const std::string * get_title() const { return this->title.get(); } const std::string & get_basename() const { return this->file->get_basename(); } size_t size() { size_t result; this->file->reopen(); result = this->file->size(); this->file->close(); return result; } friend std::ostream &operator <<(std::ostream &, const Component &); friend Command &operator <<(Command &, const Component &); }; Command &operator <<(Command &command, const Component &component) { command << *component.file; return command; } std::ostream &operator <<(std::ostream &stream, const Component &component) { stream << *component.file; return stream; } class ComponentList { protected: std::vector files; std::vector components; const PageMap &page_map; ComponentList(int n, const PageMap &page_map) : files(n), components(n), page_map(page_map) { } void clean_files() { for (std::vector::iterator it = this->components.begin(); it != this->components.end(); it++) { delete *it; *it = NULL; } for (std::vector::iterator it = this->files.begin(); it != this->files.end(); it++) { delete *it; *it = NULL; } } string_format::Bindings get_bindings(int n) const { string_format::Bindings bindings; bindings["max_spage"] = this->files.size(); bindings["spage"] = n; bindings["max_page"] = this->files.size(); bindings["page"] = n; bindings["max_dpage"] = this->page_map.get_max(); bindings["dpage"] = this->page_map.get(n, 0); return bindings; } std::string *get_title(int n) const { if (config.page_title_template.get() == NULL) return NULL; string_format::Bindings bindings = this->get_bindings(n); return new std::string(config.page_title_template->format(bindings)); } virtual File *create_file(const std::string &id) = 0; public: virtual Component &operator[](int n) { std::vector::reference tmpfile_ptr = this->components.at(n - 1); if (tmpfile_ptr == NULL) { this->files[n - 1] = this->create_file(this->get_file_name(n)); tmpfile_ptr = new Component(*this->files[n - 1], this->get_title(n)); } return *tmpfile_ptr; } std::string get_file_name(int n) const { string_format::Bindings bindings = this->get_bindings(n); return config.pageid_template->format(bindings); } virtual ~ComponentList() throw () { this->clean_files(); } }; class MutedRenderer: public pdf::Renderer { protected: std::auto_ptr text_comments; std::vector annotations; const ComponentList &page_files; bool skipped_elements; void add_text_comment(int ox, int oy, int dx, int dy, int x, int y, int w, int h, const Unicode *unistr, int len) { while (len > 0 && *unistr == ' ') unistr++, len--; if (len == 0) return; *(this->text_comments) << std::dec << std::noshowpos << "\x01 \x02 " /* special characters will be replaced later */ << ox << ":" << oy << " " << dx << ":" << dy << " " << w << "\x03" << h << std::showpos << x << y << " " << "(" << std::oct; for (; len > 0; len--, unistr++) { if (*unistr < 0x20 || *unistr == ')' || *unistr == '\\') *(this->text_comments) << "\\" << std::setw(3) << static_cast(*unistr); else pdf::write_as_utf8(*(this->text_comments), *unistr); } *(this->text_comments) << ")" << std::endl; } public: pdf::Bool needNonText() { return !config.no_render; } #if POPPLER_VERSION < 1101 void drawImageMask(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::Bool invert, pdf::Bool inline_image) { this->skipped_elements = true; return; } void drawImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, int *mask_colors, pdf::Bool inline_image) { if (is_foreground_color_map(color_map) || config.no_render) { this->skipped_elements = true; return; } Renderer::drawImage(state, object, stream, width, height, color_map, mask_colors, inline_image); } void drawMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::Bool mask_invert) { if (is_foreground_color_map(color_map) || config.no_render) { this->skipped_elements = true; return; } Renderer::drawMaskedImage(state, object, stream, width, height, color_map, mask_stream, mask_width, mask_height, mask_invert); } void drawSoftMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::gfx::ImageColorMap *mask_color_map) { if (is_foreground_color_map(color_map) || config.no_render) { this->skipped_elements = true; return; } Renderer::drawSoftMaskedImage(state, object, stream, width, height, color_map, mask_stream, mask_width, mask_height, mask_color_map); } #else void drawImageMask(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::Bool invert, pdf::Bool interpolate, pdf::Bool inline_image) { this->skipped_elements = true; return; } void drawImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Bool interpolate, int *mask_colors, pdf::Bool inline_image) { if (is_foreground_color_map(color_map) || config.no_render) { this->skipped_elements = true; return; } Renderer::drawImage(state, object, stream, width, height, color_map, interpolate, mask_colors, inline_image); } void drawMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Bool interpolate, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::Bool mask_invert, pdf::Bool mask_interpolate) { if (is_foreground_color_map(color_map) || config.no_render) { this->skipped_elements = true; return; } Renderer::drawMaskedImage(state, object, stream, width, height, color_map, interpolate, mask_stream, mask_width, mask_height, mask_invert, mask_interpolate); } void drawSoftMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Bool interpolate, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::gfx::ImageColorMap *mask_color_map, pdf::Bool mask_interpolate) { if (is_foreground_color_map(color_map) || config.no_render) { this->skipped_elements = true; return; } Renderer::drawSoftMaskedImage(state, object, stream, width, height, color_map, interpolate, mask_stream, mask_width, mask_height, mask_color_map, mask_interpolate); } #endif pdf::Bool interpretType3Chars() { return gFalse; } void drawChar(pdf::gfx::State *state, double x, double y, double dx, double dy, double origin_x, double origin_y, CharCode code, int n_bytes, Unicode *unistr, int length) { double pox, poy, pdx, pdy, px, py, pw, ph; x -= origin_x; y -= origin_y; state->transform(x, y, &pox, &poy); state->transformDelta(dx, dy, &pdx, &pdy); int old_render = state->getRender(); /* Setting the following rendering mode disallows drawing text, but allows * fonts to be set up properly nevertheless: */ state->setRender(0x103); this->skipped_elements = true; this->Renderer::drawChar(state, x, y, dx, dy, origin_x, origin_y, code, n_bytes, unistr, length); state->setRender(old_render); pdf::splash::Font *font = this->getCurrentFont(); pdf::splash::GlyphBitmap glyph; px = pox; py = poy; if (pdf::get_glyph(this->getSplash(), font, pox, poy, code, &glyph)) { px -= glyph.x; py -= glyph.y; pw = glyph.w; ph = glyph.h; } else { /* Ideally, this should never happen. Some heuristics is required to * determine character width/height: */ pw = pdx; ph = pdy; double font_size = state->getTransformedFontSize(); if (pw * 4.0 < font_size) pw = font_size; if (ph * 4.0 < font_size) ph = font_size; py -= ph; } pw = std::max(pw, 1.0); ph = std::max(ph, 1.0); if (config.text_crop) { int bitmap_width = this->getBitmapWidth(); int bitmap_height = this->getBitmapHeight(); if (px + pw < 0 || py + ph < 0 || px >= bitmap_width || py >= bitmap_height) return; } std::auto_ptr nfkc; const Unicode *const_unistr; if (config.text_nfkc) { nfkc.reset(new pdf::NFKC(unistr, length)); const_unistr = *nfkc; length = nfkc->length(); } else const_unistr = unistr; add_text_comment( static_cast(pox), static_cast(poy), static_cast(pdx), static_cast(pdy), static_cast(px), static_cast(py), static_cast(pw), static_cast(ph), const_unistr, length ); } void draw_link(pdf::link::Link *link, const std::string &border_color) { sexpr::GCLock gc_lock; if (!config.hyperlinks.extract) return; double x1, y1, x2, y2; pdf::link::Action *link_action = link->getAction(); if (link_action == NULL) { debug(1) << _("Warning: Unable to convert link without an action") << std::endl; return; } std::string uri; link->getRect(&x1, &y1, &x2, &y2); switch (link_action->getKind()) { case actionURI: uri += dynamic_cast(link_action)->getURI()->getCString(); break; case actionGoTo: { int page; try { page = get_page_for_LinkGoTo(dynamic_cast(link_action), this->catalog); } catch (NoLinkDestination &ex) { debug(1) << string_printf(_("Warning: %s"), ex.what()) << std::endl; return; } std::ostringstream strstream; strstream << "#" << this->page_files.get_file_name(page); uri = strstream.str(); break; } case actionGoToR: debug(1) << _("Warning: Unable to convert link with a remote go-to action") << std::endl; return; case actionNamed: debug(1) << _("Warning: Unable to convert link with a named action") << std::endl; return; default: debug(1) << _("Warning: Unknown link action") << std::endl; return; } int x, y, w, h; this->cvtUserToDev(x1, y1, &x, &y); this->cvtUserToDev(x2, y2, &w, &h); w -= x; h = y - h; y = this->getBitmapHeight() - y; static sexpr::Ref symbol_xor = sexpr::symbol("xor"); static sexpr::Ref symbol_border = sexpr::symbol("border"); static sexpr::Ref symbol_rect = sexpr::symbol("rect"); static sexpr::Ref symbol_maparea = sexpr::symbol("maparea"); sexpr::Ref expr = sexpr::nil; if (config.hyperlinks.border_always_visible) { static sexpr::Ref symbol_border_avis = sexpr::symbol("border_avis"); sexpr::Ref item = sexpr::cons(sexpr::symbol("border_avis"), sexpr::nil); expr = sexpr::cons(item, expr); } if (config.hyperlinks.border_color.length() > 0) { static sexpr::Ref symbol_border = sexpr::symbol("border"); sexpr::Ref item = sexpr::cons(sexpr::symbol(config.hyperlinks.border_color), sexpr::nil); item = sexpr::cons(symbol_border, item); expr = sexpr::cons(item, expr); } else { sexpr::Ref bexpr = sexpr::nil; if (border_color.empty()) bexpr = sexpr::cons(symbol_xor, bexpr); else { bexpr = sexpr::cons(sexpr::symbol(border_color), bexpr); bexpr = sexpr::cons(symbol_border, bexpr); } expr = sexpr::cons(bexpr, expr); }; { sexpr::Ref rexpr = sexpr::nil; rexpr = sexpr::cons(sexpr::integer(h), rexpr); rexpr = sexpr::cons(sexpr::integer(w), rexpr); rexpr = sexpr::cons(sexpr::integer(y), rexpr); rexpr = sexpr::cons(sexpr::integer(x), rexpr); rexpr = sexpr::cons(symbol_rect, rexpr); expr = sexpr::cons(rexpr, expr); } expr = sexpr::cons(sexpr::empty_string, expr); expr = sexpr::cons(sexpr::string(uri), expr); expr = sexpr::cons(symbol_maparea, expr); annotations.push_back(expr); } pdf::Bool useDrawChar() { return gTrue; } void stroke(pdf::gfx::State *state) { this->skipped_elements = true; } void fill(pdf::gfx::State *state) { if (config.no_render) { this->skipped_elements = true; return; } pdf::splash::Path path; this->convert_path(state, path); double area = pdf::get_path_area(path); if (area / this->getBitmapHeight() / this->getBitmapWidth() >= 0.8) Renderer::fill(state); } void eoFill(pdf::gfx::State *state) { this->fill(state); } MutedRenderer(pdf::splash::Color &paper_color, bool monochrome, const ComponentList &page_files) : Renderer(paper_color, monochrome), page_files(page_files) { this->clear(); } const std::vector &get_annotations() const { return annotations; } void clear_annotations() { annotations.clear(); } const std::string get_texts() const { std::string texts = this->text_comments->str(); if (config.text_filter_command_line.length() > 0) texts = Command::filter(config.text_filter_command_line, texts); for (std::string::iterator it = texts.begin(); it != texts.end(); it++) switch (*it) { case '\x01': *it = '#'; break; case '\x02': *it = 'T'; break; case '\x03': *it = 'x'; break; } return texts; } void clear_texts() { this->text_comments.reset(new std::ostringstream); *(this->text_comments) << std::setfill('0'); } void clear() { this->skipped_elements = 0; this->clear_texts(); this->clear_annotations(); } bool has_skipped_elements() { return this->skipped_elements; } }; class BookmarkError : public std::runtime_error { public: BookmarkError(const std::string &message) : std::runtime_error(message) { } }; class NoPageForBookmark : public BookmarkError { public: NoPageForBookmark() : BookmarkError(_("No page for a bookmark")) { } }; class NoTitleForBookmark : public BookmarkError { public: NoTitleForBookmark() : BookmarkError(_("No title for a bookmark")) { } }; static sexpr::Expr pdf_outline_to_djvu_outline(pdf::Object *node, pdf::Catalog *catalog, const ComponentList &page_files) { sexpr::GCLock gc_lock; pdf::Object current, next; if (!pdf::dict_lookup(node, "First", ¤t)->isDict()) return sexpr::nil; sexpr::Ref list = sexpr::nil; while (current.isDict()) { try { std::string title_str; { pdf::OwnedObject title; if (!pdf::dict_lookup(current, "Title", &title)->isString()) throw NoTitleForBookmark(); title_str = pdf::string_as_utf8(title); } int page; { pdf::OwnedObject destination; std::auto_ptr link_action; if (!pdf::dict_lookup(current, "Dest", &destination)->isNull()) link_action.reset(pdf::link::Action::parseDest(&destination)); else if (!pdf::dict_lookup(current, "A", &destination)->isNull()) link_action.reset(pdf::link::Action::parseAction(&destination)); else throw NoPageForBookmark(); if (link_action.get() == NULL || link_action->getKind() != actionGoTo) throw NoPageForBookmark(); page = get_page_for_LinkGoTo(dynamic_cast(link_action.get()), catalog); } sexpr::Ref expr = sexpr::nil; expr = pdf_outline_to_djvu_outline(¤t, catalog, page_files); { std::ostringstream strstream; strstream << "#" << page_files.get_file_name(page); sexpr::Ref pexpr = sexpr::string(strstream.str()); expr = sexpr::cons(pexpr, expr); } expr = sexpr::cons(sexpr::string(title_str), expr); list = sexpr::cons(expr, list); } catch (BookmarkError &ex) { debug(1) << string_printf(_("Warning: %s"), ex.what()) << std::endl; } pdf::dict_lookup(current, "Next", &next); current.free(); current = next; } current.free(); list.reverse(); return list; } static bool pdf_outline_to_djvu_outline(pdf::Document &doc, std::ostream &stream, const ComponentList &page_files) /* Convert the PDF outline to DjVu outline. Save the resulting S-expression * into the stream. * * Return ``true`` if the outline exist and is non-empty. * Return ``false`` otherwise. */ { sexpr::GCLock gc_lock; pdf::Catalog *catalog = doc.getCatalog(); pdf::Object *outlines = catalog->getOutline(); if (!outlines->isDict()) return false; static sexpr::Ref symbol_bookmarks = sexpr::symbol("bookmarks"); sexpr::Ref expr = pdf_outline_to_djvu_outline(outlines, catalog, page_files); if (expr == sexpr::nil) return false; expr = sexpr::cons(symbol_bookmarks, expr); stream << expr; return true; } static void add_meta_string(const char *key, const std::string &value, std::ostream &stream) { sexpr::Ref expr = sexpr::string(value); stream << key << "\t" << expr << std::endl; } static void add_meta_date(const char *key, const pdf::Timestamp &value, std::ostream &stream) { try { sexpr::Ref sexpr = sexpr::string(value.format(' ')); stream << key << "\t" << sexpr << std::endl; } catch (pdf::Timestamp::Invalid) { debug(1) << string_printf(_("Warning: metadata[%s] is not a valid date"), key) << std::endl; } } static void pdf_metadata_to_djvu_metadata(pdf::Metadata &metadata, std::ostream &stream) { sexpr::GCLock gc_lock; metadata.iterate(add_meta_string, add_meta_date, stream); } class TemporaryComponentList : public ComponentList { private: TemporaryComponentList(const TemporaryComponentList&); // not defined TemporaryComponentList& operator=(const TemporaryComponentList&); // not defined protected: std::auto_ptr directory; std::auto_ptr shared_ant_file; virtual File *create_file(const std::string &pageid) { return new TemporaryFile(*this->directory, pageid); } public: explicit TemporaryComponentList(int n, const PageMap &page_map) : ComponentList(n, page_map), directory(new TemporaryDirectory()), shared_ant_file(new TemporaryFile(*directory, djvu::shared_ant_file_name)) { } virtual ~TemporaryComponentList() throw () { this->clean_files(); } }; class IndirectComponentList : public ComponentList { private: IndirectComponentList(const IndirectComponentList&); // not defined IndirectComponentList& operator=(const IndirectComponentList&); // not defined protected: const Directory &directory; virtual File *create_file(const std::string &pageid) { return new File(this->directory, pageid); } public: IndirectComponentList(int n, const PageMap &page_map, const Directory &directory) : ComponentList(n, page_map), directory(directory) { } }; class DjVuCommand : public Command { protected: static std::string dir_name; static std::string full_path(const std::string &base_name) { return DjVuCommand::dir_name + "/" + base_name; } public: static void set_argv0(const char *argv0); explicit DjVuCommand(const std::string &base_name) : Command(full_path(base_name)) { } }; std::string DjVuCommand::dir_name(""); void DjVuCommand::set_argv0(const char *argv0) { std::string argv0_dir_name, argv0_file_name; split_path(argv0, argv0_dir_name, argv0_file_name); DjVuCommand::dir_name = absolute_path(paths::djvulibre_bindir, argv0_dir_name); } class DjVm { protected: std::set known_ids; std::set known_titles; class DuplicateId : public std::runtime_error { public: DuplicateId(const std::string &id) : std::runtime_error(string_printf(_("Duplicate page identifier: %s"), id.c_str())) { } }; class DuplicateTitle : public std::runtime_error { public: DuplicateTitle(const std::string &id) : std::runtime_error(string_printf(_("Duplicate page title: %s"), id.c_str())) { } }; void remember(const Component &component); public: virtual void add(const Component &compontent) = 0; virtual void create() = 0; virtual void commit() = 0; DjVm &operator <<(const Component &component) { this->add(component); return *this; } virtual void set_outline(File &outline_sed_file) = 0; virtual void set_metadata(File &metadata_sed_file) = 0; virtual ~DjVm() throw () { /* just to shut up compilers */ } }; void DjVm::remember(const Component &component) { std::string id; id = component.get_basename(); if (this->known_ids.count(id) > 0) throw DuplicateId(id); this->known_ids.insert(id); const std::string *title = component.get_title(); if (title != NULL) { if (this->known_titles.count(*title) > 0) throw DuplicateTitle(*title); this->known_titles.insert(*title); } } class IndirectDjVm; class BundledDjVm : public DjVm { protected: File &output_file; DjVuCommand converter; std::auto_ptr indirect_djvm; std::auto_ptr index_file; public: explicit BundledDjVm(File &output_file) : output_file(output_file), converter("djvmcvt") { } ~BundledDjVm() throw () { } virtual void add(const Component &component); virtual void set_outline(File &outlines_sed_file); virtual void set_metadata(File &metadata_sed_file); virtual void create(); virtual void commit(); }; class IndirectDjVm : public DjVm { protected: File &index_file; std::vector components; class UnexpectedDjvuSedOutput : public std::runtime_error { public: UnexpectedDjvuSedOutput() : std::runtime_error(_("Unexpected output from djvused")) { }; }; void do_create(const std::vector &components, bool shared_ant = false); public: explicit IndirectDjVm(File &index_file) : index_file(index_file) { } virtual ~IndirectDjVm() throw () { } virtual void add(const Component &component) { this->remember(component); this->components.push_back(component); } virtual void set_outline(File &outlines_sed_file) { debug(3) << _("creating document outline with `djvused`") << std::endl; DjVuCommand djvused("djvused"); djvused << "-s" << "-f" << outlines_sed_file << this->index_file; djvused(); // djvused -s -f } virtual void set_metadata(File &metadata_sed_file) { size_t size = this->components.size(); if (size <= 2) { debug(3) << _("setting metadata with `djvused`") << std::endl; DjVuCommand djvused("djvused"); djvused << "-s" << "-f" << metadata_sed_file << this->index_file; djvused(); // djvused -s -f } else { /* Using ``djvused`` to add shared annotations to a indirect multi-page * document could be unacceptably slow: * http://sf.net/tracker/?func=detail&aid=1935916&group_id=32953&atid=406583 * * We need to work around this bug. */ debug(3) << _("setting metadata with `djvused` (working around a DjVuLibre bug)") << std::endl; std::vector dummy_components; TemporaryFile dummy_sed_file; /* For an indirect document, ``create-shared-ant`` is, surprisingly, not * enough to create a shared annotations chunk. The dummy shared * annotation is actually required. */ dummy_sed_file << "create-shared-ant" << std::endl << "set-ant" << std::endl << "(x)" << std::endl << "." << std::endl; dummy_sed_file.close(); for (size_t i = 0; i < size - 1; i++) { /* To make the page include the annotations chunk: * - Create an ephemeral indirect multi-page document with just this * single page. * - Add the dummy shared annotation. */ dummy_components.push_back(this->components[i]); this->do_create(dummy_components); DjVuCommand djvused("djvused"); djvused << "-s" << "-f" << dummy_sed_file << this->index_file; djvused(); // djvused -s -f dummy_components.pop_back(); } /* For the last page, use the desired annotations. */ dummy_components.push_back(this->components[size - 1]); this->do_create(dummy_components); DjVuCommand djvused("djvused"); djvused << "-s" << "-f" << metadata_sed_file << this->index_file; djvused(); // djvused -s -f /* Finally, recreate the index. */ this->do_create(this->components, true /* include shared annotations */); } } virtual void create() { size_t size = this->components.size(); debug(3) << string_printf(ngettext( "creating multi-page indirect document (%d page)", "creating multi-page indirect document (%d pages)", size), size ) << std::endl; this->do_create(this->components); } virtual void commit() { } }; void BundledDjVm::add(const Component &component) { if (this->index_file.get() == NULL) { std::ostringstream stream; stream << component << ".djvu-index"; this->index_file.reset(new TemporaryFile(stream.str())); this->indirect_djvm.reset(new IndirectDjVm(*this->index_file)); } /* No need to call ``this->remember(component)``. */ *this->indirect_djvm << component; } void BundledDjVm::set_outline(File &outlines_sed_file) { this->indirect_djvm->set_outline(outlines_sed_file); } void BundledDjVm::set_metadata(File &metadata_sed_file) { this->indirect_djvm->set_metadata(metadata_sed_file); } void BundledDjVm::create() { this->indirect_djvm->create(); } void BundledDjVm::commit() { this->converter << "-b" << *this->index_file << this->output_file; this->converter(); // djvmcvt -b this->index_file.reset(NULL); } void IndirectDjVm::do_create(const std::vector &components, bool shared_ant) { size_t size = components.size(); this->index_file.reopen(true); // (re)open and truncate this->index_file.write(djvu::binary::djvm_head, sizeof djvu::binary::djvm_head); this->index_file << djvu::binary::version; for (int i = 1; i >= 0; i--) index_file << static_cast(((size + shared_ant) >> (8 * i)) & 0xff); { TemporaryFile bzz_file; for (size_t i = 0; i < size + shared_ant; i++) bzz_file.write("\0\0", 3); if (shared_ant) bzz_file << '\3'; for (std::vector::const_iterator it = components.begin(); it != components.end(); it++) bzz_file << (it->get_title() == NULL ? '\001' : '\101'); if (shared_ant) bzz_file << djvu::shared_ant_file_name << '\0'; for (std::vector::const_iterator it = components.begin(); it != components.end(); it++) { bzz_file << it->get_basename() << '\0'; const std::string *title = it->get_title(); if (title != NULL) bzz_file << encoding::proxy(*title) << '\0'; } bzz_file.close(); DjVuCommand bzz("bzz"); bzz << "-e" << bzz_file << "-"; bzz(index_file); } size = this->index_file.size(); this->index_file.seekg(8, std::ios::beg); for (int i = 3; i >= 0; i--) this->index_file << static_cast(((size - 12) >> (8 * i)) & 0xff); this->index_file.seekg(20, std::ios::beg); for (int i = 3; i >= 0; i--) this->index_file << static_cast(((size - 24) >> (8 * i)) & 0xff); this->index_file.close(); } static int calculate_dpi(const pdf::dpi::Guess &guess) { double dpi = guess.max() + 0.5; if (dpi < djvu::min_dpi) return djvu::min_dpi; else if (dpi > djvu::max_dpi) return djvu::max_dpi; else return static_cast(dpi); } static int calculate_dpi(pdf::Document &doc, int n, bool crop) { double page_width, page_height; doc.get_page_size(n, crop, page_width, page_height); if (config.guess_dpi) { pdf::dpi::Guesser dpi_guesser(doc); try { pdf::dpi::Guess guess = dpi_guesser[n]; std::ostringstream guess_str; guess_str << guess; debug(2) << string_printf(_("guessed resolution: %s dpi"), guess_str.str().c_str()) << std::endl; return calculate_dpi(guess); } catch (pdf::dpi::NoGuess) { debug(2) << _("unable to guess resolution") << std::endl; } } if (config.preferred_page_size.first) { double hdpi = config.preferred_page_size.first / page_width; double vdpi = config.preferred_page_size.second / page_height; double dpi = std::min(hdpi, vdpi) + 0.5; int int_dpi; if (dpi < djvu::min_dpi) int_dpi = djvu::min_dpi; else if (dpi > djvu::max_dpi) int_dpi = djvu::max_dpi; else int_dpi = static_cast(dpi); debug(2) << string_printf(_("estimated resolution: %d dpi"), int_dpi) << std::endl; return int_dpi; } else return config.dpi; } class StdoutIsATerminal : public std::runtime_error { public: StdoutIsATerminal() : std::runtime_error(_("I won't write DjVu data to a terminal.")) { } }; static void calculate_subsampled_size(int width, int height, int ratio, int &sub_width, int &sub_height) { /* DjVuLibre expects that: * * sub_width = ceil(width / ratio) * sub_width = ceil(height / ratio) * * However, DjVu Reference (10.3) requires that: * * ceil(width / sub_width) = ceil(height / sub_height) * * This functions satisfies all these equations by decreasing ratio if * necessary. * * See * http://sf.net/tracker/?func=detail&aid=1972089&group_id=32953&atid=406583 * for details. */ while (true) { sub_width = (width + ratio - 1) / ratio; sub_height = (height + ratio - 1) / ratio; if ((width + sub_width - 1) / sub_width != (height + sub_height - 1) / sub_height) ratio--; else break; } } static int xmain(int argc, char * const argv[]) { std::ios_base::sync_with_stdio(false); DjVuCommand::set_argv0(argv[0]); try { config.read_config(argc, argv); } catch (const Config::NeedVersion) { error_log << PACKAGE_STRING << std::endl; exit(1); } catch (const Config::Error &ex) { config.usage(ex); if (argc <= 1) prevent_pop_out(); exit(1); } if (config.output_stdout && is_stream_a_tty(std::cout)) throw StdoutIsATerminal(); pdf::Environment environment(argv[0]); environment.set_antialias(config.antialias); DocumentMap document_map(config.filenames); intmax_t pdf_byte_size = document_map.get_byte_size(); pdf::splash::Color paper_color; pdf::set_color(paper_color, 0xff, 0xff, 0xff); intmax_t n_pixels = 0; intmax_t djvu_pages_size = 0; int n_pages = document_map.get_n_pages(); PageMap page_map; std::vector page_numbers; std::auto_ptr output_dir; std::auto_ptr output_file; std::auto_ptr djvm; std::auto_ptr page_files; std::auto_ptr quantizer; if (config.monochrome) quantizer.reset(new DummyQuantizer(config)); else switch (config.fg_colors) { case Config::FG_COLORS_DEFAULT: quantizer.reset(new DefaultQuantizer(config)); break; case Config::FG_COLORS_WEB: quantizer.reset(new WebSafeQuantizer(config)); break; case Config::FG_COLORS_BLACK: quantizer.reset(new MaskQuantizer(config)); break; default: quantizer.reset(new GraphicsMagickQuantizer(config)); } #if _OPENMP if (config.n_jobs >= 1) omp_set_num_threads(config.n_jobs); #else if (config.n_jobs != 1) { debug(1) << string_printf(_("Warning: %s"), _("pdf2djvu was built without OpenMP support; multi-threading is disabled.")) << std::endl; config.n_jobs = 1; } #endif if (config.format == config.FORMAT_BUNDLED) { if (config.output_stdout) output_file.reset(new TemporaryFile()); else output_file.reset(new File(config.output)); page_files.reset(new TemporaryComponentList(n_pages, page_map)); djvm.reset(new BundledDjVm(*output_file)); } else { std::string index_file_name = "index.djvu"; try { /* For compatibility reasons, check if it's a directory: */ output_dir.reset(new Directory(config.output)); } catch (OSError &no_such_directory_exception) { bool config_output_not_a_dir = false; try { throw; } catch (NoSuchFileOrDirectory &) { config_output_not_a_dir = true; } catch (NotADirectory &) { config_output_not_a_dir = true; } if (!config_output_not_a_dir) throw; if (config_output_not_a_dir) { /* No, it's not a directory, it must be a file: */ std::string output_directory_name; split_path(config.output, output_directory_name, index_file_name); if (index_file_name.length() == 0) throw no_such_directory_exception; output_dir.reset(new Directory(output_directory_name)); } } output_file.reset(new File(*output_dir, index_file_name)); page_files.reset(new IndirectComponentList(n_pages, page_map, *output_dir)); djvm.reset(new IndirectDjVm(*output_file)); } if (config.pages.size() == 0) config.pages.push_back(std::make_pair(1, n_pages)); for ( std::vector< std::pair >::iterator page_range = config.pages.begin(); page_range != config.pages.end(); page_range++) for (int n = page_range->first; n <= n_pages && n <= page_range->second; n++) { static int i = 1; page_map.set(n, i); page_numbers.push_back(n); i++; } if (page_numbers.size() == 0) throw Config::NoPagesSelected(); std::auto_ptr out1; std::auto_ptr outm, outs; std::auto_ptr doc; const char *doc_filename = NULL; bool crop = !config.use_media_box; debug(0)++; #pragma omp parallel for private(out1, outm, outs, doc) firstprivate(doc_filename) reduction(+: djvu_pages_size) schedule(runtime) for (size_t i = 0; i < page_numbers.size(); i++) { int m, n = page_numbers[i]; const char *new_filename; document_map.get(n, new_filename, m); if (new_filename != doc_filename) { doc_filename = new_filename; doc.reset(new pdf::Document(doc_filename)); #pragma omp critical { debug(0)--; debug(1) << doc->getFileName()->getCString() << ":" << std::endl; debug(0)++; } out1.reset(new pdf::Renderer(paper_color, config.monochrome)); out1->start_doc(doc.get()); outm.reset(new MutedRenderer(paper_color, config.monochrome, *page_files)); outm->start_doc(doc.get()); if (!config.monochrome) { outs.reset(new MutedRenderer(paper_color, config.monochrome, *page_files)); outs->start_doc(doc.get()); } } assert(doc.get() != NULL); assert(out1.get() != NULL); assert(outm.get() != NULL); if (!config.monochrome) assert(outs.get() != NULL); Component &component = (*page_files)[n]; #pragma omp critical { debug(1) << string_printf(_("page #%d -> #%d"), n, page_map.get(n)); if (config.n_jobs != 1) debug(2) << ":"; debug(1) << std::endl; } #if _OPENMP /* Multi-threading would interact badly with logging. Disable it for now. */ #define debug(x) if (config.n_jobs == 1) (debug)(x) #endif debug(0)++; debug(3) << _("rendering page (1st pass)") << std::endl; double page_width, page_height; doc->get_page_size(m, crop, page_width, page_height); int dpi = calculate_dpi(*doc, m, crop); doc->display_page(outm.get(), m, dpi, dpi, crop, true); int width = outm->getBitmapWidth(); int height = outm->getBitmapHeight(); n_pixels += width * height; debug(2) << string_printf(_("image size: %dx%d"), width, height) << std::endl; if (!config.no_render && outm->has_skipped_elements()) { /* Render the page second time, without skipping any elements. */ debug(3) << _("rendering page (2nd pass)") << std::endl; doc->display_page(out1.get(), m, dpi, dpi, crop, false); } debug(3) << _("preparing data for `csepdjvu`") << std::endl; debug(0)++; TemporaryFile sep_file; debug(3) << _("storing foreground image") << std::endl; bool has_background = false; int background_color[3]; bool has_foreground = false; bool has_text = false; (*quantizer)( outm->has_skipped_elements() ? out1.get() : outm.get(), outm.get(), width, height, background_color, has_foreground, has_background, sep_file ); bool nonwhite_background_color; if (has_background) { /* The image has a real (non-solid) background. Store subsampled IW44 image. */ int sub_width, sub_height; calculate_subsampled_size(width, height, config.bg_subsample, sub_width, sub_height); double hdpi = sub_width / page_width; double vdpi = sub_height / page_height; debug(3) << _("rendering background image") << std::endl; doc->display_page(outs.get(), m, hdpi, vdpi, crop, true); if (sub_width != outs->getBitmapWidth()) throw std::logic_error(_("Unexpected subsampled bitmap width")); if (sub_height != outs->getBitmapHeight()) throw std::logic_error(_("Unexpected subsampled bitmap height")); pdf::Pixmap bmp(outs.get()); debug(3) << _("storing background image") << std::endl; sep_file << "P6 " << sub_width << " " << sub_height << " 255" << std::endl; sep_file << bmp; nonwhite_background_color = false; outs->clear(); } else { /* Background is solid. */ nonwhite_background_color = (background_color[0] & background_color[1] & background_color[2] & 0xff) != 0xff; if (nonwhite_background_color) { /* Create a dummy background, just to assure existence of FGbz chunks. * The background chunk will be replaced later: */ int sub_width, sub_height; calculate_subsampled_size(width, height, 12, sub_width, sub_height); debug(3) << _("storing dummy background image") << std::endl; sep_file << "P6 " << sub_width << " " << sub_height << " 255" << std::endl; for (int x = 0; x < sub_width; x++) for (int y = 0; y < sub_height; y++) sep_file.write("\xff\xff\xff", 3); } } if (config.text) { debug(3) << _("storing text layer") << std::endl; const std::string &texts = outm->get_texts(); sep_file << texts; has_text = texts.length() > 0; outm->clear_texts(); } sep_file.close(); debug(0)--; { debug(3) << _("encoding layers with `csepdjvu`") << std::endl; DjVuCommand csepdjvu("csepdjvu"); csepdjvu << "-d" << dpi; if (config.bg_slices) csepdjvu << "-q" << config.bg_slices; if (config.text == config.TEXT_LINES) csepdjvu << "-t"; csepdjvu << sep_file << component; csepdjvu(); } const bool should_have_fgbz = has_background || has_foreground || nonwhite_background_color; const bool need_reassemble = config.no_render ? false : (config.monochrome || nonwhite_background_color || !should_have_fgbz); TemporaryFile sed_file; if (need_reassemble) { TemporaryFile sjbz_file, fgbz_file, bg44_file; if (!config.monochrome) { /* Extract FGbz and BG44 image chunks, to that they can be mangled and * re-assembled later: */ debug(3) << _("recovering images with `djvuextract`") << std::endl; DjVuCommand djvuextract("djvuextract"); djvuextract << component; if (should_have_fgbz) djvuextract << std::string("FGbz=") + std::string(fgbz_file) << std::string("BG44=") + std::string(bg44_file); djvuextract << std::string("Sjbz=") + std::string(sjbz_file); djvuextract(config.verbose < 3); } if (config.monochrome) { /* Use cjb2 for lossy compression: */ TemporaryFile pbm_file; debug(3) << _("encoding monochrome image with `cjb2`") << std::endl; DjVuCommand cjb2("cjb2"); cjb2 << "-losslevel" << config.loss_level << pbm_file << sjbz_file; pbm_file << "P4 " << width << " " << height << std::endl; pdf::Pixmap bmp(outm->has_skipped_elements() ? out1.get() : outm.get()); pbm_file << bmp; pbm_file.close(); cjb2(); } else if (nonwhite_background_color) { TemporaryFile c44_file; c44_file.close(); { /* Create solid-color PPM image with subsample ratio 12: */ TemporaryFile ppm_file; debug(3) << _("creating new background image with `c44`") << std::endl; DjVuCommand c44("c44"); c44 << "-slice" << "97" << ppm_file << c44_file; int bg_width = (width + 11) / 12; int bg_height = (height + 11) / 12; ppm_file << "P6 " << bg_width << " " << bg_height << " 255" << std::endl; for (int y = 0; y < bg_height; y++) for (int x = 0; x < bg_width; x++) for (int i = 0; i < 3; i++) { char c = background_color[i]; ppm_file.write(&c, 1); } ppm_file.close(); c44(); } { /* Replace previous (dummy) BG44 chunk with the newly created one: */ debug(3) << _("recovering image chunks with `djvuextract`") << std::endl; DjVuCommand djvuextract("djvuextract"); djvuextract << c44_file << std::string("BG44=") + std::string(bg44_file); djvuextract(config.verbose < 3); } } if (has_text) { /* Extract hidden text layer (as created by csepdjvu); save it into the sed file: */ debug(3) << _("recovering text with `djvused`") << std::endl; DjVuCommand djvused("djvused"); djvused << component << "-e" << "output-txt"; djvused(sed_file); } { /* Re-assemble new DjVu using previously mangled chunks: */ debug(3) << _("re-assembling page with `djvumake`") << std::endl; DjVuCommand djvumake("djvumake"); std::ostringstream info; info << "INFO=" << width << "," << height << "," << dpi; djvumake << component << info.str() << std::string("Sjbz=") + std::string(sjbz_file); if (should_have_fgbz && (fgbz_file.size() || bg44_file.size())) djvumake << std::string("FGbz=") + std::string(fgbz_file) << std::string("BG44=") + std::string(bg44_file) + std::string(":99"); djvumake(); } } { /* Extract annotations (hyperlinks); save it into the sed file: */ debug(3) << _("extracting annotations") << std::endl; const std::vector &annotations = outm->get_annotations(); sed_file << "select 1" << std::endl << "set-ant" << std::endl; for (std::vector::const_iterator it = annotations.begin(); it != annotations.end(); it++) sed_file << *it << std::endl; sed_file << "." << std::endl; outm->clear_annotations(); } outm->clear(); sed_file.close(); { /* Add per-page non-raster data into the DjVu file: */ debug(3) << _("adding non-raster data with `djvused`") << std::endl; DjVuCommand djvused("djvused"); djvused << component << "-s" << "-f" << sed_file; djvused(); } { size_t page_size = component.size(); debug(2) << string_printf(ngettext("%zu bytes out", "%zu bytes out", page_size), page_size) << std::endl; djvu_pages_size += page_size; } debug(0)--; #if _OPENMP #undef debug #endif } /* Separate loop to avoid parallelization: */ for (size_t i = 0; i < page_numbers.size(); i++) { int n = page_numbers[i]; *djvm << (*page_files)[n]; } djvm->create(); /* Only first PDF document metadata/outline is taken into account. */ doc.reset(new pdf::Document(config.filenames[0])); if (config.extract_metadata) { TemporaryFile sed_file; pdf::Metadata metadata(*doc); debug(3) << _("extracting XMP metadata") << std::endl; { std::string xmp_bytes = doc->get_xmp(); debug(0)++; if (config.adjust_metadata) try { xmp_bytes = xmp::transform(xmp_bytes, metadata); } catch (xmp::XmlError &ex) { debug(1) << string_printf(_("Warning: %s"), ex.what()) << std::endl; } debug(0)--; if (xmp_bytes.length()) { sexpr::GCLock gc_lock; static sexpr::Ref xmp_symbol = sexpr::symbol("xmp"); sexpr::Ref xmp = sexpr::nil; xmp = sexpr::cons(sexpr::string(xmp_bytes), xmp); xmp = sexpr::cons(xmp_symbol, xmp); sed_file << "create-shared-ant" << std::endl << "set-ant" << std::endl << xmp << std::endl << "." << std::endl; } } debug(3) << _("extracting document-information metadata") << std::endl; sed_file << "set-meta" << std::endl; pdf_metadata_to_djvu_metadata(metadata, sed_file); sed_file << "." << std::endl; sed_file.close(); djvm->set_metadata(sed_file); } if (config.extract_outline) { bool nonempty_outline; TemporaryFile sed_file; debug(3) << _("extracting document outline") << std::endl; if (config.format == config.FORMAT_BUNDLED) { /* Shared annotations chunk in necessary to preserve multi-file document * structure. (Single-file documents cannot contain document outline.) */ sed_file << "create-shared-ant" << std::endl; } sed_file << "set-outline" << std::endl; nonempty_outline = pdf_outline_to_djvu_outline(*doc, sed_file, *page_files); sed_file << std::endl << "." << std::endl; sed_file.close(); if (nonempty_outline) djvm->set_outline(sed_file); } djvm->commit(); { size_t djvu_size = output_file->size(); if (config.format == config.FORMAT_INDIRECT) { djvu_size += djvu_pages_size; try { ExistingFile shared_anno(*output_dir, djvu::shared_ant_file_name); djvu_size += shared_anno.size(); } catch (std::ios_base::failure &ex) { /* Let's assume that there are no shared annotations. */ } } /* Poppler resets the LC_NUMERIC locale settings: * http://bugs.debian.org/533425 * * We need to work around this bug. */ i18n::setup_locale(); double bpp = 8.0 * djvu_size / n_pixels; double ratio = 1.0 * pdf_byte_size / djvu_size; double percent_saved = (1.0 * pdf_byte_size - djvu_size) * 100 / pdf_byte_size; debug(0)--; debug(1) << string_printf( _("%.3f bits/pixel; %.3f:1, %.2f%% saved, %ju bytes in, %zu bytes out"), bpp, ratio, percent_saved, pdf_byte_size, djvu_size ) << std::endl; } if (config.output_stdout) copy_stream(*output_file, std::cout, true); return 0; } int main(int argc, char * const argv[]) try { i18n::setup(argv[0]); xmain(argc, argv); } catch (std::ios_base::failure &ex) { error_log << string_printf(_("I/O error (%s)"), ex.what()) << std::endl; exit(2); } catch (std::runtime_error &ex) { error_log << ex << std::endl; exit(1); } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/pdf-dpi.hh0000644000000000000000000000214612151732402013674 0ustar rootroot/* Copyright © 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_PDF_DPI_H #define PDF2DJVU_PDF_DPI_H #include "pdf-backend.hh" #include namespace pdf { namespace dpi { class Guess { protected: double min_, max_; public: explicit Guess(double min, double max) : min_(min), max_(max) { }; double min() const { return this->min_; } double max() const { return this->max_; } }; class NoGuess { }; class Guesser { protected: void *magic; pdf::Document &document; public: explicit Guesser(pdf::Document &document); ~Guesser(); Guess operator[](int n); }; } } static inline std::ostream & operator <<(std::ostream &stream, const pdf::dpi::Guess &guess) { stream << guess.min(); if (guess.min() < guess.max()) stream << ".." << guess.max(); return stream; }; #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/pdf-dpi.cc0000644000000000000000000001042512151732402013661 0ustar rootroot/* Copyright © 2009, 2011 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include "pdf-dpi.hh" #include class DpiGuessDevice : public pdf::OutputDevice { protected: double min_; double max_; void process_image(pdf::gfx::State *state, int width, int height); #if POPPLER_VERSION < 1101 virtual void drawImageMask(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::Bool invert, pdf::Bool inline_image) #else virtual void drawImageMask(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::Bool invert, pdf::Bool interpolate, pdf::Bool inline_image) #endif { this->process_image(state, width, height); } #if POPPLER_VERSION < 1101 virtual void drawImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, int *mask_colors, pdf::Bool inline_image) #else virtual void drawImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Bool interpolate, int *mask_colors, pdf::Bool inline_image) #endif { this->process_image(state, width, height); } #if POPPLER_VERSION < 1101 virtual void drawMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::Bool mask_invert) #else virtual void drawMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Bool interpolate, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::Bool mask_invert, pdf::Bool mask_interpolate) #endif { this->process_image(state, width, height); this->process_image(state, mask_width, mask_height); } #if POPPLER_VERSION < 1101 virtual void drawSoftMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::gfx::ImageColorMap *mask_color_map) #else virtual void drawSoftMaskedImage(pdf::gfx::State *state, pdf::Object *object, pdf::Stream *stream, int width, int height, pdf::gfx::ImageColorMap *color_map, pdf::Bool interpolate, pdf::Stream *mask_stream, int mask_width, int mask_height, pdf::gfx::ImageColorMap *mask_color_map, pdf::Bool mask_interpolate) #endif { this->process_image(state, width, height); this->process_image(state, mask_width, mask_height); } virtual GBool interpretType3Chars() { return false; } virtual GBool upsideDown() { return false; } virtual GBool useDrawChar() { return false; } public: DpiGuessDevice() { this->reset(); } void reset() { this->max_ = 0.0; this->min_ = std::numeric_limits::infinity(); } double min() const { return this->min_; } double max() const { return this->max_; } virtual ~DpiGuessDevice() { } }; void DpiGuessDevice::process_image(pdf::gfx::State *state, int width, int height) { double *ctm = state->getCTM(); double h_dpi = 72.0 * width / hypot(ctm[0], ctm[1]); double v_dpi = 72.0 * height / hypot(ctm[2], ctm[3]); this->min_ = std::min(this->min_, std::min(h_dpi, v_dpi)); this->max_ = std::max(this->max_, std::max(h_dpi, v_dpi)); } pdf::dpi::Guesser::Guesser(pdf::Document &document) : document(document) { DpiGuessDevice *guess_device = new DpiGuessDevice(); this->magic = guess_device; } pdf::dpi::Guesser::~Guesser() { DpiGuessDevice *guess_device = static_cast(this->magic); delete guess_device; } pdf::dpi::Guess pdf::dpi::Guesser::operator[](int n) { DpiGuessDevice *guess_device = static_cast(this->magic); guess_device->reset(); this->document.displayPages(guess_device, n, n, 72, 72, 0, true, false, false); double min = guess_device->min(); double max = guess_device->max(); if (max == 0.0) throw pdf::dpi::NoGuess(); return pdf::dpi::Guess(min, max); } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/pdf-backend.hh0000644000000000000000000002410412151732402014505 0ustar rootroot/* Copyright © 2007, 2008, 2009 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_PDF_BACKEND_H #define PDF2DJVU_PDF_BACKEND_H #include #include #include #include #include #include "version.hh" #include #include #include #include #include #include #include #include #include #include "i18n.hh" namespace pdf { /* type definitions — splash output device * ======================================= */ namespace splash { typedef ::Splash Splash; typedef ::SplashColor Color; typedef ::SplashFont Font; typedef ::SplashCoord Coord; typedef ::SplashPath Path; typedef ::SplashGlyphBitmap GlyphBitmap; typedef ::SplashBitmap Bitmap; typedef ::SplashOutputDev OutputDevice; typedef ::SplashClipResult ClipResult; } /* miscellaneous type definitions * ============================== */ typedef ::OutputDev OutputDevice; typedef ::Stream Stream; typedef ::Object Object; typedef ::Dict Dict; typedef ::Catalog Catalog; typedef ::GooString String; typedef ::GBool Bool; #if POPPLER_VERSION < 2300 typedef int Offset; #else typedef ::Goffset Offset; #endif /* type definitions — annotations * ============================== */ namespace ant { typedef ::Annot Annotation; typedef ::AnnotColor Color; } /* type definitions — hyperlinks * ============================= */ namespace link { #if POPPLER_VERSION < 1700 typedef ::Link Link; #else typedef ::AnnotLink Link; #endif typedef ::LinkAction Action; typedef ::LinkDest Destination; typedef ::LinkGoTo GoTo; typedef ::LinkURI URI; } /* type definitions — rendering subsystem * ====================================== */ namespace gfx { typedef ::GfxSubpath Subpath; typedef ::GfxPath Path; typedef ::GfxState State; typedef ::GfxImageColorMap ImageColorMap; typedef ::GfxColorComp ColorComponent; typedef ::GfxColor Color; typedef ::GfxRGB RgbColor; typedef ::GfxDeviceCMYKColorSpace DeviceCmykColorSpace; } /* class pdf::Renderer : pdf::splash::OutputDevice * =============================================== */ class Renderer : public pdf::splash::OutputDevice { public: Renderer(pdf::splash::Color &paper_color, bool monochrome = false) : pdf::splash::OutputDevice(monochrome ? splashModeMono1 : splashModeRGB8, 4, gFalse, paper_color) { } #if POPPLER_VERSION < 1900 void processLink(pdf::link::Link *link, pdf::Catalog *catalog) { this->drawLink(link, catalog); } #else void processLink(pdf::link::Link *link) { this->drawLink(link, NULL); } #endif virtual void drawLink(pdf::link::Link *link, pdf::Catalog *catalog); virtual void draw_link(pdf::link::Link *link, const std::string &border_color) { } std::vector link_border_colors; void start_doc(::PDFDoc *doc) { #if POPPLER_VERSION < 1900 this->startDoc(doc->getXRef()); #else this->startDoc(doc); #endif this->catalog = doc->getCatalog(); } protected: pdf::Catalog *catalog; static void convert_path(gfx::State *state, pdf::splash::Path &splash_path); }; /* class pdf::Pixmap::iterator * =========================== */ class PixmapIterator { protected: const uint8_t *row_ptr; const uint8_t *ptr; size_t row_size; public: PixmapIterator(const uint8_t *raw_data, size_t row_size) { this->row_ptr = this->ptr = raw_data; this->row_size = row_size; } PixmapIterator &operator ++(int) { ptr += 3; return *this; } void next_row() { ptr = row_ptr = row_ptr + row_size; } uint8_t operator[](int n) const { return this->ptr[n]; } }; /* class pdf::Pixmap * ================= */ class Pixmap { private: Pixmap(const Pixmap&); // not defined Pixmap& operator=(const Pixmap&); // not defined protected: const uint8_t *raw_data; pdf::splash::Bitmap *bmp; size_t row_size; size_t byte_width; bool monochrome; int width, height; public: typedef PixmapIterator iterator; int get_width() const { return width; } int get_height() const { return height; } explicit Pixmap(Renderer *renderer) { bmp = renderer->takeBitmap(); raw_data = const_cast(bmp->getDataPtr()); width = bmp->getWidth(); height = bmp->getHeight(); row_size = bmp->getRowSize(); this->monochrome = false; switch (bmp->getMode()) { case splashModeMono1: this->byte_width = (width + 7) / 8; this->monochrome = true; break; case splashModeMono8: this->byte_width = width; break; case splashModeRGB8: case splashModeBGR8: this->byte_width = width * 3; break; case splashModeXBGR8: this->byte_width = width * 4; break; } } ~Pixmap() throw () { delete bmp; } PixmapIterator begin() const { return PixmapIterator(raw_data, row_size); } friend std::ostream &operator<<(std::ostream &, const Pixmap &); }; /* class pdf::OwnedObject : pdf::Object * ==================================== */ class OwnedObject : public Object { public: ~OwnedObject() throw () { this->free(); } }; /* class pdf::NFKC * =============== */ class NFKC { protected: Unicode* data; int int_length; public: explicit NFKC(Unicode *, int length); ~NFKC() throw (); size_t length() const { return static_cast(this->int_length); } operator const Unicode*() const { return this->data; } }; /* class pdf::Environment * ====================== */ class Environment { public: Environment(const char *argv0); void set_antialias(bool value); class UnableToSetParameter : public std::runtime_error { public: UnableToSetParameter(const std::string &message) : std::runtime_error(message) { } }; }; /* class pdf::Document * =================== */ class Document : public ::PDFDoc { public: Document(const std::string &file_name); void display_page(Renderer *renderer, int npage, double hdpi, double vdpi, bool crop, bool do_links); void get_page_size(int n, bool crop, double &width, double &height); const std::string get_xmp(); class LoadError : public std::runtime_error { public: LoadError() : std::runtime_error(_("Unable to load document")) { } }; }; /* class pdf::Timestamp * ==================== */ class Timestamp { protected: bool dummy; struct tm timestamp; char tz_sign; int tz_hour; int tz_minute; public: Timestamp(); Timestamp(int year, int month, int day, int hour = 0, int minute = 0, int second = 0, char tz_sign = 0, int tz_hour = 0, int tz_minute = 0); std::string format(char separator = 'T') const; static Timestamp now(); class Invalid : public std::runtime_error { public: Invalid() : std::runtime_error(_("Invalid date format")) { } }; }; /* class pdf::Metadata * =================== */ class Metadata { protected: typedef std::pair string_field; std::vector string_fields; typedef std::pair date_field; std::vector date_fields; public: Metadata(pdf::Document &document); std::string title; std::string subject; std::string keywords; std::string author; std::string creator; std::string producer; Timestamp creation_date; Timestamp mod_date; template void iterate( void (*string_callback)(const char *, const std::string &, T &), void (*date_callback)(const char *, const Timestamp &, T &), T &extra ) const; }; template void Metadata::iterate( void (*string_callback)(const char *, const std::string &, T &), void (*date_callback)(const char *, const Timestamp &, T &), T &extra ) const { for (std::vector::const_iterator it = this->string_fields.begin(); it != this->string_fields.end(); it++) string_callback(it->first, *it->second, extra); for (std::vector::const_iterator it = this->date_fields.begin(); it != this->date_fields.end(); it++) date_callback(it->first, *it->second, extra); } /* utility functions * ================= */ void set_color(pdf::splash::Color &result, uint8_t r, uint8_t g, uint8_t b); namespace gfx { static inline double color_component_as_double(pdf::gfx::ColorComponent c) { return ::colToDbl(c); } static inline pdf::gfx::ColorComponent double_as_color_component(double x) { return ::dblToCol(x); } } /* glyph-related functions * ======================= */ bool get_glyph(pdf::splash::Splash *splash, pdf::splash::Font *font, double x, double y, // x, y are transformed (i.e. output device) coordinates int code, pdf::splash::GlyphBitmap *bitmap); /* dictionary lookup * ================= */ pdf::Object *dict_lookup(pdf::Object &dict, const char *key, pdf::Object *object); pdf::Object *dict_lookup(pdf::Object *dict, const char *key, pdf::Object *object); pdf::Object *dict_lookup(pdf::Dict *dict, const char *key, pdf::Object *object); /* path-related functions * ====================== */ double get_path_area(pdf::splash::Path &path); /* Unicode → UTF-8 conversion * ========================== */ void write_as_utf8(std::ostream &stream, Unicode unicode_char); std::string string_as_utf8(pdf::String *); std::string string_as_utf8(pdf::Object &); } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/pdf-backend.cc0000644000000000000000000004577512151732402014514 0ustar rootroot/* Copyright © 2007, 2008, 2009, 2010, 2012 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #include #include #include #include #include #include #include #include #include #include #include "debug.hh" #include "i18n.hh" #include "pdf-backend.hh" #include "system.hh" #include #include #include #if (POPPLER_VERSION < 2100) || (POPPLER_VERSION >= 2101) #include #endif #if POPPLER_VERSION >= 2100 #include #endif #include /* class pdf::Environment * ====================== */ #if POPPLER_VERSION < 1900 static void poppler_error_handler(pdf::Offset pos, char *message, va_list args) { std::string format; std::string expanded_message = string_vprintf(message, args); const char *c_message = expanded_message.c_str(); const char *category = _("PDF error"); if (pos >= 0) { error_log << /* L10N: " (): " */ string_printf(_("%s (%jd): %s"), category, static_cast(pos), c_message); } else { error_log << /* L10N: ": " */ string_printf(_("%s: %s"), category, c_message); } error_log << std::endl; } #else static void poppler_error_handler(void *data, ErrorCategory category, pdf::Offset pos, char *message) { std::string format; const char *category_name = _("PDF error"); switch (category) { case errSyntaxWarning: category_name = _("PDF syntax warning"); break; case errSyntaxError: category_name = _("PDF syntax error"); break; case errConfig: category_name = _("Poppler configuration error"); break; case errCommandLine: break; /* should not happen */ case errIO: category_name = _("Input/output error"); break; case errNotAllowed: category_name = _("Permission denied"); break; case errUnimplemented: category_name = _("PDF feature not implemented"); break; case errInternal: category_name = _("Internal Poppler error"); break; } if (pos >= 0) { error_log << /* L10N: " (): " */ string_printf(_("%s (%jd): %s"), category_name, static_cast(pos), message); } else { error_log << /* L10N: ": " */ string_printf(_("%s: %s"), category_name, message); } error_log << std::endl; } #endif pdf::Environment::Environment(const char *argv0) { #if WIN32 /* Change the current working directory to be able to read poppler data. * This is not required (and potentially harmful) for Unix installations. */ std::string argv0_dir_name, argv0_file_name; split_path(argv0, argv0_dir_name, argv0_file_name); Cwd cwd(argv0_dir_name); #endif globalParams = new GlobalParams(); #if POPPLER_VERSION < 1900 setErrorFunction(poppler_error_handler); #else setErrorCallback(poppler_error_handler, NULL); #endif } void pdf::Environment::set_antialias(bool value) { if (!globalParams->setAntialias(const_cast(value ? "yes" : "no"))) throw UnableToSetParameter(_("Unable to set antialias parameter")); if (!globalParams->setVectorAntialias(const_cast(value ? "yes" : "no"))) throw UnableToSetParameter(_("Unable to set vector antialias parameter")); } /* class pdf::Document * =================== */ pdf::Document::Document(const std::string &file_name) : ::PDFDoc(new pdf::String(file_name.c_str()), NULL, NULL) { if (!this->isOk()) throw LoadError(); } static std::string html_color(const double rgb[]) { std::ostringstream stream; stream << "#"; for (int i = 0; i < 3; i++) stream << std::setw(2) << std::setfill('0') << std::hex << static_cast(rgb[i] * 0xff); return stream.str(); } static std::string html_color(double r, double g, double b) { double rgb[] = {r, g, b}; return html_color(rgb); } static void cmyk_to_rgb(const double cmyk[], double rgb[]) { static pdf::gfx::DeviceCmykColorSpace cmyk_space; pdf::gfx::Color cmyk_cc; pdf::gfx::RgbColor rgb_cc; for (int i = 0; i < 4; i++) cmyk_cc.c[i] = pdf::gfx::double_as_color_component(cmyk[i]); cmyk_space.getRGB(&cmyk_cc, &rgb_cc); rgb[0] = pdf::gfx::color_component_as_double(rgb_cc.r); rgb[1] = pdf::gfx::color_component_as_double(rgb_cc.g); rgb[2] = pdf::gfx::color_component_as_double(rgb_cc.b); } static pdf::Bool annotations_callback(pdf::ant::Annotation *annotation, void *user_data) { std::vector &border_colors = *reinterpret_cast*>(user_data); std::string border_color; if (annotation->getType() != pdf::ant::Annotation::typeLink) return true; pdf::ant::Color *color = annotation->getColor(); if (color == NULL) { border_colors.push_back(""); return true; } const double *values = color->getValues(); switch (color->getSpace()) { case pdf::ant::Color::colorTransparent: break; case pdf::ant::Color::colorGray: border_color = html_color(values[0], values[0], values[0]); break; case pdf::ant::Color::colorRGB: border_color = html_color(values); break; case pdf::ant::Color::colorCMYK: { double rgb[3]; cmyk_to_rgb(values, rgb); border_color = html_color(rgb); } } border_colors.push_back(border_color); return true; } void pdf::Document::display_page(pdf::Renderer *renderer, int npage, double hdpi, double vdpi, bool crop, bool do_links) { renderer->link_border_colors.clear(); this->displayPage(renderer, npage, hdpi, vdpi, 0, !crop, crop, !do_links, NULL, NULL, do_links ? annotations_callback : NULL, do_links ? &renderer->link_border_colors : NULL ); std::reverse(renderer->link_border_colors.begin(), renderer->link_border_colors.end()); this->processLinks(renderer, npage); } void pdf::Document::get_page_size(int n, bool crop, double &width, double &height) { width = crop ? this->getPageCropWidth(n) : this->getPageMediaWidth(n); height = crop ? this->getPageCropHeight(n) : this->getPageMediaHeight(n); width /= 72.0; height /= 72.0; if ((this->getPageRotate(n) / 90) & 1) std::swap(width, height); } const std::string pdf::Document::get_xmp() { std::auto_ptr mstring; mstring.reset(this->readMetadata()); if (mstring.get() == NULL) return ""; const char *cstring = mstring->getCString(); if (strncmp(cstring, "') return ""; while (*cstring && *cstring != '<') cstring++; const char *endcstring = strrchr(cstring, '>'); if (endcstring < cstring + 32) return ""; if (*--endcstring != '?') return ""; char quote = *--endcstring; if ((quote != '\'') && (quote != '"')) return ""; if (*--endcstring != 'w' || *--endcstring != quote) return ""; endcstring -= 14; if (strncmp(endcstring, " cstring && *endcstring != '>') endcstring--; return std::string(cstring, endcstring - cstring + 1); } /* class pdf::Timestamp * ==================== */ pdf::Timestamp::Timestamp() : dummy(true) { } pdf::Timestamp pdf::Timestamp::now() { time_t unix_now; pdf::Timestamp result; result.dummy = false; result.tz_sign = '+'; result.tz_hour = 0; result.tz_minute = 0; time(&unix_now); if (unix_now == static_cast(-1)) throw pdf::Timestamp::Invalid(); struct tm *c_timestamp = gmtime(&unix_now); if (c_timestamp == NULL) throw pdf::Timestamp::Invalid(); result.timestamp = *c_timestamp; return result; } pdf::Timestamp::Timestamp(int year, int month, int day, int hour, int minute, int second, char tz_sign, int tz_hour, int tz_minute) : dummy(false), tz_sign(tz_sign), tz_hour(tz_hour), tz_minute(tz_minute) { this->timestamp.tm_isdst = -1; this->timestamp.tm_year = year - 1900; this->timestamp.tm_mon = month - 1; this->timestamp.tm_mday = day; this->timestamp.tm_hour = hour; this->timestamp.tm_min = minute; this->timestamp.tm_sec = second; } std::string pdf::Timestamp::format(char separator) const { /* Format timestamp according to RFC 3339 date format, * e.g. "2007-10-27S13:19:59+02:00", where S is the separator. */ if (this->dummy) return ""; std::ostringstream stream; char buffer[17 + CHAR_BIT * sizeof this->timestamp.tm_year / 3]; char format[] = "%Y-%m-%d %H:%M:%S"; format[8] = separator; struct tm tmp_timestamp = this->timestamp; if (mktime(&tmp_timestamp) == static_cast(-1)) throw Invalid(); if (strftime(buffer, sizeof buffer, format, &this->timestamp) != 19) throw Invalid(); stream << buffer; if (this->tz_sign) { if (this->tz_hour < 0 || this->tz_hour >= 24) throw Invalid(); if (this->tz_minute < 0 || this->tz_minute >= 60) throw Invalid(); stream << this->tz_sign << std::setw(2) << std::setfill('0') << this->tz_hour << ":" << std::setw(2) << std::setfill('0') << this->tz_minute ; } return stream.str(); } /* class pdf::Metadata * =================== */ static int scan_date_digits(char * &input, int n) { int value = 0; for (int i = 0; i < n; i++) { if (*input >= '0' && *input <= '9' && value < INT_MAX / 10) { value *= 10; value += *input - '0'; } else return INT_MIN; input++; } return value; } pdf::Metadata::Metadata(pdf::Document &document) { string_fields.push_back(std::make_pair("Title", &this->title)); string_fields.push_back(std::make_pair("Subject", &this->subject)); string_fields.push_back(std::make_pair("Keywords", &this->keywords)); string_fields.push_back(std::make_pair("Author", &this->author)); string_fields.push_back(std::make_pair("Creator", &this->creator)); string_fields.push_back(std::make_pair("Producer", &this->producer)); date_fields.push_back(std::make_pair("CreationDate", &this->creation_date)); date_fields.push_back(std::make_pair("ModDate", &this->mod_date)); pdf::OwnedObject info; document.getDocInfo(&info); if (!info.isDict()) return; pdf::Dict *info_dict = info.getDict(); for (std::vector::iterator it = this->string_fields.begin(); it != this->string_fields.end(); it++) { pdf::OwnedObject object; if (!pdf::dict_lookup(info_dict, it->first, &object)->isString()) continue; *it->second = pdf::string_as_utf8(object); } for (std::vector::iterator it = this->date_fields.begin(); it != this->date_fields.end(); it++) { pdf::OwnedObject object; char tzs = 0; int tzh = 0, tzm = 0; if (!pdf::dict_lookup(info_dict, it->first, &object)->isString()) continue; char *input = object.getString()->getCString(); if (input[0] == 'D' && input[1] == ':') input += 2; int year = scan_date_digits(input, 4); int month = *input ? scan_date_digits(input, 2) : 1; int day = *input ? scan_date_digits(input, 2) : 1; int hour = *input ? scan_date_digits(input, 2) : 0; int minute = *input ? scan_date_digits(input, 2) : 0; int second = *input ? scan_date_digits(input, 2) : 0; switch (*input) { case '\0': tzs = 0; break; case '-': case '+': tzs = *input; input++; tzh = scan_date_digits(input, 2); if (*input == '\'') input++; else tzh = -1; tzm = scan_date_digits(input, 2); if (*input == '\'') input++; else tzh = -1; break; case 'Z': input++; tzs = '+'; tzh = tzm = 0; break; default: tzh = -1; } if (*input) tzh = -1; *it->second = Timestamp(year, month, day, hour, minute, second, tzs, tzh, tzm); } } /* utility functions * ================= */ void pdf::set_color(splash::Color &result, uint8_t r, uint8_t g, uint8_t b) { result[0] = r; result[1] = g; result[2] = b; } /* class pdf::Renderer : pdf::splash::OutputDevice * =============================================== */ void pdf::Renderer::drawLink(pdf::link::Link *link, pdf::Catalog *catalog) { std::string border_color; if (this->link_border_colors.size()) { border_color = this->link_border_colors.back(); this->link_border_colors.pop_back(); } this->draw_link(link, border_color); } /* glyph-related functions * ======================= */ bool pdf::get_glyph(splash::Splash *splash, splash::Font *font, double x, double y, int code, splash::GlyphBitmap *bitmap) { if (font == NULL) return false; splash::ClipResult clip_result; if (!font->getGlyph(code, 0, 0, bitmap, static_cast(x), static_cast(y), splash->getClip(), &clip_result)) return false; return (clip_result != splashClipAllOutside); } /* path-related functions/methods * ============================== */ void pdf::Renderer::convert_path(pdf::gfx::State *state, splash::Path &splash_path) { /* Source was copied from . */ pdf::gfx::Subpath *subpath; pdf::gfx::Path *path = state->getPath(); int n_subpaths = path->getNumSubpaths(); for (int i = 0; i < n_subpaths; i++) { subpath = path->getSubpath(i); if (subpath->getNumPoints() > 0) { double x1, y1, x2, y2, x3, y3; state->transform(subpath->getX(0), subpath->getY(0), &x1, &y1); splash_path.moveTo((splash::Coord)x1, (splash::Coord)y1); int j = 1; int n_points = subpath->getNumPoints(); while (j < n_points) { if (subpath->getCurve(j)) { state->transform(subpath->getX(j), subpath->getY(j), &x1, &y1); state->transform(subpath->getX(j + 1), subpath->getY(j + 1), &x2, &y2); state->transform(subpath->getX(j + 2), subpath->getY(j + 2), &x3, &y3); splash_path.curveTo( (splash::Coord)x1, (splash::Coord)y1, (splash::Coord)x2, (splash::Coord)y2, (splash::Coord)x3, (splash::Coord)y3 ); j += 3; } else { state->transform(subpath->getX(j), subpath->getY(j), &x1, &y1); splash_path.lineTo((splash::Coord)x1, (splash::Coord)y1); j++; } } if (subpath->isClosed()) splash_path.close(); } } } double pdf::get_path_area(splash::Path &path) { double area = 0.0; int path_len = path.getLength(); double x0, y0; Guchar ch; path.getPoint(0, &x0, &y0, &ch); for (int i = 0; i < path_len - 1; i++) { double x1, y1, x2, y2; path.getPoint(i + 1, &x1, &y1, &ch); path.getPoint((i + 2) % path_len, &x2, &y2, &ch); x1 -= x0; y1 -= y0; x2 -= x0; y2 -= y0; area += x1 * y2 - x2 * y1; } return fabs(area); } /* dictionary lookup * ================= */ pdf::Object *pdf::dict_lookup(pdf::Object &dict, const char *key, pdf::Object *object) { return dict.dictLookup(const_cast(key), object); } pdf::Object *pdf::dict_lookup(pdf::Object *dict, const char *key, pdf::Object *object) { return dict->dictLookup(const_cast(key), object); } pdf::Object *pdf::dict_lookup(pdf::Dict *dict, const char *key, pdf::Object *object) { return dict->lookup(const_cast(key), object); } /* Unicode → UTF-8 conversion * ========================== */ void pdf::write_as_utf8(std::ostream &stream, Unicode unicode_char) { char buffer[8]; int seqlen = mapUTF8(unicode_char, buffer, sizeof buffer); stream.write(buffer, seqlen); } std::string pdf::string_as_utf8(pdf::String *string) { /* See * http://unicode.org/faq/utf_bom.html * for description of both UTF-16 and UTF-8. */ const static uint32_t replacement_character = 0xfffd; const char *cstring = string->getCString(); size_t clength = string->getLength(); std::ostringstream stream; if (clength >= 2 && (cstring[0] & 0xff) == 0xfe && (cstring[1] & 0xff) == 0xff) { /* UTF-16-BE Byte Order Mark has been recognized. */ uint32_t code, code_shift = 0; for (size_t i = 2; i < clength; i += 2) { if (i + 1 < clength) code = ((cstring[i] & 0xff) << 8) + (cstring[i + 1] & 0xff); else { /* A lone byte is encountered. */ code = replacement_character; } if (code_shift) { /* A leading surrogate has been encountered. */ if (code >= 0xdc00 && code < 0xe000) { /* A trailing surrogate is encountered. */ code = code_shift + (code & 0x3ff); if (code >= 0x110000) code = replacement_character; } else { /* An unpaired surrogate is encountered. */ code = replacement_character; } code_shift = 0; } else if (code >= 0xd800 && code < 0xdc00) { /* A leading surrogate is encountered. */ code_shift = 0x10000 + ((code & 0x3ff) << 10); continue; } if ((code & 0xfffe) == 0xfffe) { /* A non-character is encountered. */ code = replacement_character; } if (code < 0x80) { char ascii = code; stream << ascii; } else { char buffer[4]; size_t nbytes; for (nbytes = 2; nbytes < 4; nbytes++) if (code < (1U << (5 * nbytes + 1))) break; buffer[0] = (0xff00 >> nbytes) & 0xff; for (size_t i = nbytes - 1; i; i--) { buffer[i] = 0x80 | (code & 0x3f); code >>= 6; } buffer[0] |= code; stream.write(buffer, nbytes); } } } else { /* Use the PDFDoc encoding. */ for (size_t i = 0; i < clength; i++) write_as_utf8(stream, pdfDocEncoding[cstring[i] & 0xff]); } return stream.str(); } std::string pdf::string_as_utf8(pdf::Object &object) { return pdf::string_as_utf8(object.getString()); } /* class pdf::Pixmap * ================= */ namespace pdf { std::ostream &operator<<(std::ostream &stream, const pdf::Pixmap &pixmap) { const uint8_t *row_ptr = pixmap.raw_data; if (pixmap.monochrome) { for (int y = 0; y < pixmap.height; y++) { for (size_t x = 0; x < pixmap.byte_width; x++) stream.put(static_cast(row_ptr[x] ^ 0xff)); row_ptr += pixmap.row_size; } } else { for (int y = 0; y < pixmap.height; y++) { stream.write(reinterpret_cast(row_ptr), pixmap.byte_width); row_ptr += pixmap.row_size; } } return stream; } } /* class pdf::NFKC * =============== */ pdf::NFKC::NFKC(Unicode *unistr, int length) : data(NULL), int_length(0) { data = unicodeNormalizeNFKC(unistr, length, &this->int_length, NULL); } pdf::NFKC::~NFKC() throw () { gfree(this->data); } #if POPPLER_VERSION >= 1900 /* Preempt this poppler function, so that it doesn't stand in our way. */ pdf::Bool unicodeIsAlphabeticPresentationForm(Unicode c) { return 0; } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/image-filter.hh0000644000000000000000000000522212151732402014714 0ustar rootroot/* Copyright © 2008, 2009 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_IMAGE_FILTER_H #define PDF2DJVU_IMAGE_FILTER_H #include #include "pdf-backend.hh" #include "config.hh" #include "i18n.hh" class Quantizer { protected: const Config &config; public: virtual void operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) = 0; explicit Quantizer(const Config &config) : config(config) { } virtual ~Quantizer() throw () { } }; class DefaultQuantizer : public Quantizer { public: explicit DefaultQuantizer(const Config &config) : Quantizer(config) { } virtual void operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream); }; class WebSafeQuantizer : public Quantizer { protected: void output_web_palette(std::ostream &stream); public: explicit WebSafeQuantizer(const Config &config) : Quantizer(config) { } virtual void operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream); }; class MaskQuantizer : public Quantizer { public: explicit MaskQuantizer(const Config &config) : Quantizer(config) { } virtual void operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream); }; class DummyQuantizer : public Quantizer { public: explicit DummyQuantizer(const Config &config) : Quantizer(config) { } virtual void operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream); }; class GraphicsMagickQuantizer : public Quantizer { public: explicit GraphicsMagickQuantizer(const Config &config); virtual void operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream); class NotImplementedError : public std::runtime_error { public: NotImplementedError() : std::runtime_error(_("pdf2djvu was built without GraphicsMagick; advanced color quantization is disabled.")) { }; }; }; #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/image-filter.cc0000644000000000000000000003274612151732402014715 0ustar rootroot/* Copyright © 2008, 2009, 2010 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include "version.hh" #if HAVE_GRAPHICSMAGICK #include #endif #include #include #include #include "image-filter.hh" #include "config.hh" #include "djvuconst.hh" #include "rle.hh" static void dummy_quantizer(int width, int height, int *background_color, std::ostream &stream); void WebSafeQuantizer::output_web_palette(std::ostream &stream) { stream << "216" << std::endl; for (int r = 0; r < 6; r++) for (int g = 0; g < 6; g++) for (int b = 0; b < 6; b++) { unsigned char buffer[3] = { static_cast(51 * r), static_cast(51 * g), static_cast(51 * b) }; stream.write(reinterpret_cast(buffer), 3); } } static inline void write_uint32(std::ostream &stream, uint32_t item) { unsigned char buffer[4]; for (int i = 0; i < 4; i++) buffer[i] = item >> ((3 - i) * 8); stream.write(reinterpret_cast(buffer), 4); } void MaskQuantizer::operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) { if (out_fg == out_bg) { /* Don't bother to analyze images if they are obviously identical. */ dummy_quantizer(width, height, background_color, stream); has_background = true; return; } rle::R4 r4(stream, width, height); pdf::Pixmap bmp_fg(out_fg); pdf::Pixmap bmp_bg(out_bg); pdf::Pixmap::iterator p_fg = bmp_fg.begin(); pdf::Pixmap::iterator p_bg = bmp_bg.begin(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (!has_background) { for (int i = 0; i < 3; i++) if (background_color[i] != p_bg[i]) { has_background = true; break; } } if (p_fg[0] != p_bg[0] || p_fg[1] != p_bg[1] || p_fg[2] != p_bg[2]) { if (!has_foreground && (p_fg[0] || p_fg[1] || p_fg[2])) has_foreground = true; r4 << 1; } else r4 << 0; p_fg++, p_bg++; } p_fg.next_row(), p_bg.next_row(); } } void WebSafeQuantizer::operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) { if (out_fg == out_bg) { /* Don't bother to analyze images if they are obviously identical. */ dummy_quantizer(width, height, background_color, stream); has_background = true; return; } stream << "R6 " << width << " " << height << " "; output_web_palette(stream); pdf::Pixmap bmp_fg(out_fg); pdf::Pixmap bmp_bg(out_bg); pdf::Pixmap::iterator p_fg = bmp_fg.begin(); pdf::Pixmap::iterator p_bg = bmp_bg.begin(); for (int i = 0; i < 3; i++) background_color[i] = p_bg[i]; for (int y = 0; y < height; y++) { int new_color, color = 0xfff; int length = 0; for (int x = 0; x < width; x++) { if (!has_background) { for (int i = 0; i < 3; i++) if (background_color[i] != p_bg[i]) { has_background = true; break; } } if (p_fg[0] != p_bg[0] || p_fg[1] != p_bg[1] || p_fg[2] != p_bg[2]) { if (!has_foreground && (p_fg[0] || p_fg[1] || p_fg[2])) has_foreground = true; new_color = ((p_fg[2] + 1) / 43) + 6 * (((p_fg[1] + 1) / 43) + 6 * ((p_fg[0] + 1) / 43)); } else new_color = 0xfff; if (color == new_color) length++; else { if (length > 0) write_uint32(stream, ((uint32_t)color << 20) + length); color = new_color; length = 1; } p_fg++, p_bg++; } p_fg.next_row(), p_bg.next_row(); write_uint32(stream, ((uint32_t)color << 20) + length); } } class Rgb18 { protected: int value; public: explicit Rgb18() : value(-1) { } explicit Rgb18(int r, int g, int b) : value((r >> 2) | ((g >> 2) << 6) | ((b >> 2) << 12)) { } explicit Rgb18(size_t n) : value(n) { } template explicit Rgb18(const tp &components) : value((components[0] >> 2) | ((components[1] >> 2) << 6) | ((components[2] >> 2) << 12)) { } int operator [](int i) const { return (((this->value >> (6 * i)) << 2) & 0xff) | ((this->value >> (6 * i + 4)) & 3); } bool operator ==(Rgb18 other) const { return this->value == other.value; } operator int () const { return this->value; } Rgb18 reduce(int k) const { int components[3]; const int n = 1 << 8; const int c = (n + k - 1) / k; for (int i = 0; i < 3; i++) { const int m = ((*this)[i] * c) / n; components[i] = (n - 1) * m / (c - 1); } return Rgb18(components); } }; class Run { protected: Rgb18 color; size_t length; public: explicit Run(Rgb18 color) : color(color), length(0) { } explicit Run() : color(Rgb18()), length(0) { } void operator ++(int) { this->length++; } bool same_color(Rgb18 other_color) const { return this->color == other_color; } Rgb18 get_color() const { return this->color; } size_t get_length() const { return this->length; } }; void DefaultQuantizer::operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) { if (out_fg == out_bg) { /* Don't bother to analyze images if they are obviously identical. */ dummy_quantizer(width, height, background_color, stream); has_background = true; return; } stream << "R6 " << width << " " << height << " "; pdf::Pixmap bmp_fg(out_fg); pdf::Pixmap bmp_bg(out_bg); pdf::Pixmap::iterator p_fg = bmp_fg.begin(); pdf::Pixmap::iterator p_bg = bmp_bg.begin(); size_t color_counter = 0; std::bitset<1 << 18> original_colors; std::bitset<1 << 18> quantized_colors; std::vector > runs(height); for (int i = 0; i < 3; i++) background_color[i] = p_bg[i]; for (int y = 0; y < height; y++) { Run run; Rgb18 new_color; for (int x = 0; x < width; x++) { if (!has_background) { for (int i = 0; i < 3; i++) if (background_color[i] != p_bg[i]) { has_background = true; break; } } if (p_fg[0] != p_bg[0] || p_fg[1] != p_bg[1] || p_fg[2] != p_bg[2]) { if (!has_foreground && (p_fg[0] || p_fg[1] || p_fg[2])) has_foreground = true; new_color = Rgb18(p_fg[0], p_fg[1], p_fg[2]); if (!original_colors[new_color]) { color_counter++; original_colors.set(new_color); } } else new_color = Rgb18(); if (run.same_color(new_color)) run++; else { if (run.get_length() > 0) runs[y].push_back(run); run = Run(new_color); run++; } p_fg++, p_bg++; } p_fg.next_row(), p_bg.next_row(); if (run.get_length() > 0) runs[y].push_back(run); } /* Find appropriate color palette: */ int divisor = 4; while (color_counter > djvu::max_fg_colors) { size_t new_color_counter = 0; quantized_colors.reset(); divisor++; for (size_t color = 0; color < original_colors.size(); color++) { if (!original_colors[color]) continue; Rgb18 new_color = Rgb18(color).reduce(divisor); if (!quantized_colors[new_color]) { quantized_colors.set(new_color); new_color_counter++; if (new_color_counter > djvu::max_fg_colors) break; } } color_counter = new_color_counter; } if (divisor == 4) quantized_colors = original_colors; /* Output the palette: */ if (color_counter == 0) { stream << 1 << std::endl << "\xff\xff\xff"; } else { stream << color_counter << std::endl; for (size_t color = 0; color < quantized_colors.size(); color++) { if (quantized_colors[color]) { Rgb18 rgb18(color); unsigned char buffer[3]; for (int i = 0; i < 3; i++) buffer[i] = rgb18[i]; stream.write(reinterpret_cast(buffer), 3); } } } /* Map colors into color indices: */ std::map color_map; uint32_t last_color_index = 0; color_map[-1] = 0xfff; if (divisor == 4) for (size_t color = 0; color < original_colors.size(); color++) { if (!original_colors[color]) continue; color_map[color] = last_color_index++; } else { std::map quantized_color_map; for (size_t color = 0; color < quantized_colors.size(); color++) { if (!quantized_colors[color]) continue; quantized_color_map[color] = last_color_index++; } for (size_t color = 0; color < original_colors.size(); color++) { Rgb18 new_color = Rgb18(color).reduce(divisor); color_map[color] = quantized_color_map[new_color]; } } /* Output runs: */ for (int y = 0; y < height; y++) { const std::vector line_runs = runs[y]; for (std::vector::const_iterator run = line_runs.begin(); run != line_runs.end(); run++) { uint32_t color_index = color_map[run->get_color()]; write_uint32(stream, ((uint32_t)color_index << 20) + run->get_length()); } } } static void dummy_quantizer(int width, int height, int *background_color, std::ostream &stream) { rle::R4 r4(stream, width, height); for (int y = 0; y < height; y++) r4.output_run(width); background_color[0] = background_color[1] = background_color[2] = 0xff; } void DummyQuantizer::operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) { dummy_quantizer(width, height, background_color, stream); } #if HAVE_GRAPHICSMAGICK GraphicsMagickQuantizer::GraphicsMagickQuantizer(const Config &config) : Quantizer(config) { static bool initialized = false; if (!initialized) { /* Call to InitializeMagick() is obligatory with GraphicsMagick ≥ 1.3.8. */ Magick::InitializeMagick(""); initialized = true; } } void GraphicsMagickQuantizer::operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) { if (out_fg == out_bg) { /* Don't bother to analyze images if they are obviously identical. */ dummy_quantizer(width, height, background_color, stream); has_background = true; return; } stream << "R6 " << width << " " << height << " "; Magick::Image image(Magick::Geometry(width, height), Magick::Color()); image.type(Magick::TrueColorMatteType); image.modifyImage(); pdf::Pixmap bmp_fg(out_fg); pdf::Pixmap bmp_bg(out_bg); pdf::Pixmap::iterator p_fg = bmp_fg.begin(); pdf::Pixmap::iterator p_bg = bmp_bg.begin(); for (int i = 0; i < 3; i++) background_color[i] = p_bg[i]; for (int y = 0; y < height; y++) { Magick::PixelPacket* ipixel = image.setPixels(0, y, width, 1); for (int x = 0; x < width; x++) { if (!has_background) { for (int i = 0; i < 3; i++) if (background_color[i] != p_bg[i]) { has_background = true; break; } } if (p_fg[0] != p_bg[0] || p_fg[1] != p_bg[1] || p_fg[2] != p_bg[2]) { if (!has_foreground && (p_fg[0] || p_fg[1] || p_fg[2])) has_foreground = true; *ipixel = Magick::Color(p_fg[0], p_fg[1], p_fg[2], 0); } else *ipixel = Magick::Color(0, 0, 0, 0xff); p_fg++, p_bg++, ipixel++; } p_fg.next_row(), p_bg.next_row(), image.syncPixels(); } image.quantizeColorSpace(Magick::TransparentColorspace); image.quantizeColors(this->config.fg_colors); image.quantize(); image.colorSpace(Magick::RGBColorspace); image.quantizeColorSpace(Magick::RGBColorspace); image.quantizeColors(9999); image.quantize(); unsigned int n_colors = image.colorMapSize(); stream << n_colors << std::endl; for (unsigned int i = 0; i < n_colors; i++) { const Magick::Color &color = image.colorMap(i); unsigned char buffer[3] = { color.redQuantum(), color.greenQuantum(), color.blueQuantum() }; stream.write(reinterpret_cast(buffer), 3); } for (int y = 0; y < height; y++) { int new_color, color = 0xfff; Magick::PixelPacket *ipixel = image.getPixels(0, y, width, 1); Magick::IndexPacket *ppixel = image.getIndexes(); int length = 0; for (int x = 0; x < width; x++) { if (ipixel->opacity != TransparentOpacity) new_color = *ppixel; else new_color = 0xfff; if (color == new_color) length++; else { if (length > 0) write_uint32(stream, ((uint32_t)color << 20) + length); color = new_color; length = 1; } ipixel++, ppixel++; } write_uint32(stream, ((uint32_t)color << 20) + length); } } #else GraphicsMagickQuantizer::GraphicsMagickQuantizer(const Config &config) : Quantizer(config) { throw NotImplementedError(); } void GraphicsMagickQuantizer::operator()(pdf::Renderer *out_fg, pdf::Renderer *out_bg, int width, int height, int *background_color, bool &has_foreground, bool &has_background, std::ostream &stream) { /* just to satisfy compilers */ } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/i18n.hh0000644000000000000000000000154512151732402013132 0ustar rootroot/* Copyright © 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_I18N #define PDF2DJVU_I18N #include "version.hh" namespace i18n { void setup_locale(); void setup(const char *argv0); } static inline void N_(const char *message_id) { return; } #ifdef ENABLE_NLS #include static inline const char * _(const char *message_id) { return gettext(message_id); } #else static inline const char * ngettext(const char *message_id, const char *message_id_plural, unsigned long int n) { return n == 1 ? message_id : message_id_plural; } static inline const char * _(const char *message_id) { return message_id; } #endif #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/i18n.cc0000644000000000000000000000201412151732402013110 0ustar rootroot/* Copyright © 2009, 2010 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include #include "i18n.hh" #include "paths.hh" #include "system.hh" #if ENABLE_NLS void i18n::setup_locale() { std::setlocale(LC_ALL, ""); /* Deliberately ignore errors. */ } void i18n::setup(const char *argv0) { std::string argv0_dir_name, argv0_file_name; split_path(argv0, argv0_dir_name, argv0_file_name); std::string localedir = absolute_path(paths::localedir, argv0_dir_name); i18n::setup_locale(); bindtextdomain(PACKAGE_NAME, localedir.c_str()); /* Deliberately ignore errors. */ textdomain(PACKAGE_NAME); /* Deliberately ignore errors. */ } #else void i18n::setup_locale() { std::setlocale(LC_CTYPE, ""); /* Deliberately ignore errors. */ } void i18n::setup(const char *argv0) { i18n::setup_locale(); } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/doc/0000755000000000000000000000000012151732420012572 5ustar rootrootpdf2djvu-0.7.17/doc/pdf2djvu.10000644000000000000000000003173112151732420014405 0ustar rootroot'\" t .\" Title: pdf2djvu .\" Author: Jakub Wilk .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 05/30/2013 .\" Manual: pdf2djvu manual .\" Source: pdf2djvu 0.7.17 .\" Language: English .\" .TH "PDF2DJVU" "1" "05/30/2013" "pdf2djvu 0\&.7\&.17" "pdf2djvu manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" pdf2djvu \- creates DjVu files from PDF files .SH "SYNOPSIS" .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR [{\fB\-o\fR\ |\ \fB\-\-output\fR}\ \fIoutput\-djvu\-file\fR] [\fIoption\fR...] \fIpdf\-file\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-i\fR\ |\ \fB\-\-indirect\fR}\ \fIindex\-djvu\-file\fR [\fIoption\fR...] \fIpdf\-file\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-\-version\fR | \fB\-\-help\fR | \fB\-h\fR} .SH "DESCRIPTION" .PP This program creates a DjVu file from one or more Portable Document Format files\&. .SH "OPTIONS" .PP \fBpdf2djvu\fR accepts the following options: .SS "Document type, file names" .PP \fB\-o\fR, \fB\-\-output=\fR\fB\fIoutput\-djvu\-file\fR\fR .RS 4 Generate a bundled multi\-page document\&. Write the file into \fIoutput\-djvu\-file\fR instead of standard output\&. .RE .PP \fB\-i\fR, \fB\-\-indirect=\fR\fB\fIindex\-djvu\-file\fR\fR .RS 4 Generate an indirect multi\-page document\&. Use \fIindex\-djvu\-file\fR as the index file name; put the component files into the same directory\&. The directory must exist and be writable\&. .RE .PP \fB\-\-pageid\-template=\fR\fB\fItemplate\fR\fR .RS 4 Specifies the naming scheme for page identifiers\&. Consult the \(lqTEMPLATE LANGUAGE\(rq section for the template language description\&. .sp The default template is \(lqp{page:04*}\&.djvu\(rq\&. .sp For portability reasons, page identifiers: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} must consist only of lowercase ASCII letters, digits, _, +, \- and dot, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cannot start with a +, \- or a dot, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} cannot contain two consecutive dots, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} must end with the \&.djvu or the \&.djv extension\&. .RE .sp .RE .PP \fB\-\-pageid\-prefix=\fR\fB\fIprefix\fR\fR .RS 4 Equivalent to \(lq\-\-pageid\-template=\fIprefix\fR{page:04*}\&.djvu\(rq\&. .RE .PP \fB\-\-page\-title\-template=\fR\fB\fItemplate\fR\fR .RS 4 Specifies the template for page titles\&. Consult the \(lqTEMPLATE LANGUAGE\(rq section for the template language description\&. .sp The default is to set no page titles\&. .RE .SS "Resolution, page size" .PP \fB\-d\fR, \fB\-\-dpi=\fR\fB\fIresolution\fR\fR .RS 4 Specifies the desired resolution to \fIresolution\fR dots per inch\&. The default is 300 dpi\&. The allowed range is: 72 \(<= \fIresolution\fR \(<= 6000\&. .RE .PP \fB\-\-media\-box\fR .RS 4 Use MediaBox to determine page size\&. CropBox is used by default\&. .RE .PP \fB\-\-page\-size=\fR\fB\fIwidth\fR\fR\fBx\fR\fB\fIheight\fR\fR .RS 4 Specifies the preferred page size to \fIwidth\fR pixels \(mu \fIheight\fR pixels\&. The actual page size may be altered in order to respect aspect ratio and DjVu limitations on resolution\&. (This option takes precedence over \fB\-d\fR/\fB\-\-dpi\fR\&.) .RE .PP \fB\-\-guess\-dpi\fR .RS 4 Try to guess native resolution by inspecting embedded images\&. Use with care\&. .RE .SS "Image quality" .PP \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB+\fR\fB\fI\&...\fR\fR\fB+\fR\fB\fIn\fR\fR, \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB,\fR\fB\fI\&...\fR\fR\fB,\fR\fB\fIn\fR\fR .RS 4 Specifies the encoding quality of the IW44 background layer\&. This option is similar to the \fB\-slice\fR option of \fBc44\fR\&. Consult the \fBc44\fR(1) manual page for details\&. The default is 72+11+10+10\&. .RE .PP \fB\-\-bg\-subsample=\fR\fB\fIn\fR\fR .RS 4 Specifies the background subsampling ratio\&. The default is 3\&. Valid values are integers between 1 and 12, inclusive\&. .RE .PP \fB\-\-fg\-colors=default\fR .RS 4 Try to preserve all the foreground layer colors\&. This is the default\&. .RE .PP \fB\-\-fg\-colors=web\fR .RS 4 Reduce foreground layer colors to the web palette (216 colors)\&. This option is not recommended\&. .RE .PP \fB\-\-fg\-colors=\fR\fB\fIn\fR\fR .RS 4 Use GraphicsMagick to reduce number of distinct colors in the foreground layer to \fIn\fR\&. Valid values are integers between 1 and 4080\&. This option is not recommended\&. .RE .PP \fB\-\-fg\-colors=black\fR .RS 4 Discard any color information from the foreground layer\&. .RE .PP \fB\-\-monochrome\fR .RS 4 Render pages as monochrome bitmaps\&. With this option, \fB\-\-bg\-\fR\fB\fI\&...\fR\fR and \fB\-\-fg\-\fR\fB\fI\&...\fR\fR options are not respected\&. .RE .PP \fB\-\-loss\-level=\fR\fB\fIn\fR\fR .RS 4 Specifies the aggressiveness of the lossy compression\&. The default is 0 (lossless)\&. Valid values are integers between 0 and 200, inclusive\&. This option is similar to the \fB\-losslevel\fR option of \fBcjb2\fR; consult the \fBcjb2\fR(1) manual page for details\&. This option is respected only along with the \fB\-\-monochrome\fR option\&. .RE .PP \fB\-\-lossy\fR .RS 4 Synonym for \fB\-\-loss\-level=100\fR\&. .RE .PP \fB\-\-anti\-alias\fR .RS 4 Enable font and vector anti\-aliasing\&. This option is not recommended\&. .RE .SS "Extraction" .PP \fB\-\-no\-metadata\fR .RS 4 Don\*(Aqt extract the metadata\&. .sp By default: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The following entries of the document information dictionary are extracted: Title, Author, Subject, Creator, Producer, CreationDate, ModDate\&. Timestamps are formatted according to \m[blue]\fBRFC 3999\fR\m[]\&\s-2\u[1]\d\s+2, with date and time components separated by a single space\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The XMP metadata is extracted (or created) and updated accordingly\&. .RE .sp .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br If multiple input documents are specified, only metadata of the first one is taken into account\&. .sp .5v .RE .RE .PP \fB\-\-verbatim\-metadata\fR .RS 4 Keep the original metadata intact\&. .RE .PP \fB\-\-no\-outline\fR .RS 4 Don\*(Aqt extract the document outline\&. .RE .PP \fB\-\-hyperlinks=border\-avis\fR .RS 4 Make hyperlink borders always visible\&. .sp By default, a hyperlink border is visible only when the mouse is over the hyperlink\&. .RE .PP \fB\-\-hyperlinks=#\fR\fB\fIRRGGBB\fR\fR .RS 4 Force the specified border color for hyperlinks\&. .RE .PP \fB\-\-no\-hyperlinks\fR, \fB\-\-hyperlinks=none\fR .RS 4 Don\*(Aqt extract hyperlinks\&. .RE .PP \fB\-\-no\-text\fR .RS 4 Don\*(Aqt extract the text\&. .RE .PP \fB\-\-words\fR .RS 4 Extract the text\&. Record the location of every word\&. This is the default\&. .RE .PP \fB\-\-lines\fR .RS 4 Extract the text\&. Record the location of every line, rather that every word\&. .RE .PP \fB\-\-crop\-text\fR .RS 4 Extract no text outside the page boundary\&. .RE .PP \fB\-\-no\-nfkc\fR .RS 4 Don\*(Aqt \m[blue]\fBNFKC\fR\m[]\&\s-2\u[2]\d\s+2\-normalize the text\&. .RE .PP \fB\-\-filter\-text=\fR\fB\fIcommand\-line\fR\fR .RS 4 Filter the text through the \fIcommand\-line\fR\&. The provided filter must preserve whitespace, control characters and decimal digits\&. .sp This option implies \fB\-\-no\-nfkc\fR\&. .RE .PP \fB\-p\fR, \fB\-\-pages=\fR\fB\fIpage\-range\fR\fR .RS 4 Specifies pages to convert\&. \fIpage\-range\fR is a comma\-separated list of sub\-ranges\&. Each sub\-range is either a single page (e\&.g\&.\ \&17) or a contiguous range of pages (e\&.g\&.\ \&37\-42)\&. Pages are numbered from 1\&. .sp The default is to convert all pages\&. .RE .SS "Performance" .PP \fB\-j\fR, \fB\-\-jobs=\fR\fB\fIn\fR\fR .RS 4 Use \fIn\fR threads to perform conversion\&. The default is to use one thread\&. .RE .PP \fB\-j0\fR, \fB\-\-jobs=0\fR .RS 4 Determine automatically how many threads to use to perform conversion\&. .RE .SS "Verbosity, help" .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Display more informational messages while converting the file\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 Don\*(Aqt display informational messages while converting the file\&. .RE .PP \fB\-\-version\fR .RS 4 Output version information and exit\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Display help and exit\&. .RE .SH "ENVIRONMENT" .PP The following environment variables affects \fBpdf2djvu\fR on Unix systems: .PP \fIOMP_\fR\fI\fI*\fR\fR .RS 4 Details of runtime behaviour with respect to parallelism can be controlled by several environment variables\&. Please refer to the \m[blue]\fBOpenMP API specification\fR\m[]\&\s-2\u[3]\d\s+2 for details\&. .RE .PP \fITMPDIR\fR .RS 4 \fBpdf2djvu\fR makes heavy use of temporary files\&. It will store them in a directory specified by this variable\&. The default is /tmp\&. .RE .SH "TEMPLATE LANGUAGE" .SS "Template syntax" .PP The template language is roughly modelled on the \m[blue]\fBPython string formatting syntax\fR\m[]\&\s-2\u[4]\d\s+2\&. .PP A template is a piece of text which contains fields, surrounded by curly braces {}\&. Fields are replaced with appropriately formatted values when the template is evaluated\&. Moreover, {{ is replaced with a single { and }} is replaced with a single }\&. .SS "Field syntax" .PP Each field consists of a variable name, optionally followed by a shift, optionally followed by a format specification\&. .PP The shift is a signed (i\&.e\&. starting with a + or \- character) integer\&. .PP The format specification consists of a colon, followed by a width specification\&. .PP The width specification is a decimal integer defining the minimum field width\&. If not specified, then the field width will be determined by the content\&. Preceding the width specification with a zero (0) character enables zero\-padding\&. .PP The width specification is optionally followed by an asterisk (*) character, which increases the minimum field width to the width of the longest possible content of the variable\&. .SS "Available variables" .PP \fIpage\fR, \fIspage\fR .RS 4 Page number in the PDF document\&. .RE .PP \fIdpage\fR .RS 4 Page number in the DjVu document\&. .RE .SH "IMPLEMENTATION DETAILS" .SS "Layer separation algorithm" .PP Unless the \fB\-\-monochrome\fR option is on, pdf2djvu uses the following na\(:ive layer separation algorithm: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} For each page, do the following: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Raster the page into a pixmap, in the usual manner\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Raster the page into another pixmap, omitting the following page elements: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} text, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 1 bit\-per\-pixel raster images, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} vector elements (except fills of large areas)\&. .RE .sp .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} Compare both pixmaps, pixel by pixel: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} If their colors match, classify the pixel as a part of the background layer\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Otherwise, classify the pixel as a part of the foreground layer\&. .RE .sp .RE .sp .RE .sp .SH "BUG REPORTS" .PP If you find a bug in pdf2djvu, please report it at \m[blue]\fBthe issue tracker\fR\m[]\&\s-2\u[5]\d\s+2\&. .SH "SEE ALSO" .PP \fBdjvu\fR(1), \fBdjvudigital\fR(1), \fBcsepdjvu\fR(1) .SH "AUTHOR" .PP \fBJakub Wilk\fR <\&jwilk@jwilk\&.net\&> .RS 4 Author. .RE .SH "NOTES" .IP " 1." 4 RFC 3999 .RS 4 \%http://www.ietf.org/rfc/rfc3339 .RE .IP " 2." 4 NFKC .RS 4 \%http://unicode.org/reports/tr15/ .RE .IP " 3." 4 OpenMP API specification .RS 4 \%http://openmp.org/wp/openmp-specifications/ .RE .IP " 4." 4 Python string formatting syntax .RS 4 \%http://docs.python.org/library/string.html#format-string-syntax .RE .IP " 5." 4 the issue tracker .RS 4 \%http://code.google.com/p/pdf2djvu/issues/ .RE pdf2djvu-0.7.17/doc/po/0000755000000000000000000000000012151732431013212 5ustar rootrootpdf2djvu-0.7.17/doc/po/pdf2djvu.pot0000644000000000000000000010241412151732431015464 0ustar rootroot# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Jakub Wilk # This file is distributed under the same license as the pdf2djvu package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2013-05-30 22:22+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: Content of the p entity #: pdf2djvu.xml:4 msgid "pdf2djvu" msgstr "" #. type: Content of the version entity #: pdf2djvu.xml:5 msgid "0.7.17" msgstr "" #. type: Attribute 'lang' of: #: pdf2djvu.xml:8 msgid "en" msgstr "" #. type: Content of: #: pdf2djvu.xml:11 msgid "&p; manual" msgstr "" #. type: Content of: <refentry><refentryinfo> #: pdf2djvu.xml:12 msgid "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" msgstr "" #. type: Content of: <refentry><refnamediv><refname> #: pdf2djvu.xml:20 pdf2djvu.xml:26 msgid "&p;" msgstr "" #. type: Content of: <refentry><refmeta><manvolnum> #: pdf2djvu.xml:21 msgid "1" msgstr "" #. type: Content of: <refentry><refmeta><refmiscinfo> #: pdf2djvu.xml:22 msgid "&version;" msgstr "" #. type: Content of: <refentry><refnamediv><refpurpose> #: pdf2djvu.xml:27 msgid "creates DjVu files from PDF files" msgstr "" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> #: pdf2djvu.xml:32 msgid "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg " "choice='plain'><option>--output</option></arg> </group> <arg " "choice='plain'><replaceable>output-djvu-file</replaceable></arg> </arg> <arg " "choice='opt' rep='repeat'><replaceable>option</replaceable></arg> <arg " "choice='plain' rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> #: pdf2djvu.xml:44 msgid "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg " "choice='plain'><option>--indirect</option></arg> </group> <arg " "choice='plain'><replaceable>index-djvu-file</replaceable></arg> </arg> <arg " "choice='opt' rep='repeat'><replaceable>option</replaceable></arg> <arg " "choice='plain' rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> #: pdf2djvu.xml:56 msgid "" "<command>&p;</command> <group choice='req'> <arg " "choice='plain'><option>--version</option></arg> <arg " "choice='plain'><option>--help</option></arg> <arg " "choice='plain'><option>-h</option></arg> </group>" msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:66 msgid "Description" msgstr "" #. type: Content of: <refentry><refsection><para> #: pdf2djvu.xml:68 msgid "" "This program creates a DjVu file from one or more Portable Document Format " "files." msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:73 msgid "Options" msgstr "" #. type: Content of: <refentry><refsection><para> #: pdf2djvu.xml:75 msgid "<command>&p;</command> accepts the following options:" msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:78 msgid "Document type, file names" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:81 msgid "<option>-o</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:82 msgid "<option>--output=<filename><replaceable>output-djvu-file</replaceable></filename></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:85 msgid "" "Generate a bundled multi-page document. Write the file into " "<filename><replaceable>output-djvu-file</replaceable></filename> instead of " "standard output." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:91 msgid "<option>-i</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:92 msgid "<option>--indirect=<filename><replaceable>index-djvu-file</replaceable></filename></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:95 msgid "" "Generate an indirect multi-page document. Use " "<filename><replaceable>index-djvu-file</replaceable></filename> as the index " "file name; put the component files into the same directory. The directory " "must exist and be writable." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:102 msgid "<option>--pageid-template=<replaceable>template</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:105 msgid "" "Specifies the naming scheme for page identifiers. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:110 msgid "The default template is <quote><literal>p{page:04*}.djvu</literal></quote>." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:113 msgid "For portability reasons, page identifiers:" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:117 msgid "" "must consist only of lowercase ASCII letters, digits, <literal>_</literal>, " "<literal>+</literal>, <literal>-</literal> and dot," msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:123 msgid "cannot start with a <literal>+</literal>, <literal>-</literal> or a dot," msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:128 msgid "cannot contain two consecutive dots," msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:133 msgid "" "must end with the <literal>.djvu</literal> or the <literal>.djv</literal> " "extension." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:141 msgid "<option>--pageid-prefix=<replaceable>prefix</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:144 msgid "" "Equivalent to " "<quote><literal>--pageid-template=<replaceable>prefix</replaceable>{page:04*}.djvu</literal></quote>." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:150 msgid "<option>--page-title-template=<replaceable>template</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:153 msgid "" "Specifies the template for page titles. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:158 msgid "The default is to set no page titles." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:165 msgid "Resolution, page size" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:168 msgid "<option>-d</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:169 msgid "<option>--dpi=<replaceable>resolution</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:172 msgid "" "Specifies the desired resolution to <replaceable>resolution</replaceable> " "dots per inch. The default is 300 dpi. The allowed range is: 72 ≤ " "<replaceable>resolution</replaceable> ≤ 6000." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:178 msgid "<option>--media-box</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:181 msgid "" "Use <firstterm>MediaBox</firstterm> to determine page " "size. <firstterm>CropBox</firstterm> is used by default." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:187 msgid "<option>--page-size=<replaceable>width</replaceable>x<replaceable>height</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:190 msgid "" "Specifies the preferred page size to <replaceable>width</replaceable> pixels " "× <replaceable>height</replaceable> pixels. The actual page size may be " "altered in order to respect aspect ratio and DjVu limitations on " "resolution. (This option takes precedence over " "<option>-d</option>/<option>--dpi</option>.)" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:198 msgid "<option>--guess-dpi</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:201 msgid "Try to guess native resolution by inspecting embedded images. Use with care." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:208 msgid "Image quality" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:211 msgid "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>+<replaceable>n</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:212 msgid "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</replaceable>,<replaceable>n</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:215 msgid "" "Specifies the encoding quality of the IW44 background layer. This option is " "similar to the <option>-slice</option> option of " "<command>c44</command>. Consult the <citerefentry> " "<refentrytitle>c44</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> " "manual page for details. The default is <literal>72+11+10+10</literal>." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:226 msgid "<option>--bg-subsample=<replaceable>n</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:229 msgid "" "Specifies the background subsampling ratio. The default is 3. Valid values " "are integers between 1 and 12, inclusive." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:235 msgid "<option>--fg-colors=default</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:238 msgid "Try to preserve all the foreground layer colors. This is the default." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:244 msgid "<option>--fg-colors=web</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:247 msgid "" "Reduce foreground layer colors to the web palette (216 colors). This option " "is not recommended." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:253 msgid "<option>--fg-colors=<replaceable>n</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:256 msgid "" "Use GraphicsMagick to reduce number of distinct colors in the foreground " "layer to <replaceable>n</replaceable>. Valid values are integers between 1 " "and 4080. This option is not recommended." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:263 msgid "<option>--fg-colors=black</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:266 msgid "Discard any color information from the foreground layer." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:271 msgid "<option>--monochrome</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:274 msgid "" "Render pages as monochrome bitmaps. With this option, " "<option>--bg-<replaceable>…</replaceable></option> and " "<option>--fg-<replaceable>…</replaceable></option> options are not " "respected." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:282 msgid "<option>--loss-level=<replaceable>n</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:285 msgid "" "Specifies the aggressiveness of the lossy compression. The default is 0 " "(lossless). Valid values are integers between 0 and 200, inclusive. This " "option is similar to the <option>-losslevel</option> option of " "<command>cjb2</command>; consult the <citerefentry> " "<refentrytitle>cjb2</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> " "manual page for details. This option is respected only along with the " "<option>--monochrome</option> option." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:298 msgid "<option>--lossy</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:301 msgid "Synonym for <option>--loss-level=100</option>." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:306 msgid "<option>--anti-alias</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:309 msgid "Enable font and vector anti-aliasing. This option is not recommended." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:317 msgid "Extraction" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:320 msgid "<option>--no-metadata</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:323 msgid "Don't extract the metadata." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:326 msgid "By default:" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:330 msgid "" "The following entries of the document information dictionary are extracted: " "<literal>Title</literal>, <literal>Author</literal>, " "<literal>Subject</literal>, <literal>Creator</literal>, " "<literal>Producer</literal>, <literal>CreationDate</literal>, " "<literal>ModDate</literal>. Timestamps are formatted according to <ulink " "url='http://www.ietf.org/rfc/rfc3339'>RFC 3999</ulink>, with date and time " "components separated by a single space." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:341 msgid "The XMP metadata is extracted (or created) and updated accordingly." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><note><para> #: pdf2djvu.xml:348 msgid "" "If multiple input documents are specified, only metadata of the first one is " "taken into account." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:354 msgid "<option>--verbatim-metadata</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:357 msgid "Keep the original metadata intact." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:362 msgid "<option>--no-outline</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:365 msgid "Don't extract the document outline." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:370 msgid "<option>--hyperlinks=border-avis</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:373 msgid "Make hyperlink borders always visible." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:376 msgid "" "By default, a hyperlink border is visible only when the mouse is over the " "hyperlink." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:381 msgid "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:384 msgid "Force the specified border color for hyperlinks." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:389 msgid "<option>--no-hyperlinks</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:390 msgid "<option>--hyperlinks=none</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:393 msgid "Don't extract hyperlinks." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:398 msgid "<option>--no-text</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:401 msgid "Don't extract the text." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:406 msgid "<option>--words</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:409 msgid "Extract the text. Record the location of every word. This is the default." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:414 msgid "<option>--lines</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:417 msgid "Extract the text. Record the location of every line, rather that every word." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:422 msgid "<option>--crop-text</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:425 msgid "Extract no text outside the page boundary." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:430 msgid "<option>--no-nfkc</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:433 msgid "" "Don't <ulink url='http://unicode.org/reports/tr15/'>NFKC</ulink>-normalize " "the text." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:438 msgid "<option>--filter-text=<replaceable>command-line</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:441 msgid "" "Filter the text through the <replaceable>command-line</replaceable>. The " "provided filter must preserve whitespace, control characters and decimal " "digits." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:445 msgid "This option implies <option>--no-nfkc</option>." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:450 msgid "<option>-p</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:451 msgid "<option>--pages=<replaceable>page-range</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:454 msgid "" "Specifies pages to convert. <replaceable>page-range</replaceable> is a " "comma-separated list of sub-ranges. Each sub-range is either a single page " "(e.g. <literal>17</literal>) or a contiguous range of pages " "(e.g. <literal>37-42</literal>). Pages are numbered from 1." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:459 msgid "The default is to convert all pages." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:466 msgid "Performance" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:469 msgid "<option>-j</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:470 msgid "<option>--jobs=<replaceable>n</replaceable></option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:473 msgid "" "Use <replaceable>n</replaceable> threads to perform conversion. The default " "is to use one thread." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:478 msgid "<option>-j0</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:479 msgid "<option>--jobs=0</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:482 msgid "Determine automatically how many threads to use to perform conversion." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:489 msgid "Verbosity, help" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:492 msgid "<option>-v</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:493 msgid "<option>--verbose</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:496 msgid "Display more informational messages while converting the file." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:501 msgid "<option>-q</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:502 msgid "<option>--quiet</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:505 msgid "Don't display informational messages while converting the file." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:510 msgid "<option>--version</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:512 msgid "Output version information and exit." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:516 msgid "<option>-h</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:517 msgid "<option>--help</option>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:519 msgid "Display help and exit." msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:527 msgid "Environment" msgstr "" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> #: pdf2djvu.xml:532 msgid "<varname>OMP_<replaceable>*</replaceable></varname>" msgstr "" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:535 msgid "" "Details of runtime behaviour with respect to parallelism can be controlled " "by several environment variables. Please refer to the <ulink " "url='http://openmp.org/wp/openmp-specifications/'>OpenMP API " "specification</ulink> for details." msgstr "" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> #: pdf2djvu.xml:542 msgid "<varname>TMPDIR</varname>" msgstr "" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:548 msgid "" "<command>&p;</command> makes heavy use of temporary files. It will store " "them in a directory specified by this variable. The default is " "<filename>/tmp</filename>." msgstr "" #. type: Content of: <refentry><refsection><para> #: pdf2djvu.xml:529 msgid "" "The following environment variables affects <command>&p;</command> on Unix " "systems: <placeholder type=\"variablelist\" id=\"0\"/>" msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:558 msgid "Template language" msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:560 msgid "Template syntax" msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:562 msgid "" "The template language is roughly modelled on the <ulink " "url='http://docs.python.org/library/string.html#format-string-syntax'>Python " "string formatting syntax</ulink>." msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:567 msgid "" "A template is a piece of text which contains <firstterm>fields</firstterm>, " "surrounded by curly braces <literal>{</literal><literal>}</literal>. Fields " "are replaced with appropriately formatted values when the template is " "evaluated. Moreover, <literal>{{</literal> is replaced with a single " "<literal>{</literal> and <literal>}}</literal> is replaced with a single " "<literal>}</literal>." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:576 msgid "Field syntax" msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:578 msgid "" "Each field consists of a variable name, optionally followed by a shift, " "optionally followed by a format specification." msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:582 msgid "" "The shift is a signed (i.e. starting with a <literal>+</literal> or " "<literal>-</literal> character) integer." msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:585 msgid "" "The format specification consists of a colon, followed by a width " "specification." msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:588 msgid "" "The width specification is a decimal integer defining the minimum field " "width. If not specified, then the field width will be determined by the " "content. Preceding the width specification with a zero " "(<literal>0</literal>) character enables zero-padding." msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:593 msgid "" "The width specification is optionally followed by an asterisk " "(<literal>*</literal>) character, which increases the minimum field width to " "the width of the longest possible content of the variable." msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:598 msgid "Available variables" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:601 msgid "<varname>page</varname>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:602 msgid "<varname>spage</varname>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:604 msgid "Page number in the PDF document." msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> #: pdf2djvu.xml:608 msgid "<varname>dpage</varname>" msgstr "" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> #: pdf2djvu.xml:610 msgid "Page number in the DjVu document." msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:618 msgid "Implementation details" msgstr "" #. type: Content of: <refentry><refsection><refsection><title> #: pdf2djvu.xml:620 msgid "Layer separation algorithm" msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> #: pdf2djvu.xml:631 msgid "Raster the page into a pixmap, in the usual manner." msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> #: pdf2djvu.xml:636 msgid "Raster the page into another pixmap, omitting the following page elements:" msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:638 msgid "text," msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:639 msgid "1 bit-per-pixel raster images," msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> #: pdf2djvu.xml:640 msgid "vector elements (except fills of large areas)." msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> #: pdf2djvu.xml:650 msgid "If their colors match, classify the pixel as a part of the background layer." msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> #: pdf2djvu.xml:655 msgid "Otherwise, classify the pixel as a part of the foreground layer." msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> #: pdf2djvu.xml:646 msgid "" "Compare both pixmaps, pixel by pixel: <placeholder type=\"orderedlist\" " "id=\"0\"/>" msgstr "" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para> #: pdf2djvu.xml:627 msgid "" "For each page, do the following: <placeholder type=\"orderedlist\" " "id=\"0\"/>" msgstr "" #. type: Content of: <refentry><refsection><refsection><para> #: pdf2djvu.xml:622 msgid "" "Unless the <option>--monochrome</option> option is on, &p; uses the " "following naïve layer separation algorithm: <placeholder " "type=\"orderedlist\" id=\"0\"/>" msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:670 msgid "Bug reports" msgstr "" #. type: Content of: <refentry><refsection><para> #: pdf2djvu.xml:672 msgid "" "If you find a bug in &p;, please report it at <ulink " "url='http://code.google.com/p/pdf2djvu/issues/'>the issue tracker</ulink>." msgstr "" #. type: Content of: <refentry><refsection><title> #: pdf2djvu.xml:678 msgid "See also" msgstr "" #. type: Content of: <refentry><refsection><para> #: pdf2djvu.xml:680 msgid "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>" msgstr "" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pdf2djvu-0.7.17/doc/po/pdf2djvu.ru.1����������������������������������������������������������������0000644�0000000�0000000�00000045632�12151732430�015456� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'\" t .\" Title: pdf2djvu .\" Author: Jakub Wilk <jwilk@jwilk.net> .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/> .\" Date: 05/30/2013 .\" Manual: руководство по pdf2djvu .\" Source: pdf2djvu 0.7.17 .\" Language: Russian .\" .TH "pdf2djvu" "1" "05/30/2013" "pdf2djvu 0\&.7\&.17" "руководство по pdf2djvu" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "НАЗВАНИЕ" pdf2djvu \- создаёт DjVu\-файлы из PDF\-фалов .SH "СИНТАКСИС" .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR [{\fB\-o\fR\ |\ \fB\-\-output\fR}\ \fIрезультирующий\-djvu\-файл\fR] [\fIпараметр\fR...] \fIpdf\-файл\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-i\fR\ |\ \fB\-\-indirect\fR}\ \fIфайл\-индекса\-djvu\fR [\fIпараметр\fR...] \fIpdf\-файл\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-\-version\fR | \fB\-\-help\fR | \fB\-h\fR} .SH "ОПИСАНИЕ" .PP Программа создаёт DjVu\-файл из одного или нескольких Portable Document Format файлов\&. .SH "ПАРАМЕТРЫ" .PP \fBpdf2djvu\fR допускает следующие параметры: .SS "Тип документа, имена файлов" .PP \fB\-o\fR, \fB\-\-output=\fR\fB\fIрезультирующий\-djvu\-файл\fR\fR .RS 4 Создать объединённый многостраничный документ\&. Записать файл в \fIрезультирующий\-djvu\-файл\fR вместо стандартного вывода\&. .RE .PP \fB\-i\fR, \fB\-\-indirect=\fR\fB\fIфайл\-индекса\-djvu\fR\fR .RS 4 Создать раздельный многостраничный документ\&. Использовать \fIфайл\-индекса\-djvu\fR как имя файла индекса; поместить файлы\-компоненты в один и тот же каталог\&. Каталог должен существовать и иметь разрешение на запись\&. .RE .PP \fB\-\-pageid\-template=\fR\fB\fIшаблон\fR\fR .RS 4 Устанавливает схему именования идентификаторов страниц\&. Обратитесь за справкой к \(FoЯЗЫК ШАБЛОНОВ\(Fc секции описания языка шаблонов\&. .sp Шаблон по умолчанию \(Fop{page:04*}\&.djvu\(Fc\&. .sp По причине портабельности идентификатор страницы: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} должен состоять только из строчных ASCII букв, цифр, _, +, \- и точки, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} не может начинаться с +, \- или точки, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} не может включать две последовательные точки, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} должен заканчиваться расширением \&.djvu или \&.djv\&. .RE .sp .RE .PP \fB\-\-pageid\-prefix=\fR\fB\fIпрефикс\fR\fR .RS 4 Эквивалентно \(Fo\-\-pageid\-template=\fIпрефикс\fR{page:04*}\&.djvu\(Fc\&. .RE .PP \fB\-\-page\-title\-template=\fR\fB\fIшаблон\fR\fR .RS 4 Устанавливает шаблон заголовков страниц\&. Обратитесь за справкой к секции описания языка шаблонов \(FoЯЗЫК ШАБЛОНОВ\(Fc\&. .sp По умолчанию заголовок не устанавливается\&. .RE .SS "Разрешение, размер страницы" .PP \fB\-d\fR, \fB\-\-dpi=\fR\fB\fIразрешение\fR\fR .RS 4 Устанавливает желаемое разрешение \fIразрешение\fR точек на дюйм\&. По умолчанию 300 dpi\&. Разрешённый диапазон: 72 \(<= \fIразрешение\fR \(<= 6000\&. .RE .PP \fB\-\-media\-box\fR .RS 4 Использовать MediaBox для определения размера страницы\&. По умолчанию используется CropBox\&. .RE .PP \fB\-\-page\-size=\fR\fB\fIширина\fR\fR\fBx\fR\fB\fIвысота\fR\fR .RS 4 Устанавливает предпочитаемый размер страницы в \fIширина\fR пикселов \(mu \fIвысота\fR пикселов\&. Действительный размер страницы может изменяться для соблюдения соотношения и из\-за ограничений DjVu\&. (Этот параметр имеет приоритет над \fB\-d\fR/\fB\-\-dpi\fR\&.) .RE .PP \fB\-\-guess\-dpi\fR .RS 4 Попробовать предположить оригинальное разрешение проверяя внедрённые изображения\&. Используйте с осторожностью\&. .RE .SS "Качество изображения" .PP \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB+\fR\fB\fI\&...\fR\fR\fB+\fR\fB\fIn\fR\fR, \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB,\fR\fB\fI\&...\fR\fR\fB,\fR\fB\fIn\fR\fR .RS 4 Устанавливает качество кодирования фонового слоя IW44\&. Этот параметр похож на параметр \fB\-slice\fR для \fBc44\fR\&. Обратитесь за справкой к man\-странице \fBc44\fR(1)\&. По умолчанию 72+11+10+10\&. .RE .PP \fB\-\-bg\-subsample=\fR\fB\fIn\fR\fR .RS 4 Устанавливает отношение подвыборки фона\&. По умолчанию 3\&. Допустимые значения находятся между 1 и 12 включительно\&. .RE .PP \fB\-\-fg\-colors=default\fR .RS 4 Попробовать сохранить все цвета переднего плана\&. Используется по умолчанию\&. .RE .PP \fB\-\-fg\-colors=web\fR .RS 4 Уменьшить количество цветов переднего плана до web\-палитры (216 цветов)\&. Не рекомендуется использовать\&. .RE .PP \fB\-\-fg\-colors=\fR\fB\fIn\fR\fR .RS 4 Использует GraphicsMagick для уменьшения количества явных цветов в слое переднего плана\&. Допустимые значения от 1 до 4080\&. Не рекомендуется использовать\&. .RE .PP \fB\-\-fg\-colors=black\fR .RS 4 Не использовать любую информацию о цветах из слоя переднего плана\&. .RE .PP \fB\-\-monochrome\fR .RS 4 Рендерить страницы как монохромные изображения\&. С этим параметром опции \fB\-\-bg\-\fR\fB\fI\&...\fR\fR и \fB\-\-fg\-\fR\fB\fI\&...\fR\fR не принимаются во внимание\&. .RE .PP \fB\-\-loss\-level=\fR\fB\fIn\fR\fR .RS 4 Устанавливает агрессивность компрессии с потерями\&. По умолчанию 0 (без потерь)\&. Допустимые значения от 0 до 200 включительно\&. Этот параметр похож на параметр \fB\-losslevel\fR для \fBcjb2\fR\&. Обратитесь за справкой к man\-странице \fBcjb2\fR(1)\&. Этот параметр принимается во внимание только вместе с параметром \fB\-\-monochrome\fR\&. .RE .PP \fB\-\-lossy\fR .RS 4 Равносильно \fB\-\-loss\-level=100\fR\&. .RE .PP \fB\-\-anti\-alias\fR .RS 4 Разрешить сглаживание шрифтов и векторной графики\&. Не рекомендуется использовать\&. .RE .SS "Извлечение" .PP \fB\-\-no\-metadata\fR .RS 4 Не извлекать метаданные\&. .sp По умолчанию: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Извлекаются следующие значения информации документа: Title, Author, Subject, Creator, Producer, CreationDate, ModDate\&. Временные отметки форматируются согласно стандарту \m[blue]\fBRFC 3999\fR\m[]\&\s-2\u[1]\d\s+2\&. Дата и время разделены одиночным пробелом\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Соответственно извлекаются (или создаются) и обновляются метаданные XMP\&. .RE .sp .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBПримечание\fR .ps -1 .br В случае нескольких входных документов используются только метаданные из первого\&. .sp .5v .RE .RE .PP \fB\-\-verbatim\-metadata\fR .RS 4 Сохранять метаданные нетронутыми\&. .RE .PP \fB\-\-no\-outline\fR .RS 4 Не извлекать оглавление документа\&. .RE .PP \fB\-\-hyperlinks=border\-avis\fR .RS 4 Делать границы ссылок всегда видимыми\&. .sp По умолчанию границы ссылок становятся видимыми только при наведении на ссылку мыши\&. .RE .PP \fB\-\-hyperlinks=#\fR\fB\fIRRGGBB\fR\fR .RS 4 Принудительно использовать заданный цвет для границы ссылок\&. .RE .PP \fB\-\-no\-hyperlinks\fR, \fB\-\-hyperlinks=none\fR .RS 4 Не извлекать ссылки\&. .RE .PP \fB\-\-no\-text\fR .RS 4 Не извлекать текст\&. .RE .PP \fB\-\-words\fR .RS 4 Извлечь текст\&. Записать расположение каждого слова\&. Используется по умолчанию\&. .RE .PP \fB\-\-lines\fR .RS 4 Извлечь текст\&. Записать расположение каждой строки, а не слова\&. .RE .PP \fB\-\-crop\-text\fR .RS 4 Не извлекать текст, который находится за пределами страницы\&. .RE .PP \fB\-\-no\-nfkc\fR .RS 4 Не нормализовывать текст \m[blue]\fBNFKC\fR\m[]\&\s-2\u[2]\d\s+2\&. .RE .PP \fB\-\-filter\-text=\fR\fB\fIкомандная строка\fR\fR .RS 4 Фильтровать текст через \fIкомандная строка\fR\&. Данный фильтр должен сохранить пробелы, управляющие символы и десятичные цифры\&. .sp Этот параметр подразумевает \fB\-\-no\-nfkc\fR\&. .RE .PP \fB\-p\fR, \fB\-\-pages=\fR\fB\fIдиапазон\-страниц\fR\fR .RS 4 Устанавливает страницы для конвертирования\&. \fIдиапазон\-страниц\fR \(em это разделяемый запятыми список поддиапазонов\&. Каждый поддиапазон является одиночной страницей (например, 17) или последовательным диапазоном страниц (например, 37\-42)\&. Страницы нумеруются с 1\&. .sp По умолчанию конвертируются все страницы\&. .RE .SS "Производительность" .PP \fB\-j\fR, \fB\-\-jobs=\fR\fB\fIn\fR\fR .RS 4 Использовать \fIn\fR потоков для конвертации\&. По умолчанию используется один поток\&. .RE .PP \fB\-j0\fR, \fB\-\-jobs=0\fR .RS 4 Определить автоматически, сколько потоков использовать для конвертации\&. .RE .SS "Подробности, справка" .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Показывать больше информационных сообщений при конвертации файла\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 Не показывать информационные сообщения при конвертации файла\&. .RE .PP \fB\-\-version\fR .RS 4 Вывести информацию о версии и выйти\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Показать справку и выйти\&. .RE .SH "ОКРУЖЕНИЕ" .PP Следующие переменные окружения оказывают влияние на \fBpdf2djvu\fR в Unix\-системах: .PP \fIOMP_\fR\fI\fI*\fR\fR .RS 4 Поведением, с точки зрения распараллеливания, можно управлять с помощью нескольких переменных окружения\&. За деталями обратитесь к \m[blue]\fBспецификации OpenMP API\fR\m[]\&\s-2\u[3]\d\s+2\&. .RE .PP \fITMPDIR\fR .RS 4 \fBpdf2djvu\fR интенсивно использует временные файлы\&. Программа сохраняет их в каталоге заданном этой переменной\&. По умолчанию /tmp\&. .RE .SH "ЯЗЫК ШАБЛОНОВ" .SS "Синтаксис шаблонов" .PP Язык шаблонов использует как образец \m[blue]\fBсинтаксис форматирования строк в Python\fR\m[]\&\s-2\u[4]\d\s+2\&. .PP Шаблон \(em это текст, который содержит поля, окружённые фигурными скобками {}\&. Когда шаблон применяется, поля заменяются соответствующим образом отформатированными значениями\&. Кроме того, {{ и }} заменяются одиночными { и } соответственно\&. .SS "Синтаксис полей" .PP Каждое поле состоит из имени переменной, за которым может следовать сдвиг (не обязательно) и спецификация формата (не обязательно)\&. .PP Сдвиг \(em целое число со знаком (т\&. е\&. начинающееся на + or \-)\&. .PP Формат спецификации включает двоеточие, а затем спецификатор ширины поля\&. .PP Спецификатор ширины поля \(em это целое десятичное число определяющее минимальную ширину поля\&. Если не указано, тогда ширина поля вычисляется по содержимому\&. Предшествующий спецификатору знак нуля (0) делает возможным заполнение нулями\&. .PP После спецификатора ширины поля может располагаться знак звёздочки (*), что увеличивает минимальную ширину поля до максимально возможной длины переменной\&. .SS "Доступные переменные" .PP \fIpage\fR, \fIspage\fR .RS 4 Количество страниц в документе PDF\&. .RE .PP \fIdpage\fR .RS 4 Количество страниц в документе DjVu\&. .RE .SH "ДЕТАЛИ РЕАЛИЗАЦИИ" .SS "Алгоритм разделения слоёв" .PP Если не используется параметр \fB\-\-monochrome\fR, pdf2djvu использует следующий простой алгоритм: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Для каждой страницы сделать следующее: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Преобразовать страницу в растровое изображение обычным порядком\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Преобразовать страницу в другое растровое изображение пропуская следующие элементы страницы: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} текст, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} растровые изображения с глубиной 1 бит на пиксел, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} векторные элементы (за исключением больших заполненных площадей)\&. .RE .sp .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} Сравнить оба изображения, пиксел за пикселом: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Если их цвета совпадают, классифицировать пиксел как часть фонового слоя\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} В противоположном случае классифицировать пиксел как часть слоя переднего плана\&. .RE .sp .RE .sp .RE .sp .SH "СООБЩЕНИЯ ОБ ОШИБКАХ" .PP Если вы нашли ошибку в pdf2djvu, сообщите о ней в \m[blue]\fBбаг\-трекер\fR\m[]\&\s-2\u[5]\d\s+2\&. .SH "СМОТРИТЕ ТАКЖЕ" .PP \fBdjvu\fR(1), \fBdjvudigital\fR(1), \fBcsepdjvu\fR(1) .SH "АВТОР" .PP \fBJakub Wilk\fR <\&jwilk@jwilk\&.net\&> .RS 4 Автор. .RE .SH "ПРИМЕЧАНИЯ" .IP " 1." 4 RFC 3999 .RS 4 \%http://www.ietf.org/rfc/rfc3339 .RE .IP " 2." 4 NFKC .RS 4 \%http://unicode.org/reports/tr15/ .RE .IP " 3." 4 спецификации OpenMP API .RS 4 \%http://openmp.org/wp/openmp-specifications/ .RE .IP " 4." 4 синтаксис форматирования строк в Python .RS 4 \%http://docs.python.org/library/string.html#format-string-syntax .RE .IP " 5." 4 баг-трекер .RS 4 \%http://code.google.com/p/pdf2djvu/issues/ .RE ������������������������������������������������������������������������������������������������������pdf2djvu-0.7.17/doc/po/pdf2djvu.ru.xml��������������������������������������������������������������0000644�0000000�0000000�00000077443�12151732427�016131� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE refentry PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN' 'http://www.docbook.org/xml/4.5/docbookx.dtd' [ <!ENTITY p 'pdf2djvu'> <!ENTITY version '0.7.17'> ]> <refentry lang='ru'> <refentryinfo> <title>руководство по &p; &p; Jakub Wilk jwilk@jwilk.net &p; 1 &version; &p; создаёт DjVu-файлы из PDF-фалов &p; результирующий-djvu-файл параметр pdf-файл &p; файл-индекса-djvu параметр pdf-файл &p; Описание Программа создаёт DjVu-файл из одного или нескольких Portable Document Format файлов. Параметры &p; допускает следующие параметры: Тип документа, имена файлов Создать объединённый многостраничный документ. Записать файл в результирующий-djvu-файл вместо стандартного вывода. Создать раздельный многостраничный документ. Использовать файл-индекса-djvu как имя файла индекса; поместить файлы-компоненты в один и тот же каталог. Каталог должен существовать и иметь разрешение на запись. Устанавливает схему именования идентификаторов страниц. Обратитесь за справкой к секции описания языка шаблонов. Шаблон по умолчанию p{page:04*}.djvu. По причине портабельности идентификатор страницы: должен состоять только из строчных ASCII букв, цифр, _, +, - и точки, не может начинаться с +, - или точки, не может включать две последовательные точки, должен заканчиваться расширением .djvu или .djv. Эквивалентно --pageid-template=префикс{page:04*}.djvu. Устанавливает шаблон заголовков страниц. Обратитесь за справкой к секции описания языка шаблонов . По умолчанию заголовок не устанавливается. Разрешение, размер страницы Устанавливает желаемое разрешение разрешение точек на дюйм. По умолчанию 300 dpi. Разрешённый диапазон: 72 ≤ разрешение ≤ 6000. Использовать MediaBox для определения размера страницы. По умолчанию используется CropBox. Устанавливает предпочитаемый размер страницы в ширина пикселов × высота пикселов. Действительный размер страницы может изменяться для соблюдения соотношения и из-за ограничений DjVu. (Этот параметр имеет приоритет над /.) Попробовать предположить оригинальное разрешение проверяя внедрённые изображения. Используйте с осторожностью. Качество изображения Устанавливает качество кодирования фонового слоя IW44. Этот параметр похож на параметр для c44. Обратитесь за справкой к man-странице c44 1 . По умолчанию 72+11+10+10. Устанавливает отношение подвыборки фона. По умолчанию 3. Допустимые значения находятся между 1 и 12 включительно. Попробовать сохранить все цвета переднего плана. Используется по умолчанию. Уменьшить количество цветов переднего плана до web-палитры (216 цветов). Не рекомендуется использовать. Использует GraphicsMagick для уменьшения количества явных цветов в слое переднего плана. Допустимые значения от 1 до 4080. Не рекомендуется использовать. Не использовать любую информацию о цветах из слоя переднего плана. Рендерить страницы как монохромные изображения. С этим параметром опции и не принимаются во внимание. Устанавливает агрессивность компрессии с потерями. По умолчанию 0 (без потерь). Допустимые значения от 0 до 200 включительно. Этот параметр похож на параметр для cjb2. Обратитесь за справкой к man-странице cjb2 1 . Этот параметр принимается во внимание только вместе с параметром . Равносильно . Разрешить сглаживание шрифтов и векторной графики. Не рекомендуется использовать. Извлечение Не извлекать метаданные. По умолчанию: Извлекаются следующие значения информации документа: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Временные отметки форматируются согласно стандарту RFC 3999. Дата и время разделены одиночным пробелом. Соответственно извлекаются (или создаются) и обновляются метаданные XMP. В случае нескольких входных документов используются только метаданные из первого. Сохранять метаданные нетронутыми. Не извлекать оглавление документа. Делать границы ссылок всегда видимыми. По умолчанию границы ссылок становятся видимыми только при наведении на ссылку мыши. Принудительно использовать заданный цвет для границы ссылок. Не извлекать ссылки. Не извлекать текст. Извлечь текст. Записать расположение каждого слова. Используется по умолчанию. Извлечь текст. Записать расположение каждой строки, а не слова. Не извлекать текст, который находится за пределами страницы. Не нормализовывать текст NFKC. Фильтровать текст через командная строка. Данный фильтр должен сохранить пробелы, управляющие символы и десятичные цифры. Этот параметр подразумевает . Устанавливает страницы для конвертирования. диапазон-страниц — это разделяемый запятыми список поддиапазонов. Каждый поддиапазон является одиночной страницей (например, 17) или последовательным диапазоном страниц (например, 37-42). Страницы нумеруются с 1. По умолчанию конвертируются все страницы. Производительность Использовать n потоков для конвертации. По умолчанию используется один поток. Определить автоматически, сколько потоков использовать для конвертации. Подробности, справка Показывать больше информационных сообщений при конвертации файла. Не показывать информационные сообщения при конвертации файла. Вывести информацию о версии и выйти. Показать справку и выйти. Окружение Следующие переменные окружения оказывают влияние на &p; в Unix-системах: OMP_* Поведением, с точки зрения распараллеливания, можно управлять с помощью нескольких переменных окружения. За деталями обратитесь к спецификации OpenMP API. TMPDIR &p; интенсивно использует временные файлы. Программа сохраняет их в каталоге заданном этой переменной. По умолчанию /tmp. Язык шаблонов Синтаксис шаблонов Язык шаблонов использует как образец синтаксис форматирования строк в Python. Шаблон — это текст, который содержит поля, окружённые фигурными скобками {}. Когда шаблон применяется, поля заменяются соответствующим образом отформатированными значениями. Кроме того, {{ и }} заменяются одиночными { и } соответственно. Синтаксис полей Каждое поле состоит из имени переменной, за которым может следовать сдвиг (не обязательно) и спецификация формата (не обязательно). Сдвиг — целое число со знаком (т. е. начинающееся на + or -). Формат спецификации включает двоеточие, а затем спецификатор ширины поля. Спецификатор ширины поля — это целое десятичное число определяющее минимальную ширину поля. Если не указано, тогда ширина поля вычисляется по содержимому. Предшествующий спецификатору знак нуля (0) делает возможным заполнение нулями. После спецификатора ширины поля может располагаться знак звёздочки (*), что увеличивает минимальную ширину поля до максимально возможной длины переменной. Доступные переменные page spage Количество страниц в документе PDF. dpage Количество страниц в документе DjVu. Детали реализации Алгоритм разделения слоёв Если не используется параметр , &p; использует следующий простой алгоритм: Для каждой страницы сделать следующее: Преобразовать страницу в растровое изображение обычным порядком. Преобразовать страницу в другое растровое изображение пропуская следующие элементы страницы: текст, растровые изображения с глубиной 1 бит на пиксел, векторные элементы (за исключением больших заполненных площадей). Сравнить оба изображения, пиксел за пикселом: Если их цвета совпадают, классифицировать пиксел как часть фонового слоя. В противоположном случае классифицировать пиксел как часть слоя переднего плана. Сообщения об ошибках Если вы нашли ошибку в &p;, сообщите о ней в баг-трекер. Смотрите также djvu 1 , djvudigital 1 , csepdjvu 1 pdf2djvu-0.7.17/doc/po/pdf2djvu.pl.10000644000000000000000000003355312151732426015447 0ustar rootroot'\" t .\" Title: pdf2djvu .\" Author: Jakub Wilk .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 05/30/2013 .\" Manual: podręcznik pdf2djvu .\" Source: pdf2djvu 0.7.17 .\" Language: Polish .\" .TH "PDF2DJVU" "1" "05/30/2013" "pdf2djvu 0\&.7\&.17" "podręcznik pdf2djvu" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAZWA" pdf2djvu \- tworzy pliki DjVu z plik\('ow PDF .SH "STRESZCZENIE" .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR [{\fB\-o\fR\ |\ \fB\-\-output\fR}\ \fIplik\-wyjściowy\-djvu\fR] [\fIopcja\fR...] \fIplik\-pdf\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-i\fR\ |\ \fB\-\-indirect\fR}\ \fIplik\-indeksowy\-djvu\fR [\fIopcja\fR...] \fIplik\-pdf\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-\-version\fR | \fB\-\-help\fR | \fB\-h\fR} .SH "OPIS" .PP Program ten tworzy plik DjVu na podstawie jedngo lub więcej plik\('ow w formacie Portable Document Format\&. .SH "OPCJE" .PP \fBpdf2djvu\fR przyjmuje następujące opcje: .SS "Typ dokumentu, nazwy plik\('ow" .PP \fB\-o\fR, \fB\-\-output=\fR\fB\fIplik\-wyjściowy\-djvu\fR\fR .RS 4 Utw\('orz spakowany dokument wielostronicowy\&. Zapisz wynik do \fIwyjściowego\-pliku\-djvu\fR zamiast na standardowe wyjście\&. .RE .PP \fB\-i\fR, \fB\-\-indirect=\fR\fB\fIindeksowy\-plik\-djvu\fR\fR .RS 4 Utw\('orz rozdzielony dokument wielostronicowy\&. Jako nazwy pliku indeksowego użyj \fIpliku\-indeksowego\-djvu\fR; pliki sk\(/ladowe umieść w tym samym katalogu\&. Katalog musi istnieć z prawami do zapisu\&. .RE .PP \fB\-\-pageid\-template=\fR\fB\fIszablon\fR\fR .RS 4 Określa schemat nazewnictwa identyfikator\('ow stron\&. Opis języka szablon\('ow znajduje się w rozdziale \(BqJĘZYK SZABLON\('OW\(rq\&. .sp Domyślny szablon to \(Bqp{page:04*}\&.djvu\(rq\&. .sp Aby umożliwić przenośność, identyfikatory stron: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} muszą sk\(/ladać się tylko z ma\(/lych liter ASCII, cyfr, znak\('ow _, +, \- i kropki, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} nie mogą zaczynać się od znaku +, \- ani kropki, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} nie mogą zawierać dw\('och kropek z rzędu, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} muszą kończyć się rozszerzeniem \&.djvu lub \&.djv\&. .RE .sp .RE .PP \fB\-\-pageid\-prefix=\fR\fB\fIprefiks\fR\fR .RS 4 R\('ownoważność \(Bq\-\-pageid\-template=\fIprefiks\fR{page:04*}\&.djvu\(rq\&. .RE .PP \fB\-\-page\-title\-template=\fR\fB\fIszablon\fR\fR .RS 4 Określa schemat tytu\(/l\('ow stron\&. Opis języka szablon\('ow znajduje się w rozdziale \(BqJĘZYK SZABLON\('OW\(rq\&. .sp Domyślnie tytu\(/ly nie są ustawiane\&. .RE .SS "Rozdzielczość, wielkość strony" .PP \fB\-d\fR, \fB\-\-dpi=\fR\fB\fIrozdzielczość\fR\fR .RS 4 Określa, że pożądaną rozdzielczością jest \fIrozdzielczość\fR punkt\('ow na cal\&. Domyślną wartością jest 300 dpi\&. Dopuszczalny zakres to: 72 \(<= \fIrozdzielczość\fR \(<= 6000\&. .RE .PP \fB\-\-media\-box\fR .RS 4 Do określenia rozmiaru strony użyj MediaBox\&. Domyślnie używane jest CropBox\&. .RE .PP \fB\-\-page\-size=\fR\fB\fIszerokość\fR\fR\fBx\fR\fB\fIwysokość\fR\fR .RS 4 Określa, że preferowanym rozmiarem strony jest \fIszerokość\fR pikseli \(mu \fIwysokość\fR pikseli\&. Faktyczny rozmiar strony może zostać zmieniony, by zachować proporcje obrazu i wymogi DjVu dot\&. rozdzielczości\&. (Ta opcja ma pierwszeństwo nad \fB\-d\fR/\fB\-\-dpi\fR\&.) .RE .PP \fB\-\-guess\-dpi\fR .RS 4 Spr\('obuj odgadnąć pierwotną rozdzielczość poprzez ogląd osadzonych obraz\('ow\&. Używać ostrożnie\&. .RE .SS "Jakość obrazu" .PP \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB+\fR\fB\fI\&...\fR\fR\fB+\fR\fB\fIn\fR\fR, \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB,\fR\fB\fI\&...\fR\fR\fB,\fR\fB\fIn\fR\fR .RS 4 Określa jakość kompresji warstwy t\(/la IW44\&. Opcja ta jest podobna do opcji \fB\-slice\fR programu \fBc44\fR\&. Szczeg\('o\(/ly znajdują się w podręczniku \fBc44\fR(1)\&. Domyślną wartością jest 72+11+10+10\&. .RE .PP \fB\-\-bg\-subsample=\fR\fB\fIn\fR\fR .RS 4 Określa wsp\('o\(/lczynnik podpr\('obkowania t\(/la\&. Domyślną wartością jest 3\&. Dopuszczalne wartości to liczby ca\(/lkowite od 1 do 12 w\(/lącznie\&. .RE .PP \fB\-\-fg\-colors=default\fR .RS 4 Staraj zachować się wszystkie kolory pierwszego planu\&. Tak jest domyślnie\&. .RE .PP \fB\-\-fg\-colors=web\fR .RS 4 Zredukuj kolory pierwszego planu do palety WWW (216 kolor\('ow)\&. Ta opcja nie jest zalecana\&. .RE .PP \fB\-\-fg\-colors=\fR\fB\fIn\fR\fR .RS 4 Użyj GraphicsMagicka do zredukowania do \fIn\fR liczby r\('ożnych kolor\('ow na pierwszym planie\&. Dopuszczalne wartości to liczby ca\(/lkowite od 1 do 4080\&. Ta opcja nie jest zalecana\&. .RE .PP \fB\-\-fg\-colors=black\fR .RS 4 Odrzuć informacje o kolorach pierwszego planu\&. .RE .PP \fB\-\-monochrome\fR .RS 4 Rastruj strony jako dwukolorowe bitmapy\&. W takim wypadku opcje \fB\-\-bg\-\fR\fB\fI\&...\fR\fR i \fB\-\-fg\-\fR\fB\fI\&...\fR\fR nie są respektowane\&. .RE .PP \fB\-\-loss\-level=\fR\fB\fIn\fR\fR .RS 4 Określa agresywność kompresji stratnej\&. Domyślną wartością jest 0 (kompresja bezstratna)\&. Dopuszczalne wartości to liczby ca\(/lkowite od 0 do 200 w\(/lącznie\&. Opcja ta jest podobna do opcji \fB\-losslevel\fR programu \fBcjb2\fR; szczeg\('o\(/ly znajdują się w podręczniku \fBcjb2\fR(1) \&. Opcja ta jest respektowna tylko razem z opcją \fB\-\-monochrome\fR\&. .RE .PP \fB\-\-lossy\fR .RS 4 Synonim \fB\-\-loss\-level=100\fR\&. .RE .PP \fB\-\-anti\-alias\fR .RS 4 W\(/lącz antyaliasing font\('ow i grafiki wektorowej\&. Ta opcja nie jest zalecana\&. .RE .SS "Wyodrębnianie" .PP \fB\-\-no\-metadata\fR .RS 4 Nie wyodrębniaj metadanych\&. .sp Domyślnie: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Wyodrębniane są następujące has\(/la s\(/lownika informacji o dokumencie: Title, Author, Subject, Creator, Producer, CreationDate, ModDate\&. Zapisy daty i czasu są formatowane wg \m[blue]\fBRFC 3999\fR\m[]\&\s-2\u[1]\d\s+2, z datą i czasem oddzielonymi pojedynczą spacją\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Metadane XMP są wyodrębniane (lub tworzone) i odpowiednio aktualizowane\&. .RE .sp .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBUwaga\fR .ps -1 .br W przypadku wielu dokument\('ow wejściowych, tylko metadane pierwszego z nich są brane pod uwagę\&. .sp .5v .RE .RE .PP \fB\-\-verbatim\-metadata\fR .RS 4 Zachowaj oryginalne metadane bez zmian\&. .RE .PP \fB\-\-no\-outline\fR .RS 4 Nie wyodrębniaj konspektu dokumentu\&. .RE .PP \fB\-\-hyperlinks=border\-avis\fR .RS 4 Spraw, by ramki hiper\(/lączy by\(/ly zawsze widoczne\&. .sp Domyślnie ramka hiper\(/lącza jest widoczna tylko gdy nad nim znajduje się kursor myszki\&. .RE .PP \fB\-\-hyperlinks=#\fR\fB\fIRRGGBB\fR\fR .RS 4 Wymuś określony kolor ramki hiper\(/lączy\&. .RE .PP \fB\-\-no\-hyperlinks\fR, \fB\-\-hyperlinks=none\fR .RS 4 Nie wyodrębniaj hiper\(/lączy\&. .RE .PP \fB\-\-no\-text\fR .RS 4 Nie wyodrębniaj tekstu\&. .RE .PP \fB\-\-words\fR .RS 4 Wyodrębniaj tekst\&. Zapisz po\(/lożenia każdego s\(/lowa\&. Tak jest domyślnie\&. .RE .PP \fB\-\-lines\fR .RS 4 Wyodrębniaj tekst\&. Zapisz po\(/lożenia każdej linii, a nie każdego s\(/lowa\&. .RE .PP \fB\-\-crop\-text\fR .RS 4 Nie wyodrębniaj tekstu, kt\('ory znajduje się poza granicami strony\&. .RE .PP \fB\-\-no\-nfkc\fR .RS 4 Nie poddawaj tekstu normalizacji \m[blue]\fBNFKC\fR\m[]\&\s-2\u[2]\d\s+2\&. .RE .PP \fB\-\-filter\-text=\fR\fB\fIlinia\-poleceń\fR\fR .RS 4 Przefiltruj tekst przez \fIlinię\-poleceń\fR\&. Dany filtr musi zachowywać bia\(/le znaki, znaki kontrole i cyfry dziesiętne\&. .sp Opcja ta implikuje \fB\-\-no\-nfkc\fR\&. .RE .PP \fB\-p\fR, \fB\-\-pages=\fR\fB\fIzakres stron\fR\fR .RS 4 Określa strony przeznaczone do konwersji\&. \fIzakres\-stron\fR jest oddzielaną przecinkami listą podzakres\('ow\&. Każdy podzakres to albo pojedyncza strona (np\&. 17), albo ciąg\(/ly zakres stron (np\&. 37\-42)\&. Strony numerowane są od 1\&. .sp Domyślnie konwertowane są wszystkie strony\&. .RE .SS "Wydajność" .PP \fB\-j\fR, \fB\-\-jobs=\fR\fB\fIn\fR\fR .RS 4 Użyj \fIn\fR wątk\('ow do przeprowadzenia konwersji\&. Domyślnie używany jest jeden wątek\&. .RE .PP \fB\-j0\fR, \fB\-\-jobs=0\fR .RS 4 Określ liczbę wątk\('ow używanych do przeprowadzenia konwersji automatycznie\&. .RE .SS "Gadatliwość, pomoc" .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Wyświetlaj więcej komunikat\('ow informacyjnych podczas konwersji pliku\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 Nie wyświetlaj komunikat\('ow informacyjnych podczas konwersji pliku\&. .RE .PP \fB\-\-version\fR .RS 4 Wyświetl informację o wersji i wyjdź\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Wyświetl pomoc i wyjdź\&. .RE .SH "ŚRODOWISKO" .PP Następujące zmienne środowiskowe mają wp\(/lyw na dzia\(/lanie \fBpdf2djvu\fR w systemach uniksowych: .PP \fIOMP_\fR\fI\fI*\fR\fR .RS 4 Zachowanie programu pod względem wsp\('o\(/lbieżności można kontrolować za pomocą kilku zmiennych środowiskowych\&. Szczeg\('o\(/ly opisane są w \m[blue]\fBspecyfikacji API OpenMP\fR\m[]\&\s-2\u[3]\d\s+2\&. .RE .PP \fITMPDIR\fR .RS 4 \fBpdf2djvu\fR intensywnie używa plik\('ow tymczasowych\&. Są one sk\(/ladowane w katalogu określonym przez tę zmienną\&. Domyślną wartością jest/tmp\&. .RE .SH "JĘZYK SZABLON\('OW" .SS "Sk\(/ladnia szablon\('ow" .PP Język szablon\('ow jest z grubsza wzorowany na \m[blue]\fBsk\(/ladni formatowania napis\('ow w języku Python\fR\m[]\&\s-2\u[4]\d\s+2\&. .PP Szablon to kawa\(/lek tekstu zawierający pola, otoczone klamrami {}\&. Kiedy szablon jest wyliczany, pola zastępowane są odpowiednio sformatowanymi wartościami\&. Ponadto ciąg {{ jest zastępowany pojedynczym { a ciąg }} \(em pojedynczym }\&. .SS "Sk\(/ladnia p\('ol" .PP Każde pole sk\(/lada się z nazwy zmiennej, po kt\('orej opcjonalnie następuje przesunięcie, po kt\('orym opcjonalnie następuje specyfikacja formatu\&. .PP Przesunięcie jest liczbą ca\(/lkowitą ze znakiem (tj\&. zaczynającą się znakiem + lub \-)\&. .PP Specyfikacja formatu sk\(/lada się z dwukropka, po kt\('orym następuje specyfikacja szerokości\&. .PP Specyfikacja szerokości jest liczbą ca\(/lkowitą definiującą minimalną szerokość pola\&. W przypadku braku definicji, szerokość zostanie określona na podstawie treści\&. Poprzedzenie specyfikacji szerokości zerem (0) powoduje dope\(/lnianie zerami\&. .PP Po specyfikacji szerokości może opcjonalne nastąpić znak gwiazdki (*), kt\('ory zwiększa minimalną szerokość pola do największej możliwej d\(/lugości zawartości zmiennej\&. .SS "Dostępne zmienne" .PP \fIpage\fR, \fIspage\fR .RS 4 Numer strony w dokumencie PDF\&. .RE .PP \fIdpage\fR .RS 4 Numer strony w dokumencie DjVu\&. .RE .SH "SZCZEG\('O\(/LY IMPLEMENTACJI" .SS "Algorytm separacji warstw" .PP Jeżeli nie użyto opcji \fB\-\-monochrome\fR, pdf2djvu używa następującego naiwnego algorytmu separacji warstw: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Dla każdej strony wykonaj co następuje: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Zrastruj stronę do mapy pikseli w zwyk\(/ly spos\('ob\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Zrastruj stronę do innej mapy pikseli, z pominięciem następujących element\('ow strony: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} tekst, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} obrazy rastrowe o g\(/lębokości 1 bit na piksel, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} elementy wektorowe (opr\('ocz wype\(/lnień o dużej powierzchni)\&. .RE .sp .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} Por\('ownaj obie mapy pikseli, piksel po pikselu: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Jeżeli kolory się zgadzają, zaklasyfikuj piksel jako część warstwy t\(/la\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} W przeciwnym wypadku, zaklasyfikuj piksel jako część pierwszego planu\&. .RE .sp .RE .sp .RE .sp .SH "RAPORTY O B\(/LĘDACH" .PP B\(/lędy znalezione w pdf2djvu proszę zg\(/laszać w \m[blue]\fBsystemie śledzenia problem\('ow\fR\m[]\&\s-2\u[5]\d\s+2\&. .SH "ZOBACZ TEŻ" .PP \fBdjvu\fR(1), \fBdjvudigital\fR(1), \fBcsepdjvu\fR(1) .SH "AUTOR" .PP \fBJakub Wilk\fR <\&jwilk@jwilk\&.net\&> .RS 4 Autor. .RE .SH "PRZYPISY" .IP " 1." 4 RFC 3999 .RS 4 \%http://www.ietf.org/rfc/rfc3339 .RE .IP " 2." 4 NFKC .RS 4 \%http://unicode.org/reports/tr15/ .RE .IP " 3." 4 specyfikacji API OpenMP .RS 4 \%http://openmp.org/wp/openmp-specifications/ .RE .IP " 4." 4 sk\(/ladni formatowania napis\('ow w języku Python .RS 4 \%http://docs.python.org/library/string.html#format-string-syntax .RE .IP " 5." 4 systemie śledzenia problem\('ow .RS 4 \%http://code.google.com/p/pdf2djvu/issues/ .RE pdf2djvu-0.7.17/doc/po/pdf2djvu.pl.xml0000644000000000000000000006526312151732425016111 0ustar rootroot ]> podręcznik &p; &p; Jakub Wilk jwilk@jwilk.net &p; 1 &version; &p; tworzy pliki DjVu z plików PDF &p; plik-wyjściowy-djvu opcja plik-pdf &p; plik-indeksowy-djvu opcja plik-pdf &p; Opis Program ten tworzy plik DjVu na podstawie jedngo lub więcej plików w formacie Portable Document Format. Opcje &p; przyjmuje następujące opcje: Typ dokumentu, nazwy plików Utwórz spakowany dokument wielostronicowy. Zapisz wynik do wyjściowego-pliku-djvu zamiast na standardowe wyjście. Utwórz rozdzielony dokument wielostronicowy. Jako nazwy pliku indeksowego użyj pliku-indeksowego-djvu; pliki składowe umieść w tym samym katalogu. Katalog musi istnieć z prawami do zapisu. Określa schemat nazewnictwa identyfikatorów stron. Opis języka szablonów znajduje się w rozdziale . Domyślny szablon to p{page:04*}.djvu. Aby umożliwić przenośność, identyfikatory stron: muszą składać się tylko z małych liter ASCII, cyfr, znaków _, +, - i kropki, nie mogą zaczynać się od znaku +, - ani kropki, nie mogą zawierać dwóch kropek z rzędu, muszą kończyć się rozszerzeniem .djvu lub .djv. Równoważność --pageid-template=prefiks{page:04*}.djvu. Określa schemat tytułów stron. Opis języka szablonów znajduje się w rozdziale . Domyślnie tytuły nie są ustawiane. Rozdzielczość, wielkość strony Określa, że pożądaną rozdzielczością jest rozdzielczość punktów na cal. Domyślną wartością jest 300 dpi. Dopuszczalny zakres to: 72 ≤ rozdzielczość ≤ 6000. Do określenia rozmiaru strony użyj MediaBox. Domyślnie używane jest CropBox. Określa, że preferowanym rozmiarem strony jest szerokość pikseli × wysokość pikseli. Faktyczny rozmiar strony może zostać zmieniony, by zachować proporcje obrazu i wymogi DjVu dot. rozdzielczości. (Ta opcja ma pierwszeństwo nad /.) Spróbuj odgadnąć pierwotną rozdzielczość poprzez ogląd osadzonych obrazów. Używać ostrożnie. Jakość obrazu Określa jakość kompresji warstwy tła IW44. Opcja ta jest podobna do opcji programu c44. Szczegóły znajdują się w podręczniku c44 1 . Domyślną wartością jest 72+11+10+10. Określa współczynnik podpróbkowania tła. Domyślną wartością jest 3. Dopuszczalne wartości to liczby całkowite od 1 do 12 włącznie. Staraj zachować się wszystkie kolory pierwszego planu. Tak jest domyślnie. Zredukuj kolory pierwszego planu do palety WWW (216 kolorów). Ta opcja nie jest zalecana. Użyj GraphicsMagicka do zredukowania do n liczby różnych kolorów na pierwszym planie. Dopuszczalne wartości to liczby całkowite od 1 do 4080. Ta opcja nie jest zalecana. Odrzuć informacje o kolorach pierwszego planu. Rastruj strony jako dwukolorowe bitmapy. W takim wypadku opcje i nie są respektowane. Określa agresywność kompresji stratnej. Domyślną wartością jest 0 (kompresja bezstratna). Dopuszczalne wartości to liczby całkowite od 0 do 200 włącznie. Opcja ta jest podobna do opcji programu cjb2; szczegóły znajdują się w podręczniku cjb2 1 . Opcja ta jest respektowna tylko razem z opcją . Synonim . Włącz antyaliasing fontów i grafiki wektorowej. Ta opcja nie jest zalecana. Wyodrębnianie Nie wyodrębniaj metadanych. Domyślnie: Wyodrębniane są następujące hasła słownika informacji o dokumencie: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Zapisy daty i czasu są formatowane wg RFC 3999, z datą i czasem oddzielonymi pojedynczą spacją. Metadane XMP są wyodrębniane (lub tworzone) i odpowiednio aktualizowane. W przypadku wielu dokumentów wejściowych, tylko metadane pierwszego z nich są brane pod uwagę. Zachowaj oryginalne metadane bez zmian. Nie wyodrębniaj konspektu dokumentu. Spraw, by ramki hiperłączy były zawsze widoczne. Domyślnie ramka hiperłącza jest widoczna tylko gdy nad nim znajduje się kursor myszki. Wymuś określony kolor ramki hiperłączy. Nie wyodrębniaj hiperłączy. Nie wyodrębniaj tekstu. Wyodrębniaj tekst. Zapisz położenia każdego słowa. Tak jest domyślnie. Wyodrębniaj tekst. Zapisz położenia każdej linii, a nie każdego słowa. Nie wyodrębniaj tekstu, który znajduje się poza granicami strony. Nie poddawaj tekstu normalizacji NFKC. Przefiltruj tekst przez linię-poleceń. Dany filtr musi zachowywać białe znaki, znaki kontrole i cyfry dziesiętne. Opcja ta implikuje . Określa strony przeznaczone do konwersji. zakres-stron jest oddzielaną przecinkami listą podzakresów. Każdy podzakres to albo pojedyncza strona (np. 17), albo ciągły zakres stron (np. 37-42). Strony numerowane są od 1. Domyślnie konwertowane są wszystkie strony. Wydajność Użyj n wątków do przeprowadzenia konwersji. Domyślnie używany jest jeden wątek. Określ liczbę wątków używanych do przeprowadzenia konwersji automatycznie. Gadatliwość, pomoc Wyświetlaj więcej komunikatów informacyjnych podczas konwersji pliku. Nie wyświetlaj komunikatów informacyjnych podczas konwersji pliku. Wyświetl informację o wersji i wyjdź. Wyświetl pomoc i wyjdź. Środowisko Następujące zmienne środowiskowe mają wpływ na działanie &p; w systemach uniksowych: OMP_* Zachowanie programu pod względem współbieżności można kontrolować za pomocą kilku zmiennych środowiskowych. Szczegóły opisane są w specyfikacji API OpenMP. TMPDIR &p; intensywnie używa plików tymczasowych. Są one składowane w katalogu określonym przez tę zmienną. Domyślną wartością jest/tmp. Język szablonów Składnia szablonów Język szablonów jest z grubsza wzorowany na składni formatowania napisów w języku Python. Szablon to kawałek tekstu zawierający pola, otoczone klamrami {}. Kiedy szablon jest wyliczany, pola zastępowane są odpowiednio sformatowanymi wartościami. Ponadto ciąg {{ jest zastępowany pojedynczym { a ciąg }} — pojedynczym }. Składnia pól Każde pole składa się z nazwy zmiennej, po której opcjonalnie następuje przesunięcie, po którym opcjonalnie następuje specyfikacja formatu. Przesunięcie jest liczbą całkowitą ze znakiem (tj. zaczynającą się znakiem + lub -). Specyfikacja formatu składa się z dwukropka, po którym następuje specyfikacja szerokości. Specyfikacja szerokości jest liczbą całkowitą definiującą minimalną szerokość pola. W przypadku braku definicji, szerokość zostanie określona na podstawie treści. Poprzedzenie specyfikacji szerokości zerem (0) powoduje dopełnianie zerami. Po specyfikacji szerokości może opcjonalne nastąpić znak gwiazdki (*), który zwiększa minimalną szerokość pola do największej możliwej długości zawartości zmiennej. Dostępne zmienne page spage Numer strony w dokumencie PDF. dpage Numer strony w dokumencie DjVu. Szczegóły implementacji Algorytm separacji warstw Jeżeli nie użyto opcji , &p; używa następującego naiwnego algorytmu separacji warstw: Dla każdej strony wykonaj co następuje: Zrastruj stronę do mapy pikseli w zwykły sposób. Zrastruj stronę do innej mapy pikseli, z pominięciem następujących elementów strony: tekst, obrazy rastrowe o głębokości 1 bit na piksel, elementy wektorowe (oprócz wypełnień o dużej powierzchni). Porównaj obie mapy pikseli, piksel po pikselu: Jeżeli kolory się zgadzają, zaklasyfikuj piksel jako część warstwy tła. W przeciwnym wypadku, zaklasyfikuj piksel jako część pierwszego planu. Raporty o błędach Błędy znalezione w &p; proszę zgłaszać w systemie śledzenia problemów. Zobacz też djvu 1 , djvudigital 1 , csepdjvu 1 pdf2djvu-0.7.17/doc/po/pdf2djvu.uk.10000644000000000000000000004472112151732424015450 0ustar rootroot'\" t .\" Title: pdf2djvu .\" Author: Jakub Wilk .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 30/05/2013 .\" Manual: керівництво з pdf2djvu .\" Source: pdf2djvu 0.7.17 .\" Language: Ukrainian .\" .TH "pdf2djvu" "1" "30/05/2013" "pdf2djvu 0\&.7\&.17" "керівництво з pdf2djvu" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "НАЗВА" pdf2djvu \- створює DjVu\-файли з PDF\-файлів .SH "КОРОТКИЙ ОГЛЯД" .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR [{\fB\-o\fR\ |\ \fB\-\-output\fR}\ \fIрезультуючий_djvu\-файл\fR] [\fIпараметр\fR...] \fIpdf\-файл\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-i\fR\ |\ \fB\-\-indirect\fR}\ \fIфайл\-djvu\-індексу\fR [\fIпараметр\fR...] \fIpdf\-файл\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-\-version\fR | \fB\-\-help\fR | \fB\-h\fR} .SH "ОПИС" .PP Програма створює DjVu\-файл з одного чи декількох Portable Document Format файлів\&. .SH "ПАРАМЕТРИ" .PP \fBpdf2djvu\fR допускає наступні параметри: .SS "Тип документу, назви файлів" .PP \fB\-o\fR, \fB\-\-output=\fR\fB\fIрезультуючий_djvu\-файл\fR\fR .RS 4 Створити об\(cqєднаний багатосторінковий документ\&. Записати файл у \fIрезультируючий_djvu\-файл\fR замість стандартного виводу\&. .RE .PP \fB\-i\fR, \fB\-\-indirect=\fR\fB\fIфайл_djvu\-індексу\fR\fR .RS 4 Створити роздільний багатосторінковий документ\&. Використовувати \fIфайл_djvu\-індексу\fR як назву файлу індексу; розмістити файли\-компоненти в одну й ту ж теку\&. Тека повинна існувати та мати дозвіл на запис\&. .RE .PP \fB\-\-pageid\-template=\fR\fB\fIшаблон\fR\fR .RS 4 Встановлює схему найменування ідентифікаторів сторінок\&. Зверніться за довідкою до \(lqМОВА ШАБЛОНІВ\(rq розділу опису мови шаблонів\&. .sp Шаблон за умовчанням \(lqp{page:04*}\&.djvu\(rq\&. .sp З причини переносимості ідентифікатор сторінки: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} повинен складатися лише з рядкових ASCII\-букв, цифр, _, +, \- та крапки, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} не може починатися з +, \- чи крапки, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} не може включати дві послідовні крапки, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} повинен завершуватися розширенням \&.djvu чи \&.djv\&. .RE .sp .RE .PP \fB\-\-pageid\-prefix=\fR\fB\fIпрефікс\fR\fR .RS 4 Еквівалентно \(lq\-\-pageid\-template=\fIпрефікс\fR{page:04*}\&.djvu\(rq\&. .RE .PP \fB\-\-page\-title\-template=\fR\fB\fIшаблон\fR\fR .RS 4 Встановлює шаблон заголовків сторінок\&. Зверніться за довідкою до розділу опису мови шаблонів \(lqМОВА ШАБЛОНІВ\(rq\&. .sp За умовчанням заголовок не встановлюється\&. .RE .SS "Роздільна здатність, розмір сторінки" .PP \fB\-d\fR, \fB\-\-dpi=\fR\fB\fIроздільна_здатність\fR\fR .RS 4 Встанолює бажану \fIроздільну_здатність\fR крапок на дюйм\&. За умовчанням 300 dpi\&. Дозволений діапазон: 72 \(<= \fIроздільна_здатність\fR \(<= 6000\&. .RE .PP \fB\-\-media\-box\fR .RS 4 Використовувати MediaBox для визначення розміру сторінки\&. За умовчанням використовується CropBox\&. .RE .PP \fB\-\-page\-size=\fR\fB\fIширина\fR\fR\fB\(mu\fR\fB\fIвисота\fR\fR .RS 4 Встановлює бажаний розмір сторінки у \fIширина\fR пікселів \(mu \fIвисота\fR пікселів\&. Дійсний розмір сторінки може змінюватися для дотримання співвідношення та через обмеження DjVu\&. (Цей параметр має пріоритет над \fB\-d\fR/\fB\-\-dpi\fR\&.) .RE .PP \fB\-\-guess\-dpi\fR .RS 4 Спробувати передбачити оригінальну роздільну здатність перевіряючи вбудовані зображення\&. Використовуйте з обережністю\&. .RE .SS "Якість зображення" .PP \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB+\fR\fB\fI\&...\fR\fR\fB+\fR\fB\fIn\fR\fR, \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB,\fR\fB\fI\&...\fR\fR\fB,\fR\fB\fIn\fR\fR .RS 4 Встановлює якість кодування фонового шару IW44\&. Цей параметр схожий на параметр \fB\-slice\fR для \fBc44\fR\&. Зверніться за довідкою до man\-сторінки \fBc44\fR(1)\&. За умовчанням 72+11+10+10\&. .RE .PP \fB\-\-bg\-subsample=\fR\fB\fIn\fR\fR .RS 4 Встановлює відношення підвибірки фону\&. За умовчанням 3\&. Допустимі значення знаходяться між 1 та 12 включно\&. .RE .PP \fB\-\-fg\-colors=default\fR .RS 4 Спробувати зберегти усі кольори переднього плану\&. Використовується за умовчанням\&. .RE .PP \fB\-\-fg\-colors=web\fR .RS 4 Зменшити кількість кольорів переднього плану до веб\-палітри (216 кольорів)\&. Не рекомендується використовувати\&. .RE .PP \fB\-\-fg\-colors=\fR\fB\fIn\fR\fR .RS 4 Використовує GraphicsMagick для зменшення кількості явних кольорів у шарі переднього плану\&. Допустимі значення від 1 до 4080\&. Не рекомендується використовувати\&. .RE .PP \fB\-\-fg\-colors=black\fR .RS 4 Не використовувати будь\-яку інформацію про кольори з шару переднього плану\&. .RE .PP \fB\-\-monochrome\fR .RS 4 Промальовувати сторінки як монохромні зображення\&. З цим параметром опції \fB\-\-bg\-\fR\fB\fI\&...\fR\fR та \fB\-\-fg\-\fR\fB\fI\&...\fR\fR не беруться до уваги\&. .RE .PP \fB\-\-loss\-level=\fR\fB\fIn\fR\fR .RS 4 Встановлює агресивність компресії з втратами\&. За замовчуванням 0 (без втрат)\&. Допустимі значення від 0 до 200 включно\&. Цей параметр схожий на параметр \fB\-losslevel\fR для \fBcjb2\fR\&. Зверніться за довідкою до man\-сторінки \fBcjb2\fR(1)\&. Цей параметр приймається до уваги лише разом з параметром \fB\-\-monochrome\fR\&. .RE .PP \fB\-\-lossy\fR .RS 4 Рівносильно \fB\-\-loss\-level=100\fR\&. .RE .PP \fB\-\-anti\-alias\fR .RS 4 Дозволити згладжування шрифтів й векторної графіки\&. Не рекомендується використовувати\&. .RE .SS "Витягнення" .PP \fB\-\-no\-metadata\fR .RS 4 Не витягувати метадані\&. .sp За умовчанням: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Витягуються наступні значення інформації документа: Title, Author, Subject, Creator, Producer, CreationDate, ModDate\&. Часові позначки форматуються відповідно до стандарту \m[blue]\fBRFC 3999\fR\m[]\&\s-2\u[1]\d\s+2\&. Дата і час розділені одиночним пропуском\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Відповідно витягуються (чи створюються) й оновлюються метадані XMP\&. .RE .sp .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBПримітка\fR .ps -1 .br У випадку декількох вхідних документів використовуються лише метадані з першого\&. .sp .5v .RE .RE .PP \fB\-\-verbatim\-metadata\fR .RS 4 Зберігати метадані недоторканими\&. .RE .PP \fB\-\-no\-outline\fR .RS 4 Не витягувати зміст документу\&. .RE .PP \fB\-\-hyperlinks=border\-avis\fR .RS 4 Робити межі посилань завжди видимими\&. .sp За умовчанням межі посилань стають видимими лише при наведенні на посилання мишкою\&. .RE .PP \fB\-\-hyperlinks=#\fR\fB\fIRRGGBB\fR\fR .RS 4 Примусово використовувати заданий колір для межі посилань\&. .RE .PP \fB\-\-no\-hyperlinks\fR, \fB\-\-hyperlinks=none\fR .RS 4 Не витягувати посилання\&. .RE .PP \fB\-\-no\-text\fR .RS 4 Не витягувати текст\&. .RE .PP \fB\-\-words\fR .RS 4 Витягти текст\&. Записати розташування кожного слова\&. Використовується за умовчанням\&. .RE .PP \fB\-\-lines\fR .RS 4 Витягти текст\&. Записати розташування кожного рядка, а не слова\&. .RE .PP \fB\-\-crop\-text\fR .RS 4 Не витягувати текст, який знаходиться за межами сторінки\&. .RE .PP \fB\-\-no\-nfkc\fR .RS 4 Не нормалізувати текст \m[blue]\fBNFKC\fR\m[]\&\s-2\u[2]\d\s+2\&. .RE .PP \fB\-\-filter\-text=\fR\fB\fIкомандний_рядок\fR\fR .RS 4 Фільтрувати текст через \fIкомандний_рядок\fR\&. Даний фільтр повинен зберегти пробіли, керуючі символи й десяткові цифри\&. .sp Цей параметр передбачає \fB\-\-no\-nfkc\fR\&. .RE .PP \fB\-p\fR, \fB\-\-pages=\fR\fB\fIдіапазон_сторінок\fR\fR .RS 4 Specifies pages to convert\&. \fIpage\-range\fR is a comma\-separated list of sub\-ranges\&. Each sub\-range is either a single page (e\&.g\&.\ \&17) or a contiguous range of pages (e\&.g\&.\ \&37\-42)\&. Pages are numbered from 1\&. .sp За умовчанням конвертуються усі сторінки\&. .RE .SS "Продуктивність" .PP \fB\-j\fR, \fB\-\-jobs=\fR\fB\fIn\fR\fR .RS 4 Використовувати \fIn\fR потоків для конвертації\&. За умовчанням використовується один потік\&. .RE .PP \fB\-j0\fR, \fB\-\-jobs=0\fR .RS 4 Визначити автоматично, скільки потоків використовувати для конвертації\&. .RE .SS "Подробиці, довідка" .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Показувати більше інформаційних повідомлень при конвертації файлу\&. .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 Не показувати інформаційні повідомлення при конвертації файлу\&. .RE .PP \fB\-\-version\fR .RS 4 Вивести інформацію про версію та вийти\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Показати довідку та вийти\&. .RE .SH "ОТОЧЕННЯ" .PP Наступні змінні оточення впливають на \fBpdf2djvu\fR в Unix\-системах: .PP \fIOMP_\fR\fI\fI*\fR\fR .RS 4 Поведінкою, з точки зору розпаралелювання, можна керувати за допомогою кількох змінних оточення\&. За деталями зверніться до \m[blue]\fBспецифікації OpenMP API\fR\m[]\&\s-2\u[3]\d\s+2\&. .RE .PP \fITMPDIR\fR .RS 4 \fBpdf2djvu\fR інтенсивно використовує тимчасові файли\&. програма зберігає їх у теці, заданій цією змінною\&. За умовчанням /tmp\&. .RE .SH "МОВА ШАБЛОНІВ" .SS "Синтаксис шаблонів" .PP Мова шаблонів використовує як зразок \m[blue]\fBсинтаксис форматування рядків у Python\-і\fR\m[]\&\s-2\u[4]\d\s+2\&. .PP Шаблон \(em це текст, який містить поля, оточені фігурними дужками {}\&. Коли шаблон застосовується, поля замінюються відповідним чином відформатованими значеннями\&. Окрім того, {{ и }} замінюється одиночними { и } відповідно\&. .SS "Синтаксис полів" .PP Кожне поле складається з імені змінної, за яким може слідувати зсув (не обов\(cqязково), та специфікації формату (не обов\(cqязково)\&. .PP Зсув \(em ціле число зі знаком (тобто починається на + чи \-)\&. .PP Формат специфікації включає двокрапку, а потім специфікатор ширини поля\&. .PP Специфікатор ширини поля \(em це ціле десяткове число, що визначає мінімальну ширину поля\&. Якщо не вказано, тоді ширина поля обчислюється за вмістом\&. Передуючий специфікатору знак нуля (0) робить можливим заповнення нулями\&. .PP Після специфікатора ширини поля може розташовуватися знак зірочки (*), що збільшує мінімальну ширину поля до максимально можливої \:\:довжини змінної\&. .SS "Доступні змінні" .PP \fIpage\fR, \fIspage\fR .RS 4 Кількість сторінок в документі PDF\&. .RE .PP \fIdpage\fR .RS 4 Кількість сторінок в документі DjVu\&. .RE .SH "ДЕТАЛІ РЕАЛІЗАЦІЇ" .SS "Алгоритм розділення шарів" .PP Якщо не використовується параметр \fB\-\-monochrome\fR, pdf2djvu використовує наступний простий алгоритм: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Для кожної сторінки зробити наступне: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Перетворити сторінку в растрове зображення звичайним чином\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Перетворити сторінку в інше растрове зображення пропускаючи наступні елементи сторінки: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} текст, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} растрові зображення з глибиною 1 біт на піксель, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} векторні елементи (за винятком великих заповнених площ)\&. .RE .sp .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} Порівняти обидва зображення, піксель за пікселем: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Якщо їх кольори збігаються, класифікувати піксель як частину фонового шару\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} У протилежному випадку класифікувати піксель як частину шару переднього плану\&. .RE .sp .RE .sp .RE .sp .SH "ПОВІДОМЛЕННЯ ПРО ПОМИЛКИ" .PP Якщо Ви знайшли помилку у pdf2djvu, повідомте про неї на \m[blue]\fBбаг\-трекер\fR\m[]\&\s-2\u[5]\d\s+2\&. .SH "ДИВІТЬСЯ ТАКОЖ" .PP \fBdjvu\fR(1), \fBdjvudigital\fR(1), \fBcsepdjvu\fR(1) .SH "АВТОР" .PP \fBJakub Wilk\fR <\&jwilk@jwilk\&.net\&> .RS 4 Автор. .RE .SH "ПРИМІТКИ" .IP " 1." 4 RFC 3999 .RS 4 \%http://www.ietf.org/rfc/rfc3339 .RE .IP " 2." 4 NFKC .RS 4 \%http://unicode.org/reports/tr15/ .RE .IP " 3." 4 специфікації OpenMP API .RS 4 \%http://openmp.org/wp/openmp-specifications/ .RE .IP " 4." 4 синтаксис форматування рядків у Python-і .RS 4 \%http://docs.python.org/library/string.html#format-string-syntax .RE .IP " 5." 4 баг-трекер .RS 4 \%http://code.google.com/p/pdf2djvu/issues/ .RE pdf2djvu-0.7.17/doc/po/pdf2djvu.uk.xml0000644000000000000000000007652712151732423016120 0ustar rootroot ]> керівництво з &p; &p; Jakub Wilk jwilk@jwilk.net &p; 1 &version; &p; створює DjVu-файли з PDF-файлів &p; результуючий_djvu-файл параметр pdf-файл &p; файл-djvu-індексу параметр pdf-файл &p; Опис Програма створює DjVu-файл з одного чи декількох Portable Document Format файлів. Параметри &p; допускає наступні параметри: Тип документу, назви файлів Створити об’єднаний багатосторінковий документ. Записати файл у результируючий_djvu-файл замість стандартного виводу. Створити роздільний багатосторінковий документ. Використовувати файл_djvu-індексу як назву файлу індексу; розмістити файли-компоненти в одну й ту ж теку. Тека повинна існувати та мати дозвіл на запис. Встановлює схему найменування ідентифікаторів сторінок. Зверніться за довідкою до розділу опису мови шаблонів. Шаблон за умовчанням p{page:04*}.djvu. З причини переносимості ідентифікатор сторінки: повинен складатися лише з рядкових ASCII-букв, цифр, _, +, - та крапки, не може починатися з +, - чи крапки, не може включати дві послідовні крапки, повинен завершуватися розширенням .djvu чи .djv. Еквівалентно --pageid-template=префікс{page:04*}.djvu. Встановлює шаблон заголовків сторінок. Зверніться за довідкою до розділу опису мови шаблонів . За умовчанням заголовок не встановлюється. Роздільна здатність, розмір сторінки Встанолює бажану роздільну_здатність крапок на дюйм. За умовчанням 300 dpi. Дозволений діапазон: 72 ≤ роздільна_здатність ≤ 6000. Використовувати MediaBox для визначення розміру сторінки. За умовчанням використовується CropBox. Встановлює бажаний розмір сторінки у ширина пікселів × висота пікселів. Дійсний розмір сторінки може змінюватися для дотримання співвідношення та через обмеження DjVu. (Цей параметр має пріоритет над /.) Спробувати передбачити оригінальну роздільну здатність перевіряючи вбудовані зображення. Використовуйте з обережністю. Якість зображення Встановлює якість кодування фонового шару IW44. Цей параметр схожий на параметр для c44. Зверніться за довідкою до man-сторінки c44 1 . За умовчанням 72+11+10+10. Встановлює відношення підвибірки фону. За умовчанням 3. Допустимі значення знаходяться між 1 та 12 включно. Спробувати зберегти усі кольори переднього плану. Використовується за умовчанням. Зменшити кількість кольорів переднього плану до веб-палітри (216 кольорів). Не рекомендується використовувати. Використовує GraphicsMagick для зменшення кількості явних кольорів у шарі переднього плану. Допустимі значення від 1 до 4080. Не рекомендується використовувати. Не використовувати будь-яку інформацію про кольори з шару переднього плану. Промальовувати сторінки як монохромні зображення. З цим параметром опції та не беруться до уваги. Встановлює агресивність компресії з втратами. За замовчуванням 0 (без втрат). Допустимі значення від 0 до 200 включно. Цей параметр схожий на параметр для cjb2. Зверніться за довідкою до man-сторінки cjb2 1 . Цей параметр приймається до уваги лише разом з параметром . Рівносильно . Дозволити згладжування шрифтів й векторної графіки. Не рекомендується використовувати. Витягнення Не витягувати метадані. За умовчанням: Витягуються наступні значення інформації документа: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Часові позначки форматуються відповідно до стандарту RFC 3999. Дата і час розділені одиночним пропуском. Відповідно витягуються (чи створюються) й оновлюються метадані XMP. У випадку декількох вхідних документів використовуються лише метадані з першого. Зберігати метадані недоторканими. Не витягувати зміст документу. Робити межі посилань завжди видимими. За умовчанням межі посилань стають видимими лише при наведенні на посилання мишкою. Примусово використовувати заданий колір для межі посилань. Не витягувати посилання. Не витягувати текст. Витягти текст. Записати розташування кожного слова. Використовується за умовчанням. Витягти текст. Записати розташування кожного рядка, а не слова. Не витягувати текст, який знаходиться за межами сторінки. Не нормалізувати текст NFKC. Фільтрувати текст через командний_рядок. Даний фільтр повинен зберегти пробіли, керуючі символи й десяткові цифри. Цей параметр передбачає . Specifies pages to convert. page-range is a comma-separated list of sub-ranges. Each sub-range is either a single page (e.g. 17) or a contiguous range of pages (e.g. 37-42). Pages are numbered from 1. За умовчанням конвертуються усі сторінки. Продуктивність Використовувати n потоків для конвертації. За умовчанням використовується один потік. Визначити автоматично, скільки потоків використовувати для конвертації. Подробиці, довідка Показувати більше інформаційних повідомлень при конвертації файлу. Не показувати інформаційні повідомлення при конвертації файлу. Вивести інформацію про версію та вийти. Показати довідку та вийти. Оточення Наступні змінні оточення впливають на &p; в Unix-системах: OMP_* Поведінкою, з точки зору розпаралелювання, можна керувати за допомогою кількох змінних оточення. За деталями зверніться до специфікації OpenMP API. TMPDIR &p; інтенсивно використовує тимчасові файли. програма зберігає їх у теці, заданій цією змінною. За умовчанням /tmp. Мова шаблонів Синтаксис шаблонів Мова шаблонів використовує як зразок синтаксис форматування рядків у Python-і. Шаблон — це текст, який містить поля, оточені фігурними дужками {}. Коли шаблон застосовується, поля замінюються відповідним чином відформатованими значеннями. Окрім того, {{ и }} замінюється одиночними { и } відповідно. Синтаксис полів Кожне поле складається з імені змінної, за яким може слідувати зсув (не обов’язково), та специфікації формату (не обов’язково). Зсув — ціле число зі знаком (тобто починається на + чи -). Формат специфікації включає двокрапку, а потім специфікатор ширини поля. Специфікатор ширини поля — це ціле десяткове число, що визначає мінімальну ширину поля. Якщо не вказано, тоді ширина поля обчислюється за вмістом. Передуючий специфікатору знак нуля (0) робить можливим заповнення нулями. Після специфікатора ширини поля може розташовуватися знак зірочки (*), що збільшує мінімальну ширину поля до максимально можливої ​​довжини змінної. Доступні змінні page spage Кількість сторінок в документі PDF. dpage Кількість сторінок в документі DjVu. Деталі реалізації Алгоритм розділення шарів Якщо не використовується параметр , &p; використовує наступний простий алгоритм: Для кожної сторінки зробити наступне: Перетворити сторінку в растрове зображення звичайним чином. Перетворити сторінку в інше растрове зображення пропускаючи наступні елементи сторінки: текст, растрові зображення з глибиною 1 біт на піксель, векторні елементи (за винятком великих заповнених площ). Порівняти обидва зображення, піксель за пікселем: Якщо їх кольори збігаються, класифікувати піксель як частину фонового шару. У протилежному випадку класифікувати піксель як частину шару переднього плану. Повідомлення про помилки Якщо Ви знайшли помилку у &p;, повідомте про неї на баг-трекер. Дивіться також djvu 1 , djvudigital 1 , csepdjvu 1 pdf2djvu-0.7.17/doc/po/pdf2djvu.de.10000644000000000000000000003436712151732422015424 0ustar rootroot'\" t .\" Title: pdf2djvu .\" Author: Jakub Wilk .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 30.05.2013 .\" Manual: pdf2djvu Handbuch .\" Source: pdf2djvu 0.7.17 .\" Language: German .\" .TH "PDF2DJVU" "1" "30.05.2013" "pdf2djvu 0\&.7\&.17" "pdf2djvu Handbuch" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" pdf2djvu \- Erzeugt DjVu\-Dateien aus PDF\-Dateien .SH "\(:UBERSICHT" .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR [{\fB\-o\fR\ |\ \fB\-\-output\fR}\ \fIAusgabe\-DjVu\-Datei\fR] [\fIOption\fR...] \fIPDF\-Datei\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-i\fR\ |\ \fB\-\-indirect\fR}\ \fIIndex\-DjVu\-Datei\fR [\fIOption\fR...] \fIPDF\-Datei\fR... .HP \w'\fBpdf2djvu\fR\ 'u \fBpdf2djvu\fR {\fB\-\-version\fR | \fB\-\-help\fR | \fB\-h\fR} .SH "BESCHREIBUNG" .PP Dieses Programm erzeugt eine DjVu\-Datei aus einer oder mehreren Portable\-Document\-Format\-Dateien\&. .SH "OPTIONEN" .PP \fBpdf2djvu\fR akzeptiert die folgenden Optionen: .SS "Dokumenttyp, Dateinamen" .PP \fB\-o\fR, \fB\-\-output=\fR\fB\fIAusgabe\-DjVu\-Datei\fR\fR .RS 4 generiert ein geb\(:undeltes mehrseitiges Dokument; schreibt die Ausgabe in eine \fIAusgabe\-DjVu\-Datei\fR anstatt auf die Standardausgabe .RE .PP \fB\-i\fR, \fB\-\-indirect=\fR\fB\fIIndex\-DjVu\-Datei\fR\fR .RS 4 erstellt ein indirekt mehrseitiges Dokument; benutzt \fIIndex\-DjVu\-Datei\fR als Indexdateinamen; legt die Komponentendateien im gleichen Verzeichnis ab\&. Das Verzeichnis muss existieren und beschreibbar sein\&. .RE .PP \fB\-\-pageid\-template=\fR\fB\fISchablone\fR\fR .RS 4 gibt das Namesschema f\(:ur Seitenbezeichner an\&. Lesen Sie den Abschnitt \(BqSCHABLONENSPRACHE\(lq f\(:ur die Sprachbeschreibung der Schablone\&. .sp Die Vorgabeschablone ist \(Bqp{page:04*}\&.djvu\(lq\&. .sp Aus Portierbarkeitsgr\(:unden gilt f\(:ur Seitenbezeichner: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Sie d\(:urfen nur aus kleingeschriebenen ASCII\-Buchstaben, Ziffern, _, +, \- und Punkten bestehen, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sie d\(:urfen nicht mit +, \- oder einem Punkt beginnen, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sie d\(:urfen keine zwei aufeinanderfolgenden Punkte enthalten, .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sie m\(:ussen die Dateiendung \&.djvu oder \&.djv haben\&. .RE .sp .RE .PP \fB\-\-pageid\-prefix=\fR\fB\fIPr\(:afix\fR\fR .RS 4 Entspricht \(Bq\-\-pageid\-template=\fIPr\(:afix\fR{page:04*}\&.djvu\(lq\&. .RE .PP \fB\-\-page\-title\-template=\fR\fB\fISchablone\fR\fR .RS 4 gibt die Schablone f\(:ur Seitentitel an\&. Lesen Sie den Abschnitt \(BqSCHABLONENSPRACHE\(lq f\(:ur die Sprachbeschreibung der Schablone\&. .sp Standardm\(:a\(ssig werden keine Seitentitel gesetzt\&. .RE .SS "Aufl\(:osung, Seitengr\(:o\(sse" .PP \fB\-d\fR, \fB\-\-dpi=\fR\fB\fIAufl\(:osung\fR\fR .RS 4 gibt die gew\(:unschte Aufl\(:osung in \fIAufl\(:osung\fR Punkten pro Zoll an\&. Die Vorgabe ist 300 dpi\&. Der erlaubte Bereich ist: 72 \(<= \fIAufl\(:osung\fR \(<= 6000\&. .RE .PP \fB\-\-media\-box\fR .RS 4 Benutzen Sie MediaBox, um die Seitengr\(:o\(sse festzulegen\&. Standardm\(:a\(ssig wird CropBox benutzt\&. .RE .PP \fB\-\-page\-size=\fR\fB\fIBreite\fR\fR\fBx\fR\fB\fIH\(:ohe\fR\fR .RS 4 gibt die bevorzugte Seitengr\(:o\(sse als \fIBreite\fR Bildpunkte x \fIH\(:ohe\fR Bildpunkte an\&. Die tats\(:achliche Seitengr\(:o\(sse k\(:onnte ver\(:andert werden, um das Seitenverh\(:altnis und die DjVu\-Einschr\(:ankungen f\(:ur die Aufl\(:osung zu ber\(:ucksichtigen\&. (Diese Option hat Vorrang gegen\(:uber \fB\-d\fR/\fB\-\-dpi\fR\&.) .RE .PP \fB\-\-guess\-dpi\fR .RS 4 versucht die native Aufl\(:osung durch Untersuchen der eingebetteten Bilder abzusch\(:atzen\&. Verwenden Sie dies mit Vorsicht\&. .RE .SS "Bildqualit\(:at" .PP \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB+\fR\fB\fI\&...\fR\fR\fB+\fR\fB\fIn\fR\fR, \fB\-\-bg\-slices=\fR\fB\fIn\fR\fR\fB,\fR\fB\fI\&...\fR\fR\fB,\fR\fB\fIn\fR\fR .RS 4 gibt die Kodierungsqualit\(:at f\(:ur die IW44\-Hintergrundebene an\&. Diese Option ist der Option \fB\-slice\fR des Befehls \fBc44\fR \(:ahnlich\&. Sehen Sie die Handbuchseite \fBc44\fR(1) ein, um Einzelheiten zu erfahren\&. Die Vorgabe ist 72+11+10+10\&. .RE .PP \fB\-\-bg\-subsample=\fR\fB\fIn\fR\fR .RS 4 gibt das Verh\(:altnis der Hintergrund\-Unterabtastung (subsampling) an\&. Vorgabe ist 3\&. G\(:ultige Werte sind Ganzahlen von 1 bis einschlie\(sslich 12\&. .RE .PP \fB\-\-fg\-colors=default\fR .RS 4 versucht, alle Vordergrundebenenfarben zu bewahren\&. Dies ist die Vorgabe\&. .RE .PP \fB\-\-fg\-colors=web\fR .RS 4 reduziert Vordergrundebenenfarben auf die Web\-Palette (216 Farben)\&. Diese Option wird nicht empfohlen\&. .RE .PP \fB\-\-fg\-colors=\fR\fB\fIn\fR\fR .RS 4 benutzt GraphicsMagick, um die Anzahl verschiedener Farben in der Vordergrundebene auf \fIn\fR zu reduzieren\&. G\(:ultige Werte sind Ganzzahlen zwischen 1 und 4080\&. Diese Option wird nicht empfohlen\&. .RE .PP \fB\-\-fg\-colors=black\fR .RS 4 jede Farbinformation der Vordergrundebene verwerfen .RE .PP \fB\-\-monochrome\fR .RS 4 Seiten als einfarbige Bitmaps berechnen und ausgeben\&. Mit dieser Option werden die Optionen \fB\-\-bg\-\fR\fB\fI\&...\fR\fR und \fB\-\-fg\-\fR\fB\fI\&...\fR\fR nicht ber\(:ucksichtigt\&. .RE .PP \fB\-\-loss\-level=\fR\fB\fIn\fR\fR .RS 4 gibt die Aggressivit\(:at der verlustbehafteten Komprimierung an\&. Vorgabe ist 0 (verlustfrei)\&. G\(:ultige Werte sind Ganzahlen von 0 bis einschlie\(sslich 200\&. Diese Option \(:ahnelt der Option \fB\-losslevel\fR von \fBcjb2\fR\&. Sehen Sie die Handbuchseite \fBcjb2\fR(1) ein, um weitere Einzelheiten zu erfahren\&. Diese Option wird nur zusammen mit der Option \fB\-\-monochrome\fR ber\(:ucksichtigt\&. .RE .PP \fB\-\-lossy\fR .RS 4 Synonym f\(:ur \fB\-\-loss\-level=100\fR .RE .PP \fB\-\-anti\-alias\fR .RS 4 aktiviert Schrift\- und Vektor\-Kantengl\(:attung\&. Diese Option wird nicht empfohlen\&. .RE .SS "Auszug" .PP \fB\-\-no\-metadata\fR .RS 4 die Metadaten nicht herausziehen .sp Standardm\(:a\(ssig: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Die folgenden Eintr\(:age des Dokumentinformations\-W\(:orterbuchs werden extrahiert: Title, Author, Subject, Creator, Producer, CreationDate, ModDate\&. Zeitstempel werden entspechend \m[blue]\fBRFC 3999\fR\m[]\&\s-2\u[1]\d\s+2 mit Datums\- und Zeitbestandteilen, getrennt durch ein einzelnes Leerzeichen, formatiert\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Die XMP\-Metadaten werden extrahiert (oder erzeugt) und dementsprechend aktualisiert\&. .RE .sp .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBAnmerkung\fR .ps -1 .br Wenn mehrere Eingabedokumente ausgew\(:ahlt wurden, werden nur Metadaten des ersten Dokumentes ber\(:ucksichtigt\&. .sp .5v .RE .RE .PP \fB\-\-verbatim\-metadata\fR .RS 4 die Original\-Metadaten intakt lassen .RE .PP \fB\-\-no\-outline\fR .RS 4 die Dokumenten\(:ubersicht nicht extrahieren .RE .PP \fB\-\-hyperlinks=border\-avis\fR .RS 4 R\(:ander von Querverweisen immer sichtbar machen .sp Standardm\(:a\(ssig sind die R\(:ander eines Querverweises nur sichtbar, wenn die Maus dar\(:uber steht\&. .RE .PP \fB\-\-hyperlinks=#\fR\fB\fIRRGGBB\fR\fR .RS 4 die angegebene Randfarbe f\(:ur Querverweise erzwingen .RE .PP \fB\-\-no\-hyperlinks\fR, \fB\-\-hyperlinks=none\fR .RS 4 Querverweise nicht extrahieren .RE .PP \fB\-\-no\-text\fR .RS 4 den Text nicht extrahieren .RE .PP \fB\-\-words\fR .RS 4 den Text extrahieren; die Position jedes Wortes aufzeichnen\&. Dies ist die Vorgabe\&. .RE .PP \fB\-\-lines\fR .RS 4 den Text extrahieren; die Position jeder Zeile statt jedes Wortes aufzeichnen .RE .PP \fB\-\-crop\-text\fR .RS 4 keinen Text au\(sserhalb des Seitenrands extrahieren .RE .PP \fB\-\-no\-nfkc\fR .RS 4 den Text nicht entsprechend \m[blue]\fBNFKC\fR\m[]\&\s-2\u[2]\d\s+2 normalisieren\&. .RE .PP \fB\-\-filter\-text=\fR\fB\fIBefehlszeile\fR\fR .RS 4 den Text \(:uber die \fIBefehlszeile\fR filtern\&. Der bereitgestellte Filter muss Leerr\(:aume, Steuerzeichen und dezimale Ziffern bewahren\&. .sp Diese Option impliziert \fB\-\-no\-nfkc\fR\&. .RE .PP \fB\-p\fR, \fB\-\-pages=\fR\fB\fISeitenbereich\fR\fR .RS 4 gibt die Seiten an, die umgewandelt werden\&. \fISeitenbereich\fR ist eine durch Kommas getrennte Liste von Unterbereichen\&. Jeder Unterbereich ist entweder eine einzelne Seite (z\&.B\&. 17) oder ein Bereich zusammenh\(:angender Seiten (z\&.B\&. 37\-42)\&. Seiten werde mit 1 beginnend nummeriert\&. .sp Standardm\(:a\(ssig werden alle Seiten umgewandelt\&. .RE .SS "Leistungsf\(:ahigkeit" .PP \fB\-j\fR, \fB\-\-jobs=\fR\fB\fIn\fR\fR .RS 4 benutzt \fIn\fR Threads, um die Umwandlung durchzuf\(:uhren\&. Standardm\(:a\(ssig wird ein Thread benutzt\&. .RE .PP \fB\-j0\fR, \fB\-\-jobs=0\fR .RS 4 legt automatisch fest, wieviele Threads f\(:ur die Umwandlung benutzt werden .RE .SS "Detailgrad, Hilfe" .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 w\(:ahrend der Umwandlung der Datei weitere informative Nachrichten anzeigen .RE .PP \fB\-q\fR, \fB\-\-quiet\fR .RS 4 w\(:ahrend der Umwandlung der Datei keine informativen Nachrichten anzeigen .RE .PP \fB\-\-version\fR .RS 4 die Versionsinformationen ausgeben und beenden .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Hilfe anzeigen und beenden .RE .SH "UMGEBUNG" .PP Die folgenden Umgebungsvariablen beeinflussen \fBpdf2djvu\fR auf Unix\-Systemen: .PP \fIOMP_\fR\fI\fI*\fR\fR .RS 4 Einzelheiten des Verhaltens zur Laufzeit, die Parallelisierung ber\(:ucksichtigen, k\(:onnen durch mehrere Umgebungsvariablen gesteuert werden\&. Bitte sehen Sie in die \m[blue]\fBOpenMP\-API\-Spezifikation\fR\m[]\&\s-2\u[3]\d\s+2, um Einzelheiten zu erfahren\&. .RE .PP \fITMPDIR\fR .RS 4 \fBpdf2djvu\fR macht stark von tempor\(:aren Dateien Gebrauch\&. Es wird sie in dem durch diese Variable angegebenen Verzeichnis speichern\&. Vorgabe ist /tmp\&. .RE .SH "SCHABLONENSPRACHE" .SS "Schablonensyntax" .PP Die Schablonensprache ist ungef\(:ahr wie die \m[blue]\fBPhyton\-Zeichenkettenformatierungssyntax\fR\m[]\&\s-2\u[4]\d\s+2 aufgebaut\&. .PP Eine Schablone ist ein Textteil, der Felder enth\(:alt, die von geschweiften Klammern {} eingeschlossen werden\&. Felder werden durch entsprechend formatierte Werte ersetzt, wenn die Schablone ausgewertet wird\&. Au\(sserdem werden {{ durch eine einzelne { und }} durch eine einzelne } ersetzt\&. .SS "Feldsyntax" .PP Jedes Feld besteht aus einem Variablennamen, wahlweise gefolgt von einer Verschiebung, der wiederum wahlweise eine Formatangabe folgt\&. .PP Die Verschiebung ist eine vorzeichenbehaftete (d\&.h\&. sie beginnt mit einem + oder \-) Ganzzahl\&. .PP Die Formatangabe besteht aus einem Doppelpunkt gefolgt von einer Breitenangabe\&. .PP Die Breitenangabe ist eine dezimale Ganzzahl, die die Mindestbreite eines Feldes angibt\&. Falls sie nicht angegeben wird, wird die Feldbreite durch den Inhalt bestimmt\&. Wird der Breitenangabe eine Null (0) vorangestellt, wird Auff\(:ullen mit Nullen aktiviert\&. .PP Der Breitenangabe folgt wahlweise ein Sternchen (*), das die Mindestbreite des Feldes auf die Breite des gr\(:o\(sstm\(:oglichen Inhalts der Variable erh\(:oht\&. .SS "Verf\(:ugbare Variablen" .PP \fIpage\fR, \fIspage\fR .RS 4 Seitenzahl im PDF\-Dokument .RE .PP \fIdpage\fR .RS 4 Seitenzahl im DjVu\-Dokument .RE .SH "IMPLEMENTIERUNGSEINZELHEITEN" .SS "Ebenen\-Aufteilungsalgorithmus" .PP Au\(sser wenn die Option \fB\-\-monochrome\fR aktiviert ist, benutzt pdf2djvu den folgenden naiven Ebenen\-Aufteilungsalgorithmus: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} f\(:ur jede Seite das Folgende tun: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} die Seite auf die \(:ubliche Weise in eine Rastergrafik rastern .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} die Seite in eine Rastergrafik rastern und die folgenden Seitenelemente weglassen: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Text .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 1 Bit\-pro\-Bildpunkt\-Rasterbilder .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Vektorelemente (au\(sser F\(:ullungen gro\(sser Bereiche) .RE .sp .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} beide Rastergrafiken Bildpunkt f\(:ur Bildpunkt vergleichen: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Falls ihre Farben passen, werden die Bildpunkte als Teil der Hintergrundebene eingestuft\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Andernfalls werden die Bildpunkte als Teil der Vordergrundebene eingestuft\&. .RE .sp .RE .sp .RE .sp .SH "FEHLERBERICHTE" .PP Falls Sie einen Fehler in pdf2djvu finden, berichten Sie ihn bitte auf Englisch an \m[blue]\fBdie Problemverfolgung\fR\m[]\&\s-2\u[5]\d\s+2\&. .SH "SIEHE AUCH" .PP \fBdjvu\fR(1), \fBdjvudigital\fR(1), \fBcsepdjvu\fR(1) .SH "AUTOR" .PP \fBJakub Wilk\fR <\&jwilk@jwilk\&.net\&> .RS 4 Autor. .RE .SH "FU\(ssNOTEN" .IP " 1." 4 RFC 3999 .RS 4 \%http://www.ietf.org/rfc/rfc3339 .RE .IP " 2." 4 NFKC .RS 4 \%http://unicode.org/reports/tr15/ .RE .IP " 3." 4 OpenMP-API-Spezifikation .RS 4 \%http://openmp.org/wp/openmp-specifications/ .RE .IP " 4." 4 Phyton-Zeichenkettenformatierungssyntax .RS 4 \%http://docs.python.org/library/string.html#format-string-syntax .RE .IP " 5." 4 die Problemverfolgung .RS 4 \%http://code.google.com/p/pdf2djvu/issues/ .RE pdf2djvu-0.7.17/doc/po/pdf2djvu.de.xml0000644000000000000000000006613712151732421016063 0ustar rootroot ]> &p; Handbuch &p; Jakub Wilk jwilk@jwilk.net &p; 1 &version; &p; Erzeugt DjVu-Dateien aus PDF-Dateien &p; Ausgabe-DjVu-Datei Option PDF-Datei &p; Index-DjVu-Datei Option PDF-Datei &p; Beschreibung Dieses Programm erzeugt eine DjVu-Datei aus einer oder mehreren Portable-Document-Format-Dateien. Optionen &p; akzeptiert die folgenden Optionen: Dokumenttyp, Dateinamen generiert ein gebündeltes mehrseitiges Dokument; schreibt die Ausgabe in eine Ausgabe-DjVu-Datei anstatt auf die Standardausgabe erstellt ein indirekt mehrseitiges Dokument; benutzt Index-DjVu-Datei als Indexdateinamen; legt die Komponentendateien im gleichen Verzeichnis ab. Das Verzeichnis muss existieren und beschreibbar sein. gibt das Namesschema für Seitenbezeichner an. Lesen Sie den Abschnitt für die Sprachbeschreibung der Schablone. Die Vorgabeschablone ist p{page:04*}.djvu. Aus Portierbarkeitsgründen gilt für Seitenbezeichner: Sie dürfen nur aus kleingeschriebenen ASCII-Buchstaben, Ziffern, _, +, - und Punkten bestehen, sie dürfen nicht mit +, - oder einem Punkt beginnen, sie dürfen keine zwei aufeinanderfolgenden Punkte enthalten, sie müssen die Dateiendung .djvu oder .djv haben. Entspricht --pageid-template=Präfix{page:04*}.djvu. gibt die Schablone für Seitentitel an. Lesen Sie den Abschnitt für die Sprachbeschreibung der Schablone. Standardmäßig werden keine Seitentitel gesetzt. Auflösung, Seitengröße gibt die gewünschte Auflösung in Auflösung Punkten pro Zoll an. Die Vorgabe ist 300 dpi. Der erlaubte Bereich ist: 72 ≤ Auflösung ≤ 6000. Benutzen Sie MediaBox, um die Seitengröße festzulegen. Standardmäßig wird CropBox benutzt. gibt die bevorzugte Seitengröße als Breite Bildpunkte x Höhe Bildpunkte an. Die tatsächliche Seitengröße könnte verändert werden, um das Seitenverhältnis und die DjVu-Einschränkungen für die Auflösung zu berücksichtigen. (Diese Option hat Vorrang gegenüber /.) versucht die native Auflösung durch Untersuchen der eingebetteten Bilder abzuschätzen. Verwenden Sie dies mit Vorsicht. Bildqualität gibt die Kodierungsqualität für die IW44-Hintergrundebene an. Diese Option ist der Option des Befehls c44 ähnlich. Sehen Sie die Handbuchseite c44 1 ein, um Einzelheiten zu erfahren. Die Vorgabe ist 72+11+10+10. gibt das Verhältnis der Hintergrund-Unterabtastung (subsampling) an. Vorgabe ist 3. Gültige Werte sind Ganzahlen von 1 bis einschließlich 12. versucht, alle Vordergrundebenenfarben zu bewahren. Dies ist die Vorgabe. reduziert Vordergrundebenenfarben auf die Web-Palette (216 Farben). Diese Option wird nicht empfohlen. benutzt GraphicsMagick, um die Anzahl verschiedener Farben in der Vordergrundebene auf n zu reduzieren. Gültige Werte sind Ganzzahlen zwischen 1 und 4080. Diese Option wird nicht empfohlen. jede Farbinformation der Vordergrundebene verwerfen Seiten als einfarbige Bitmaps berechnen und ausgeben. Mit dieser Option werden die Optionen und nicht berücksichtigt. gibt die Aggressivität der verlustbehafteten Komprimierung an. Vorgabe ist 0 (verlustfrei). Gültige Werte sind Ganzahlen von 0 bis einschließlich 200. Diese Option ähnelt der Option von cjb2. Sehen Sie die Handbuchseite cjb2 1 ein, um weitere Einzelheiten zu erfahren. Diese Option wird nur zusammen mit der Option berücksichtigt. Synonym für aktiviert Schrift- und Vektor-Kantenglättung. Diese Option wird nicht empfohlen. Auszug die Metadaten nicht herausziehen Standardmäßig: Die folgenden Einträge des Dokumentinformations-Wörterbuchs werden extrahiert: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Zeitstempel werden entspechend RFC 3999 mit Datums- und Zeitbestandteilen, getrennt durch ein einzelnes Leerzeichen, formatiert. Die XMP-Metadaten werden extrahiert (oder erzeugt) und dementsprechend aktualisiert. Wenn mehrere Eingabedokumente ausgewählt wurden, werden nur Metadaten des ersten Dokumentes berücksichtigt. die Original-Metadaten intakt lassen die Dokumentenübersicht nicht extrahieren Ränder von Querverweisen immer sichtbar machen Standardmäßig sind die Ränder eines Querverweises nur sichtbar, wenn die Maus darüber steht. die angegebene Randfarbe für Querverweise erzwingen Querverweise nicht extrahieren den Text nicht extrahieren den Text extrahieren; die Position jedes Wortes aufzeichnen. Dies ist die Vorgabe. den Text extrahieren; die Position jeder Zeile statt jedes Wortes aufzeichnen keinen Text außerhalb des Seitenrands extrahieren den Text nicht entsprechend NFKC normalisieren. den Text über die Befehlszeile filtern. Der bereitgestellte Filter muss Leerräume, Steuerzeichen und dezimale Ziffern bewahren. Diese Option impliziert . gibt die Seiten an, die umgewandelt werden. Seitenbereich ist eine durch Kommas getrennte Liste von Unterbereichen. Jeder Unterbereich ist entweder eine einzelne Seite (z.B. 17) oder ein Bereich zusammenhängender Seiten (z.B. 37-42). Seiten werde mit 1 beginnend nummeriert. Standardmäßig werden alle Seiten umgewandelt. Leistungsfähigkeit benutzt n Threads, um die Umwandlung durchzuführen. Standardmäßig wird ein Thread benutzt. legt automatisch fest, wieviele Threads für die Umwandlung benutzt werden Detailgrad, Hilfe während der Umwandlung der Datei weitere informative Nachrichten anzeigen während der Umwandlung der Datei keine informativen Nachrichten anzeigen die Versionsinformationen ausgeben und beenden Hilfe anzeigen und beenden Umgebung Die folgenden Umgebungsvariablen beeinflussen &p; auf Unix-Systemen: OMP_* Einzelheiten des Verhaltens zur Laufzeit, die Parallelisierung berücksichtigen, können durch mehrere Umgebungsvariablen gesteuert werden. Bitte sehen Sie in die OpenMP-API-Spezifikation, um Einzelheiten zu erfahren. TMPDIR &p; macht stark von temporären Dateien Gebrauch. Es wird sie in dem durch diese Variable angegebenen Verzeichnis speichern. Vorgabe ist /tmp. Schablonensprache Schablonensyntax Die Schablonensprache ist ungefähr wie die Phyton-Zeichenkettenformatierungssyntax aufgebaut. Eine Schablone ist ein Textteil, der Felder enthält, die von geschweiften Klammern {} eingeschlossen werden. Felder werden durch entsprechend formatierte Werte ersetzt, wenn die Schablone ausgewertet wird. Außerdem werden {{ durch eine einzelne { und }} durch eine einzelne } ersetzt. Feldsyntax Jedes Feld besteht aus einem Variablennamen, wahlweise gefolgt von einer Verschiebung, der wiederum wahlweise eine Formatangabe folgt. Die Verschiebung ist eine vorzeichenbehaftete (d.h. sie beginnt mit einem + oder -) Ganzzahl. Die Formatangabe besteht aus einem Doppelpunkt gefolgt von einer Breitenangabe. Die Breitenangabe ist eine dezimale Ganzzahl, die die Mindestbreite eines Feldes angibt. Falls sie nicht angegeben wird, wird die Feldbreite durch den Inhalt bestimmt. Wird der Breitenangabe eine Null (0) vorangestellt, wird Auffüllen mit Nullen aktiviert. Der Breitenangabe folgt wahlweise ein Sternchen (*), das die Mindestbreite des Feldes auf die Breite des größtmöglichen Inhalts der Variable erhöht. Verfügbare Variablen page spage Seitenzahl im PDF-Dokument dpage Seitenzahl im DjVu-Dokument Implementierungseinzelheiten Ebenen-Aufteilungsalgorithmus Außer wenn die Option aktiviert ist, benutzt &p; den folgenden naiven Ebenen-Aufteilungsalgorithmus: für jede Seite das Folgende tun: die Seite auf die übliche Weise in eine Rastergrafik rastern die Seite in eine Rastergrafik rastern und die folgenden Seitenelemente weglassen: Text 1 Bit-pro-Bildpunkt-Rasterbilder Vektorelemente (außer Füllungen großer Bereiche) beide Rastergrafiken Bildpunkt für Bildpunkt vergleichen: Falls ihre Farben passen, werden die Bildpunkte als Teil der Hintergrundebene eingestuft. Andernfalls werden die Bildpunkte als Teil der Vordergrundebene eingestuft. Fehlerberichte Falls Sie einen Fehler in &p; finden, berichten Sie ihn bitte auf Englisch an die Problemverfolgung. Siehe auch djvu 1 , djvudigital 1 , csepdjvu 1 pdf2djvu-0.7.17/doc/po/pdf2djvu.xml0000777000000000000000000000000012151732402020134 2../pdf2djvu.xmlustar rootrootpdf2djvu-0.7.17/doc/po/pdf2djvu.uk.po0000644000000000000000000013704212151732402015721 0ustar rootroot# Copyright © 2012 Serhij Dubyk # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2011-11-21 19:54+0100\n" "PO-Revision-Date: 2012-05-31 11:57+0300\n" "Last-Translator: Serhij Dubyk \n" "Language-Team: Ukrainian Linux Team \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. type: Content of the p entity msgid "pdf2djvu" msgstr "pdf2djvu" #. type: Content of the version entity msgid "0.7.17" msgstr "0.7.17" #. type: Attribute 'lang' of: msgid "en" msgstr "uk" #. type: Content of: msgid "&p; manual" msgstr "керівництво з &p;" #. type: Content of: <refentry><refentryinfo> msgid "<productname>&p;</productname> <author> <firstname>Jakub</firstname> <surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" msgstr "<productname>&p;</productname> <author> <firstname>Jakub</firstname> <surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" #. type: Content of: <refentry><refnamediv><refname> msgid "&p;" msgstr "&p;" #. type: Content of: <refentry><refmeta><manvolnum> msgid "1" msgstr "1" #. type: Content of: <refentry><refmeta><refmiscinfo> msgid "&version;" msgstr "&version;" #. type: Content of: <refentry><refnamediv><refpurpose> msgid "creates DjVu files from PDF files" msgstr "створює DjVu-файли з PDF-файлів" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--output</option></arg> </group> <arg choice='plain'><replaceable>output-djvu-file</replaceable></arg> </arg> <arg choice='opt' rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--output</option></arg> </group> <arg choice='plain'><replaceable>результуючий_djvu-файл</replaceable></arg> </arg> <arg choice='opt' rep='repeat'><replaceable>параметр</replaceable></arg> <arg choice='plain' rep='repeat'><replaceable>pdf-файл</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--indirect</option></arg> </group> <arg choice='plain'><replaceable>index-djvu-file</replaceable></arg> </arg> <arg choice='opt' rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--indirect</option></arg> </group> <arg choice='plain'><replaceable>файл-djvu-індексу</replaceable></arg> </arg> <arg choice='opt' rep='repeat'><replaceable>параметр</replaceable></arg> <arg choice='plain' rep='repeat'><replaceable>pdf-файл</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--version</option></arg> <arg choice='plain'><option>--help</option></arg> <arg choice='plain'><option>-h</option></arg> </group>" msgstr "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--version</option></arg> <arg choice='plain'><option>--help</option></arg> <arg choice='plain'><option>-h</option></arg> </group>" #. type: Content of: <refentry><refsection><title> msgid "Description" msgstr "Опис" #. type: Content of: <refentry><refsection><para> msgid "This program creates a DjVu file from one or more Portable Document Format files." msgstr "Програма створює DjVu-файл з одного чи декількох Portable Document Format файлів." #. type: Content of: <refentry><refsection><title> msgid "Options" msgstr "Параметри" #. type: Content of: <refentry><refsection><para> msgid "<command>&p;</command> accepts the following options:" msgstr "<command>&p;</command> допускає наступні параметри:" #. type: Content of: <refentry><refsection><refsection><title> msgid "Document type, file names" msgstr "Тип документу, назви файлів" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-o</option>" msgstr "<option>-o</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--output=<filename><replaceable>output-djvu-file</replaceable></filename></option>" msgstr "<option>--output=<filename><replaceable>результуючий_djvu-файл</replaceable></filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Generate a bundled multi-page document. Write the file into <filename><replaceable>output-djvu-file</replaceable></filename> instead of standard output." msgstr "Створити об’єднаний багатосторінковий документ. Записати файл у <filename><replaceable>результируючий_djvu-файл</replaceable></filename> замість стандартного виводу." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-i</option>" msgstr "<option>-i</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--indirect=<filename><replaceable>index-djvu-file</replaceable></filename></option>" msgstr "<option>--indirect=<filename><replaceable>файл_djvu-індексу</replaceable></filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Generate an indirect multi-page document. Use <filename><replaceable>index-djvu-file</replaceable></filename> as the index file name; put the component files into the same directory. The directory must exist and be writable." msgstr "Створити роздільний багатосторінковий документ. Використовувати <filename><replaceable>файл_djvu-індексу</replaceable></filename> як назву файлу індексу; розмістити файли-компоненти в одну й ту ж теку. Тека повинна існувати та мати дозвіл на запис." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-template=<replaceable>template</replaceable></option>" msgstr "<option>--pageid-template=<replaceable>шаблон</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the naming scheme for page identifiers. Consult the <quote><link linkend='template-language' endterm='template-language.title'/></quote> section for the template language description." msgstr "Встановлює схему найменування ідентифікаторів сторінок. Зверніться за довідкою до <quote><link linkend='template-language' endterm='template-language.title'/></quote> розділу опису мови шаблонів." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default template is <quote><literal>p{page:04*}.djvu</literal></quote>." msgstr "Шаблон за умовчанням <quote><literal>p{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "For portability reasons, page identifiers:" msgstr "З причини переносимості ідентифікатор сторінки:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "must consist only of lowercase ASCII letters, digits, <literal>_</literal>, <literal>+</literal>, <literal>-</literal> and dot," msgstr "повинен складатися лише з рядкових ASCII-букв, цифр, <literal>_</literal>, <literal>+</literal>, <literal>-</literal> та крапки," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "cannot start with a <literal>+</literal>, <literal>-</literal> or a dot," msgstr "не може починатися з <literal>+</literal>, <literal>-</literal> чи крапки," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "cannot contain two consecutive dots," msgstr "не може включати дві послідовні крапки," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "must end with the <literal>.djvu</literal> or the <literal>.djv</literal> extension." msgstr "повинен завершуватися розширенням <literal>.djvu</literal> чи <literal>.djv</literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-prefix=<replaceable>prefix</replaceable></option>" msgstr "<option>--pageid-prefix=<replaceable>префікс</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Equivalent to <quote><literal>--pageid-template=<replaceable>prefix</replaceable>{page:04*}.djvu</literal></quote>." msgstr "Еквівалентно <quote><literal>--pageid-template=<replaceable>префікс</replaceable>{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--page-title-template=<replaceable>template</replaceable></option>" msgstr "<option>--page-title-template=<replaceable>шаблон</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the template for page titles. Consult the <quote><link linkend='template-language' endterm='template-language.title'/></quote> section for the template language description." msgstr "Встановлює шаблон заголовків сторінок. Зверніться за довідкою до розділу опису мови шаблонів <quote><link linkend='template-language' endterm='template-language.title'/></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to set no page titles." msgstr "За умовчанням заголовок не встановлюється." #. type: Content of: <refentry><refsection><refsection><title> msgid "Resolution, page size" msgstr "Роздільна здатність, розмір сторінки" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-d</option>" msgstr "<option>-d</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--dpi=<replaceable>resolution</replaceable></option>" msgstr "<option>--dpi=<replaceable>роздільна_здатність</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the desired resolution to <replaceable>resolution</replaceable> dots per inch. The default is 300 dpi. The allowed range is: 72 ≤ <replaceable>resolution</replaceable> ≤ 6000." msgstr "Встанолює бажану <replaceable>роздільну_здатність</replaceable> крапок на дюйм. За умовчанням 300 dpi. Дозволений діапазон: 72 ≤ <replaceable>роздільна_здатність</replaceable> ≤ 6000." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--media-box</option>" msgstr "<option>--media-box</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Use <firstterm>MediaBox</firstterm> to determine page size. <firstterm>CropBox</firstterm> is used by default." msgstr "Використовувати <firstterm>MediaBox</firstterm> для визначення розміру сторінки. За умовчанням використовується <firstterm>CropBox</firstterm>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--page-size=<replaceable>width</replaceable>x<replaceable>height</replaceable></option>" msgstr "<option>--page-size=<replaceable>ширина</replaceable>×<replaceable>висота</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the preferred page size to <replaceable>width</replaceable> pixels × <replaceable>height</replaceable> pixels. The actual page size may be altered in order to respect aspect ratio and DjVu limitations on resolution. (This option takes precedence over <option>-d</option>/<option>--dpi</option>.)" msgstr "Встановлює бажаний розмір сторінки у <replaceable>ширина</replaceable> пікселів × <replaceable>висота</replaceable> пікселів. Дійсний розмір сторінки може змінюватися для дотримання співвідношення та через обмеження DjVu. (Цей параметр має пріоритет над <option>-d</option>/<option>--dpi</option>.)" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--guess-dpi</option>" msgstr "<option>--guess-dpi</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Try to guess native resolution by inspecting embedded images. Use with care." msgstr "Спробувати передбачити оригінальну роздільну здатність перевіряючи вбудовані зображення. Використовуйте з обережністю." #. type: Content of: <refentry><refsection><refsection><title> msgid "Image quality" msgstr "Якість зображення" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>+<replaceable>n</replaceable></option>" msgstr "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>+<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</replaceable>,<replaceable>n</replaceable></option>" msgstr "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</replaceable>,<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the encoding quality of the IW44 background layer. This option is similar to the <option>-slice</option> option of <command>c44</command>. Consult the <citerefentry> <refentrytitle>c44</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> manual page for details. The default is <literal>72+11+10+10</literal>." msgstr "Встановлює якість кодування фонового шару IW44. Цей параметр схожий на параметр <option>-slice</option> для <command>c44</command>. Зверніться за довідкою до man-сторінки <citerefentry> <refentrytitle>c44</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>. За умовчанням <literal>72+11+10+10</literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--bg-subsample=<replaceable>n</replaceable></option>" msgstr "<option>--bg-subsample=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the background subsampling ratio. The default is 3. Valid values are integers between 1 and 12, inclusive." msgstr "Встановлює відношення підвибірки фону. За умовчанням 3. Допустимі значення знаходяться між 1 та 12 включно." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=default</option>" msgstr "<option>--fg-colors=default</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Try to preserve all the foreground layer colors. This is the default." msgstr "Спробувати зберегти усі кольори переднього плану. Використовується за умовчанням." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=web</option>" msgstr "<option>--fg-colors=web</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Reduce foreground layer colors to the web palette (216 colors). This option is not recommended." msgstr "Зменшити кількість кольорів переднього плану до веб-палітри (216 кольорів). Не рекомендується використовувати." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=<replaceable>n</replaceable></option>" msgstr "<option>--fg-colors=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Use GraphicsMagick to reduce number of distinct colors in the foreground layer to <replaceable>n</replaceable>. Valid values are integers between 1 and 4080. This option is not recommended." msgstr "Використовує GraphicsMagick для зменшення кількості явних кольорів у шарі переднього плану. Допустимі значення від 1 до 4080. Не рекомендується використовувати." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=black</option>" msgstr "<option>--fg-colors=black</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Discard any color information from the foreground layer." msgstr "Не використовувати будь-яку інформацію про кольори з шару переднього плану." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--monochrome</option>" msgstr "<option>--monochrome</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Render pages as monochrome bitmaps. With this option, <option>--bg-<replaceable>…</replaceable></option> and <option>--fg-<replaceable>…</replaceable></option> options are not respected." msgstr "Промальовувати сторінки як монохромні зображення. З цим параметром опції <option>--bg-<replaceable>…</replaceable></option> та <option>--fg-<replaceable>…</replaceable></option> не беруться до уваги." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--loss-level=<replaceable>n</replaceable></option>" msgstr "<option>--loss-level=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies the aggressiveness of the lossy compression. The default is 0 (lossless). Valid values are integers between 0 and 200, inclusive. This option is similar to the <option>-losslevel</option> option of <command>cjb2</command>; consult the <citerefentry> <refentrytitle>cjb2</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> manual page for details. This option is respected only along with the <option>--monochrome</option> option." msgstr "Встановлює агресивність компресії з втратами. За замовчуванням 0 (без втрат). Допустимі значення від 0 до 200 включно. Цей параметр схожий на параметр <option>-losslevel</option> для <command>cjb2</command>. Зверніться за довідкою до man-сторінки <citerefentry> <refentrytitle>cjb2</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>. Цей параметр приймається до уваги лише разом з параметром <option>--monochrome</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lossy</option>" msgstr "<option>--lossy</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Synonym for <option>--loss-level=100</option>." msgstr "Рівносильно <option>--loss-level=100</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--anti-alias</option>" msgstr "<option>--anti-alias</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Enable font and vector anti-aliasing. This option is not recommended." msgstr "Дозволити згладжування шрифтів й векторної графіки. Не рекомендується використовувати." #. type: Content of: <refentry><refsection><refsection><title> msgid "Extraction" msgstr "Витягнення" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-metadata</option>" msgstr "<option>--no-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the metadata." msgstr "Не витягувати метадані." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "By default:" msgstr "За умовчанням:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "The following entries of the document information dictionary are extracted: <literal>Title</literal>, <literal>Author</literal>, <literal>Subject</literal>, <literal>Creator</literal>, <literal>Producer</literal>, <literal>CreationDate</literal>, <literal>ModDate</literal>. Timestamps are formatted according to <ulink url='http://www.ietf.org/rfc/rfc3339'>RFC 3999</ulink>, with date and time components separated by a single space." msgstr "Витягуються наступні значення інформації документа: <literal>Title</literal>, <literal>Author</literal>, <literal>Subject</literal>, <literal>Creator</literal>, <literal>Producer</literal>, <literal>CreationDate</literal>, <literal>ModDate</literal>. Часові позначки форматуються відповідно до стандарту <ulink url='http://www.ietf.org/rfc/rfc3339'>RFC 3999</ulink>. Дата і час розділені одиночним пропуском." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "The XMP metadata is extracted (or created) and updated accordingly." msgstr "Відповідно витягуються (чи створюються) й оновлюються метадані XMP." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><note><para> msgid "If multiple input documents are specified, only metadata of the first one is taken into account." msgstr "У випадку декількох вхідних документів використовуються лише метадані з першого." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbatim-metadata</option>" msgstr "<option>--verbatim-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Keep the original metadata intact." msgstr "Зберігати метадані недоторканими." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-outline</option>" msgstr "<option>--no-outline</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the document outline." msgstr "Не витягувати зміст документу." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=border-avis</option>" msgstr "<option>--hyperlinks=border-avis</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Make hyperlink borders always visible." msgstr "Робити межі посилань завжди видимими." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "By default, a hyperlink border is visible only when the mouse is over the hyperlink." msgstr "За умовчанням межі посилань стають видимими лише при наведенні на посилання мишкою." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" msgstr "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Force the specified border color for hyperlinks." msgstr "Примусово використовувати заданий колір для межі посилань." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-hyperlinks</option>" msgstr "<option>--no-hyperlinks</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=none</option>" msgstr "<option>--hyperlinks=none</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract hyperlinks." msgstr "Не витягувати посилання." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-text</option>" msgstr "<option>--no-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the text." msgstr "Не витягувати текст." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--words</option>" msgstr "<option>--words</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Extract the text. Record the location of every word. This is the default." msgstr "Витягти текст. Записати розташування кожного слова. Використовується за умовчанням." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lines</option>" msgstr "<option>--lines</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Extract the text. Record the location of every line, rather that every word." msgstr "Витягти текст. Записати розташування кожного рядка, а не слова." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--crop-text</option>" msgstr "<option>--crop-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Extract no text outside the page boundary." msgstr "Не витягувати текст, який знаходиться за межами сторінки." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-nfkc</option>" msgstr "<option>--no-nfkc</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't <ulink url='http://unicode.org/reports/tr15/'>NFKC</ulink>-normalize the text." msgstr "Не нормалізувати текст <ulink url='http://unicode.org/reports/tr15/'>NFKC</ulink>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--filter-text=<replaceable>command-line</replaceable></option>" msgstr "<option>--filter-text=<replaceable>командний_рядок</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Filter the text through the <replaceable>command-line</replaceable>. The provided filter must preserve whitespace, control characters and decimal digits." msgstr "Фільтрувати текст через <replaceable>командний_рядок</replaceable>. Даний фільтр повинен зберегти пробіли, керуючі символи й десяткові цифри." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "This option implies <option>--no-nfkc</option>." msgstr "Цей параметр передбачає <option>--no-nfkc</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-p</option>" msgstr "<option>-p</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pages=<replaceable>page-range</replaceable></option>" msgstr "<option>--pages=<replaceable>діапазон_сторінок</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Specifies pages to convert. <replaceable>page-range</replaceable> is a comma-separated list of sub-ranges. Each sub-range is either a single page (e.g. <literal>17</literal>) or a contiguous range of pages (e.g. <literal>37-42</literal>). Pages are numbered from 1." msgstr "Встановлює сторінки для конвертування. <replaceable>діапазон_сторінок</replaceable> — це поділюваний комами список піддіапазонів. кожен піддіапазон є одиночною сторінкою (наприклад, <literal>17</literal>) або послідовним діапазоном сторінок (наприклад, <literal>37-42</literal>). Сторінки нумеруються з 1." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to convert all pages." msgstr "За умовчанням конвертуються усі сторінки." #. type: Content of: <refentry><refsection><refsection><title> msgid "Performance" msgstr "Продуктивність" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j</option>" msgstr "<option>-j</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=<replaceable>n</replaceable></option>" msgstr "<option>--jobs=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Use <replaceable>n</replaceable> threads to perform conversion. The default is to use one thread." msgstr "Використовувати <replaceable>n</replaceable> потоків для конвертації. За умовчанням використовується один потік." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j0</option>" msgstr "<option>-j0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=0</option>" msgstr "<option>--jobs=0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Determine automatically how many threads to use to perform conversion." msgstr "Визначити автоматично, скільки потоків використовувати для конвертації." #. type: Content of: <refentry><refsection><refsection><title> msgid "Verbosity, help" msgstr "Подробиці, довідка" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-v</option>" msgstr "<option>-v</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbose</option>" msgstr "<option>--verbose</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display more informational messages while converting the file." msgstr "Показувати більше інформаційних повідомлень при конвертації файлу." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-q</option>" msgstr "<option>-q</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--quiet</option>" msgstr "<option>--quiet</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't display informational messages while converting the file." msgstr "Не показувати інформаційні повідомлення при конвертації файлу." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--version</option>" msgstr "<option>--version</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Output version information and exit." msgstr "Вивести інформацію про версію та вийти." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-h</option>" msgstr "<option>-h</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--help</option>" msgstr "<option>--help</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display help and exit." msgstr "Показати довідку та вийти." #. type: Content of: <refentry><refsection><title> msgid "Environment" msgstr "Оточення" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>OMP_<replaceable>*</replaceable></varname>" msgstr "<varname>OMP_<replaceable>*</replaceable></varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "Details of runtime behaviour with respect to parallelism can be controlled by several environment variables. Please refer to the <ulink url='http://openmp.org/wp/openmp-specifications/'>OpenMP API specification</ulink> for details." msgstr "Поведінкою, з точки зору розпаралелювання, можна керувати за допомогою кількох змінних оточення. За деталями зверніться до <ulink url='http://openmp.org/wp/openmp-specifications/'>специфікації OpenMP API</ulink>." #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>TMPDIR</varname>" msgstr "<varname>TMPDIR</varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "<command>&p;</command> makes heavy use of temporary files. It will store them in a directory specified by this variable. The default is <filename>/tmp</filename>." msgstr "<command>&p;</command> інтенсивно використовує тимчасові файли. програма зберігає їх у теці, заданій цією змінною. За умовчанням <filename>/tmp</filename>." #. type: Content of: <refentry><refsection><para> msgid "The following environment variables affects <command>&p;</command> on Unix systems: <placeholder type=\"variablelist\" id=\"0\"/>" msgstr "Наступні змінні оточення впливають на <command>&p;</command> в Unix-системах: <placeholder type=\"variablelist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Template language" msgstr "Мова шаблонів" #. type: Content of: <refentry><refsection><refsection><title> msgid "Template syntax" msgstr "Синтаксис шаблонів" #. type: Content of: <refentry><refsection><refsection><para> msgid "The template language is roughly modelled on the <ulink url='http://docs.python.org/library/string.html#format-string-syntax'>Python string formatting syntax</ulink>." msgstr "Мова шаблонів використовує як зразок <ulink url='http://docs.python.org/library/string.html#format-string-syntax'>синтаксис форматування рядків у Python-і</ulink>." #. type: Content of: <refentry><refsection><refsection><para> msgid "A template is a piece of text which contains <firstterm>fields</firstterm>, surrounded by curly braces <literal>{</literal><literal>}</literal>. Fields are replaced with appropriately formatted values when the template is evaluated. Moreover, <literal>{{</literal> is replaced with a single <literal>{</literal> and <literal>}}</literal> is replaced with a single <literal>}</literal>." msgstr "Шаблон — це текст, який містить <firstterm>поля</firstterm>, оточені фігурними дужками <literal>{</literal><literal>}</literal>. Коли шаблон застосовується, поля замінюються відповідним чином відформатованими значеннями. Окрім того, <literal>{{</literal> и <literal>}}</literal> замінюється одиночними <literal>{</literal> и <literal>}</literal> відповідно." #. type: Content of: <refentry><refsection><refsection><title> msgid "Field syntax" msgstr "Синтаксис полів" #. type: Content of: <refentry><refsection><refsection><para> msgid "Each field consists of a variable name, optionally followed by a shift, optionally followed by a format specification." msgstr "Кожне поле складається з імені змінної, за яким може слідувати зсув (не обов’язково), та специфікації формату (не обов’язково)." #. type: Content of: <refentry><refsection><refsection><para> msgid "The shift is a signed (i.e. starting with a <literal>+</literal> or <literal>-</literal> character) integer." msgstr "Зсув — ціле число зі знаком (тобто починається на <literal>+</literal> чи <literal>-</literal>)." #. type: Content of: <refentry><refsection><refsection><para> msgid "The format specification consists of a colon, followed by a width specification." msgstr "Формат специфікації включає двокрапку, а потім специфікатор ширини поля." #. type: Content of: <refentry><refsection><refsection><para> msgid "The width specification is a decimal integer defining the minimum field width. If not specified, then the field width will be determined by the content. Preceding the width specification with a zero (<literal>0</literal>) character enables zero-padding." msgstr "Специфікатор ширини поля — це ціле десяткове число, що визначає мінімальну ширину поля. Якщо не вказано, тоді ширина поля обчислюється за вмістом. Передуючий специфікатору знак нуля (<literal>0</literal>) робить можливим заповнення нулями." #. type: Content of: <refentry><refsection><refsection><para> msgid "The width specification is optionally followed by an asterisk (<literal>*</literal>) character, which increases the minimum field width to the width of the longest possible content of the variable." msgstr "Після специфікатора ширини поля може розташовуватися знак зірочки (<literal>*</literal>), що збільшує мінімальну ширину поля до максимально можливої ​​довжини змінної." #. type: Content of: <refentry><refsection><refsection><title> msgid "Available variables" msgstr "Доступні змінні" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>page</varname>" msgstr "<varname>page</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>spage</varname>" msgstr "<varname>spage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the PDF document." msgstr "Кількість сторінок в документі PDF." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>dpage</varname>" msgstr "<varname>dpage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the DjVu document." msgstr "Кількість сторінок в документі DjVu." #. type: Content of: <refentry><refsection><title> msgid "Implementation details" msgstr "Деталі реалізації" #. type: Content of: <refentry><refsection><refsection><title> msgid "Layer separation algorithm" msgstr "Алгоритм розділення шарів" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Raster the page into a pixmap, in the usual manner." msgstr "Перетворити сторінку в растрове зображення звичайним чином." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Raster the page into another pixmap, omitting the following page elements:" msgstr "Перетворити сторінку в інше растрове зображення пропускаючи наступні елементи сторінки:" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "text," msgstr "текст," #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "1 bit-per-pixel raster images," msgstr "растрові зображення з глибиною 1 біт на піксель, " #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "vector elements (except fills of large areas)." msgstr "векторні елементи (за винятком великих заповнених площ)." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "If their colors match, classify the pixel as a part of the background layer." msgstr "Якщо їх кольори збігаються, класифікувати піксель як частину фонового шару." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Otherwise, classify the pixel as a part of the foreground layer." msgstr "У протилежному випадку класифікувати піксель як частину шару переднього плану." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Compare both pixmaps, pixel by pixel: <placeholder type=\"orderedlist\" id=\"0\"/>" msgstr "Порівняти обидва зображення, піксель за пікселем: <placeholder type=\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para> msgid "For each page, do the following: <placeholder type=\"orderedlist\" id=\"0\"/>" msgstr "Для кожної сторінки зробити наступне: <placeholder type=\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para> msgid "Unless the <option>--monochrome</option> option is on, &p; uses the following naïve layer separation algorithm: <placeholder type=\"orderedlist\" id=\"0\"/>" msgstr "Якщо не використовується параметр <option>--monochrome</option>, &p; використовує наступний простий алгоритм: <placeholder type=\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Bug reports" msgstr "Повідомлення про помилки" #. type: Content of: <refentry><refsection><para> msgid "If you find a bug in &p;, please report it at <ulink url='http://code.google.com/p/pdf2djvu/issues/'>the issue tracker</ulink>." msgstr "Якщо Ви знайшли помилку у &p;, повідомте про неї на <ulink url='http://code.google.com/p/pdf2djvu/issues/'>баг-трекер</ulink>." #. type: Content of: <refentry><refsection><title> msgid "See also" msgstr "Дивіться також" #. type: Content of: <refentry><refsection><para> msgid "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>" msgstr "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </citerefentry>" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pdf2djvu-0.7.17/doc/po/pdf2djvu.ru.po���������������������������������������������������������������0000644�0000000�0000000�00000141250�12151732402�015724� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright © 2011 Kyrill Detinov # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2011-11-21 19:54+0100\n" "PO-Revision-Date: 2011-08-10 00:28+0300\n" "Last-Translator: Kyrill Detinov <lazy.kent@opensuse.org>\n" "Language-Team: openSUSE Translation Team\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. type: Content of the p entity msgid "pdf2djvu" msgstr "pdf2djvu" #. type: Content of the version entity msgid "0.7.17" msgstr "0.7.17" #. type: Attribute 'lang' of: <refentry> msgid "en" msgstr "ru" #. type: Content of: <refentry><refentryinfo><title> msgid "&p; manual" msgstr "руководство по &p;" #. type: Content of: <refentry><refentryinfo> msgid "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" msgstr "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" #. type: Content of: <refentry><refnamediv><refname> msgid "&p;" msgstr "&p;" #. type: Content of: <refentry><refmeta><manvolnum> msgid "1" msgstr "1" #. type: Content of: <refentry><refmeta><refmiscinfo> msgid "&version;" msgstr "&version;" #. type: Content of: <refentry><refnamediv><refpurpose> msgid "creates DjVu files from PDF files" msgstr "создаёт DjVu-файлы из PDF-фалов" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--" "output</option></arg> </group> <arg choice='plain'><replaceable>output-djvu-" "file</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--" "output</option></arg> </group> <arg " "choice='plain'><replaceable>результирующий-djvu-файл</replaceable></arg> </" "arg> <arg choice='opt' rep='repeat'><replaceable>параметр</replaceable></" "arg> <arg choice='plain' rep='repeat'><replaceable>pdf-файл</replaceable></" "arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--" "indirect</option></arg> </group> <arg choice='plain'><replaceable>index-djvu-" "file</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--" "indirect</option></arg> </group> <arg choice='plain'><replaceable>файл-" "индекса-djvu</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>параметр</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-файл</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--" "version</option></arg> <arg choice='plain'><option>--help</option></arg> " "<arg choice='plain'><option>-h</option></arg> </group>" msgstr "" "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--" "version</option></arg> <arg choice='plain'><option>--help</option></arg> " "<arg choice='plain'><option>-h</option></arg> </group>" #. type: Content of: <refentry><refsection><title> msgid "Description" msgstr "Описание" #. type: Content of: <refentry><refsection><para> msgid "" "This program creates a DjVu file from one or more Portable Document Format " "files." msgstr "" "Программа создаёт DjVu-файл из одного или нескольких Portable Document " "Format файлов." #. type: Content of: <refentry><refsection><title> msgid "Options" msgstr "Параметры" #. type: Content of: <refentry><refsection><para> msgid "<command>&p;</command> accepts the following options:" msgstr "<command>&p;</command> допускает следующие параметры:" #. type: Content of: <refentry><refsection><refsection><title> msgid "Document type, file names" msgstr "Тип документа, имена файлов" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-o</option>" msgstr "<option>-o</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--output=<filename><replaceable>output-djvu-file</replaceable></" "filename></option>" msgstr "" "<option>--output=<filename><replaceable>результирующий-djvu-файл</" "replaceable></filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Generate a bundled multi-page document. Write the file into " "<filename><replaceable>output-djvu-file</replaceable></filename> instead of " "standard output." msgstr "" "Создать объединённый многостраничный документ. Записать файл в " "<filename><replaceable>результирующий-djvu-файл</replaceable></filename> " "вместо стандартного вывода." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-i</option>" msgstr "<option>-i</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--indirect=<filename><replaceable>index-djvu-file</replaceable></" "filename></option>" msgstr "" "<option>--indirect=<filename><replaceable>файл-индекса-djvu</replaceable></" "filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Generate an indirect multi-page document. Use <filename><replaceable>index-" "djvu-file</replaceable></filename> as the index file name; put the component " "files into the same directory. The directory must exist and be writable." msgstr "" "Создать раздельный многостраничный документ. Использовать " "<filename><replaceable>файл-индекса-djvu</replaceable></filename> как имя " "файла индекса; поместить файлы-компоненты в один и тот же каталог. Каталог " "должен существовать и иметь разрешение на запись." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-template=<replaceable>template</replaceable></option>" msgstr "<option>--pageid-template=<replaceable>шаблон</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the naming scheme for page identifiers. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" "Устанавливает схему именования идентификаторов страниц. Обратитесь за " "справкой к <quote><link linkend='template-language' endterm='template-" "language.title'/></quote> секции описания языка шаблонов." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "The default template is <quote><literal>p{page:04*}.djvu</literal></quote>." msgstr "" "Шаблон по умолчанию <quote><literal>p{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "For portability reasons, page identifiers:" msgstr "По причине портабельности идентификатор страницы:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "must consist only of lowercase ASCII letters, digits, <literal>_</literal>, " "<literal>+</literal>, <literal>-</literal> and dot," msgstr "" "должен состоять только из строчных ASCII букв, цифр, <literal>_</literal>, " "<literal>+</literal>, <literal>-</literal> и точки," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "cannot start with a <literal>+</literal>, <literal>-</literal> or a dot," msgstr "" "не может начинаться с <literal>+</literal>, <literal>-</literal> или точки," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "cannot contain two consecutive dots," msgstr "не может включать две последовательные точки," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "must end with the <literal>.djvu</literal> or the <literal>.djv</literal> " "extension." msgstr "" "должен заканчиваться расширением <literal>.djvu</literal> или <literal>.djv</" "literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-prefix=<replaceable>prefix</replaceable></option>" msgstr "<option>--pageid-prefix=<replaceable>префикс</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Equivalent to <quote><literal>--pageid-template=<replaceable>prefix</" "replaceable>{page:04*}.djvu</literal></quote>." msgstr "" "Эквивалентно <quote><literal>--pageid-template=<replaceable>префикс</" "replaceable>{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--page-title-template=<replaceable>template</replaceable></option>" msgstr "" "<option>--page-title-template=<replaceable>шаблон</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the template for page titles. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" "Устанавливает шаблон заголовков страниц. Обратитесь за справкой к секции " "описания языка шаблонов <quote><link linkend='template-language' " "endterm='template-language.title'/></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to set no page titles." msgstr "По умолчанию заголовок не устанавливается." #. type: Content of: <refentry><refsection><refsection><title> msgid "Resolution, page size" msgstr "Разрешение, размер страницы" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-d</option>" msgstr "<option>-d</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--dpi=<replaceable>resolution</replaceable></option>" msgstr "<option>--dpi=<replaceable>разрешение</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the desired resolution to <replaceable>resolution</replaceable> " "dots per inch. The default is 300 dpi. The allowed range is: 72 ≤ " "<replaceable>resolution</replaceable> ≤ 6000." msgstr "" "Устанавливает желаемое разрешение <replaceable>разрешение</replaceable> " "точек на дюйм. По умолчанию 300 dpi. Разрешённый диапазон: 72 ≤ " "<replaceable>разрешение</replaceable> ≤ 6000." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--media-box</option>" msgstr "<option>--media-box</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use <firstterm>MediaBox</firstterm> to determine page size. " "<firstterm>CropBox</firstterm> is used by default." msgstr "" "Использовать <firstterm>MediaBox</firstterm> для определения размера " "страницы. По умолчанию используется <firstterm>CropBox</firstterm>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--page-size=<replaceable>width</replaceable>x<replaceable>height</" "replaceable></option>" msgstr "" "<option>--page-size=<replaceable>ширина</replaceable>x<replaceable>высота</" "replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the preferred page size to <replaceable>width</replaceable> pixels " "× <replaceable>height</replaceable> pixels. The actual page size may be " "altered in order to respect aspect ratio and DjVu limitations on resolution. " "(This option takes precedence over <option>-d</option>/<option>--dpi</" "option>.)" msgstr "" "Устанавливает предпочитаемый размер страницы в <replaceable>ширина</" "replaceable> пикселов × <replaceable>высота</replaceable> пикселов. " "Действительный размер страницы может изменяться для соблюдения соотношения и " "из-за ограничений DjVu. (Этот параметр имеет приоритет над <option>-d</" "option>/<option>--dpi</option>.)" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--guess-dpi</option>" msgstr "<option>--guess-dpi</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Try to guess native resolution by inspecting embedded images. Use with care." msgstr "" "Попробовать предположить оригинальное разрешение проверяя внедрённые " "изображения. Используйте с осторожностью." #. type: Content of: <refentry><refsection><refsection><title> msgid "Image quality" msgstr "Качество изображения" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>" "+<replaceable>n</replaceable></option>" msgstr "" "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>" "+<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</" "replaceable>,<replaceable>n</replaceable></option>" msgstr "" "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</replaceable>," "<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the encoding quality of the IW44 background layer. This option is " "similar to the <option>-slice</option> option of <command>c44</command>. " "Consult the <citerefentry> <refentrytitle>c44</refentrytitle> <manvolnum>1</" "manvolnum> </citerefentry> manual page for details. The default is " "<literal>72+11+10+10</literal>." msgstr "" "Устанавливает качество кодирования фонового слоя IW44. Этот параметр похож " "на параметр <option>-slice</option> для <command>c44</command>. Обратитесь " "за справкой к man-странице <citerefentry> <refentrytitle>c44</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>. По умолчанию <literal>72+11+10+10</" "literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--bg-subsample=<replaceable>n</replaceable></option>" msgstr "<option>--bg-subsample=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the background subsampling ratio. The default is 3. Valid values " "are integers between 1 and 12, inclusive." msgstr "" "Устанавливает отношение подвыборки фона. По умолчанию 3. Допустимые значения " "находятся между 1 и 12 включительно." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=default</option>" msgstr "<option>--fg-colors=default</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Try to preserve all the foreground layer colors. This is the default." msgstr "" "Попробовать сохранить все цвета переднего плана. Используется по умолчанию." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=web</option>" msgstr "<option>--fg-colors=web</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Reduce foreground layer colors to the web palette (216 colors). This option " "is not recommended." msgstr "" "Уменьшить количество цветов переднего плана до web-палитры (216 цветов). Не " "рекомендуется использовать." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=<replaceable>n</replaceable></option>" msgstr "<option>--fg-colors=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use GraphicsMagick to reduce number of distinct colors in the foreground " "layer to <replaceable>n</replaceable>. Valid values are integers between 1 " "and 4080. This option is not recommended." msgstr "" "Использует GraphicsMagick для уменьшения количества явных цветов в слое " "переднего плана. Допустимые значения от 1 до 4080. Не рекомендуется " "использовать." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=black</option>" msgstr "<option>--fg-colors=black</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Discard any color information from the foreground layer." msgstr "Не использовать любую информацию о цветах из слоя переднего плана." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--monochrome</option>" msgstr "<option>--monochrome</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Render pages as monochrome bitmaps. With this option, <option>--bg-" "<replaceable>…</replaceable></option> and <option>--fg-<replaceable>…</" "replaceable></option> options are not respected." msgstr "" "Рендерить страницы как монохромные изображения. С этим параметром опции " "<option>--bg-<replaceable>…</replaceable></option> и <option>--fg-" "<replaceable>…</replaceable></option> не принимаются во внимание." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--loss-level=<replaceable>n</replaceable></option>" msgstr "<option>--loss-level=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the aggressiveness of the lossy compression. The default is 0 " "(lossless). Valid values are integers between 0 and 200, inclusive. This " "option is similar to the <option>-losslevel</option> option of " "<command>cjb2</command>; consult the <citerefentry> <refentrytitle>cjb2</" "refentrytitle> <manvolnum>1</manvolnum> </citerefentry> manual page for " "details. This option is respected only along with the <option>--monochrome</" "option> option." msgstr "" "Устанавливает агрессивность компрессии с потерями. По умолчанию 0 (без " "потерь). Допустимые значения от 0 до 200 включительно. Этот параметр похож " "на параметр <option>-losslevel</option> для <command>cjb2</command>. " "Обратитесь за справкой к man-странице <citerefentry> <refentrytitle>cjb2</" "refentrytitle> <manvolnum>1</manvolnum> </citerefentry>. Этот параметр " "принимается во внимание только вместе с параметром <option>--monochrome</" "option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lossy</option>" msgstr "<option>--lossy</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Synonym for <option>--loss-level=100</option>." msgstr "Равносильно <option>--loss-level=100</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--anti-alias</option>" msgstr "<option>--anti-alias</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Enable font and vector anti-aliasing. This option is not recommended." msgstr "" "Разрешить сглаживание шрифтов и векторной графики. Не рекомендуется " "использовать." #. type: Content of: <refentry><refsection><refsection><title> msgid "Extraction" msgstr "Извлечение" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-metadata</option>" msgstr "<option>--no-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the metadata." msgstr "Не извлекать метаданные." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "By default:" msgstr "По умолчанию:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "The following entries of the document information dictionary are extracted: " "<literal>Title</literal>, <literal>Author</literal>, <literal>Subject</" "literal>, <literal>Creator</literal>, <literal>Producer</literal>, " "<literal>CreationDate</literal>, <literal>ModDate</literal>. Timestamps are " "formatted according to <ulink url='http://www.ietf.org/rfc/rfc3339'>RFC " "3999</ulink>, with date and time components separated by a single space." msgstr "" "Извлекаются следующие значения информации документа: <literal>Title</" "literal>, <literal>Author</literal>, <literal>Subject</literal>, " "<literal>Creator</literal>, <literal>Producer</literal>, " "<literal>CreationDate</literal>, <literal>ModDate</literal>. Временные " "отметки форматируются согласно стандарту <ulink url='http://www.ietf.org/rfc/" "rfc3339'>RFC 3999</ulink>. Дата и время разделены одиночным пробелом." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "The XMP metadata is extracted (or created) and updated accordingly." msgstr "" "Соответственно извлекаются (или создаются) и обновляются метаданные XMP." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><note><para> msgid "" "If multiple input documents are specified, only metadata of the first one is " "taken into account." msgstr "" "В случае нескольких входных документов используются только метаданные из " "первого." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbatim-metadata</option>" msgstr "<option>--verbatim-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Keep the original metadata intact." msgstr "Сохранять метаданные нетронутыми." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-outline</option>" msgstr "<option>--no-outline</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the document outline." msgstr "Не извлекать оглавление документа." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=border-avis</option>" msgstr "<option>--hyperlinks=border-avis</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Make hyperlink borders always visible." msgstr "Делать границы ссылок всегда видимыми." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "By default, a hyperlink border is visible only when the mouse is over the " "hyperlink." msgstr "" "По умолчанию границы ссылок становятся видимыми только при наведении на " "ссылку мыши." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" msgstr "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Force the specified border color for hyperlinks." msgstr "Принудительно использовать заданный цвет для границы ссылок." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-hyperlinks</option>" msgstr "<option>--no-hyperlinks</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=none</option>" msgstr "<option>--hyperlinks=none</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract hyperlinks." msgstr "Не извлекать ссылки." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-text</option>" msgstr "<option>--no-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the text." msgstr "Не извлекать текст." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--words</option>" msgstr "<option>--words</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Extract the text. Record the location of every word. This is the default." msgstr "" "Извлечь текст. Записать расположение каждого слова. Используется по " "умолчанию." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lines</option>" msgstr "<option>--lines</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Extract the text. Record the location of every line, rather that every word." msgstr "Извлечь текст. Записать расположение каждой строки, а не слова." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--crop-text</option>" msgstr "<option>--crop-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Extract no text outside the page boundary." msgstr "Не извлекать текст, который находится за пределами страницы." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-nfkc</option>" msgstr "<option>--no-nfkc</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Don't <ulink url='http://unicode.org/reports/tr15/'>NFKC</ulink>-normalize " "the text." msgstr "" "Не нормализовывать текст <ulink url='http://unicode.org/reports/tr15/'>NFKC</" "ulink>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--filter-text=<replaceable>command-line</replaceable></option>" msgstr "" "<option>--filter-text=<replaceable>командная строка</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Filter the text through the <replaceable>command-line</replaceable>. The " "provided filter must preserve whitespace, control characters and decimal " "digits." msgstr "" "Фильтровать текст через <replaceable>командная строка</replaceable>. Данный " "фильтр должен сохранить пробелы, управляющие символы и десятичные цифры." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "This option implies <option>--no-nfkc</option>." msgstr "Этот параметр подразумевает <option>--no-nfkc</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-p</option>" msgstr "<option>-p</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pages=<replaceable>page-range</replaceable></option>" msgstr "<option>--pages=<replaceable>диапазон-страниц</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies pages to convert. <replaceable>page-range</replaceable> is a comma-" "separated list of sub-ranges. Each sub-range is either a single page (e." "g. <literal>17</literal>) or a contiguous range of pages (e." "g. <literal>37-42</literal>). Pages are numbered from 1." msgstr "" "Устанавливает страницы для конвертирования. <replaceable>диапазон-страниц</" "replaceable> — это разделяемый запятыми список поддиапазонов. Каждый " "поддиапазон является одиночной страницей (например, <literal>17</literal>) " "или последовательным диапазоном страниц (например, <literal>37-42</" "literal>). Страницы нумеруются с 1." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to convert all pages." msgstr "По умолчанию конвертируются все страницы." #. type: Content of: <refentry><refsection><refsection><title> msgid "Performance" msgstr "Производительность" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j</option>" msgstr "<option>-j</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=<replaceable>n</replaceable></option>" msgstr "<option>--jobs=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use <replaceable>n</replaceable> threads to perform conversion. The default " "is to use one thread." msgstr "" "Использовать <replaceable>n</replaceable> потоков для конвертации. По " "умолчанию используется один поток." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j0</option>" msgstr "<option>-j0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=0</option>" msgstr "<option>--jobs=0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Determine automatically how many threads to use to perform conversion." msgstr "" "Определить автоматически, сколько потоков использовать для конвертации." #. type: Content of: <refentry><refsection><refsection><title> msgid "Verbosity, help" msgstr "Подробности, справка" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-v</option>" msgstr "<option>-v</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbose</option>" msgstr "<option>--verbose</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display more informational messages while converting the file." msgstr "Показывать больше информационных сообщений при конвертации файла." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-q</option>" msgstr "<option>-q</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--quiet</option>" msgstr "<option>--quiet</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't display informational messages while converting the file." msgstr "Не показывать информационные сообщения при конвертации файла." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--version</option>" msgstr "<option>--version</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Output version information and exit." msgstr "Вывести информацию о версии и выйти." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-h</option>" msgstr "<option>-h</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--help</option>" msgstr "<option>--help</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display help and exit." msgstr "Показать справку и выйти." #. type: Content of: <refentry><refsection><title> msgid "Environment" msgstr "Окружение" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>OMP_<replaceable>*</replaceable></varname>" msgstr "<varname>OMP_<replaceable>*</replaceable></varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "" "Details of runtime behaviour with respect to parallelism can be controlled " "by several environment variables. Please refer to the <ulink url='http://" "openmp.org/wp/openmp-specifications/'>OpenMP API specification</ulink> for " "details." msgstr "" "Поведением, с точки зрения распараллеливания, можно управлять с помощью " "нескольких переменных окружения. За деталями обратитесь к <ulink url='http://" "openmp.org/wp/openmp-specifications/'>спецификации OpenMP API</ulink>." #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>TMPDIR</varname>" msgstr "<varname>TMPDIR</varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "" "<command>&p;</command> makes heavy use of temporary files. It will store " "them in a directory specified by this variable. The default is <filename>/" "tmp</filename>." msgstr "" "<command>&p;</command> интенсивно использует временные файлы. Программа " "сохраняет их в каталоге заданном этой переменной. По умолчанию <filename>/" "tmp</filename>." #. type: Content of: <refentry><refsection><para> msgid "" "The following environment variables affects <command>&p;</command> on Unix " "systems: <placeholder type=\"variablelist\" id=\"0\"/>" msgstr "" "Следующие переменные окружения оказывают влияние на <command>&p;</command> " "в Unix-системах: <placeholder type=\"variablelist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Template language" msgstr "Язык шаблонов" #. type: Content of: <refentry><refsection><refsection><title> msgid "Template syntax" msgstr "Синтаксис шаблонов" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The template language is roughly modelled on the <ulink url='http://docs." "python.org/library/string.html#format-string-syntax'>Python string " "formatting syntax</ulink>." msgstr "" "Язык шаблонов использует как образец <ulink url='http://docs.python.org/" "library/string.html#format-string-syntax'>синтаксис форматирования строк в " "Python</ulink>." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "A template is a piece of text which contains <firstterm>fields</firstterm>, " "surrounded by curly braces <literal>{</literal><literal>}</literal>. Fields " "are replaced with appropriately formatted values when the template is " "evaluated. Moreover, <literal>{{</literal> is replaced with a single " "<literal>{</literal> and <literal>}}</literal> is replaced with a single " "<literal>}</literal>." msgstr "" "Шаблон — это текст, который содержит <firstterm>поля</firstterm>, окружённые " "фигурными скобками <literal>{</literal><literal>}</literal>. Когда шаблон " "применяется, поля заменяются соответствующим образом отформатированными " "значениями. Кроме того, <literal>{{</literal> и <literal>}}</literal> " "заменяются одиночными <literal>{</literal> и <literal>}</literal> " "соответственно." #. type: Content of: <refentry><refsection><refsection><title> msgid "Field syntax" msgstr "Синтаксис полей" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "Each field consists of a variable name, optionally followed by a shift, " "optionally followed by a format specification." msgstr "" "Каждое поле состоит из имени переменной, за которым может следовать сдвиг " "(не обязательно) и спецификация формата (не обязательно)." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The shift is a signed (i.e. starting with a <literal>+</literal> or " "<literal>-</literal> character) integer." msgstr "" "Сдвиг — целое число со знаком (т. е. начинающееся на <literal>+</literal> or " "<literal>-</literal>)." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The format specification consists of a colon, followed by a width " "specification." msgstr "" "Формат спецификации включает двоеточие, а затем спецификатор ширины поля." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The width specification is a decimal integer defining the minimum field " "width. If not specified, then the field width will be determined by the " "content. Preceding the width specification with a zero (<literal>0</" "literal>) character enables zero-padding." msgstr "" "Спецификатор ширины поля — это целое десятичное число определяющее " "минимальную ширину поля. Если не указано, тогда ширина поля вычисляется по " "содержимому. Предшествующий спецификатору знак нуля (<literal>0</literal>) " "делает возможным заполнение нулями." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The width specification is optionally followed by an asterisk (<literal>*</" "literal>) character, which increases the minimum field width to the width of " "the longest possible content of the variable." msgstr "" "После спецификатора ширины поля может располагаться знак звёздочки " "(<literal>*</literal>), что увеличивает минимальную ширину поля до " "максимально возможной длины переменной." #. type: Content of: <refentry><refsection><refsection><title> msgid "Available variables" msgstr "Доступные переменные" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>page</varname>" msgstr "<varname>page</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>spage</varname>" msgstr "<varname>spage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the PDF document." msgstr "Количество страниц в документе PDF." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>dpage</varname>" msgstr "<varname>dpage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the DjVu document." msgstr "Количество страниц в документе DjVu." #. type: Content of: <refentry><refsection><title> msgid "Implementation details" msgstr "Детали реализации" #. type: Content of: <refentry><refsection><refsection><title> msgid "Layer separation algorithm" msgstr "Алгоритм разделения слоёв" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Raster the page into a pixmap, in the usual manner." msgstr "Преобразовать страницу в растровое изображение обычным порядком." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "Raster the page into another pixmap, omitting the following page elements:" msgstr "" "Преобразовать страницу в другое растровое изображение пропуская следующие " "элементы страницы:" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "text," msgstr "текст," #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "1 bit-per-pixel raster images," msgstr "растровые изображения с глубиной 1 бит на пиксел," #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "vector elements (except fills of large areas)." msgstr "векторные элементы (за исключением больших заполненных площадей)." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "If their colors match, classify the pixel as a part of the background layer." msgstr "" "Если их цвета совпадают, классифицировать пиксел как часть фонового слоя." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Otherwise, classify the pixel as a part of the foreground layer." msgstr "" "В противоположном случае классифицировать пиксел как часть слоя переднего " "плана." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "Compare both pixmaps, pixel by pixel: <placeholder type=\"orderedlist\" id=" "\"0\"/>" msgstr "" "Сравнить оба изображения, пиксел за пикселом: <placeholder type=\"orderedlist" "\" id=\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para> msgid "" "For each page, do the following: <placeholder type=\"orderedlist\" id=\"0\"/>" msgstr "" "Для каждой страницы сделать следующее: <placeholder type=\"orderedlist\" id=" "\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "Unless the <option>--monochrome</option> option is on, &p; uses the " "following naïve layer separation algorithm: <placeholder type=\"orderedlist" "\" id=\"0\"/>" msgstr "" "Если не используется параметр <option>--monochrome</option>, &p; использует " "следующий простой алгоритм: <placeholder type=\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Bug reports" msgstr "Сообщения об ошибках" #. type: Content of: <refentry><refsection><para> msgid "" "If you find a bug in &p;, please report it at <ulink url='http://code.google." "com/p/pdf2djvu/issues/'>the issue tracker</ulink>." msgstr "" "Если вы нашли ошибку в &p;, сообщите о ней в <ulink url='http://code.google." "com/p/pdf2djvu/issues/'>баг-трекер</ulink>." #. type: Content of: <refentry><refsection><title> msgid "See also" msgstr "Смотрите также" #. type: Content of: <refentry><refsection><para> msgid "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry>" msgstr "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry>" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pdf2djvu-0.7.17/doc/po/pdf2djvu.pl.po���������������������������������������������������������������0000644�0000000�0000000�00000127003�12151732402�015711� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright © 2009, 2010, 2011 Jakub Wilk # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2011-11-21 19:54+0100\n" "PO-Revision-Date: 2009-06-20 10:25+0300\n" "Last-Translator: Jakub Wilk <jwilk@jwilk.net>\n" "Language-Team: none\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. type: Content of the p entity msgid "pdf2djvu" msgstr "pdf2djvu" #. type: Content of the version entity msgid "0.7.17" msgstr "0.7.17" #. type: Attribute 'lang' of: <refentry> msgid "en" msgstr "pl" #. type: Content of: <refentry><refentryinfo><title> msgid "&p; manual" msgstr "podręcznik &p;" #. type: Content of: <refentry><refentryinfo> msgid "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" msgstr "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" #. type: Content of: <refentry><refnamediv><refname> msgid "&p;" msgstr "&p;" #. type: Content of: <refentry><refmeta><manvolnum> msgid "1" msgstr "1" #. type: Content of: <refentry><refmeta><refmiscinfo> msgid "&version;" msgstr "&version;" #. type: Content of: <refentry><refnamediv><refpurpose> msgid "creates DjVu files from PDF files" msgstr "tworzy pliki DjVu z plików PDF" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--" "output</option></arg> </group> <arg choice='plain'><replaceable>output-djvu-" "file</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--" "output</option></arg> </group> <arg choice='plain'><replaceable>plik-" "wyjściowy-djvu</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>opcja</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>plik-pdf</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--" "indirect</option></arg> </group> <arg choice='plain'><replaceable>index-djvu-" "file</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--" "indirect</option></arg> </group> <arg choice='plain'><replaceable>plik-" "indeksowy-djvu</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>opcja</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>plik-pdf</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--" "version</option></arg> <arg choice='plain'><option>--help</option></arg> " "<arg choice='plain'><option>-h</option></arg> </group>" msgstr "" "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--" "version</option></arg> <arg choice='plain'><option>--help</option></arg> " "<arg choice='plain'><option>-h</option></arg> </group>" #. type: Content of: <refentry><refsection><title> msgid "Description" msgstr "Opis" #. type: Content of: <refentry><refsection><para> msgid "" "This program creates a DjVu file from one or more Portable Document Format " "files." msgstr "" "Program ten tworzy plik DjVu na podstawie jedngo lub więcej plików w " "formacie Portable Document Format." #. type: Content of: <refentry><refsection><title> msgid "Options" msgstr "Opcje" #. type: Content of: <refentry><refsection><para> msgid "<command>&p;</command> accepts the following options:" msgstr "<command>&p;</command> przyjmuje następujące opcje:" #. type: Content of: <refentry><refsection><refsection><title> msgid "Document type, file names" msgstr "Typ dokumentu, nazwy plików" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-o</option>" msgstr "<option>-o</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--output=<filename><replaceable>output-djvu-file</replaceable></" "filename></option>" msgstr "" "<option>--output=<filename><replaceable>plik-wyjściowy-djvu</replaceable></" "filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Generate a bundled multi-page document. Write the file into " "<filename><replaceable>output-djvu-file</replaceable></filename> instead of " "standard output." msgstr "" "Utwórz spakowany dokument wielostronicowy. Zapisz wynik do " "<filename><replaceable>wyjściowego-pliku-djvu</replaceable></filename> " "zamiast na standardowe wyjście." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-i</option>" msgstr "<option>-i</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--indirect=<filename><replaceable>index-djvu-file</replaceable></" "filename></option>" msgstr "" "<option>--indirect=<filename><replaceable>indeksowy-plik-djvu</replaceable></" "filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Generate an indirect multi-page document. Use <filename><replaceable>index-" "djvu-file</replaceable></filename> as the index file name; put the component " "files into the same directory. The directory must exist and be writable." msgstr "" "Utwórz rozdzielony dokument wielostronicowy. Jako nazwy pliku indeksowego " "użyj <filename><replaceable>pliku-indeksowego-djvu</replaceable></filename>; " "pliki składowe umieść w tym samym katalogu. Katalog musi istnieć z prawami " "do zapisu." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-template=<replaceable>template</replaceable></option>" msgstr "<option>--pageid-template=<replaceable>szablon</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the naming scheme for page identifiers. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" "Określa schemat nazewnictwa identyfikatorów stron. Opis języka szablonów " "znajduje się w rozdziale <quote><link linkend='template-language' " "endterm='template-language.title'/></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "The default template is <quote><literal>p{page:04*}.djvu</literal></quote>." msgstr "" "Domyślny szablon to <quote><literal>p{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "For portability reasons, page identifiers:" msgstr "Aby umożliwić przenośność, identyfikatory stron:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "must consist only of lowercase ASCII letters, digits, <literal>_</literal>, " "<literal>+</literal>, <literal>-</literal> and dot," msgstr "" "muszą składać się tylko z małych liter ASCII, cyfr, znaków <literal>_</" "literal>, <literal>+</literal>, <literal>-</literal> i kropki," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "cannot start with a <literal>+</literal>, <literal>-</literal> or a dot," msgstr "" "nie mogą zaczynać się od znaku <literal>+</literal>, <literal>-</literal> " "ani kropki," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "cannot contain two consecutive dots," msgstr "nie mogą zawierać dwóch kropek z rzędu," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "must end with the <literal>.djvu</literal> or the <literal>.djv</literal> " "extension." msgstr "" "muszą kończyć się rozszerzeniem <literal>.djvu</literal> lub <literal>.djv</" "literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-prefix=<replaceable>prefix</replaceable></option>" msgstr "<option>--pageid-prefix=<replaceable>prefiks</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Equivalent to <quote><literal>--pageid-template=<replaceable>prefix</" "replaceable>{page:04*}.djvu</literal></quote>." msgstr "" "Równoważność <quote><literal>--pageid-template=<replaceable>prefiks</" "replaceable>{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--page-title-template=<replaceable>template</replaceable></option>" msgstr "" "<option>--page-title-template=<replaceable>szablon</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the template for page titles. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" "Określa schemat tytułów stron. Opis języka szablonów znajduje się w " "rozdziale <quote><link linkend='template-language' endterm='template-" "language.title'/></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to set no page titles." msgstr "Domyślnie tytuły nie są ustawiane." #. type: Content of: <refentry><refsection><refsection><title> msgid "Resolution, page size" msgstr "Rozdzielczość, wielkość strony" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-d</option>" msgstr "<option>-d</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--dpi=<replaceable>resolution</replaceable></option>" msgstr "<option>--dpi=<replaceable>rozdzielczość</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the desired resolution to <replaceable>resolution</replaceable> " "dots per inch. The default is 300 dpi. The allowed range is: 72 ≤ " "<replaceable>resolution</replaceable> ≤ 6000." msgstr "" "Określa, że pożądaną rozdzielczością jest <replaceable>rozdzielczość</" "replaceable> punktów na cal. Domyślną wartością jest 300 dpi. Dopuszczalny " "zakres to: 72 ≤ <replaceable>rozdzielczość</replaceable> ≤ 6000." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--media-box</option>" msgstr "<option>--media-box</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use <firstterm>MediaBox</firstterm> to determine page size. " "<firstterm>CropBox</firstterm> is used by default." msgstr "" "Do określenia rozmiaru strony użyj <firstterm>MediaBox</firstterm>. " "Domyślnie używane jest <firstterm>CropBox</firstterm>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--page-size=<replaceable>width</replaceable>x<replaceable>height</" "replaceable></option>" msgstr "" "<option>--page-size=<replaceable>szerokość</" "replaceable>x<replaceable>wysokość</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the preferred page size to <replaceable>width</replaceable> pixels " "× <replaceable>height</replaceable> pixels. The actual page size may be " "altered in order to respect aspect ratio and DjVu limitations on resolution. " "(This option takes precedence over <option>-d</option>/<option>--dpi</" "option>.)" msgstr "" "Określa, że preferowanym rozmiarem strony jest <replaceable>szerokość</" "replaceable> pikseli × <replaceable>wysokość</replaceable> pikseli. " "Faktyczny rozmiar strony może zostać zmieniony, by zachować proporcje obrazu " "i wymogi DjVu dot. rozdzielczości. (Ta opcja ma pierwszeństwo nad <option>-" "d</option>/<option>--dpi</option>.)" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--guess-dpi</option>" msgstr "<option>--guess-dpi</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Try to guess native resolution by inspecting embedded images. Use with care." msgstr "" "Spróbuj odgadnąć pierwotną rozdzielczość poprzez ogląd osadzonych obrazów. " "Używać ostrożnie." #. type: Content of: <refentry><refsection><refsection><title> msgid "Image quality" msgstr "Jakość obrazu" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>" "+<replaceable>n</replaceable></option>" msgstr "" "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>" "+<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</" "replaceable>,<replaceable>n</replaceable></option>" msgstr "" "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</" "replaceable>,<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the encoding quality of the IW44 background layer. This option is " "similar to the <option>-slice</option> option of <command>c44</command>. " "Consult the <citerefentry> <refentrytitle>c44</refentrytitle> <manvolnum>1</" "manvolnum> </citerefentry> manual page for details. The default is " "<literal>72+11+10+10</literal>." msgstr "" "Określa jakość kompresji warstwy tła IW44. Opcja ta jest podobna do opcji " "<option>-slice</option> programu <command>c44</command>. Szczegóły znajdują " "się w podręczniku <citerefentry><refentrytitle>c44</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>. Domyślną wartością jest " "<literal>72+11+10+10</literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--bg-subsample=<replaceable>n</replaceable></option>" msgstr "<option>--bg-subsample=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the background subsampling ratio. The default is 3. Valid values " "are integers between 1 and 12, inclusive." msgstr "" "Określa współczynnik podpróbkowania tła. Domyślną wartością jest 3. " "Dopuszczalne wartości to liczby całkowite od 1 do 12 włącznie." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=default</option>" msgstr "<option>--fg-colors=default</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Try to preserve all the foreground layer colors. This is the default." msgstr "" "Staraj zachować się wszystkie kolory pierwszego planu. Tak jest domyślnie." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=web</option>" msgstr "<option>--fg-colors=web</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Reduce foreground layer colors to the web palette (216 colors). This option " "is not recommended." msgstr "" "Zredukuj kolory pierwszego planu do palety WWW (216 kolorów). Ta opcja nie " "jest zalecana." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=<replaceable>n</replaceable></option>" msgstr "<option>--fg-colors=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use GraphicsMagick to reduce number of distinct colors in the foreground " "layer to <replaceable>n</replaceable>. Valid values are integers between 1 " "and 4080. This option is not recommended." msgstr "" "Użyj GraphicsMagicka do zredukowania do <replaceable>n</replaceable> liczby " "różnych kolorów na pierwszym planie. Dopuszczalne wartości to liczby " "całkowite od 1 do 4080. Ta opcja nie jest zalecana." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=black</option>" msgstr "<option>--fg-colors=black</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Discard any color information from the foreground layer." msgstr "Odrzuć informacje o kolorach pierwszego planu." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--monochrome</option>" msgstr "<option>--monochrome</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Render pages as monochrome bitmaps. With this option, <option>--bg-" "<replaceable>…</replaceable></option> and <option>--fg-<replaceable>…</" "replaceable></option> options are not respected." msgstr "" "Rastruj strony jako dwukolorowe bitmapy. W takim wypadku opcje <option>--bg-" "<replaceable>…</replaceable></option> i <option>--fg-<replaceable>…</" "replaceable></option> nie są respektowane." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--loss-level=<replaceable>n</replaceable></option>" msgstr "<option>--loss-level=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the aggressiveness of the lossy compression. The default is 0 " "(lossless). Valid values are integers between 0 and 200, inclusive. This " "option is similar to the <option>-losslevel</option> option of " "<command>cjb2</command>; consult the <citerefentry> <refentrytitle>cjb2</" "refentrytitle> <manvolnum>1</manvolnum> </citerefentry> manual page for " "details. This option is respected only along with the <option>--monochrome</" "option> option." msgstr "" "Określa agresywność kompresji stratnej. Domyślną wartością jest 0 (kompresja " "bezstratna). Dopuszczalne wartości to liczby całkowite od 0 do 200 włącznie. " "Opcja ta jest podobna do opcji <option>-losslevel</option> programu " "<command>cjb2</command>; szczegóły znajdują się w podręczniku <citerefentry> " "<refentrytitle>cjb2</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry> . Opcja ta jest respektowna tylko razem z opcją <option>--" "monochrome</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lossy</option>" msgstr "<option>--lossy</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Synonym for <option>--loss-level=100</option>." msgstr "Synonim <option>--loss-level=100</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--anti-alias</option>" msgstr "<option>--anti-alias</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Enable font and vector anti-aliasing. This option is not recommended." msgstr "" "Włącz antyaliasing fontów i grafiki wektorowej. Ta opcja nie jest zalecana." #. type: Content of: <refentry><refsection><refsection><title> msgid "Extraction" msgstr "Wyodrębnianie" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-metadata</option>" msgstr "<option>--no-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the metadata." msgstr "Nie wyodrębniaj metadanych." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "By default:" msgstr "Domyślnie:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "The following entries of the document information dictionary are extracted: " "<literal>Title</literal>, <literal>Author</literal>, <literal>Subject</" "literal>, <literal>Creator</literal>, <literal>Producer</literal>, " "<literal>CreationDate</literal>, <literal>ModDate</literal>. Timestamps are " "formatted according to <ulink url='http://www.ietf.org/rfc/rfc3339'>RFC " "3999</ulink>, with date and time components separated by a single space." msgstr "" "Wyodrębniane są następujące hasła słownika informacji o dokumencie: " "<literal>Title</literal>, <literal>Author</literal>, <literal>Subject</" "literal>, <literal>Creator</literal>, <literal>Producer</literal>, " "<literal>CreationDate</literal>, <literal>ModDate</literal>. Zapisy daty i " "czasu są formatowane wg <ulink url='http://www.ietf.org/rfc/rfc3339'>RFC " "3999</ulink>, z datą i czasem oddzielonymi pojedynczą spacją." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "The XMP metadata is extracted (or created) and updated accordingly." msgstr "" "Metadane XMP są wyodrębniane (lub tworzone) i odpowiednio aktualizowane." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><note><para> msgid "" "If multiple input documents are specified, only metadata of the first one is " "taken into account." msgstr "" "W przypadku wielu dokumentów wejściowych, tylko metadane pierwszego z nich " "są brane pod uwagę." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbatim-metadata</option>" msgstr "<option>--verbatim-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Keep the original metadata intact." msgstr "Zachowaj oryginalne metadane bez zmian." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-outline</option>" msgstr "<option>--no-outline</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the document outline." msgstr "Nie wyodrębniaj konspektu dokumentu." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=border-avis</option>" msgstr "<option>--hyperlinks=border-avis</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Make hyperlink borders always visible." msgstr "Spraw, by ramki hiperłączy były zawsze widoczne." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "By default, a hyperlink border is visible only when the mouse is over the " "hyperlink." msgstr "" "Domyślnie ramka hiperłącza jest widoczna tylko gdy nad nim znajduje się " "kursor myszki." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" msgstr "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Force the specified border color for hyperlinks." msgstr "Wymuś określony kolor ramki hiperłączy." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-hyperlinks</option>" msgstr "<option>--no-hyperlinks</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=none</option>" msgstr "<option>--hyperlinks=none</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract hyperlinks." msgstr "Nie wyodrębniaj hiperłączy." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-text</option>" msgstr "<option>--no-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the text." msgstr "Nie wyodrębniaj tekstu." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--words</option>" msgstr "<option>--words</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Extract the text. Record the location of every word. This is the default." msgstr "Wyodrębniaj tekst. Zapisz położenia każdego słowa. Tak jest domyślnie." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lines</option>" msgstr "<option>--lines</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Extract the text. Record the location of every line, rather that every word." msgstr "Wyodrębniaj tekst. Zapisz położenia każdej linii, a nie każdego słowa." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--crop-text</option>" msgstr "<option>--crop-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Extract no text outside the page boundary." msgstr "Nie wyodrębniaj tekstu, który znajduje się poza granicami strony." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-nfkc</option>" msgstr "<option>--no-nfkc</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Don't <ulink url='http://unicode.org/reports/tr15/'>NFKC</ulink>-normalize " "the text." msgstr "" "Nie poddawaj tekstu normalizacji <ulink url='http://unicode.org/reports/" "tr15/'>NFKC</ulink>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--filter-text=<replaceable>command-line</replaceable></option>" msgstr "" "<option>--filter-text=<replaceable>linia-poleceń</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Filter the text through the <replaceable>command-line</replaceable>. The " "provided filter must preserve whitespace, control characters and decimal " "digits." msgstr "" "Przefiltruj tekst przez <replaceable>linię-poleceń</replaceable>. Dany filtr " "musi zachowywać białe znaki, znaki kontrole i cyfry dziesiętne." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "This option implies <option>--no-nfkc</option>." msgstr "Opcja ta implikuje <option>--no-nfkc</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-p</option>" msgstr "<option>-p</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pages=<replaceable>page-range</replaceable></option>" msgstr "<option>--pages=<replaceable>zakres stron</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies pages to convert. <replaceable>page-range</replaceable> is a comma-" "separated list of sub-ranges. Each sub-range is either a single page (e." "g. <literal>17</literal>) or a contiguous range of pages (e." "g. <literal>37-42</literal>). Pages are numbered from 1." msgstr "" "Określa strony przeznaczone do konwersji. <replaceable>zakres-stron</" "replaceable> jest oddzielaną przecinkami listą podzakresów. Każdy podzakres " "to albo pojedyncza strona (np. <literal>17</literal>), albo ciągły zakres " "stron (np. <literal>37-42</literal>). Strony numerowane są od 1." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to convert all pages." msgstr "Domyślnie konwertowane są wszystkie strony." #. type: Content of: <refentry><refsection><refsection><title> msgid "Performance" msgstr "Wydajność" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j</option>" msgstr "<option>-j</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=<replaceable>n</replaceable></option>" msgstr "<option>--jobs=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use <replaceable>n</replaceable> threads to perform conversion. The default " "is to use one thread." msgstr "" "Użyj <replaceable>n</replaceable> wątków do przeprowadzenia konwersji. " "Domyślnie używany jest jeden wątek." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j0</option>" msgstr "<option>-j0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=0</option>" msgstr "<option>--jobs=0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Determine automatically how many threads to use to perform conversion." msgstr "" "Określ liczbę wątków używanych do przeprowadzenia konwersji automatycznie." #. type: Content of: <refentry><refsection><refsection><title> msgid "Verbosity, help" msgstr "Gadatliwość, pomoc" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-v</option>" msgstr "<option>-v</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbose</option>" msgstr "<option>--verbose</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display more informational messages while converting the file." msgstr "Wyświetlaj więcej komunikatów informacyjnych podczas konwersji pliku." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-q</option>" msgstr "<option>-q</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--quiet</option>" msgstr "<option>--quiet</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't display informational messages while converting the file." msgstr "Nie wyświetlaj komunikatów informacyjnych podczas konwersji pliku." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--version</option>" msgstr "<option>--version</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Output version information and exit." msgstr "Wyświetl informację o wersji i wyjdź." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-h</option>" msgstr "<option>-h</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--help</option>" msgstr "<option>--help</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display help and exit." msgstr "Wyświetl pomoc i wyjdź." #. type: Content of: <refentry><refsection><title> msgid "Environment" msgstr "Środowisko" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>OMP_<replaceable>*</replaceable></varname>" msgstr "<varname>OMP_<replaceable>*</replaceable></varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "" "Details of runtime behaviour with respect to parallelism can be controlled " "by several environment variables. Please refer to the <ulink url='http://" "openmp.org/wp/openmp-specifications/'>OpenMP API specification</ulink> for " "details." msgstr "" "Zachowanie programu pod względem współbieżności można kontrolować za pomocą " "kilku zmiennych środowiskowych. Szczegóły opisane są w <ulink url='http://" "openmp.org/wp/openmp-specifications/'>specyfikacji API OpenMP</ulink>." #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>TMPDIR</varname>" msgstr "<varname>TMPDIR</varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "" "<command>&p;</command> makes heavy use of temporary files. It will store " "them in a directory specified by this variable. The default is <filename>/" "tmp</filename>." msgstr "" "<command>&p;</command> intensywnie używa plików tymczasowych. Są one " "składowane w katalogu określonym przez tę zmienną. Domyślną wartością " "jest<filename>/tmp</filename>." #. type: Content of: <refentry><refsection><para> msgid "" "The following environment variables affects <command>&p;</command> on Unix " "systems: <placeholder type=\"variablelist\" id=\"0\"/>" msgstr "" "Następujące zmienne środowiskowe mają wpływ na działanie <command>&p;</" "command> w systemach uniksowych: <placeholder type=\"variablelist\" id=\"0\"/" ">" #. type: Content of: <refentry><refsection><title> msgid "Template language" msgstr "Język szablonów" #. type: Content of: <refentry><refsection><refsection><title> msgid "Template syntax" msgstr "Składnia szablonów" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The template language is roughly modelled on the <ulink url='http://docs." "python.org/library/string.html#format-string-syntax'>Python string " "formatting syntax</ulink>." msgstr "" "Język szablonów jest z grubsza wzorowany na <ulink url='http://docs.python." "org/library/string.html#format-string-syntax'>składni formatowania napisów w " "języku Python</ulink>." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "A template is a piece of text which contains <firstterm>fields</firstterm>, " "surrounded by curly braces <literal>{</literal><literal>}</literal>. Fields " "are replaced with appropriately formatted values when the template is " "evaluated. Moreover, <literal>{{</literal> is replaced with a single " "<literal>{</literal> and <literal>}}</literal> is replaced with a single " "<literal>}</literal>." msgstr "" "Szablon to kawałek tekstu zawierający <firstterm>pola</firstterm>, otoczone " "klamrami <literal>{</literal><literal>}</literal>. Kiedy szablon jest " "wyliczany, pola zastępowane są odpowiednio sformatowanymi wartościami. " "Ponadto ciąg <literal>{{</literal> jest zastępowany pojedynczym <literal>{</" "literal> a ciąg <literal>}}</literal> — pojedynczym <literal>}</literal>." #. type: Content of: <refentry><refsection><refsection><title> msgid "Field syntax" msgstr "Składnia pól" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "Each field consists of a variable name, optionally followed by a shift, " "optionally followed by a format specification." msgstr "" "Każde pole składa się z nazwy zmiennej, po której opcjonalnie następuje " "przesunięcie, po którym opcjonalnie następuje specyfikacja formatu." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The shift is a signed (i.e. starting with a <literal>+</literal> or " "<literal>-</literal> character) integer." msgstr "" "Przesunięcie jest liczbą całkowitą ze znakiem (tj. zaczynającą się znakiem " "<literal>+</literal> lub <literal>-</literal>)." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The format specification consists of a colon, followed by a width " "specification." msgstr "" "Specyfikacja formatu składa się z dwukropka, po którym następuje " "specyfikacja szerokości." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The width specification is a decimal integer defining the minimum field " "width. If not specified, then the field width will be determined by the " "content. Preceding the width specification with a zero (<literal>0</" "literal>) character enables zero-padding." msgstr "" "Specyfikacja szerokości jest liczbą całkowitą definiującą minimalną " "szerokość pola. W przypadku braku definicji, szerokość zostanie określona na " "podstawie treści. Poprzedzenie specyfikacji szerokości zerem (<literal>0</" "literal>) powoduje dopełnianie zerami." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The width specification is optionally followed by an asterisk (<literal>*</" "literal>) character, which increases the minimum field width to the width of " "the longest possible content of the variable." msgstr "" "Po specyfikacji szerokości może opcjonalne nastąpić znak gwiazdki " "(<literal>*</literal>), który zwiększa minimalną szerokość pola do " "największej możliwej długości zawartości zmiennej." #. type: Content of: <refentry><refsection><refsection><title> msgid "Available variables" msgstr "Dostępne zmienne" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>page</varname>" msgstr "<varname>page</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>spage</varname>" msgstr "<varname>spage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the PDF document." msgstr "Numer strony w dokumencie PDF." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>dpage</varname>" msgstr "<varname>dpage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the DjVu document." msgstr "Numer strony w dokumencie DjVu." #. type: Content of: <refentry><refsection><title> msgid "Implementation details" msgstr "Szczegóły implementacji" #. type: Content of: <refentry><refsection><refsection><title> msgid "Layer separation algorithm" msgstr "Algorytm separacji warstw" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Raster the page into a pixmap, in the usual manner." msgstr "Zrastruj stronę do mapy pikseli w zwykły sposób." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "Raster the page into another pixmap, omitting the following page elements:" msgstr "" "Zrastruj stronę do innej mapy pikseli, z pominięciem następujących elementów " "strony:" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "text," msgstr "tekst," #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "1 bit-per-pixel raster images," msgstr "obrazy rastrowe o głębokości 1 bit na piksel," #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "vector elements (except fills of large areas)." msgstr "elementy wektorowe (oprócz wypełnień o dużej powierzchni)." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "If their colors match, classify the pixel as a part of the background layer." msgstr "" "Jeżeli kolory się zgadzają, zaklasyfikuj piksel jako część warstwy tła." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Otherwise, classify the pixel as a part of the foreground layer." msgstr "W przeciwnym wypadku, zaklasyfikuj piksel jako część pierwszego planu." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "Compare both pixmaps, pixel by pixel: <placeholder type=\"orderedlist\" id=" "\"0\"/>" msgstr "" "Porównaj obie mapy pikseli, piksel po pikselu: <placeholder type=" "\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para> msgid "" "For each page, do the following: <placeholder type=\"orderedlist\" id=\"0\"/>" msgstr "" "Dla każdej strony wykonaj co następuje: <placeholder type=\"orderedlist\" id=" "\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "Unless the <option>--monochrome</option> option is on, &p; uses the " "following naïve layer separation algorithm: <placeholder type=\"orderedlist" "\" id=\"0\"/>" msgstr "" "Jeżeli nie użyto opcji <option>--monochrome</option>, &p; używa " "następującego naiwnego algorytmu separacji warstw: <placeholder type=" "\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Bug reports" msgstr "Raporty o błędach" #. type: Content of: <refentry><refsection><para> msgid "" "If you find a bug in &p;, please report it at <ulink url='http://code.google." "com/p/pdf2djvu/issues/'>the issue tracker</ulink>." msgstr "" "Błędy znalezione w &p; proszę zgłaszać w <ulink url='http://code.google.com/" "p/pdf2djvu/issues/'>systemie śledzenia problemów</ulink>." #. type: Content of: <refentry><refsection><title> msgid "See also" msgstr "Zobacz też" #. type: Content of: <refentry><refsection><para> msgid "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry>" msgstr "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry>" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pdf2djvu-0.7.17/doc/po/pdf2djvu.de.po���������������������������������������������������������������0000644�0000000�0000000�00000130056�12151732402�015670� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright © 2011 Chris Leick <c.leick@vollbio.de> # This file is distributed under the same license as the pdf2djvu package. # msgid "" msgstr "" "Project-Id-Version: pdf2djvu 0.7.17\n" "Report-Msgid-Bugs-To: http://code.google.com/p/pdf2djvu/issues/\n" "POT-Creation-Date: 2011-11-21 19:54+0100\n" "PO-Revision-Date: 2011-05-04 21:35+0200\n" "Last-Translator: Chris Leick <c.leick@vollbio.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. type: Content of the p entity msgid "pdf2djvu" msgstr "pdf2djvu" #. type: Content of the version entity msgid "0.7.17" msgstr "0.7.17" #. type: Attribute 'lang' of: <refentry> msgid "en" msgstr "de" #. type: Content of: <refentry><refentryinfo><title> msgid "&p; manual" msgstr "&p; Handbuch" #. type: Content of: <refentry><refentryinfo> msgid "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" msgstr "" "<productname>&p;</productname> <author> <firstname>Jakub</firstname> " "<surname>Wilk</surname> <email>jwilk@jwilk.net</email> </author>" #. type: Content of: <refentry><refnamediv><refname> msgid "&p;" msgstr "&p;" #. type: Content of: <refentry><refmeta><manvolnum> msgid "1" msgstr "1" #. type: Content of: <refentry><refmeta><refmiscinfo> msgid "&version;" msgstr "&version;" #. type: Content of: <refentry><refnamediv><refpurpose> msgid "creates DjVu files from PDF files" msgstr "Erzeugt DjVu-Dateien aus PDF-Dateien" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--" "output</option></arg> </group> <arg choice='plain'><replaceable>output-djvu-" "file</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" "<command>&p;</command> <arg choice='opt'> <group choice='req'> <arg " "choice='plain'><option>-o</option></arg> <arg choice='plain'><option>--" "output</option></arg> </group> <arg choice='plain'><replaceable>Ausgabe-DjVu-" "Datei</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>Option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>PDF-Datei</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--" "indirect</option></arg> </group> <arg choice='plain'><replaceable>index-djvu-" "file</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>pdf-file</replaceable></arg>" msgstr "" "<command>&p;</command> <arg choice='plain'> <group choice='req'> <arg " "choice='plain'><option>-i</option></arg> <arg choice='plain'><option>--" "indirect</option></arg> </group> <arg choice='plain'><replaceable>Index-DjVu-" "Datei</replaceable></arg> </arg> <arg choice='opt' " "rep='repeat'><replaceable>Option</replaceable></arg> <arg choice='plain' " "rep='repeat'><replaceable>PDF-Datei</replaceable></arg>" #. type: Content of: <refentry><refsynopsisdiv><cmdsynopsis> msgid "" "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--" "version</option></arg> <arg choice='plain'><option>--help</option></arg> " "<arg choice='plain'><option>-h</option></arg> </group>" msgstr "" "<command>&p;</command> <group choice='req'> <arg choice='plain'><option>--" "version</option></arg> <arg choice='plain'><option>--help</option></arg> " "<arg choice='plain'><option>-h</option></arg> </group>" #. type: Content of: <refentry><refsection><title> msgid "Description" msgstr "Beschreibung" #. type: Content of: <refentry><refsection><para> msgid "" "This program creates a DjVu file from one or more Portable Document Format " "files." msgstr "" "Dieses Programm erzeugt eine DjVu-Datei aus einer oder mehreren Portable-" "Document-Format-Dateien." #. type: Content of: <refentry><refsection><title> msgid "Options" msgstr "Optionen" #. type: Content of: <refentry><refsection><para> msgid "<command>&p;</command> accepts the following options:" msgstr "<command>&p;</command> akzeptiert die folgenden Optionen:" #. type: Content of: <refentry><refsection><refsection><title> msgid "Document type, file names" msgstr "Dokumenttyp, Dateinamen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-o</option>" msgstr "<option>-o</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--output=<filename><replaceable>output-djvu-file</replaceable></" "filename></option>" msgstr "" "<option>--output=<filename><replaceable>Ausgabe-DjVu-Datei</replaceable></" "filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Generate a bundled multi-page document. Write the file into " "<filename><replaceable>output-djvu-file</replaceable></filename> instead of " "standard output." msgstr "" "generiert ein gebündeltes mehrseitiges Dokument; schreibt die Ausgabe in " "eine <filename><replaceable>Ausgabe-DjVu-Datei</replaceable></filename> " "anstatt auf die Standardausgabe" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-i</option>" msgstr "<option>-i</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--indirect=<filename><replaceable>index-djvu-file</replaceable></" "filename></option>" msgstr "" "<option>--indirect=<filename><replaceable>Index-DjVu-Datei</replaceable></" "filename></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Generate an indirect multi-page document. Use <filename><replaceable>index-" "djvu-file</replaceable></filename> as the index file name; put the component " "files into the same directory. The directory must exist and be writable." msgstr "" "erstellt ein indirekt mehrseitiges Dokument; benutzt " "<filename><replaceable>Index-DjVu-Datei</replaceable></filename> als " "Indexdateinamen; legt die Komponentendateien im gleichen Verzeichnis ab. Das " "Verzeichnis muss existieren und beschreibbar sein." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-template=<replaceable>template</replaceable></option>" msgstr "" "<option>--pageid-template=<replaceable>Schablone</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the naming scheme for page identifiers. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" "gibt das Namesschema für Seitenbezeichner an. Lesen Sie den Abschnitt " "<quote><link linkend='template-language' endterm='template-language.title'/" "></quote> für die Sprachbeschreibung der Schablone." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "The default template is <quote><literal>p{page:04*}.djvu</literal></quote>." msgstr "" "Die Vorgabeschablone ist <quote><literal>p{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "For portability reasons, page identifiers:" msgstr "Aus Portierbarkeitsgründen gilt für Seitenbezeichner:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "must consist only of lowercase ASCII letters, digits, <literal>_</literal>, " "<literal>+</literal>, <literal>-</literal> and dot," msgstr "" "Sie dürfen nur aus kleingeschriebenen ASCII-Buchstaben, Ziffern, <literal>_</" "literal>, <literal>+</literal>, <literal>-</literal> und Punkten bestehen," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "cannot start with a <literal>+</literal>, <literal>-</literal> or a dot," msgstr "" "sie dürfen nicht mit <literal>+</literal>, <literal>-</literal> oder einem " "Punkt beginnen," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "cannot contain two consecutive dots," msgstr "sie dürfen keine zwei aufeinanderfolgenden Punkte enthalten," #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "must end with the <literal>.djvu</literal> or the <literal>.djv</literal> " "extension." msgstr "" "sie müssen die Dateiendung <literal>.djvu</literal> oder <literal>.djv</" "literal> haben." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pageid-prefix=<replaceable>prefix</replaceable></option>" msgstr "<option>--pageid-prefix=<replaceable>Präfix</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Equivalent to <quote><literal>--pageid-template=<replaceable>prefix</" "replaceable>{page:04*}.djvu</literal></quote>." msgstr "" "Entspricht <quote><literal>--pageid-template=<replaceable>Präfix</" "replaceable>{page:04*}.djvu</literal></quote>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--page-title-template=<replaceable>template</replaceable></option>" msgstr "" "<option>--page-title-template=<replaceable>Schablone</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the template for page titles. Consult the <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> " "section for the template language description." msgstr "" "gibt die Schablone für Seitentitel an. Lesen Sie den Abschnitt <quote><link " "linkend='template-language' endterm='template-language.title'/></quote> für " "die Sprachbeschreibung der Schablone." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to set no page titles." msgstr "Standardmäßig werden keine Seitentitel gesetzt." #. type: Content of: <refentry><refsection><refsection><title> msgid "Resolution, page size" msgstr "Auflösung, Seitengröße" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-d</option>" msgstr "<option>-d</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--dpi=<replaceable>resolution</replaceable></option>" msgstr "<option>--dpi=<replaceable>Auflösung</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the desired resolution to <replaceable>resolution</replaceable> " "dots per inch. The default is 300 dpi. The allowed range is: 72 ≤ " "<replaceable>resolution</replaceable> ≤ 6000." msgstr "" "gibt die gewünschte Auflösung in <replaceable>Auflösung</replaceable> " "Punkten pro Zoll an. Die Vorgabe ist 300 dpi. Der erlaubte Bereich ist: 72 ≤ " "<replaceable>Auflösung</replaceable> ≤ 6000." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--media-box</option>" msgstr "<option>--media-box</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use <firstterm>MediaBox</firstterm> to determine page size. " "<firstterm>CropBox</firstterm> is used by default." msgstr "" "Benutzen Sie <firstterm>MediaBox</firstterm>, um die Seitengröße " "festzulegen. Standardmäßig wird <firstterm>CropBox</firstterm> benutzt." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--page-size=<replaceable>width</replaceable>x<replaceable>height</" "replaceable></option>" msgstr "" "<option>--page-size=<replaceable>Breite</replaceable>x<replaceable>Höhe</" "replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the preferred page size to <replaceable>width</replaceable> pixels " "× <replaceable>height</replaceable> pixels. The actual page size may be " "altered in order to respect aspect ratio and DjVu limitations on resolution. " "(This option takes precedence over <option>-d</option>/<option>--dpi</" "option>.)" msgstr "" "gibt die bevorzugte Seitengröße als <replaceable>Breite</replaceable> " "Bildpunkte x <replaceable>Höhe</replaceable> Bildpunkte an. Die tatsächliche " "Seitengröße könnte verändert werden, um das Seitenverhältnis und die DjVu-" "Einschränkungen für die Auflösung zu berücksichtigen. (Diese Option hat " "Vorrang gegenüber <option>-d</option>/<option>--dpi</option>.)" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--guess-dpi</option>" msgstr "<option>--guess-dpi</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Try to guess native resolution by inspecting embedded images. Use with care." msgstr "" "versucht die native Auflösung durch Untersuchen der eingebetteten Bilder " "abzuschätzen. Verwenden Sie dies mit Vorsicht." #. type: Content of: <refentry><refsection><refsection><title> msgid "Image quality" msgstr "Bildqualität" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>" "+<replaceable>n</replaceable></option>" msgstr "" "<option>--bg-slices=<replaceable>n</replaceable>+<replaceable>…</replaceable>" "+<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "" "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</" "replaceable>,<replaceable>n</replaceable></option>" msgstr "" "<option>--bg-slices=<replaceable>n</replaceable>,<replaceable>…</" "replaceable>,<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the encoding quality of the IW44 background layer. This option is " "similar to the <option>-slice</option> option of <command>c44</command>. " "Consult the <citerefentry> <refentrytitle>c44</refentrytitle> <manvolnum>1</" "manvolnum> </citerefentry> manual page for details. The default is " "<literal>72+11+10+10</literal>." msgstr "" "gibt die Kodierungsqualität für die IW44-Hintergrundebene an. Diese Option " "ist der Option <option>-slice</option> des Befehls <command>c44</command> " "ähnlich. Sehen Sie die Handbuchseite <citerefentry> <refentrytitle>c44</" "refentrytitle> <manvolnum>1</manvolnum> </citerefentry> ein, um Einzelheiten " "zu erfahren. Die Vorgabe ist <literal>72+11+10+10</literal>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--bg-subsample=<replaceable>n</replaceable></option>" msgstr "<option>--bg-subsample=<replaceable>n</replaceable></option>" # http://de.wikipedia.org/wiki/Farbunterabtastung #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the background subsampling ratio. The default is 3. Valid values " "are integers between 1 and 12, inclusive." msgstr "" "gibt das Verhältnis der Hintergrund-Unterabtastung (subsampling) an. Vorgabe " "ist 3. Gültige Werte sind Ganzahlen von 1 bis einschließlich 12." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=default</option>" msgstr "<option>--fg-colors=default</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Try to preserve all the foreground layer colors. This is the default." msgstr "" "versucht, alle Vordergrundebenenfarben zu bewahren. Dies ist die Vorgabe." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=web</option>" msgstr "<option>--fg-colors=web</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Reduce foreground layer colors to the web palette (216 colors). This option " "is not recommended." msgstr "" "reduziert Vordergrundebenenfarben auf die Web-Palette (216 Farben). Diese " "Option wird nicht empfohlen." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=<replaceable>n</replaceable></option>" msgstr "<option>--fg-colors=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use GraphicsMagick to reduce number of distinct colors in the foreground " "layer to <replaceable>n</replaceable>. Valid values are integers between 1 " "and 4080. This option is not recommended." msgstr "" "benutzt GraphicsMagick, um die Anzahl verschiedener Farben in der " "Vordergrundebene auf <replaceable>n</replaceable> zu reduzieren. Gültige " "Werte sind Ganzzahlen zwischen 1 und 4080. Diese Option wird nicht empfohlen." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--fg-colors=black</option>" msgstr "<option>--fg-colors=black</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Discard any color information from the foreground layer." msgstr "jede Farbinformation der Vordergrundebene verwerfen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--monochrome</option>" msgstr "<option>--monochrome</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Render pages as monochrome bitmaps. With this option, <option>--bg-" "<replaceable>…</replaceable></option> and <option>--fg-<replaceable>…</" "replaceable></option> options are not respected." msgstr "" "Seiten als einfarbige Bitmaps berechnen und ausgeben. Mit dieser Option " "werden die Optionen <option>--bg-<replaceable>…</replaceable></option> und " "<option>--fg-<replaceable>…</replaceable></option> nicht berücksichtigt." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--loss-level=<replaceable>n</replaceable></option>" msgstr "<option>--loss-level=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies the aggressiveness of the lossy compression. The default is 0 " "(lossless). Valid values are integers between 0 and 200, inclusive. This " "option is similar to the <option>-losslevel</option> option of " "<command>cjb2</command>; consult the <citerefentry> <refentrytitle>cjb2</" "refentrytitle> <manvolnum>1</manvolnum> </citerefentry> manual page for " "details. This option is respected only along with the <option>--monochrome</" "option> option." msgstr "" "gibt die Aggressivität der verlustbehafteten Komprimierung an. Vorgabe ist 0 " "(verlustfrei). Gültige Werte sind Ganzahlen von 0 bis einschließlich 200. " "Diese Option ähnelt der Option <option>-losslevel</option> von " "<command>cjb2</command>. Sehen Sie die Handbuchseite <citerefentry> " "<refentrytitle>cjb2</refentrytitle> <manvolnum>1</manvolnum> </citerefentry> " "ein, um weitere Einzelheiten zu erfahren. Diese Option wird nur zusammen mit " "der Option <option>--monochrome</option> berücksichtigt." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lossy</option>" msgstr "<option>--lossy</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Synonym for <option>--loss-level=100</option>." msgstr "Synonym für <option>--loss-level=100</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--anti-alias</option>" msgstr "<option>--anti-alias</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Enable font and vector anti-aliasing. This option is not recommended." msgstr "" "aktiviert Schrift- und Vektor-Kantenglättung. Diese Option wird nicht " "empfohlen." #. type: Content of: <refentry><refsection><refsection><title> msgid "Extraction" msgstr "Auszug" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-metadata</option>" msgstr "<option>--no-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the metadata." msgstr "die Metadaten nicht herausziehen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "By default:" msgstr "Standardmäßig:" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "" "The following entries of the document information dictionary are extracted: " "<literal>Title</literal>, <literal>Author</literal>, <literal>Subject</" "literal>, <literal>Creator</literal>, <literal>Producer</literal>, " "<literal>CreationDate</literal>, <literal>ModDate</literal>. Timestamps are " "formatted according to <ulink url='http://www.ietf.org/rfc/rfc3339'>RFC " "3999</ulink>, with date and time components separated by a single space." msgstr "" "Die folgenden Einträge des Dokumentinformations-Wörterbuchs werden " "extrahiert: <literal>Title</literal>, <literal>Author</literal>, " "<literal>Subject</literal>, <literal>Creator</literal>, <literal>Producer</" "literal>, <literal>CreationDate</literal>, <literal>ModDate</literal>. " "Zeitstempel werden entspechend <ulink url='http://www.ietf.org/rfc/" "rfc3339'>RFC 3999</ulink> mit Datums- und Zeitbestandteilen, getrennt durch " "ein einzelnes Leerzeichen, formatiert." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> msgid "The XMP metadata is extracted (or created) and updated accordingly." msgstr "" "Die XMP-Metadaten werden extrahiert (oder erzeugt) und dementsprechend " "aktualisiert." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><note><para> msgid "" "If multiple input documents are specified, only metadata of the first one is " "taken into account." msgstr "" "Wenn mehrere Eingabedokumente ausgewählt wurden, werden nur Metadaten des " "ersten Dokumentes berücksichtigt." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbatim-metadata</option>" msgstr "<option>--verbatim-metadata</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Keep the original metadata intact." msgstr "die Original-Metadaten intakt lassen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-outline</option>" msgstr "<option>--no-outline</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the document outline." msgstr "die Dokumentenübersicht nicht extrahieren" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=border-avis</option>" msgstr "<option>--hyperlinks=border-avis</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Make hyperlink borders always visible." msgstr "Ränder von Querverweisen immer sichtbar machen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "By default, a hyperlink border is visible only when the mouse is over the " "hyperlink." msgstr "" "Standardmäßig sind die Ränder eines Querverweises nur sichtbar, wenn die " "Maus darüber steht." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" msgstr "<option>--hyperlinks=#<replaceable>RRGGBB</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Force the specified border color for hyperlinks." msgstr "die angegebene Randfarbe für Querverweise erzwingen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-hyperlinks</option>" msgstr "<option>--no-hyperlinks</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--hyperlinks=none</option>" msgstr "<option>--hyperlinks=none</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract hyperlinks." msgstr "Querverweise nicht extrahieren" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-text</option>" msgstr "<option>--no-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't extract the text." msgstr "den Text nicht extrahieren" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--words</option>" msgstr "<option>--words</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Extract the text. Record the location of every word. This is the default." msgstr "" "den Text extrahieren; die Position jedes Wortes aufzeichnen. Dies ist die " "Vorgabe." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--lines</option>" msgstr "<option>--lines</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Extract the text. Record the location of every line, rather that every word." msgstr "" "den Text extrahieren; die Position jeder Zeile statt jedes Wortes aufzeichnen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--crop-text</option>" msgstr "<option>--crop-text</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Extract no text outside the page boundary." msgstr "keinen Text außerhalb des Seitenrands extrahieren" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--no-nfkc</option>" msgstr "<option>--no-nfkc</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Don't <ulink url='http://unicode.org/reports/tr15/'>NFKC</ulink>-normalize " "the text." msgstr "" "den Text nicht entsprechend <ulink url='http://unicode.org/reports/" "tr15/'>NFKC</ulink> normalisieren." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--filter-text=<replaceable>command-line</replaceable></option>" msgstr "<option>--filter-text=<replaceable>Befehlszeile</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Filter the text through the <replaceable>command-line</replaceable>. The " "provided filter must preserve whitespace, control characters and decimal " "digits." msgstr "" "den Text über die <replaceable>Befehlszeile</replaceable> filtern. Der " "bereitgestellte Filter muss Leerräume, Steuerzeichen und dezimale Ziffern " "bewahren." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "This option implies <option>--no-nfkc</option>." msgstr "Diese Option impliziert <option>--no-nfkc</option>." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-p</option>" msgstr "<option>-p</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--pages=<replaceable>page-range</replaceable></option>" msgstr "<option>--pages=<replaceable>Seitenbereich</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Specifies pages to convert. <replaceable>page-range</replaceable> is a comma-" "separated list of sub-ranges. Each sub-range is either a single page (e." "g. <literal>17</literal>) or a contiguous range of pages (e." "g. <literal>37-42</literal>). Pages are numbered from 1." msgstr "" "gibt die Seiten an, die umgewandelt werden. <replaceable>Seitenbereich</" "replaceable> ist eine durch Kommas getrennte Liste von Unterbereichen. Jeder " "Unterbereich ist entweder eine einzelne Seite (z.B. <literal>17</literal>) " "oder ein Bereich zusammenhängender Seiten (z.B. <literal>37-42</literal>). " "Seiten werde mit 1 beginnend nummeriert." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "The default is to convert all pages." msgstr "Standardmäßig werden alle Seiten umgewandelt." #. type: Content of: <refentry><refsection><refsection><title> msgid "Performance" msgstr "Leistungsfähigkeit" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j</option>" msgstr "<option>-j</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=<replaceable>n</replaceable></option>" msgstr "<option>--jobs=<replaceable>n</replaceable></option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "" "Use <replaceable>n</replaceable> threads to perform conversion. The default " "is to use one thread." msgstr "" "benutzt <replaceable>n</replaceable> Threads, um die Umwandlung " "durchzuführen. Standardmäßig wird ein Thread benutzt." #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-j0</option>" msgstr "<option>-j0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--jobs=0</option>" msgstr "<option>--jobs=0</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Determine automatically how many threads to use to perform conversion." msgstr "" "legt automatisch fest, wieviele Threads für die Umwandlung benutzt werden" #. type: Content of: <refentry><refsection><refsection><title> msgid "Verbosity, help" msgstr "Detailgrad, Hilfe" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-v</option>" msgstr "<option>-v</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--verbose</option>" msgstr "<option>--verbose</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display more informational messages while converting the file." msgstr "" "während der Umwandlung der Datei weitere informative Nachrichten anzeigen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-q</option>" msgstr "<option>-q</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--quiet</option>" msgstr "<option>--quiet</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Don't display informational messages while converting the file." msgstr "" "während der Umwandlung der Datei keine informativen Nachrichten anzeigen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--version</option>" msgstr "<option>--version</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Output version information and exit." msgstr "die Versionsinformationen ausgeben und beenden" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>-h</option>" msgstr "<option>-h</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<option>--help</option>" msgstr "<option>--help</option>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Display help and exit." msgstr "Hilfe anzeigen und beenden" #. type: Content of: <refentry><refsection><title> msgid "Environment" msgstr "Umgebung" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>OMP_<replaceable>*</replaceable></varname>" msgstr "<varname>OMP_<replaceable>*</replaceable></varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "" "Details of runtime behaviour with respect to parallelism can be controlled " "by several environment variables. Please refer to the <ulink url='http://" "openmp.org/wp/openmp-specifications/'>OpenMP API specification</ulink> for " "details." msgstr "" "Einzelheiten des Verhaltens zur Laufzeit, die Parallelisierung " "berücksichtigen, können durch mehrere Umgebungsvariablen gesteuert werden. " "Bitte sehen Sie in die <ulink url='http://openmp.org/wp/openmp-" "specifications/'>OpenMP-API-Spezifikation</ulink>, um Einzelheiten zu " "erfahren." #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><term> msgid "<varname>TMPDIR</varname>" msgstr "<varname>TMPDIR</varname>" #. type: Content of: <refentry><refsection><para><variablelist><varlistentry><listitem><para> msgid "" "<command>&p;</command> makes heavy use of temporary files. It will store " "them in a directory specified by this variable. The default is <filename>/" "tmp</filename>." msgstr "" "<command>&p;</command> macht stark von temporären Dateien Gebrauch. Es wird " "sie in dem durch diese Variable angegebenen Verzeichnis speichern. Vorgabe " "ist <filename>/tmp</filename>." #. type: Content of: <refentry><refsection><para> msgid "" "The following environment variables affects <command>&p;</command> on Unix " "systems: <placeholder type=\"variablelist\" id=\"0\"/>" msgstr "" "Die folgenden Umgebungsvariablen beeinflussen <command>&p;</command> auf " "Unix-Systemen: <placeholder type=\"variablelist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Template language" msgstr "Schablonensprache" #. type: Content of: <refentry><refsection><refsection><title> msgid "Template syntax" msgstr "Schablonensyntax" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The template language is roughly modelled on the <ulink url='http://docs." "python.org/library/string.html#format-string-syntax'>Python string " "formatting syntax</ulink>." msgstr "" "Die Schablonensprache ist ungefähr wie die <ulink url='http://docs.python." "org/library/string.html#format-string-syntax'>Phyton-" "Zeichenkettenformatierungssyntax</ulink> aufgebaut." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "A template is a piece of text which contains <firstterm>fields</firstterm>, " "surrounded by curly braces <literal>{</literal><literal>}</literal>. Fields " "are replaced with appropriately formatted values when the template is " "evaluated. Moreover, <literal>{{</literal> is replaced with a single " "<literal>{</literal> and <literal>}}</literal> is replaced with a single " "<literal>}</literal>." msgstr "" "Eine Schablone ist ein Textteil, der <firstterm>Felder</firstterm> enthält, " "die von geschweiften Klammern <literal>{</literal><literal>}</literal> " "eingeschlossen werden. Felder werden durch entsprechend formatierte Werte " "ersetzt, wenn die Schablone ausgewertet wird. Außerdem werden <literal>{{</" "literal> durch eine einzelne <literal>{</literal> und <literal>}}</literal> " "durch eine einzelne <literal>}</literal> ersetzt." #. type: Content of: <refentry><refsection><refsection><title> msgid "Field syntax" msgstr "Feldsyntax" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "Each field consists of a variable name, optionally followed by a shift, " "optionally followed by a format specification." msgstr "" "Jedes Feld besteht aus einem Variablennamen, wahlweise gefolgt von einer " "Verschiebung, der wiederum wahlweise eine Formatangabe folgt." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The shift is a signed (i.e. starting with a <literal>+</literal> or " "<literal>-</literal> character) integer." msgstr "" "Die Verschiebung ist eine vorzeichenbehaftete (d.h. sie beginnt mit einem " "<literal>+</literal> oder <literal>-</literal>) Ganzzahl." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The format specification consists of a colon, followed by a width " "specification." msgstr "" "Die Formatangabe besteht aus einem Doppelpunkt gefolgt von einer " "Breitenangabe." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The width specification is a decimal integer defining the minimum field " "width. If not specified, then the field width will be determined by the " "content. Preceding the width specification with a zero (<literal>0</" "literal>) character enables zero-padding." msgstr "" "Die Breitenangabe ist eine dezimale Ganzzahl, die die Mindestbreite eines " "Feldes angibt. Falls sie nicht angegeben wird, wird die Feldbreite durch den " "Inhalt bestimmt. Wird der Breitenangabe eine Null (<literal>0</literal>) " "vorangestellt, wird Auffüllen mit Nullen aktiviert." #. type: Content of: <refentry><refsection><refsection><para> msgid "" "The width specification is optionally followed by an asterisk (<literal>*</" "literal>) character, which increases the minimum field width to the width of " "the longest possible content of the variable." msgstr "" "Der Breitenangabe folgt wahlweise ein Sternchen (<literal>*</literal>), das " "die Mindestbreite des Feldes auf die Breite des größtmöglichen Inhalts der " "Variable erhöht." #. type: Content of: <refentry><refsection><refsection><title> msgid "Available variables" msgstr "Verfügbare Variablen" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>page</varname>" msgstr "<varname>page</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>spage</varname>" msgstr "<varname>spage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the PDF document." msgstr "Seitenzahl im PDF-Dokument" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><term> msgid "<varname>dpage</varname>" msgstr "<varname>dpage</varname>" #. type: Content of: <refentry><refsection><refsection><variablelist><varlistentry><listitem><para> msgid "Page number in the DjVu document." msgstr "Seitenzahl im DjVu-Dokument" #. type: Content of: <refentry><refsection><title> msgid "Implementation details" msgstr "Implementierungseinzelheiten" #. type: Content of: <refentry><refsection><refsection><title> msgid "Layer separation algorithm" msgstr "Ebenen-Aufteilungsalgorithmus" # http://de.wikipedia.org/wiki/Rastergrafik #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Raster the page into a pixmap, in the usual manner." msgstr "die Seite auf die übliche Weise in eine Rastergrafik rastern" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "Raster the page into another pixmap, omitting the following page elements:" msgstr "" "die Seite in eine Rastergrafik rastern und die folgenden Seitenelemente " "weglassen:" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "text," msgstr "Text" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "1 bit-per-pixel raster images," msgstr "1 Bit-pro-Bildpunkt-Rasterbilder" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><itemizedlist><listitem><para> msgid "vector elements (except fills of large areas)." msgstr "Vektorelemente (außer Füllungen großer Bereiche)" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "If their colors match, classify the pixel as a part of the background layer." msgstr "" "Falls ihre Farben passen, werden die Bildpunkte als Teil der " "Hintergrundebene eingestuft." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "Otherwise, classify the pixel as a part of the foreground layer." msgstr "" "Andernfalls werden die Bildpunkte als Teil der Vordergrundebene eingestuft." #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para><orderedlist><listitem><para> msgid "" "Compare both pixmaps, pixel by pixel: <placeholder type=\"orderedlist\" id=" "\"0\"/>" msgstr "" "beide Rastergrafiken Bildpunkt für Bildpunkt vergleichen: <placeholder type=" "\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para><orderedlist><listitem><para> msgid "" "For each page, do the following: <placeholder type=\"orderedlist\" id=\"0\"/>" msgstr "" "für jede Seite das Folgende tun: <placeholder type=\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><refsection><para> msgid "" "Unless the <option>--monochrome</option> option is on, &p; uses the " "following naïve layer separation algorithm: <placeholder type=\"orderedlist" "\" id=\"0\"/>" msgstr "" "Außer wenn die Option <option>--monochrome</option> aktiviert ist, benutzt " "&p; den folgenden naiven Ebenen-Aufteilungsalgorithmus: <placeholder type=" "\"orderedlist\" id=\"0\"/>" #. type: Content of: <refentry><refsection><title> msgid "Bug reports" msgstr "Fehlerberichte" #. type: Content of: <refentry><refsection><para> msgid "" "If you find a bug in &p;, please report it at <ulink url='http://code.google." "com/p/pdf2djvu/issues/'>the issue tracker</ulink>." msgstr "" "Falls Sie einen Fehler in &p; finden, berichten Sie ihn bitte auf Englisch " "an <ulink url='http://code.google.com/p/pdf2djvu/issues/'>die " "Problemverfolgung</ulink>." #. type: Content of: <refentry><refsection><title> msgid "See also" msgstr "Siehe auch" #. type: Content of: <refentry><refsection><para> msgid "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry>" msgstr "" "<citerefentry> <refentrytitle>djvu</refentrytitle> <manvolnum>1</manvolnum> " "</citerefentry>, <citerefentry> <refentrytitle>djvudigital</refentrytitle> " "<manvolnum>1</manvolnum> </citerefentry>, <citerefentry> " "<refentrytitle>csepdjvu</refentrytitle> <manvolnum>1</manvolnum> </" "citerefentry>" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������pdf2djvu-0.7.17/doc/po/Makefile���������������������������������������������������������������������0000644�0000000�0000000�00000002664�12151732402�014660� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright © 2009, 2010, 2011 Jakub Wilk # # This package 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; version 2 dated June, 1991. srcdir = ../.. include $(srcdir)/Makefile.common include $(srcdir)/doc/Makefile.common XSLTPROC += --param man.output.lang.in.name.enabled 1 po4a-common-options = \ --format=docbook po4a-getext-options = \ $(po4a-common-options) \ --package-name=pdf2djvu \ --package-version=$(PACKAGE_VERSION) \ --msgid-bugs-address=$(PACKAGE_BUGREPORT) \ --copyright-holder="Jakub Wilk" po4a-update-po = po4a-updatepo \ $(po4a-getext-options) \ --msgmerge-opt="--no-location" po4a-gettextize = po4a-gettextize \ $(po4a-getext-options) po4a-translate = po4a-translate \ $(po4a-common-options) po_files = $(wildcard pdf2djvu.[a-z][a-z].po) xml_files = $(po_files:.po=.xml) man_files = $(po_files:.po=.1) .PHONY: all all: $(man_files) .PHONY: xml xml: $(xml_files) pdf2djvu.pot: pdf2djvu.xml $(po4a-gettextize) -m $(<) -p $(@) $(po_files): %.po: pdf2djvu.xml $(po4a-update-po) -m $(<) -p $(@) rm -f $(@)~ touch $(@) %.xml: %.po ifneq "$(quality-check)" "" ! msgattrib --only-fuzzy $(<) | grep . ! msgattrib --untranslated $(<) | grep . endif $(po4a-translate) -m pdf2djvu.xml -p $(<) -l $(@) .PHONY: clean clean: rm -f $(addprefix pdf2djvu.,[a-z][a-z].1 [a-z][a-z].xml pot) *~ # vim:ts=4 sw=4 noet ����������������������������������������������������������������������������pdf2djvu-0.7.17/doc/pdf2djvu.xml��������������������������������������������������������������������0000644�0000000�0000000�00000067264�12151732402�015057� 0����������������������������������������������������������������������������������������������������ustar �root����������������������������root�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE refentry PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN' 'http://www.docbook.org/xml/4.5/docbookx.dtd' [ <!ENTITY p 'pdf2djvu'> <!ENTITY version '0.7.17'> ]> <refentry lang='en'> <refentryinfo> <title>&p; manual &p; Jakub Wilk jwilk@jwilk.net &p; 1 &version; &p; creates DjVu files from PDF files &p; output-djvu-file option pdf-file &p; index-djvu-file option pdf-file &p; Description This program creates a DjVu file from one or more Portable Document Format files. Options &p; accepts the following options: Document type, file names Generate a bundled multi-page document. Write the file into output-djvu-file instead of standard output. Generate an indirect multi-page document. Use index-djvu-file as the index file name; put the component files into the same directory. The directory must exist and be writable. Specifies the naming scheme for page identifiers. Consult the section for the template language description. The default template is p{page:04*}.djvu. For portability reasons, page identifiers: must consist only of lowercase ASCII letters, digits, _, +, - and dot, cannot start with a +, - or a dot, cannot contain two consecutive dots, must end with the .djvu or the .djv extension. Equivalent to --pageid-template=prefix{page:04*}.djvu. Specifies the template for page titles. Consult the section for the template language description. The default is to set no page titles. Resolution, page size Specifies the desired resolution to resolution dots per inch. The default is 300 dpi. The allowed range is: 72 ≤ resolution ≤ 6000. Use MediaBox to determine page size. CropBox is used by default. Specifies the preferred page size to width pixels × height pixels. The actual page size may be altered in order to respect aspect ratio and DjVu limitations on resolution. (This option takes precedence over /.) Try to guess native resolution by inspecting embedded images. Use with care. Image quality Specifies the encoding quality of the IW44 background layer. This option is similar to the option of c44. Consult the c44 1 manual page for details. The default is 72+11+10+10. Specifies the background subsampling ratio. The default is 3. Valid values are integers between 1 and 12, inclusive. Try to preserve all the foreground layer colors. This is the default. Reduce foreground layer colors to the web palette (216 colors). This option is not recommended. Use GraphicsMagick to reduce number of distinct colors in the foreground layer to n. Valid values are integers between 1 and 4080. This option is not recommended. Discard any color information from the foreground layer. Render pages as monochrome bitmaps. With this option, and options are not respected. Specifies the aggressiveness of the lossy compression. The default is 0 (lossless). Valid values are integers between 0 and 200, inclusive. This option is similar to the option of cjb2; consult the cjb2 1 manual page for details. This option is respected only along with the option. Synonym for . Enable font and vector anti-aliasing. This option is not recommended. Extraction Don't extract the metadata. By default: The following entries of the document information dictionary are extracted: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Timestamps are formatted according to RFC 3999, with date and time components separated by a single space. The XMP metadata is extracted (or created) and updated accordingly. If multiple input documents are specified, only metadata of the first one is taken into account. Keep the original metadata intact. Don't extract the document outline. Make hyperlink borders always visible. By default, a hyperlink border is visible only when the mouse is over the hyperlink. Force the specified border color for hyperlinks. Don't extract hyperlinks. Don't extract the text. Extract the text. Record the location of every word. This is the default. Extract the text. Record the location of every line, rather that every word. Extract no text outside the page boundary. Don't NFKC-normalize the text. Filter the text through the command-line. The provided filter must preserve whitespace, control characters and decimal digits. This option implies . Specifies pages to convert. page-range is a comma-separated list of sub-ranges. Each sub-range is either a single page (e.g. 17) or a contiguous range of pages (e.g. 37-42). Pages are numbered from 1. The default is to convert all pages. Performance Use n threads to perform conversion. The default is to use one thread. Determine automatically how many threads to use to perform conversion. Verbosity, help Display more informational messages while converting the file. Don't display informational messages while converting the file. Output version information and exit. Display help and exit. Environment The following environment variables affects &p; on Unix systems: OMP_* Details of runtime behaviour with respect to parallelism can be controlled by several environment variables. Please refer to the OpenMP API specification for details. TMPDIR &p; makes heavy use of temporary files. It will store them in a directory specified by this variable. The default is /tmp. Template language Template syntax The template language is roughly modelled on the Python string formatting syntax. A template is a piece of text which contains fields, surrounded by curly braces {}. Fields are replaced with appropriately formatted values when the template is evaluated. Moreover, {{ is replaced with a single { and }} is replaced with a single }. Field syntax Each field consists of a variable name, optionally followed by a shift, optionally followed by a format specification. The shift is a signed (i.e. starting with a + or - character) integer. The format specification consists of a colon, followed by a width specification. The width specification is a decimal integer defining the minimum field width. If not specified, then the field width will be determined by the content. Preceding the width specification with a zero (0) character enables zero-padding. The width specification is optionally followed by an asterisk (*) character, which increases the minimum field width to the width of the longest possible content of the variable. Available variables page spage Page number in the PDF document. dpage Page number in the DjVu document. Implementation details Layer separation algorithm Unless the option is on, &p; uses the following naïve layer separation algorithm: For each page, do the following: Raster the page into a pixmap, in the usual manner. Raster the page into another pixmap, omitting the following page elements: text, 1 bit-per-pixel raster images, vector elements (except fills of large areas). Compare both pixmaps, pixel by pixel: If their colors match, classify the pixel as a part of the background layer. Otherwise, classify the pixel as a part of the foreground layer. Bug reports If you find a bug in &p;, please report it at the issue tracker. See also djvu 1 , djvudigital 1 , csepdjvu 1 pdf2djvu-0.7.17/doc/djvudigital.txt0000644000000000000000000000274712151732402015653 0ustar rootrootpdf2djvu vs djvudigital ======================= djvudigital, a part of DjVuLibre_, is another PDF to DjVu converter. The list below outlines some differences between the converters. Superiorities of djvudigital ---------------------------- - djvudigital uses a `sophisticated layer seperation algorithm`_. pdf2djvu uses a simple one. - djvudigital is typically much faster than pdf2djvu. - djvudigital can convert PostScript files, too. Superiorities of pdf2djvu ------------------------- - djvudigital internally relies on a `Ghostscript driver`_, which has a license incompatibility issue. pdf2djvu is not affected by any license problem. - djvudigital cannot extract hidden text. - djvudigital cannot extract document metadata. - For some documents, djvudigital cannot extract document outline. See the `bug report`_ for details. - djvudigital cannot produce indirect multi-page document by itself. - djvudigital always uses lossless compression for monochrome images. - With djvudigital, there is no obvious way to convert only some pages of a document. - With djvudigital, there is no way to customize page identifiers. .. _DjVuLibre: http://djvu.sourceforge.net/ .. _sophisticated layer seperation algorithm: http://leon.bottou.org/papers/bottou-2001 .. _Ghostscript driver: http://djvu.sourceforge.net/gsdjvu.html .. _bug report: http://sf.net/tracker/index.php?func=detail&aid=1997033&group_id=32953&atid=406583 .. vim:ft=rst ts=3 sw=3 et tw=72 pdf2djvu-0.7.17/doc/credits.txt0000644000000000000000000000027112151732402014770 0ustar rootrootSince May 2009 pdf2djvu development has been supported by the Polish Ministry of Science and Higher Education's grant no. N N519 384036 (2009 - 2012, https://bitbucket.org/jsbien/ndt). pdf2djvu-0.7.17/doc/cjk.txt0000644000000000000000000000062412151732402014104 0ustar rootrootTo properly convert some PDF files in CJK (Chinese, Japanese, Korean) languages, the poppler-data_ package has to be installed. .. _poppler-data: http://poppler.freedesktop.org/poppler-data-0.3.0.tar.gz For the Windows port: - unpack the archive; - rename the extracted directory to ``poppler-data``; - put it into the same directory as the ``pdf2djvu.exe`` file. .. vim:ft=rst ts=3 sw=3 et tw=72 pdf2djvu-0.7.17/doc/changelog0000644000000000000000000004271712151732402014457 0ustar rootrootpdf2djvu (0.7.17) unstable; urgency=low * Fix build failure with Poppler ≥ 0.23. -- Jakub Wilk Thu, 30 May 2013 22:20:31 +0200 pdf2djvu (0.7.16) unstable; urgency=low * Fix build failure with Poppler ≥ 0.21.1. -- Jakub Wilk Wed, 14 Nov 2012 20:44:57 +0100 pdf2djvu (0.7.15) unstable; urgency=low * Fix build failure with Poppler ≥ 0.21. -- Jakub Wilk Sat, 06 Oct 2012 12:32:09 +0200 pdf2djvu (0.7.14) unstable; urgency=low * Ignore links with no action. (Previously such links would cause segfault). Thanks to Krzysztof Szafran for the bug report. * Update German translation. Thanks to Chris Leick. * Update Russian translation. Thanks to Kyrill Detinov. * Update Ukrainian translation. Thanks to Serhij Dubyk. -- Jakub Wilk Tue, 18 Sep 2012 17:27:28 +0200 pdf2djvu (0.7.13) unstable; urgency=low * XMP: put ‘softwareAgent’ and ‘when’ attributes in stEvt namespace. * Rewrite test-suite runner from scratch, using nosetests. * Windows: trap errors from external commands. Thanks to Andres Aule for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=65 * Fix build failure with Poppler ≥ 0.19. Thanks to Kyrill Detinov for the bug report. https://code.google.com/p/pdf2djvu/issues/detail?id=66 * Update Russian translation. Thanks to Kyrill Detinov. * Update Ukrainian translation. Thanks to Serhij Dubyk. * Add Ukrainian translation of the manual page by Serhij Dubyk. * Update German translation. Thanks to Chris Leick. http://bugs.debian.org/675573 -- Jakub Wilk Sun, 03 Jun 2012 22:04:29 +0200 pdf2djvu (0.7.12) unstable; urgency=low * Fix resolution detection. * Add Ukrainian translation by Serhij Dubyk. * Windows: honour console output encoding. http://code.google.com/p/pdf2djvu/issues/detail?id=64 -- Jakub Wilk Sun, 22 Jan 2012 00:16:38 +0100 pdf2djvu (0.7.11) unstable; urgency=low * Fix build failure with Poppler ≥ 0.17. Thanks to Vincent Untz for the bug report and the patch. http://code.google.com/p/pdf2djvu/issues/detail?id=61 -- Jakub Wilk Thu, 06 Oct 2011 10:40:39 +0200 pdf2djvu (0.7.10) unstable; urgency=low * Fix the --monochrome option. Thanks to Rogério Brito for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=59 * Fix crash with --no-metadata. * Allow one to easily skip running some tests. Move tests requiring GraphicsMagick into separate files. Thanks to Kyrill Detinov for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=55 -- Jakub Wilk Sat, 20 Aug 2011 20:52:59 +0200 pdf2djvu (0.7.9) unstable; urgency=low * Add Russian translation by Kyrill Detinov. -- Jakub Wilk Thu, 18 Aug 2011 20:44:29 +0200 pdf2djvu (0.7.8) unstable; urgency=low * Add German translation by Chris Leick. Thanks also to Arno Töll for a translation update. http://bugs.debian.org/626315 * Add support for merging multiple PDFs into a single DjVu file. http://bugs.debian.org/633628 -- Jakub Wilk Sun, 24 Jul 2011 22:41:20 +0200 pdf2djvu (0.7.7) unstable; urgency=low * Don't let the configure script look for windres if winver.h is not available. Thanks to Andrew Isakov for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=57 * Fix build failure with GCC 4.6. * Make it possible to control how work is distributed between threads with the OMP_SCHEDULE variable. -- Jakub Wilk Tue, 29 Mar 2011 18:21:22 +0200 pdf2djvu (0.7.6) unstable; urgency=low * Improve Windows font support. + Compile libxml2 with --with-sax1, which is needed by fontconfig. + Ship more complete configuration for fontconfig. + Ship substitutes for all 35 standard PostScript fonts. * Tests: output error log if a test failed. -- Jakub Wilk Fri, 18 Feb 2011 13:00:59 +0100 pdf2djvu (0.7.5) unstable; urgency=low * Don't allow page identifiers start with a ‘+’ or ‘-’ characters. * Document the use of TMPDIR environment variable. * Windows: fix handling of non-ASCII filenames in CJK locales. Thanks to Lu Wei for the bugreport. http://code.google.com/p/pdf2djvu/issues/detail?id=53 -- Jakub Wilk Wed, 19 Jan 2011 23:56:19 +0100 pdf2djvu (0.7.4) unstable; urgency=low * Fix handling of the --pages option. Thanks to Kyrill Detinov for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=50 * Fix build failure with GCC 4.2. Thanks to Robert Baruch for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=51 * Make messages about missing features a bit more informative. Thanks to François Boulogne for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=52 -- Jakub Wilk Sat, 12 Jun 2010 22:20:10 +0200 pdf2djvu (0.7.3) unstable; urgency=low * Add a few const annotation to fix build failure with Poppler ≥ 0.13. Thanks to Rakesh Pandit for the bug report and the patch. http://code.google.com/p/pdf2djvu/issues/detail?id=48 * Fix handling of the --indirect option. Thanks to T S Mohan for the bugreport. http://code.google.com/p/pdf2djvu/issues/detail?id=49 -- Jakub Wilk Mon, 24 May 2010 19:59:43 +0200 pdf2djvu (0.7.2) unstable; urgency=low * Add the --fg-colors=black option. * Fix broken output with --fg-colors=web. http://code.google.com/p/pdf2djvu/issues/detail?id=45 * Fix crash with GraphicMagick ≥ 1.3.8. http://code.google.com/p/pdf2djvu/issues/detail?id=47 http://sourceforge.net/mailarchive/message.php?msg_id=24439342 * Override number of threads set by GraphicsMagick. -- Jakub Wilk Sat, 01 May 2010 23:52:23 +0200 pdf2djvu (0.7.1) unstable; urgency=low * Speed up converting pages for which no foreground were detected. -- Jakub Wilk Mon, 19 Apr 2010 20:50:47 +0200 pdf2djvu (0.7.0) unstable; urgency=low * Add support for parallel page rendering: options -j/--jobs. -- Jakub Wilk Sat, 27 Feb 2010 23:32:21 +0100 pdf2djvu (0.6.2) unstable; urgency=low * Fix build failure without PStreams. Thanks to Kyrill Detinov for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=43 -- Jakub Wilk Fri, 15 Jan 2010 19:00:44 +0100 pdf2djvu (0.6.1) unstable; urgency=low * Add the --text-filter option. -- Jakub Wilk Thu, 14 Jan 2010 22:57:46 +0100 pdf2djvu (0.6.0) unstable; urgency=low * New regression tests. http://code.google.com/p/pdf2djvu/issues/detail?id=27 * Add support for correcting XMP metadata. http://code.google.com/p/pdf2djvu/issues/detail?id=12 * Fix resolution detection (Poppler ≥ 0.11.1 only). -- Jakub Wilk Thu, 01 Oct 2009 18:30:33 +0200 pdf2djvu (0.5.11) unstable; urgency=low * Document how to deal with CJK PDFs. * Windows: make it feasible to use poppler-data. * Add support for Poppler ≥ 0.11.1. http://code.google.com/p/pdf2djvu/issues/detail?id=40 -- Jakub Wilk Fri, 31 Jul 2009 17:07:07 +0200 pdf2djvu (0.5.10) unstable; urgency=low * Add Polish translation of the manual page. -- Jakub Wilk Sun, 12 Jul 2009 12:58:27 +0200 pdf2djvu (0.5.9) unstable; urgency=low * Add Polish translation by Mateusz Turcza. * Respect LC_NUMERIC locale settings. -- Jakub Wilk Thu, 18 Jun 2009 23:20:32 +0200 pdf2djvu (0.5.8) unstable; urgency=low * Fix some rounding bugs. * Windows: fix fontconfig configuration and install URW fonts. http://code.google.com/p/pdf2djvu/issues/detail?id=39 -- Jakub Wilk Sun, 17 May 2009 10:11:53 +0200 pdf2djvu (0.5.7) unstable; urgency=low * Add the --guess-dpi option. http://code.google.com/p/pdf2djvu/issues/detail?id=11 * Windows: fix file handle leak. -- Jakub Wilk Fri, 08 May 2009 15:07:20 +0200 pdf2djvu (0.5.6) unstable; urgency=low * New default quantization algorithm. http://code.google.com/p/pdf2djvu/issues/detail?id=36 http://code.google.com/p/pdf2djvu/issues/detail?id=42 * Fix some character encoding issues. http://code.google.com/p/pdf2djvu/issues/detail?id=37 * Stricter requirements for pageid names. * Lift a limitation on number of pages in a bundled multi-page document. http://code.google.com/p/pdf2djvu/issues/detail?id=38 -- Jakub Wilk Tue, 05 May 2009 18:31:26 +0200 pdf2djvu (0.5.5) unstable; urgency=low * Add the --pageid-template option. http://code.google.com/p/pdf2djvu/issues/detail?id=13 * Add the --page-title-template option. http://code.google.com/p/pdf2djvu/issues/detail?id=13 * Don't allow duplicate page identifies nor duplicate page titles. http://code.google.com/p/pdf2djvu/issues/detail?id=23 * More robust UTF-16 to UTF-8 conversion. -- Jakub Wilk Sat, 25 Apr 2009 22:33:44 +0200 pdf2djvu (0.5.4) unstable; urgency=low * Add the --crop-text option. http://code.google.com/p/pdf2djvu/issues/detail?id=20 * Add support for Windows 9x. -- Jakub Wilk Sat, 18 Apr 2009 21:36:38 +0200 pdf2djvu (0.5.3) unstable; urgency=low * Don't die with an error while trying to add empty outline to an indirect multi-page document. * Work around DjVuLibre performance bug with adding shared annotations to indirect multi-page documents. http://code.google.com/p/pdf2djvu/issues/detail?id=19 -- Jakub Wilk Sat, 28 Mar 2009 21:30:10 +0100 pdf2djvu (0.5.2) unstable; urgency=low * Add --verbatim-metadata option. * Improve support for Windows systems. http://code.google.com/p/pdf2djvu/issues/detail?id=15 http://code.google.com/p/pdf2djvu/issues/detail?id=16 http://code.google.com/p/pdf2djvu/issues/detail?id=18 -- Jakub Wilk Sat, 21 Mar 2009 16:28:18 +0100 pdf2djvu (0.5.1) unstable; urgency=low * Fix several memory leaks. * On Unix systems, respect the TMPDIR variable. * Improve support for Windows systems. * Document differences between pdf2djvu and djvudigital. http://code.google.com/p/pdf2djvu/issues/detail?id=14 -- Jakub Wilk Mon, 16 Mar 2009 20:26:58 +0100 pdf2djvu (0.5.0) unstable; urgency=low * Drop support for Poppler < 0.7.3. * Allow compiling with MinGW. -- Jakub Wilk Sun, 28 Dec 2008 16:24:08 +0100 pdf2djvu (0.4.13) unstable; urgency=low * Add --monochrome, --lossy, --loss-level options. -- Jakub Wilk Wed, 08 Oct 2008 13:54:55 +0200 pdf2djvu (0.4.12) unstable; urgency=low * Convert document outline if it is existent but empty. Thanks to Chris Karakas for the bug report. * Hyperlinks without borders no longer cause segmentation faults (Poppler ≥ 0.7 only). -- Jakub Wilk Mon, 28 Jul 2008 14:13:15 +0200 pdf2djvu (0.4.11) unstable; urgency=low * Find text position more accurately (Poppler ≥ 0.6 only). That should partially fix an issue with rotated text, too. * Work around an issue with subsampled image resolution. -- Jakub Wilk Fri, 20 Jun 2008 12:33:53 +0200 pdf2djvu (0.4.10) unstable; urgency=low * Ensure that each character height is ≥ 1 pixel. Thanks to John Goerzen for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=5 * Handle rotated PDF pages properly. Thanks to John Goerzen for the bug report. http://code.google.com/p/pdf2djvu/issues/detail?id=4 * Extract hyperlinks border colors (Poppler ≥ 0.7 only). http://code.google.com/p/pdf2djvu/issues/detail?id=3 * Make page references in the form "#", instead of "#". * Fix a regression which disabled the --fg-colors option. -- Jakub Wilk Fri, 02 May 2008 18:36:02 +0200 pdf2djvu (0.4.9) unstable; urgency=low * Perform NFKC normalization on hidden text. * Fix a bug which was (sometimes) breaking index files for multi-page indirect documents. * Fix version information. -- Jakub Wilk Fri, 18 Apr 2008 20:04:17 +0200 pdf2djvu (0.4.8) unstable; urgency=low * From now on, --indirect argument means an index file name. * Add --pageid-prefix option. -- Jakub Wilk Sun, 13 Apr 2008 20:21:21 +0200 pdf2djvu (0.4.7) unstable; urgency=low * Add the --media-box option. * Disable vector anti-aliasing by default. -- Jakub Wilk Wed, 09 Apr 2008 16:46:37 +0200 pdf2djvu (0.4.6) unstable; urgency=low * Don't force red hyperlink border if it's unable to determine proper colour. * Enable compilation on Cygwin. * Add the --fg-colors option. -- Jakub Wilk Sun, 30 Mar 2008 21:06:03 +0200 pdf2djvu (0.4.5.1) unstable; urgency=low * Fix version information. -- Jakub Wilk Mon, 03 Mar 2008 23:48:30 +0100 pdf2djvu (0.4.5) unstable; urgency=low * Fix a bug which was (sometimes) breaking index files for multi-page indirect documents. Thanks to Krzysztof Szafran for the bug report. * pdf2djvu version information is now recorded into metadata. * Add the --version option. * Add the --page-size option. -- Jakub Wilk Thu, 07 Feb 2008 20:43:54 +0100 pdf2djvu (0.4.4) unstable; urgency=low * Fix an undefined behaviour which led to rendering bugs. Thanks to Janusz S. Bień and Krzysztof Szafran for bug reports. -- Jakub Wilk Tue, 05 Feb 2008 23:13:23 +0100 pdf2djvu (0.4.3) unstable; urgency=low * Fix some linking issues. * Add the --hyperlinks option. * Display compression ratio, file sizes etc. -- Jakub Wilk Sat, 26 Jan 2008 13:00:32 +0100 pdf2djvu (0.4.2) unstable; urgency=low * Split code into several files. * Don't write binary garbage to a terminal. * Don't hang if a DjVuLibre binary tool is not found. Thanks to Janusz S. Bień for the bug report. * Fix an off-by-one error which caused (sometimes) erroneous text conversion. Thanks to Janusz S. Bień and Fadi Edward for bug reports. -- Jakub Wilk Thu, 17 Jan 2008 23:28:49 +0100 pdf2djvu (0.4.1) unstable; urgency=low * Add --bg-subsample option. * Work around djvused bug which made impossible to incorporate document outline into indirect multi-page documents. Thanks to Janusz S. Bień for the bug report. * Tune color quantization a bit. -- Jakub Wilk Fri, 28 Dec 2007 22:25:51 +0100 pdf2djvu (0.4.0) unstable; urgency=low * Add support for indirect multi-page documents. * Don't crash on broken annotations. * Ensure that each character width is ≥ 1 pixel. Thanks to Victor Ivrii and Christian Ohm for bug reports. * Do process I/O with pstreams, rather than with system(3) calls. * More verbose error messages while option processing. * Include ")" and "\" in the text layer. -- Jakub Wilk Wed, 12 Dec 2007 20:40:02 +0100 pdf2djvu (0.3.6) unstable; urgency=low * Fix a bug which caused (sometimes) foreground colors to be discarded. * Proper support for non-white background. * Fix a file descriptior leak. Thanks to Victor Ivrii for the report. * Fix a regression with locating hyperlinks. * Fix hyperlinks extraction (Poppler 0.6 only). Thanks to Victor Ivrii for the report. * Find text position more accurately (Poppler 0.6 only). -- Jakub Wilk Fri, 07 Dec 2007 21:28:32 +0100 pdf2djvu (0.3.5) unstable; urgency=low * Fix a regression with rendering background layer (Poppler 0.4 only). * Improve bitonal image recognition. * Coordinate space transformations are now done correctly. -- Jakub Wilk Wed, 28 Nov 2007 16:13:57 +0100 pdf2djvu (0.3.4) unstable; urgency=low * Turn bookmark errors into warnings. * Add --no-metadata, --no-outline, --no-hyperlinks options. * Fix erroneous color conversion (Poppler 0.4 only). * Recognize more link actions. * Provide the manual page. -- Jakub Wilk Fri, 23 Nov 2007 13:23:18 +0100 pdf2djvu (0.3.3) unstable; urgency=low * Find text position more accurately. * Handle UTF-16-encoded strings properly. * Parse dates with respect to PDF Reference. * Add --words, --lines, --no-text options. * Add -v/--verbose, -q/--quiet options. * Don't synchronize C++ I/O streams with C stdio. -- Jakub Wilk Sat, 17 Nov 2007 11:56:25 +0100 pdf2djvu (0.3.2) unstable; urgency=low * Fix a regression which caused hyperlinks not be included into PDF documents. -- Jakub Wilk Sun, 11 Nov 2007 18:07:35 +0100 pdf2djvu (0.3.1) unstable; urgency=low * Legible file identifiers. -- Jakub Wilk Fri, 09 Nov 2007 21:59:50 +0100 pdf2djvu (0.3) unstable; urgency=low * Recognize bilevel images as foreground. * Recognize simple graphics as foreground. * Fix mishandling of color documents. * Fix mishandling of Type3 characters. * Fix some other minor bugs. -- Jakub Wilk Fri, 09 Nov 2007 21:59:42 +0100 pdf2djvu (0.2) unstable; urgency=low * Include hyperlinks to a particular page. * Include outline/bookmarks. * Add compatibility layer to allow linking with Poppler < 0.5. * Improve exception handling. * Fix some other minor bugs. -- Jakub Wilk Tue, 30 Oct 2007 21:36:53 +0100 pdf2djvu (0.1) unstable; urgency=low * Initial release. -- Jakub Wilk Mon, 22 Oct 2007 19:25:12 +0200 pdf2djvu-0.7.17/doc/build-depends.txt0000644000000000000000000000373012151732402016055 0ustar rootroot===================================== Packages required do build *pdf2djvu* ===================================== DjVuLibre ========= DjVuLibre_ is an implementation of DjVu_, including viewers, browser plugins, decoders, simple encoders, and utilities. Compatiblity ------------ DjVuLibre 3.5.21 or newer is required. For Debian/Ubuntu, 3.5.20-5 is sufficient. .. _DjVuLibre: http://djvu.sourceforge.net/ .. _DjVu: http://djvu.org/ poppler ======= Poppler_ is a PDF rendering library derived from xpdf. .. _poppler: http://poppler.freedesktop.org/ Header files ------------ You will need some ``*.h`` files which are not installed by default (``make install``) unless you use the ``--enable-xpdf-headers`` configure option. Alternatively, you may use the ``tools/install-poppler-h-files`` script to install them afterwards. Note that some Linux distributions are already shipping those files. Compatibility ------------- Poppler 0.7.3 or newer is required. Security warning ---------------- Every upstream poppler version prior to 0.10.6 is affected by at least one serious security bug. **You have been warned**. PStreams (recommended) ====================== PStreams_ allows you to run another program from your C++ application and to transfer data between the two programs, similar to shell pipelines. .. _PStreams: http://pstreams.sourceforge.net/ GNOME XSLT library (recommended) ================================ Libxslt_ is the XSLT C library developed for the GNOME project. This library is required to correctly deal with XMP metadata. .. _Libxslt: http://xmlsoft.org/xslt/ GraphicsMagick (optional) ========================= GraphicsMagick_ is a library to read, write, and manipulate images. .. _GraphicsMagick: http://www.graphicsmagick.org/ an OpenMP implementation (recommended) ====================================== OpenMP_ is API for multi-platform shared-memory parallel programming. .. _OpenMP: http://openmp.org/ .. vim:ft=rst ts=3 sw=3 et tw=72 pdf2djvu-0.7.17/doc/Makefile.common0000644000000000000000000000036712151732402015527 0ustar rootrootXSL = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl XMLLINT = xmllint --valid --noout --nonet XSLTPROC = xsltproc --nonet --param man.charmap.use.subset 0 %.1: %.xml $(XMLLINT) $(<) $(XSLTPROC) $(XSL) $(<) # vim:ts=4 pdf2djvu-0.7.17/doc/Makefile0000644000000000000000000000023512151732402014232 0ustar rootrootsrcdir = .. include $(srcdir)/doc/Makefile.common XML_FILES = $(wildcard *.xml) MAN_FILES = $(XML_FILES:.xml=.1) .PHONY: all all: $(MAN_FILES) # vim:ts=4 pdf2djvu-0.7.17/djvuconst.hh0000644000000000000000000000370112151732402014366 0ustar rootroot/* Copyright © 2007, 2008, 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_DJVU_CONST_H #define PDF2DJVU_DJVU_CONST_H namespace djvu { static const int min_dpi = 72; static const int max_dpi = 6000; /* ``djvumake`` used to require dpi ≥ 72. * The library itself enforces dpi ≤ 6000. * * See * * for details. */ static const unsigned int max_fg_colors = 4080; static const unsigned int max_subsample_ratio = 12; static const unsigned int version = 1; static const char shared_ant_file_name[] = "shared_anno.iff"; namespace binary { static const char version = static_cast(djvu::version); static const char djvm_head[] = "AT&TFORM\0\0\0\0DJVMDIRM\0\0\0"; static const char dummy_head[12] = { '\x41', '\x54', '\x26', '\x54', '\x46', '\x4f', '\x52', '\x4d', '\x00', '\x00', '\x00', '\x20' }; static const char dummy_double_head[48] = { '\x41', '\x54', '\x26', '\x54', '\x46', '\x4f', '\x52', '\x4d', '\x00', '\x00', '\x00', '\x74', '\x44', '\x4a', '\x56', '\x4d', '\x44', '\x49', '\x52', '\x4d', '\x00', '\x00', '\x00', '\x18', '\x81', '\x00', '\x02', '\x00', '\x00', '\x00', '\x30', '\x00', '\x00', '\x00', '\x58', '\xff', '\xff', '\xf2', '\xbf', '\x34', '\x7b', '\xf3', '\x10', '\x74', '\x07', '\x45', '\xc5', '\x40' }; static const char dummy_page_data[32] = { '\x44', '\x4a', '\x56', '\x55', '\x49', '\x4e', '\x46', '\x4f', '\x00', '\x00', '\x00', '\x0a', '\x00', '\x01', '\x00', '\x01', '\x18', '\x00', '\x2c', '\x01', '\x16', '\x00', '\x53', '\x6a', '\x62', '\x7a', '\x00', '\x00', '\x00', '\x02', '\xbb', '\x7f' }; } } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/debug.hh0000644000000000000000000000320112151732402013430 0ustar rootroot/* Copyright © 2007, 2008, 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_DEBUG_H #define PDF2DJVU_DEBUG_H #include #include #include #include "system.hh" class DebugStream; template static inline DebugStream &operator<<(DebugStream &, const tp &); class DebugStream { protected: unsigned int level; bool started; std::ostream &ostream; void indent(); public: explicit DebugStream(std::ostream &ostream) : level(0), started(false), ostream(ostream) { } void operator ++(int) { this->level++; } void operator --(int) { this->level--; } template friend DebugStream &operator<<(DebugStream &, const tp &); friend DebugStream &operator<<(DebugStream &stream, std::ostream& (*)(std::ostream&)); }; DebugStream &debug(int n, int threshold); extern DebugStream error_log; extern std::ostream &dev_null; static inline std::ostream &operator<<(std::ostream &stream, const std::runtime_error &error) { stream << error.what(); return stream; } template static inline DebugStream &operator<<(DebugStream &stream, const tp &object) { if (!stream.started) { stream.indent(); stream.started = true; } std::ostringstream buffer; buffer.copyfmt(stream.ostream); buffer << object; std::string string = buffer.str(); stream.ostream << encoding::proxy(string); return stream; } #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/debug.cc0000644000000000000000000000211212151732402013416 0ustar rootroot/* Copyright © 2007, 2008, 2009 Jakub Wilk * * This package 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; version 2 dated June, 1991. */ #include "debug.hh" class DevNull : public std::ostream { public: DevNull() : std::ostream(0) { } }; static DevNull static_dev_null; std::ostream &dev_null = static_dev_null; DebugStream error_log(std::cerr); static DebugStream null_debug(dev_null); static DebugStream full_debug(std::clog); DebugStream &debug(int n, int threshold) { if (n <= threshold) return full_debug; else return null_debug; } void DebugStream::indent() { unsigned int level = this->level; if (level > 0) { while (level-- > 1) this->ostream << " "; this->ostream << "- "; } } DebugStream &operator<<(DebugStream &stream, std::ostream& (*pf)(std::ostream&)) { if (pf == static_cast(std::endl)) stream.started = false; stream.ostream << pf; return stream; } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/configure.ac0000644000000000000000000002063012151732402014314 0ustar rootrootdnl | Copyright © 2008, 2009, 2010, 2011 Jakub Wilk dnl | dnl | This package is free software; you can redistribute it and/or modify dnl | it under the terms of the GNU General Public License as published by dnl | the Free Software Foundation; version 2 dated June, 1991. AC_PREREQ(2.61) AC_INIT([pdf2djvu], [0.7.17], [http://code.google.com/p/pdf2djvu/issues/], [pdf2djvu], [http://pdf2djvu.googlecode.com/]) AC_CONFIG_AUX_DIR(tools) AC_LANG(C++) # Checks for programs. AC_PROG_CXX AC_PROG_INSTALL AC_PREPROC_IFELSE( [AC_LANG_SOURCE([[#include ]])], [AC_CHECK_TOOL(WINDRES, windres)] ) # Checks for libraries. PKG_CHECK_MODULES(DJVULIBRE, ddjvuapi >= 3.5.17) djvulibre_bin_path=$($PKG_CONFIG --variable exec_prefix ddjvuapi)/bin AC_SUBST(djvulibre_bindir, "$djvulibre_bin_path") djvulibre_version=$($PKG_CONFIG --modversion ddjvuapi) PACKAGE_STRING="$PACKAGE_STRING (DjVuLibre $djvulibre_version" AC_DEFINE_UNQUOTED(DJVULIBRE_VERSION_STRING, "$djvulibre_version", Define to the version of DjVuLibre) djvulibre_bugs='' AC_MSG_CHECKING(DjVuLibre fitness) for tool in cjb2 c44 csepdjvu ddjvu djvused djvuextract djvumake djvmcvt do if test ! -x "$djvulibre_bin_path/$tool" then AC_MSG_RESULT(incomplete set of tools) AC_MSG_ERROR($tool not found) fi done # Test for Debian bug #458211 . # csepdjvu affected by the bug is unable to use subsample ratio 12. # Prior to pdf2djvu 0.5.0, pdf2djvu simply dissalowed subsample ratio 12 by # itself. echo 'P1 12 12' > conftest.458211.pbm yes 0 | head -n 144 >> conftest.458211.pbm "$djvulibre_bin_path/cjb2" conftest.458211.pbm conftest.458211.djvu "$djvulibre_bin_path/ddjvu" -format=rle conftest.458211.djvu conftest.458211.sep printf 'P6 1 1 255 xxx' >> conftest.458211.sep "$djvulibre_bin_path/csepdjvu" conftest.458211.sep conftest.458211.djvu 2>/dev/null || djvulibre_bugs="$djvulibre_bugs 458211" # Test for Debian bug #471149 . # djvused affected by the bug is unable to correctly set annotations. printf 'P1 3 3 0 0 0 0 0 0 0 0 0' > conftest.471149.pbm "$djvulibre_bin_path/cjb2" conftest.471149.pbm conftest.471149.djvu cat > conftest.471149.djvused <<_ACEOF select 1 set-ant (x) . _ACEOF "$djvulibre_bin_path/djvused" -f conftest.471149.djvused -s conftest.471149.djvu if ! "$djvulibre_bin_path/djvused" -e output-ant conftest.471149.djvu | grep '(x)' > /dev/null then djvulibre_bugs="$djvulibre_bugs 471149" fi # Test for Debian bug #458086 . # djvused affected by the bug is unable to set bookmarks for indirect # multi-page documents. # Prior to pdf2djvu 0.5.3, the bug was worked around. printf 'P1 3 3 0 0 0 0 0 0 0 0 0 0' > conftest.458086.pbm "$djvulibre_bin_path/cjb2" conftest.458086.pbm conftest.458086.p1.djvu "$djvulibre_bin_path/cjb2" conftest.458086.pbm conftest.458086.p2.djvu printf 'AT&TFORM\0\0\0\065DJVMDIRM\0\0\0\051\001\0\002\377\377\306\277\212' > conftest.458086.djvu printf '\037\353\113\377\100\216\067\206\077\154\276\170\002\074\223\233' >> conftest.458086.djvu printf '\027\127\026\147\035\172\353\127\370\363\176\144\062\102\210\322\117' >> conftest.458086.djvu printf '(bookmarks ("" ""))' > conftest.458086.outline "$djvulibre_bin_path/djvused" -s -e 'set-outline conftest.458086.outline' conftest.458086.djvu if ! "$djvulibre_bin_path/djvused" -e print-outline conftest.458086.djvu | grep '(bookmarks' > /dev/null then djvulibre_bugs="$djvulibre_bugs 458086" fi if test -n "$djvulibre_bugs" then result='' for bug in $djvulibre_bugs do if test -n "$result" then result="$result, " fi result="${result}" done AC_MSG_RESULT(buggy) AC_MSG_ERROR(See $result for details.) else AC_MSG_RESULT(ok) fi PKG_CHECK_MODULES(POPPLER, poppler-splash >= 0.7.3) poppler_version=$($PKG_CONFIG --modversion poppler-splash) AC_DEFINE_UNQUOTED(POPPLER_VERSION_STRING, "$poppler_version", Define to the version of poppler) PACKAGE_STRING="$PACKAGE_STRING, poppler $poppler_version" poppler_version=$(printf '%s' "$poppler_version" | sed -e 's/\(^[[0-9]]\+[[.]][[0-9]]\+$\)/\1.0/; s/[[.]]/ /g') poppler_version=$(printf '%02d' $poppler_version | sed -e 's/^0*//g') AC_DEFINE_UNQUOTED(POPPLER_VERSION, $poppler_version, Define to the version of poppler, as integer) AC_ARG_WITH(graphicsmagick, AS_HELP_STRING([--without-graphicsmagick], [do not use the GraphicsMagick library])) if test "$with_graphicsmagick" != "no" then PKG_CHECK_MODULES(GRAPHICSMAGICK, GraphicsMagick++, [ AC_DEFINE(HAVE_GRAPHICSMAGICK, 1, Define if you have GraphicsMagick++ installed) graphicsmagick_version=$($PKG_CONFIG --modversion GraphicsMagick++) AC_DEFINE_UNQUOTED(GRAPHICSMAGICK_VERSION_STRING, "$graphicsmagick_version", Define to the version of GraphicsMagick++) PACKAGE_STRING="$PACKAGE_STRING, GraphicsMagick++ $graphicsmagick_version" ], [ : ] ) fi AC_ARG_WITH(xslt, AS_HELP_STRING([--without-xslt], [do not use the GNOME XSLT library])) if test "$with_xslt" != "no" then PKG_CHECK_MODULES(XSLT, libxslt, [ AC_DEFINE(HAVE_LIBXSLT, 1, Define if you have GNOME XSLT library installed) libxml2_version=$($PKG_CONFIG --modversion libxml-2.0) libxslt_version=$($PKG_CONFIG --modversion libxslt) PACKAGE_STRING="$PACKAGE_STRING, GNOME XSLT $libxslt_version, GNOME XML $libxml2_version" ], [ : ] ) fi PACKAGE_STRING="$PACKAGE_STRING)" AC_DEFINE_UNQUOTED(PACKAGE_STRING, "$PACKAGE_STRING", Define to the full name and version of this package) AC_PREPROC_IFELSE([AC_LANG_SOURCE([[]])]) have_pstreams=maybe AC_CHECK_FUNC(fork, [AC_DEFINE(HAVE_FORK, 1, [Define if fork(3) is available.])], [have_pstreams=no] ) AC_MSG_CHECKING(for PStreams) if test "$have_pstreams" = "maybe" then AC_PREPROC_IFELSE( [AC_LANG_SOURCE([[#include ]])], [ AC_DEFINE(HAVE_PSTREAM_H, 1, [Define if you have the file]) have_pstreams=yes ] ) fi if test "$have_pstreams" = "maybe" then AC_PREPROC_IFELSE( [AC_LANG_SOURCE([[#include ]])], [ AC_DEFINE(HAVE_PSTREAMS_PSTREAM_H, 1, [Define if you have the file]) have_pstreams=yes ] ) fi if test "$have_pstreams" = "yes" then AC_DEFINE(HAVE_PSTREAMS, 1, [Define if you have PStreams installed and usable]) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no (or not usable)) fi AM_GNU_GETTEXT(external, need-ngettext) AM_GNU_GETTEXT_VERSION(0.17) # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. AC_MSG_CHECKING(for wchar_t encoding) AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ #include #if defined(__STDC_ISO_10646__) #elif defined(__WIN32__) #elif defined(__APPLE__) #else #error #endif ]])], [ AC_MSG_RESULT(UTF-32 or UTF-16) have_unicode_wchar_t=yes AC_DEFINE(HAVE_UNICODE_WCHAR_T, 1, [Define if wchar_t encoding is UTF-32 or UTF-16]) ], [ AC_MSG_RESULT(unknown) have_unicode_wchar_t=maybe ] ) AC_ARG_ENABLE(openmp, AS_HELP_STRING([--disable-openmp], [do not use the OpenMP API])) if test "$enable_openmp" != "no" then AX_OPENMP AC_SUBST(OPENMP_CXXFLAGS) fi AC_MSG_CHECKING(for MinGW ANSI stdio) AC_EGREP_HEADER(__mingw_vsnprintf, stdio.h, [ AC_MSG_RESULT(yes) AC_DEFINE_UNQUOTED(USE_MINGW_ANSI_STDIO, 1, Define to use MinGW ANSI stdio) ], [ AC_MSG_RESULT(no) ] ) # Turn on compile warnings AX_CXXFLAGS_WARN_ALL(CXXFLAGS) if test "$GXX" = yes then CXXFLAGS="$CXXFLAGS -Werror=overloaded-virtual" fi # Output files AC_CONFIG_FILES(Makefile.common) AC_CONFIG_HEADER(version.hh) AC_OUTPUT # Final remarks if test "$ax_cv_cxx_openmp" = "unknown" then cat <<_ACEOF WARNING: Parallel page rendering will be disabled. Please consider using a compiler with OpenMP support to enable this functionality. _ACEOF fi if test "$with_graphicsmagick" != "no" && test -z "$graphicsmagick_version" then cat <<_ACEOF INFO: Color quantization using GraphicsMagick will be disabled. Please consider installing the GraphicsMagick++ library to enable this functionality. _ACEOF fi if test "$with_xslt" != "no" && test -z "$libxslt_version" then cat <<_ACEOF WARNING: Updating XMP metadata will be disabled. Please consider installing the GNOME XSLT library to enable this functionality. _ACEOF fi if test "$have_unicode_wchar_t" = maybe then cat <<_ACEOF WARNING: pdf2djvu assumes that wchar_t encoding is UTF-32 or UTF-16. This might NOT be the case for your system. Please file a bug to $PACKAGE_BUGREPORT. _ACEOF fi # vim:ts=2 sw=2 et pdf2djvu-0.7.17/config.hh0000644000000000000000000000550712151732402013622 0ustar rootroot/* Copyright © 2007, 2008, 2009, 2010 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #ifndef PDF2DJVU_CONFIG_H #define PDF2DJVU_CONFIG_H #include #include #include #include #include #include #include "i18n.hh" #include "sexpr.hh" #include "string-format.hh" class Config { protected: static string_format::Template *default_pageid_template(const std::string &pageid_prefix); public: class Hyperlinks { public: bool extract; bool border_always_visible; std::string border_color; Hyperlinks() : extract(true), border_always_visible(false) { }; }; enum { FG_COLORS_DEFAULT = UINT_MAX, FG_COLORS_WEB = UINT_MAX - 1, FG_COLORS_BLACK = UINT_MAX - 2, }; enum text_t { TEXT_NONE = 0, TEXT_WORDS, TEXT_LINES }; enum format_t { FORMAT_BUNDLED, FORMAT_INDIRECT }; format_t format; text_t text; bool text_nfkc; bool text_crop; std::string output; bool output_stdout; int verbose; int dpi; bool guess_dpi; std::pair preferred_page_size; bool use_media_box; unsigned int bg_subsample; unsigned int fg_colors; bool monochrome; int loss_level; bool antialias; Hyperlinks hyperlinks; bool extract_metadata; bool adjust_metadata; bool extract_outline; bool no_render; char *bg_slices; std::vector< std::pair > pages; std::vector filenames; std::auto_ptr pageid_template; std::auto_ptr page_title_template; std::string text_filter_command_line; int n_jobs; Config(); class NeedVersion { }; class Error : public std::runtime_error { public: explicit Error(const std::string &message) : std::runtime_error(message) { }; virtual bool is_quiet() const { return false; } virtual bool is_already_printed() const { return false; } virtual ~Error() throw () { /* just to shut up compilers */ } }; class NoPagesSelected : public Error { public: NoPagesSelected() : Error(_("No pages selected")) { } }; class NeedHelp : public Error { public: NeedHelp() : Error("") { }; virtual bool is_quiet() const { return true; } }; class InvalidOption : public Error { public: InvalidOption() : Error("") { }; virtual bool is_quiet() const { return true; } virtual bool is_already_printed() const { return true; } }; void read_config(int argc, char * const argv[]); void usage(const Error &error) const; }; #endif // vim:ts=2 sw=2 et pdf2djvu-0.7.17/config.cc0000644000000000000000000004412012151732402013602 0ustar rootroot/* Copyright © 2007, 2008, 2009, 2010 Jakub Wilk * Copyright © 2009 Mateusz Turcza * * This package 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; version 2 dated June, 1991. */ #include #include #include #include #include #include #include "config.hh" #include "debug.hh" #include "djvuconst.hh" #include "i18n.hh" #include "version.hh" class OptionsParseError : public Config::Error { protected: explicit OptionsParseError(const std::string &message) : Config::Error(message) { } public: OptionsParseError() : Config::Error(_("Unable to parse command-line options")) { } }; class NoInputFile : public Config::Error { public: NoInputFile() : Config::Error(_("No input file name was specified")) { } }; class InvalidOutputFileName : public Config::Error { public: InvalidOutputFileName() : Config::Error(_("Invalid output file name")) { } }; class PagesParseError : public Config::Error { public: PagesParseError() : Config::Error(_("Unable to parse page numbers")) { } }; class PageSizeParseError : public Config::Error { public: PageSizeParseError() : Config::Error(_("Unable to parse page size")) { } }; class HyperlinksOptionsParseError : public Config::Error { public: HyperlinksOptionsParseError() : Config::Error(_("Unable to parse hyperlinks options")) { } }; class DpiOutsideRange : public Config::Error { public: DpiOutsideRange(int dpi_from, int dpi_to) : Config::Error(string_printf(_("The specified resolution is outside the allowed range: %d .. %d"), dpi_from, dpi_to)) { } }; class FgColorsOutsideRange : public Config::Error { public: FgColorsOutsideRange(unsigned int n, unsigned int m) : Error(string_printf(_("The specified number of foreground colors is outside the allowed range: %u .. %u"), n, m)) { } }; class SubsampleRatioOutsideRange : public Config::Error { public: SubsampleRatioOutsideRange(unsigned int n, unsigned int m) : Error(string_printf(_("The specified subsampling ratio is outside the allowed range: %u .. %u"), n, m)) { } }; class PageTitleTemplateParseError : public Config::Error { public: PageTitleTemplateParseError() : Config::Error(_("Unable to parse page title template specification")) { } }; class PageidTemplateParseError : public Config::Error { public: PageidTemplateParseError() : Config::Error(_("Unable to parse pageid template specification")) { } }; class PageidIllegalCharacter : public Config::Error { public: PageidIllegalCharacter() : Config::Error(_("Pageid must consist only of letters, digits, '_', '+', '-' and '.' characters")) { } }; class PageidIllegalDot : public Config::Error { public: PageidIllegalDot() : Config::Error(_("Pageid cannot start with a '.' character or contain two consecutive '.' characters")) { } }; class PageidIllegalPm : public Config::Error { public: PageidIllegalPm() : Config::Error(_("Pageid cannot start with a '+' or a '-' character")) { } }; class PageidBadExtension : public Config::Error { public: PageidBadExtension() : Config::Error(_("Pageid must end with the '.djvu' or the '.djv' extension")) { } }; string_format::Template* Config::default_pageid_template(const std::string &prefix) { return new string_format::Template(prefix + "{spage:04*}.djvu"); } Config::Config() { this->text = this->TEXT_WORDS; this->text_nfkc = true; this->text_crop = false; this->format = this->FORMAT_BUNDLED; this->output_stdout = true; this->verbose = 1; this->dpi = 300; this->guess_dpi = false; this->preferred_page_size = std::make_pair(0, 0); this->use_media_box = false; this->bg_subsample = 3; this->fg_colors = this->FG_COLORS_DEFAULT; this->antialias = false; this->extract_metadata = true; this->adjust_metadata = true; this->extract_outline = true; this->no_render = false; this->monochrome = false; this->loss_level = 0; this->bg_slices = NULL; this->pageid_template.reset(default_pageid_template("p")); this->n_jobs = 1; } namespace string { static void split(const std::string &, char, std::vector &); static void replace(std::string &, char, char); template tp as(const char *); template <> long as(const char *); template tp as(const std::string &); } static void string::split(const std::string &s, char c, std::vector &result) { size_t lpos = 0; while (true) { size_t rpos = s.find(c, lpos); result.push_back(s.substr(lpos, rpos - lpos)); if (rpos == std::string::npos) break; else lpos = rpos + 1; } } static void string::replace(std::string &s, char c1, char c2) { size_t lpos = 0; while (true) { size_t rpos = s.find(c1, lpos); if (rpos == std::string::npos) break; s[rpos] = c2; lpos = rpos + 1; } } static void parse_hyperlinks_options(std::string s, Config::Hyperlinks &options) { std::vector splitted; string::replace(s, '_', '-'); string::split(s, ',', splitted); for (std::vector::const_iterator it = splitted.begin(); it != splitted.end(); it++) { if (*it == "border-avis") { options.border_always_visible = true; continue; } else if (*it == "no" || *it == "none") { options.extract = false; continue; } else if ( it->length() == 7 && (*it)[0] == '#' && it->find_first_not_of("0123456789abcdefABCDEF", 1) == std::string::npos ) { options.border_color = *it; continue; } throw HyperlinksOptionsParseError(); } } static void parse_pages(const std::string &s, std::vector< std::pair > &result) { int state = 0; int value[2] = { 0, 0 }; for (std::string::const_iterator it = s.begin(); it != s.end(); it++) { if (('0' <= *it) && (*it <= '9')) { value[state] = value[state] * 10 + (int)(*it - '0'); if (state == 0) value[1] = value[0]; } else if (state == 0 && *it == '-') { state = 1; value[1] = 0; } else if (*it == ',') { if (value[0] < 1 || value[1] < 1 || value[0] > value[1]) throw PagesParseError(); result.push_back(std::make_pair(value[0], value[1])); value[0] = value[1] = 0; state = 0; } else throw PagesParseError(); } if (state == 0) value[1] = value[0]; if (value[0] < 1 || value[1] < 1 || value[0] > value[1]) throw PagesParseError(); result.push_back(std::make_pair(value[0], value[1])); } static std::pairparse_page_size(const std::string &s) { std::istringstream stream(s); int x, y; char c; stream >> x >> c >> y; if (x > 0 && y > 0 && c == 'x' && stream.eof() && !stream.fail()) return std::make_pair(x, y); else throw PageSizeParseError(); } class InvalidNumber : public Config::Error { public: explicit InvalidNumber(const char *s) : Config::Error(string_printf(_("%s is not a valid number"), s)) { } }; template tp string::as(const char *s) { long result = as(s); if (result > std::numeric_limits::max()) throw InvalidNumber(s); if (result < std::numeric_limits::min()) throw InvalidNumber(s); return result; } template <> long string::as(const char *s) { char *end_ptr; long result; errno = 0; result = strtol(s, &end_ptr, 10); if (*end_ptr != '\0' || errno == ERANGE) throw InvalidNumber(s); return result; } template tp string::as(const std::string &s) { return as(s.c_str()); } static unsigned int parse_fg_colors(const std::string &s) { if (s == "web") return Config::FG_COLORS_WEB; else if (s == "default") return Config::FG_COLORS_DEFAULT; else if (s == "black") return Config::FG_COLORS_BLACK; long n = string::as(s); if (n < 1 || n > static_cast(djvu::max_fg_colors)) throw FgColorsOutsideRange(1, djvu::max_fg_colors); return n; } static unsigned int parse_bg_subsample(const std::string &s) { long n = string::as(optarg); if (n < 1 || n > static_cast(djvu::max_subsample_ratio)) throw SubsampleRatioOutsideRange(1, djvu::max_subsample_ratio); return n; } static void validate_pageid_template(string_format::Template &pageid_template) { string_format::Bindings empty_bindings; std::string pageid = pageid_template.format(empty_bindings); size_t length = pageid.length(); bool dot_allowed = false; bool pm_allowed = false; for (std::string::const_iterator it = pageid.begin(); it != pageid.end(); it++) { if (!pm_allowed && (*it == '+' || *it == '-')) { throw PageidIllegalPm(); } if (*it == '.') { if (!dot_allowed) throw PageidIllegalDot(); dot_allowed = false; } else if ((*it >= 'a' && *it <= 'z') || (*it >= '0' && *it <= '9') || *it == '_' || *it == '-' || *it == '+') dot_allowed = true; else throw PageidIllegalCharacter(); pm_allowed = true; } if (length >= 4 && pageid.substr(length - 4) == ".djv") ; else if (length >= 5 && pageid.substr(length - 5) == ".djvu") ; else throw PageidBadExtension(); } void Config::read_config(int argc, char * const argv[]) { enum { OPT_DPI = 'd', OPT_HELP = 'h', OPT_INDIRECT = 'i', OPT_JOBS = 'j', OPT_OUTPUT = 'o', OPT_PAGES = 'p', OPT_QUIET = 'q', OPT_VERBOSE = 'v', OPT_DUMMY = CHAR_MAX, OPT_ANTIALIAS, OPT_BG_SLICES, OPT_BG_SUBSAMPLE, OPT_FG_COLORS, OPT_GUESS_DPI, OPT_HYPERLINKS, OPT_LOSS_100, OPT_LOSS_ANY, OPT_MEDIA_BOX, OPT_MONOCHROME, OPT_NO_HLINKS, OPT_NO_METADATA, OPT_NO_OUTLINE, OPT_NO_RENDER, OPT_PAGEID_PREFIX, OPT_PAGEID_TEMPLATE, OPT_PAGE_SIZE, OPT_PAGE_TITLE_TEMPLATE, OPT_TEXT_CROP, OPT_TEXT_FILTER, OPT_TEXT_LINES, OPT_TEXT_NONE, OPT_TEXT_NO_NFKC, OPT_TEXT_WORDS, OPT_VERBATIM_METADATA, OPT_VERSION, }; static struct option options [] = { { "anti-alias", 0, 0, OPT_ANTIALIAS }, { "antialias", 0, 0, OPT_ANTIALIAS }, /* deprecated alias */ { "bg-slices", 1, 0, OPT_BG_SLICES }, { "bg-subsample", 1, 0, OPT_BG_SUBSAMPLE }, { "crop-text", 0, 0, OPT_TEXT_CROP }, { "dpi", 1, 0, OPT_DPI }, { "fg-colors", 1, 0, OPT_FG_COLORS }, { "filter-text", 1, 0, OPT_TEXT_FILTER }, { "guess-dpi", 0, 0, OPT_GUESS_DPI }, { "help", 0, 0, OPT_HELP }, { "hyperlinks", 1, 0, OPT_HYPERLINKS }, { "indirect", 1, 0, OPT_INDIRECT }, { "jobs", 1, 0, OPT_JOBS }, { "lines", 0, 0, OPT_TEXT_LINES }, { "loss-level", 1, 0, OPT_LOSS_ANY }, /* deprecated alias */ { "losslevel", 1, 0, OPT_LOSS_ANY }, { "lossy", 0, 0, OPT_LOSS_100 }, { "media-box", 0, 0, OPT_MEDIA_BOX }, { "monochrome", 0, 0, OPT_MONOCHROME }, { "no-hyperlinks", 0, 0, OPT_NO_HLINKS }, { "no-metadata", 0, 0, OPT_NO_METADATA }, { "no-nfkc", 0, 0, OPT_TEXT_NO_NFKC }, { "no-outline", 0, 0, OPT_NO_OUTLINE }, { "no-render", 0, 0, OPT_NO_RENDER }, { "no-text", 0, 0, OPT_TEXT_NONE }, { "output", 1, 0, OPT_OUTPUT }, { "page-size", 1, 0, OPT_PAGE_SIZE }, { "page-title-template", 1, 0, OPT_PAGE_TITLE_TEMPLATE }, { "pageid-prefix", 1, 0, OPT_PAGEID_PREFIX }, { "pageid-template", 1, 0, OPT_PAGEID_TEMPLATE }, { "pages", 1, 0, OPT_PAGES }, { "quiet", 0, 0, OPT_QUIET }, { "verbatim-metadata", 0, 0, OPT_VERBATIM_METADATA }, { "verbose", 0, 0, OPT_VERBOSE }, { "version", 0, 0, OPT_VERSION }, { "words", 0, 0, OPT_TEXT_WORDS }, { NULL, 0, 0, '\0' } }; int optindex, c; while (true) { optindex = 0; c = getopt_long(argc, argv, "i:o:d:qvp:j:h", options, &optindex); if (c < 0) break; if (c == 0) throw OptionsParseError(); switch (c) { case OPT_DPI: this->dpi = string::as(optarg); if (this->dpi < djvu::min_dpi || this->dpi > djvu::max_dpi) throw DpiOutsideRange(djvu::min_dpi, djvu::max_dpi); break; case OPT_GUESS_DPI: this->guess_dpi = true; break; case OPT_PAGE_SIZE: this->preferred_page_size = parse_page_size(optarg); break; case OPT_MEDIA_BOX: this->use_media_box = true; break; case OPT_QUIET: this->verbose = 0; break; case OPT_VERBOSE: this->verbose++; break; case OPT_BG_SLICES: this->bg_slices = optarg; break; case OPT_BG_SUBSAMPLE: this->bg_subsample = parse_bg_subsample(optarg); break; case OPT_FG_COLORS: this->fg_colors = parse_fg_colors(optarg); break; case OPT_MONOCHROME: this->monochrome = true; break; case OPT_LOSS_100: this->loss_level = 100; break; case OPT_LOSS_ANY: this->loss_level = string::as(optarg); if (this->loss_level < 0) this->loss_level = 0; else if (this->loss_level > 200) this->loss_level = 200; break; case OPT_PAGES: parse_pages(optarg, this->pages); break; case OPT_ANTIALIAS: this->antialias = 1; break; case OPT_HYPERLINKS: parse_hyperlinks_options(optarg, this->hyperlinks); break; case OPT_NO_HLINKS: this->hyperlinks.extract = false; break; case OPT_NO_METADATA: this->extract_metadata = false; break; case OPT_VERBATIM_METADATA: this->adjust_metadata = false; break; case OPT_NO_OUTLINE: this->extract_outline = false; break; case OPT_NO_RENDER: this->no_render = true; this->monochrome = true; break; case OPT_TEXT_NONE: this->text = this->TEXT_NONE; break; case OPT_TEXT_WORDS: this->text = this->TEXT_WORDS; break; case OPT_TEXT_LINES: this->text = this->TEXT_LINES; break; case OPT_TEXT_NO_NFKC: this->text_nfkc = false; break; case OPT_TEXT_FILTER: this->text_nfkc = false; /* filter normally does some normalization on its own */ this->text_filter_command_line = optarg; break; case OPT_TEXT_CROP: this->text_crop = true; break; case OPT_OUTPUT: this->format = this->FORMAT_BUNDLED; this->output = optarg; if (this->output == "-") { this->output.clear(); this->output_stdout = true; } else { std::string directory_name, file_name; this->output_stdout = false; split_path(this->output, directory_name, file_name); if (file_name == "-") { /* ``djvmcvt`` does not support ``-`` as a file name. * Work-arounds are possible but not worthwhile. */ throw InvalidOutputFileName(); } } break; case OPT_INDIRECT: this->format = this->FORMAT_INDIRECT; this->output = optarg; this->output_stdout = false; break; case OPT_PAGEID_PREFIX: this->pageid_template.reset(this->default_pageid_template(optarg)); validate_pageid_template(*this->pageid_template); break; case OPT_PAGEID_TEMPLATE: try { this->pageid_template.reset(new string_format::Template(optarg)); } catch (string_format::ParseError) { throw PageidTemplateParseError(); } validate_pageid_template(*this->pageid_template); break; case OPT_PAGE_TITLE_TEMPLATE: try { this->page_title_template.reset(new string_format::Template(optarg)); } catch (string_format::ParseError) { throw PageTitleTemplateParseError(); } break; case OPT_JOBS: this->n_jobs = string::as(optarg); break; case OPT_HELP: throw NeedHelp(); case OPT_VERSION: throw NeedVersion(); case '?': case ':': throw InvalidOption(); default: throw std::logic_error(_("Unknown option")); } } if (optind > argc - 1) throw NoInputFile(); else while (optind < argc) { this->filenames.push_back(argv[optind]); optind++; } } void Config::usage(const Config::Error &error) const { DebugStream &log = debug(0, this->verbose); if (error.is_already_printed()) log << std::endl; if (!error.is_quiet()) log << error << std::endl << std::endl; log << _("Usage: ") << std::endl << _(" pdf2djvu [-o ] [options] ") << std::endl << _(" pdf2djvu -i [options] ") << std::endl << std::endl << _("Options: ") << std::endl << _(" -i, --indirect=FILE") << std::endl << _(" -o, --output=FILE") << std::endl << _(" --pageid-prefix=NAME") << std::endl << _(" --pageid-template=TEMPLATE") << std::endl << _(" --page-title-template=TEMPLATE") << std::endl << _(" -d, --dpi=RESOLUTION") << std::endl << " --guess-dpi" << std::endl << " --media-box" << std::endl << _(" --page-size=WxH") << std::endl << " --bg-slices=N,...,N" << std::endl << " --bg-slices=N+...+N" << std::endl << " --bg-subsample=N" << std::endl << " --fg-colors=default" << std::endl << " --fg-colors=web" << std::endl << " --fg-colors=black" #if HAVE_GRAPHICSMAGICK << std::endl << " --fg-colors=N" #endif << std::endl << " --monochrome" << std::endl << " --loss-level=N" << std::endl << " --lossy" << std::endl << " --anti-alias" << std::endl << " --no-metadata" << std::endl << " --verbatim-metadata" << std::endl << " --no-outline" << std::endl << " --hyperlinks=border-avis" << std::endl << " --hyperlinks=#RRGGBB" << std::endl << " --no-hyperlinks" << std::endl << " --no-text" << std::endl << " --words" << std::endl << " --lines" << std::endl << " --crop-text" << std::endl << " --no-nfkc" << std::endl << _(" --filter-text=COMMAND-LINE") << std::endl << " -p, --pages=..." << std::endl << " -v, --verbose" #if _OPENMP << std::endl << " -j, --jobs=N" #endif << std::endl << " -q, --quiet" << std::endl << " -h, --help" << std::endl << " --version" << std::endl; } // vim:ts=2 sw=2 et pdf2djvu-0.7.17/Makefile.dep0000644000000000000000000000310112151732402014227 0ustar rootrootconfig.o: config.cc config.o: config.hh config.o: debug.hh config.o: djvuconst.hh config.o: i18n.hh config.o: sexpr.hh config.o: string-format.hh config.o: system.hh config.o: version.hh debug.o: debug.cc debug.o: debug.hh debug.o: system.hh debug.o: version.hh i18n.o: i18n.cc i18n.o: i18n.hh i18n.o: paths.hh i18n.o: system.hh i18n.o: version.hh image-filter.o: config.hh image-filter.o: djvuconst.hh image-filter.o: i18n.hh image-filter.o: image-filter.cc image-filter.o: image-filter.hh image-filter.o: pdf-backend.hh image-filter.o: rle.hh image-filter.o: sexpr.hh image-filter.o: string-format.hh image-filter.o: version.hh pdf-backend.o: debug.hh pdf-backend.o: i18n.hh pdf-backend.o: pdf-backend.cc pdf-backend.o: pdf-backend.hh pdf-backend.o: system.hh pdf-backend.o: version.hh pdf-dpi.o: i18n.hh pdf-dpi.o: pdf-backend.hh pdf-dpi.o: pdf-dpi.cc pdf-dpi.o: pdf-dpi.hh pdf-dpi.o: version.hh pdf2djvu.o: config.hh pdf2djvu.o: debug.hh pdf2djvu.o: djvuconst.hh pdf2djvu.o: i18n.hh pdf2djvu.o: image-filter.hh pdf2djvu.o: paths.hh pdf2djvu.o: pdf-backend.hh pdf2djvu.o: pdf-dpi.hh pdf2djvu.o: pdf2djvu.cc pdf2djvu.o: sexpr.hh pdf2djvu.o: string-format.hh pdf2djvu.o: system.hh pdf2djvu.o: version.hh pdf2djvu.o: xmp.hh sexpr.o: sexpr.cc sexpr.o: sexpr.hh string-format.o: i18n.hh string-format.o: string-format.cc string-format.o: string-format.hh string-format.o: version.hh system.o: debug.hh system.o: i18n.hh system.o: system.cc system.o: system.hh system.o: version.hh xmp.o: i18n.hh xmp.o: pdf-backend.hh xmp.o: version.hh xmp.o: xmp-dummy.hh xmp.o: xmp-xslt.hh xmp.o: xmp.cc xmp.o: xmp.hh pdf2djvu-0.7.17/Makefile.common.in0000644000000000000000000000133212151732402015360 0ustar rootroot# Package information: PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ # Paths: prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ datarootdir = @datarootdir@ mandir = @mandir@ localedir = @localedir@ djvulibre_bindir = @djvulibre_bindir@ # Complier, etc.: CXX = @CXX@ CXXFLAGS = @OPENMP_CXXFLAGS@ @CXXFLAGS@ @DJVULIBRE_CFLAGS@ @POPPLER_CFLAGS@ @GRAPHICSMAGICK_CFLAGS@ @XSLT_CFLAGS@ LDFLAGS = @LDFLAGS@ LDLIBS = @LIBS@ @DJVULIBRE_LIBS@ @POPPLER_LIBS@ @GRAPHICSMAGICK_LIBS@ @LIBINTL@ @XSLT_LIBS@ # Utilitiles: INSTALL = @INSTALL@ WINDRES = @WINDRES@ MSGMERGE = @MSGMERGE@ MSGFMT = @MSGFMT@ XGETTEXT_HELPER = $(srcdir)/tools/generate-po-template XGETTEXT = $(XGETTEXT_HELPER) @XGETTEXT@ pdf2djvu-0.7.17/Makefile0000644000000000000000000000372212151732402013471 0ustar rootroot# Copyright © 2007, 2008, 2009 Jakub Wilk # # This package 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; version 2 dated June, 1991. srcdir = . include $(srcdir)/Makefile.common .PHONY: all all: pdf2djvu ifneq "$(WINDRES)" "" version.o: version.rc version.hh $(WINDRES) -c 1252 -o $(@) $(<) pdf2djvu: version.o endif include Makefile.dep %.hh: %.xml tools/xml2c < $(<) > $(@) paths.hh: tools/generate-paths-hh Makefile.common $(<) $(foreach var,localedir djvulibre_bindir,$(var) $($(var))) pdf2djvu: config.o pdf2djvu: debug.o pdf2djvu: i18n.o pdf2djvu: image-filter.o pdf2djvu: pdf-backend.o pdf2djvu: pdf-dpi.o pdf2djvu: pdf2djvu.o pdf2djvu: sexpr.o pdf2djvu: string-format.o pdf2djvu: system.o pdf2djvu: xmp.o pdf2djvu: $(LINK.cc) $(^) $(LDLIBS) -o $(@) XML_FILES = $(wildcard *.xml) XML_HH_FILES = $(XML_FILES:.xml=.hh) .PHONY: clean clean: rm -f pdf2djvu *.o paths.hh $(XML_HH_FILES) .PHONY: distclean distclean: clean rm -f version.hh Makefile.common config.status config.log .PHONY: test test: pdf2djvu $(MAKE) -C tests/ MAN_PAGES = $(wildcard doc/*.1 doc/po/*.1) MO_FILES = $(wildcard po/*.mo) .PHONY: install install: all $(INSTALL) -d $(DESTDIR)$(bindir) $(INSTALL) pdf2djvu $(DESTDIR)$(bindir) ifneq ($(MAN_PAGES),) set -e; for manpage in $(MAN_PAGES); \ do \ set -x; \ basename=`basename $$manpage`; \ suffix="$${basename#*.}"; \ locale="$${suffix%.*}"; \ [ $$locale = $$suffix ] && locale=; \ $(INSTALL) -d $(DESTDIR)$(mandir)/$$locale/man1/; \ $(INSTALL) -m 644 $$manpage $(DESTDIR)$(mandir)/$$locale/man1/"$${basename%%.*}.$${basename##*.}"; \ done endif ifneq ($(MO_FILES),) set -e; for locale in $(basename $(notdir $(MO_FILES))); \ do \ $(INSTALL) -d $(DESTDIR)$(localedir)/$$locale/LC_MESSAGES/; \ $(INSTALL) -m 644 po/$$locale.mo $(DESTDIR)$(localedir)/$$locale/LC_MESSAGES/pdf2djvu.mo; \ done endif # vim:ts=4 sw=4 noet pdf2djvu-0.7.17/COPYING0000644000000000000000000004325412151732402013070 0ustar rootroot GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program 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 2 of the License, or (at your option) any later version. This program 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.