lcms-1.19/0000777000175300010010000000000011272606372011657 5ustar MartiNingunolcms-1.19/aclocal.m40000644000175300010010000120533111230114166013505 0ustar MartiNinguno# generated automatically by aclocal 1.11 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 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_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, [m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # Written 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. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2009 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`print -r -- -n 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl 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 $CC]) 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. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname 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(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # ---------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= 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 _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # 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. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=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 exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi 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 exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ 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 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; 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. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; 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 exp_sym_flag='-Bexport' no_entry_flag="" 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 case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ 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 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # -------------- # If we don't have a new enough Autoconf to choose the best dlltool # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which path conversion functions should be # used by func_to_host_path (and, implicitly, by # func_to_host_pathlist). These are needed for certain # cross-compile configurations and "native" mingw (which # is actually an msys->mingw cross). m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build paths to $host format]) AC_CACHE_VAL(lt_cv_to_host_path_cmd, [case $host in *mingw* ) case $build in *mingw* ) # actually msys lt_cv_to_host_path_cmd=func_msys_to_mingw_path_convert ;; *cygwin* ) lt_cv_to_host_path_cmd=func_cygwin_to_mingw_path_convert ;; * ) # otherwise, assume *nix lt_cv_to_host_path_cmd=func_nix_to_mingw_path_convert ;; esac ;; *cygwin* ) case $build in *mingw* ) # actually msys lt_cv_to_host_path_cmd=func_msys_to_cygwin_path_convert ;; *cygwin* ) lt_cv_to_host_path_cmd=func_noop_path_convert ;; * ) # otherwise, assume *nix lt_cv_to_host_path_cmd=func_nix_to_cygwin_path_convert ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_path_cmd=func_noop_path_convert ;; esac ]) to_host_path_cmd=$lt_cv_to_host_path_cmd AC_MSG_RESULT([$lt_cv_to_host_path_cmd]) _LT_DECL([to_host_path_cmd], [lt_cv_to_host_path_cmd], [0], [convert $build paths to $host format])dnl AC_SUBST([to_host_path_cmd])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # 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. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # 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. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # 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. # Generated from ltversion.in. # serial 3110 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.7a]) m4_define([LT_PACKAGE_REVISION], [1.3110]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.7a' macro_revision='1.3110' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # 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. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 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_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 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. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # 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. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # 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. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 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. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 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_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 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. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 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. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # 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. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 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 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 ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 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. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 # 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_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------------- # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 2.0 are not dnl supported. (2.0 was released on October 16, 2000). m4_define_default([_AM_PYTHON_INTERPRETER_LIST], [python python2 python3 python3.0 python2.5 python2.4 python2.3 python2.2 dnl python2.1 python2.0]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR(too old)]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else am_py_prefix=$prefix fi am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` case $am_cv_python_pythondir in $am_py_prefix*) am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"` ;; esac ]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else am_py_exec_prefix=$exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null || echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"` case $am_cv_python_pyexecdir in $am_py_exec_prefix*) am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"` ;; esac ]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. # map returns an iterator in Python 3.0 and a list in 2.x minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] minverhex = 0 # xrange is not present in Python 3.0 and range returns an iterator for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) # Copyright (C) 2001, 2003, 2005 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_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # 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. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 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_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 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. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 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. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR lcms-1.19/AUTHORS0000777000175300010010000000007411272606370012731 0ustar MartiNingunoMain Author: ------------ Marti Maria lcms-1.19/bin/0000777000175300010010000000000011277271737012437 5ustar MartiNingunolcms-1.19/bin/Bin.txt0000777000175300010010000000000311272606371013673 0ustar MartiNingunoBinlcms-1.19/ChangeLog0000777000175300010010000000002311272606370013425 0ustar MartiNingunoMaintenance versionlcms-1.19/compile0000777000175300010010000000706211272606370013240 0ustar MartiNinguno#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2004-09-10.20 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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, 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. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit 0 ;; -v | --v*) echo "compile $scriptversion" exit 0 ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then mv "$cofile" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lcms-1.19/config.guess0000777000175300010010000012614711272606371014211 0ustar MartiNinguno#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2006-05-13' # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, 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. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted 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. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. 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 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 tupples: *-*-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 ;; *) 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 __ELF__ >/dev/null 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 powerppc-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'` exit ;; 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 ;; 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:SunOS:5.*:*) echo i386-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:*:[45]) 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 __LP64__ >/dev/null 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:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[345]*) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T:Interix*:[345]*) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-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 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu 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:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-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 ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} 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 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-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 ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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.0*:*) 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 i386. echo i386-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; } ;; 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.0*:*) 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 ;; 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 ;; 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 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 ;; 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 ;; 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: lcms-1.19/config.sub0000777000175300010010000007724210515064203013644 0ustar MartiNinguno#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2006-05-13' # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, 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. # Please send patches to . Submit a context # diff and a properly formatted 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. # 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 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-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) 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) os= basic_machine=$1 ;; -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*) 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 \ | 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 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | 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 | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-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-* \ | 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-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | 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-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | 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-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # 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 ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; 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 ;; cr16c) basic_machine=cr16c-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 ;; 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'm not sure what "Sysv32" means. Should this be sysv3.2? 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 ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; 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-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; 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 ;; 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 ;; 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) basic_machine=powerpc-unknown ;; ppc-*) 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 ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; 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 ;; 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 ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; 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 ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-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[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. -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* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -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* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -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*) # 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 ;; -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 spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) 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 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; 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 ;; -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: lcms-1.19/configure0000777000175300010010000317000411272606371013572 0ustar MartiNinguno#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for lcms 1.19. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 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=: # Zsh 3.x and 4.x performs 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 # PATH needs CR # 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 # 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 # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, 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= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='lcms' PACKAGE_TARNAME='lcms' PACKAGE_VERSION='1.19' PACKAGE_STRING='lcms 1.19' PACKAGE_BUGREPORT='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias LIBRARY_CURRENT LIBRARY_REVISION LIBRARY_AGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA am__isrc CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP SED GREP EGREP LD LN_S CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pyexecdir pkgpyexecdir LCMS_PYEXECDIR LCMS_PYINCLUDE LCMS_PYLIB SUPPORT_PYTHON_TRUE SUPPORT_PYTHON_FALSE ECHO AR RANLIB DLLTOOL AS OBJDUMP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBTOOL_DEPS MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT inline INT8_T UINT8_T INT16_T UINT16_T INT32_T UINT32_T INT64_T UINT64_T LIB_MATH HasJPEG_TRUE HasJPEG_FALSE LIB_JPEG HasZLIB_TRUE HasZLIB_FALSE LIB_ZLIB HasTIFF_TRUE HasTIFF_FALSE LIB_TIFF LCMS_LIB_DEPLIBS JPEGICC_DEPLIBS TIFFICC_DEPLIBS LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP F77 FFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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=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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. 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 case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } 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 echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 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 .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # 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 -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | 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 .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } 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 lcms 1.19 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/lcms] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of lcms 1.19:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-jpeg disable JPEG support --without-tiff disable TIFF support --without-zlib disable ZLIB support --with-python enable building python extension --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] Some influential environment variables: CC C compiler command CFLAGS 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 C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 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. _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" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`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 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 lcms configure 1.19 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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 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 lcms $as_me 1.19, which was generated by GNU Autoconf 2.61. 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=. 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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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 cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" 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'; { (exit 1); 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 # 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 # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi 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 # # Libtool library revision control info # See the libtool documentation under the heading "Libtool's versioning # system" in order to understand the meaning of these fields # # Here are a set of rules to help you update your library version # information: # # 1. Start with version information of `0:0:0' for each libtool library. # 2. Update the version information only immediately before a public # release of your software. More frequent updates are unnecessary, and # only guarantee that the current interface number gets larger faster. # 3. If the library source code has changed at all since the last update, # then increment revision (`c:r:a' becomes `c:r+1:a'). # 4. If any interfaces have been added, removed, or changed since the last # update, increment current, and set revision to 0. # 5. If any interfaces have been added since the last public release, then # increment age. # 6. If any interfaces have been removed since the last public release, # then set age to 0. # LIBRARY_CURRENT=1 LIBRARY_REVISION=19 LIBRARY_AGE=0 # Obtain system type by running config.guess ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; 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 { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } 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. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; 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 { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; 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 { echo "$as_me:$LINENO: checking target system type" >&5 echo $ECHO_N "checking target system type... $ECHO_C" >&6; } if test "${ac_cv_target+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_target" >&5 echo "${ECHO_T}$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 echo "$as_me: error: invalid value of canonical target" >&2;} { (exit 1); exit 1; }; };; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- # Ensure that make can run correctly { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } am__api_version='1.10' # 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. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS 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 { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi { echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 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. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { echo "$as_me:$LINENO: result: $MKDIR_P" >&5 echo "${ECHO_T}$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&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 { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='lcms' VERSION='1.19' # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # Disable JPEG. # Check whether --with-jpeg was given. if test "${with_jpeg+set}" = set; then withval=$with_jpeg; with_jpeg=$withval else with_jpeg='yes' fi # Disable TIFF. # Check whether --with-tiff was given. if test "${with_tiff+set}" = set; then withval=$with_tiff; with_tiff=$withval else with_tiff='yes' fi # Disable ZLIB # Check whether --with-zlib was given. if test "${with_zlib+set}" = set; then withval=$with_zlib; with_zlib=$withval else with_zlib='yes' fi # Disable Python # Check whether --with-python was given. if test "${with_python+set}" = set; then withval=$with_python; with_python=$withval else with_python='no' fi # Check for programs 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out 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. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.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 { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$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 { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* 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" 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac 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 DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi case $ac_cv_prog_cc_stdc in no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; *) { echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 echo $ECHO_N "checking for $CC option to accept ISO C99... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c99+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -c99 -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c99=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* 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" 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { echo "$as_me:$LINENO: checking for $CC option to accept ISO Standard C" >&5 echo $ECHO_N "checking for $CC option to accept ISO Standard C... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi case $ac_cv_prog_cc_stdc in no) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; '') { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; *) { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6; } ;; esac 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 { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi 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 { echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED { echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6; } { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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" { test -f "$ac_path_GREP" && $as_test_x "$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 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" 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 ac_count=`expr $ac_count + 1` 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 fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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" { test -f "$ac_path_EGREP" && $as_test_x "$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 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" 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 ac_count=`expr $ac_count + 1` 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 fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" # 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 ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname 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 { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # 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. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS 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 { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&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 { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } 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 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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 { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$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=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 depcc="$CXX" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi # Configure python. AM_PATH_PYTHON is basically braindead PYTHON='' if test "$with_python" = 'yes' then if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. { echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.2" >&5 echo $ECHO_N "checking whether $PYTHON version >= 2.2... $ECHO_C" >&6; } prog="import sys, string # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. minver = map(int, string.split('2.2', '.')) + [0, 0, 0] minverhex = 0 for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 ($PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { { echo "$as_me:$LINENO: error: too old" >&5 echo "$as_me: error: too old" >&2;} { (exit 1); exit 1; }; } fi am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. { echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.2" >&5 echo $ECHO_N "checking for a Python interpreter with version >= 2.2... $ECHO_C" >&6; } if test "${am_cv_pathless_PYTHON+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do test "$am_cv_pathless_PYTHON" = none && break prog="import sys, string # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. minver = map(int, string.split('2.2', '.')) + [0, 0, 0] minverhex = 0 for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] sys.exit(sys.hexversion < minverhex)" if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then break fi done fi { echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5 echo "${ECHO_T}$am_cv_pathless_PYTHON" >&6; } # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. set dummy $am_cv_pathless_PYTHON; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PYTHON+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { echo "$as_me:$LINENO: result: $PYTHON" >&5 echo "${ECHO_T}$PYTHON" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi am_display_PYTHON=$am_cv_pathless_PYTHON fi if test "$PYTHON" = :; then PYTHON_OK='no' else { echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5 echo $ECHO_N "checking for $am_display_PYTHON version... $ECHO_C" >&6; } if test "${am_cv_python_version+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` fi { echo "$as_me:$LINENO: result: $am_cv_python_version" >&5 echo "${ECHO_T}$am_cv_python_version" >&6; } PYTHON_VERSION=$am_cv_python_version PYTHON_PREFIX='${prefix}' PYTHON_EXEC_PREFIX='${exec_prefix}' { echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5 echo $ECHO_N "checking for $am_display_PYTHON platform... $ECHO_C" >&6; } if test "${am_cv_python_platform+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` fi { echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5 echo "${ECHO_T}$am_cv_python_platform" >&6; } PYTHON_PLATFORM=$am_cv_python_platform { echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5 echo $ECHO_N "checking for $am_display_PYTHON script directory... $ECHO_C" >&6; } if test "${am_cv_python_pythondir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` fi { echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5 echo "${ECHO_T}$am_cv_python_pythondir" >&6; } pythondir=$am_cv_python_pythondir pkgpythondir=\${pythondir}/$PACKAGE { echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5 echo $ECHO_N "checking for $am_display_PYTHON extension module directory... $ECHO_C" >&6; } if test "${am_cv_python_pyexecdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` fi { echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5 echo "${ECHO_T}$am_cv_python_pyexecdir" >&6; } pyexecdir=$am_cv_python_pyexecdir pkgpyexecdir=\${pyexecdir}/$PACKAGE PYTHON_OK='yes' fi if test -n "$PYTHON" then LCMS_PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"` LCMS_PYEXECDIR=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1)"` LCMS_PYINCLUDE=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_inc()"` LCMS_PYLIB=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,1)"` as_ac_File=`echo "ac_cv_file_$LCMS_PYINCLUDE/Python.h" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $LCMS_PYINCLUDE/Python.h" >&5 echo $ECHO_N "checking for $LCMS_PYINCLUDE/Python.h... $ECHO_C" >&6; } if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else test "$cross_compiling" = yes && { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} { (exit 1); exit 1; }; } if test -r "$LCMS_PYINCLUDE/Python.h"; then eval "$as_ac_File=yes" else eval "$as_ac_File=no" fi fi ac_res=`eval echo '${'$as_ac_File'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_File'}'` = yes; then PYTHON_OK='yes' else PYTHON_OK='no' fi # AC_SUBST(PYTHON_OK) fi fi # If python is found then enable python support if test -n "$PYTHON" -a "$PYTHON_OK" = 'yes'; then SUPPORT_PYTHON_TRUE= SUPPORT_PYTHON_FALSE='#' else SUPPORT_PYTHON_TRUE='#' SUPPORT_PYTHON_FALSE= fi # # Tests for Windows # # Configure libtool # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi { echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi { echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac { echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi { echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6; } NM="$lt_cv_path_NM" { echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 5877 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext 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 fi { echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; *-*-cygwin* | *-*-mingw* | *-*-pw32*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_DLLTOOL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { echo "$as_me:$LINENO: result: $DLLTOOL" >&5 echo "${ECHO_T}$DLLTOOL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AS="${ac_tool_prefix}as" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { echo "$as_me:$LINENO: result: $AS" >&5 echo "${ECHO_T}$AS" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_AS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AS="as" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 echo "${ECHO_T}$ac_ct_AS" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { echo "$as_me:$LINENO: result: $OBJDUMP" >&5 echo "${ECHO_T}$OBJDUMP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac need_locks="$enable_libtool_lock" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then 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 { echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 { echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` 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 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } else { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } fi # Check for command to grab the raw symbol name followed by C symbol from nm. { echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux* | k*bsd*-gnu) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } else { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } fi { echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=yes # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" 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 # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8198: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8202: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8488: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8492: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8592: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8596: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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 # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # 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. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' 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 can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive /dev/null' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 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 cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) 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 exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi 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].*|aix5*) 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 exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ 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 # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' 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]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # 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=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi 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 export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # 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 "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi 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_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # 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*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`echo $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6; } if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* 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 shl_load (); /* 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_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* 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 dlopen (); /* 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_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # 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. # # 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. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi 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 CC="$lt_save_CC" # Check whether --with-tags was given. if test "${with_tags+set}" = set; then withval=$with_tags; tagnames="$withval" fi if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then 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 archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # 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 ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname 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 { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) 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 exp_sym_flag='-Bexport' no_entry_flag="" 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].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ 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_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13452: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13456: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13556: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13560: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi 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 CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; rdos*) lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15117: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15121: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15221: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15225: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # 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. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=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 can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive /dev/null' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) 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 exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi 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].*|aix5*) 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 exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ 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_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # 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_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi 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 CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17403: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17407: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; rdos*) lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17693: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17697: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17797: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:17801: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # 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. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=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 can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive /dev/null' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) 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 exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi 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].*|aix5*) 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 exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ 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_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # 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_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi 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 CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi 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 CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # Add configure option --enable-maintainer-mode which enables dependency # checking and generation useful to package maintainers. This is made an # option to avoid confusing end users. { echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # If the C compiler does not fully support the ANSI C qualifier const, # define const to be empty. #AC_C_CONST # If the C compiler supports the keyword inline, do nothing. Otherwise # define inline to __inline__ or __inline if it accepts one of those, # otherwise define inline to be empty. { echo "$as_me:$LINENO: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6; } if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_inline=$ac_kw else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac # If words are stored with the most significant byte first (like # Motorola and SPARC CPUs), define `WORDS_BIGENDIAN'. { echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6; } if test "${ac_cv_c_bigendian+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # See if sys/param.h defines the BYTE_ORDER macro. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN && defined LITTLE_ENDIAN \ && BYTE_ORDER && BIG_ENDIAN && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # It does not; compile a test program. if test "$cross_compiling" = yes; then # try to guess the endianness by grepping values into an object file ac_cv_c_bigendian=unknown cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } int main () { _ascii (); _ebcdic (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_bigendian=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 echo "${ECHO_T}$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in yes) cat >>confdefs.h <<\_ACEOF #define WORDS_BIGENDIAN 1 _ACEOF ;; no) ;; *) { { echo "$as_me:$LINENO: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&5 echo "$as_me: error: unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} { (exit 1); exit 1; }; } ;; esac # Obtain size of an 'char' and define as SIZEOF_CHAR # Sets $ac_cv_sizeof_char #AC_CHECK_SIZEOF(char) # Obtain size of an 'unsigned char' and define as SIZEOF_UNSIGNED_CHAR # Sets $ac_cv_sizeof_unsigned_char #AC_CHECK_SIZEOF(unsigned char) # Obtain size of an 'short' and define as SIZEOF_SHORT # Sets $ac_cv_sizeof_short #AC_CHECK_SIZEOF(short) # Obtain size of an 'unsigned short' and define as SIZEOF_UNSIGNED_SHORT # Sets $ac_cv_sizeof_unsigned_short #AC_CHECK_SIZEOF(unsigned short) # Obtain size of an 'int' and define as SIZEOF_INT # Sets $ac_cv_sizeof_int { echo "$as_me:$LINENO: checking for int" >&5 echo $ECHO_N "checking for int... $ECHO_C" >&6; } if test "${ac_cv_type_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_int=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 echo "${ECHO_T}$ac_cv_type_int" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of int" >&5 echo $ECHO_N "checking size of int... $ECHO_C" >&6; } if test "${ac_cv_sizeof_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int=$ac_lo;; '') if test "$ac_cv_type_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_int=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef int ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_int=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_int=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 echo "${ECHO_T}$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF # Obtain size of an 'unsigned int' and define as SIZEOF_UNSIGNED_INT # Sets $ac_cv_sizeof_unsigned_int { echo "$as_me:$LINENO: checking for unsigned int" >&5 echo $ECHO_N "checking for unsigned int... $ECHO_C" >&6; } if test "${ac_cv_type_unsigned_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_unsigned_int=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_unsigned_int=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_int" >&5 echo "${ECHO_T}$ac_cv_type_unsigned_int" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of unsigned int" >&5 echo $ECHO_N "checking size of unsigned int... $ECHO_C" >&6; } if test "${ac_cv_sizeof_unsigned_int+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_unsigned_int=$ac_lo;; '') if test "$ac_cv_type_unsigned_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (unsigned int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_unsigned_int=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned int ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_unsigned_int=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_unsigned_int" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned int) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (unsigned int) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_unsigned_int=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_int" >&5 echo "${ECHO_T}$ac_cv_sizeof_unsigned_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int _ACEOF # Obtain size of a 'long' and define as SIZEOF_LONG # Sets $ac_cv_sizeof_long { echo "$as_me:$LINENO: checking for long" >&5 echo $ECHO_N "checking for long... $ECHO_C" >&6; } if test "${ac_cv_type_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 echo "${ECHO_T}$ac_cv_type_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of long" >&5 echo $ECHO_N "checking size of long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long=$ac_lo;; '') if test "$ac_cv_type_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # Obtain size of a 'unsigned long' and define as SIZEOF_UNSIGNED_LONG # Sets $ac_cv_sizeof_unsigned_long { echo "$as_me:$LINENO: checking for unsigned long" >&5 echo $ECHO_N "checking for unsigned long... $ECHO_C" >&6; } if test "${ac_cv_type_unsigned_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_unsigned_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_unsigned_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long" >&5 echo "${ECHO_T}$ac_cv_type_unsigned_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of unsigned long" >&5 echo $ECHO_N "checking size of unsigned long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_unsigned_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_unsigned_long=$ac_lo;; '') if test "$ac_cv_type_unsigned_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (unsigned long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_unsigned_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_unsigned_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_unsigned_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (unsigned long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_unsigned_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_unsigned_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long _ACEOF # Obtain size of a 'long long' and define as SIZEOF_LONG_LONG. If # 'long long' is not supported then the value defined is zero. # Sets $ac_cv_sizeof_long_long { echo "$as_me:$LINENO: checking for long long" >&5 echo $ECHO_N "checking for long long... $ECHO_C" >&6; } if test "${ac_cv_type_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 echo "${ECHO_T}$ac_cv_type_long_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of long long" >&5 echo $ECHO_N "checking size of long long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long_long=$ac_lo;; '') if test "$ac_cv_type_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef long long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_long_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF # Obtain size of a 'unsigned long long' and define as # SIZEOF_UNSIGNED_LONG_LONG. If 'unsigned long long' is not # supported then the value defined is zero. # Sets $ac_cv_sizeof_unsigned_long_long { echo "$as_me:$LINENO: checking for unsigned long long" >&5 echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6; } if test "${ac_cv_type_unsigned_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_unsigned_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_unsigned_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { echo "$as_me:$LINENO: checking size of unsigned long long" >&5 echo $ECHO_N "checking size of unsigned long long... $ECHO_C" >&6; } if test "${ac_cv_sizeof_unsigned_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_sizeof_; int main () { static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_unsigned_long_long=$ac_lo;; '') if test "$ac_cv_type_unsigned_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (unsigned long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_unsigned_long_long=0 fi ;; esac else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef unsigned long long ac__type_sizeof_; static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (((long int) (sizeof (ac__type_sizeof_))) < 0) { long int i = longval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%ld\n", i); } else { unsigned long int i = ulongval (); if (i != ((long int) (sizeof (ac__type_sizeof_)))) return 1; fprintf (f, "%lu\n", i); } return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_unsigned_long_long=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) if test "$ac_cv_type_unsigned_long_long" = yes; then { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long long) See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (unsigned long long) See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } else ac_cv_sizeof_unsigned_long_long=0 fi fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val fi { echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_long_long" >&5 echo "${ECHO_T}$ac_cv_sizeof_unsigned_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_LONG_LONG $ac_cv_sizeof_unsigned_long_long _ACEOF # # Compute sized types for current CPU and compiler options # { echo "$as_me:$LINENO: checking for signed 8-bit type" >&5 echo $ECHO_N "checking for signed 8-bit type... $ECHO_C" >&6; } INT8_T='char' { echo "$as_me:$LINENO: result: $INT8_T" >&5 echo "${ECHO_T}$INT8_T" >&6; } { echo "$as_me:$LINENO: checking for unsigned 8-bit type" >&5 echo $ECHO_N "checking for unsigned 8-bit type... $ECHO_C" >&6; } UINT8_T='unsigned char' { echo "$as_me:$LINENO: result: $UINT8_T" >&5 echo "${ECHO_T}$UINT8_T" >&6; } { echo "$as_me:$LINENO: checking for signed 16-bit type" >&5 echo $ECHO_N "checking for signed 16-bit type... $ECHO_C" >&6; } INT16_T='short' { echo "$as_me:$LINENO: result: $INT16_T" >&5 echo "${ECHO_T}$INT16_T" >&6; } { echo "$as_me:$LINENO: checking for unsigned 16-bit type" >&5 echo $ECHO_N "checking for unsigned 16-bit type... $ECHO_C" >&6; } UINT16_T='unsigned short' { echo "$as_me:$LINENO: result: $UINT16_T" >&5 echo "${ECHO_T}$UINT16_T" >&6; } { echo "$as_me:$LINENO: checking for signed 32-bit type" >&5 echo $ECHO_N "checking for signed 32-bit type... $ECHO_C" >&6; } INT32_T='none' if test $ac_cv_sizeof_int -eq 4 then INT32_T='int' elif test $ac_cv_sizeof_long -eq 4 then INT32_T='long' fi { echo "$as_me:$LINENO: result: $INT32_T" >&5 echo "${ECHO_T}$INT32_T" >&6; } { echo "$as_me:$LINENO: checking for unsigned 32-bit type" >&5 echo $ECHO_N "checking for unsigned 32-bit type... $ECHO_C" >&6; } UINT32_T='none' if test $ac_cv_sizeof_unsigned_int -eq 4 then UINT32_T='unsigned int' elif test $ac_cv_sizeof_unsigned_long -eq 4 then UINT32_T='unsigned long' fi { echo "$as_me:$LINENO: result: $UINT32_T" >&5 echo "${ECHO_T}$UINT32_T" >&6; } { echo "$as_me:$LINENO: checking for signed 64-bit type" >&5 echo $ECHO_N "checking for signed 64-bit type... $ECHO_C" >&6; } INT64_T='none' if test $ac_cv_sizeof_long -eq 8 then INT64_T='long' elif test $ac_cv_sizeof_long_long -eq 8 then INT64_T='long long' fi { echo "$as_me:$LINENO: result: $INT64_T" >&5 echo "${ECHO_T}$INT64_T" >&6; } { echo "$as_me:$LINENO: checking for unsigned 64-bit type" >&5 echo $ECHO_N "checking for unsigned 64-bit type... $ECHO_C" >&6; } UINT64_T='none' if test $ac_cv_sizeof_unsigned_long -eq 8 then UINT64_T='unsigned long' elif test $ac_cv_sizeof_unsigned_long_long -eq 8 then UINT64_T='unsigned long long' fi { echo "$as_me:$LINENO: result: $UINT64_T" >&5 echo "${ECHO_T}$UINT64_T" >&6; } # # Find math library # LIB_MATH='' { echo "$as_me:$LINENO: checking for sqrt in -lm" >&5 echo $ECHO_N "checking for sqrt in -lm... $ECHO_C" >&6; } if test "${ac_cv_lib_m_sqrt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 sqrt (); int main () { return sqrt (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_m_sqrt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_sqrt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_m_sqrt" >&5 echo "${ECHO_T}$ac_cv_lib_m_sqrt" >&6; } if test $ac_cv_lib_m_sqrt = yes; then LIB_MATH="-lm" fi LIBS="$LIB_MATH $LIBS" # # Check for JPEG # have_jpeg='no' LIB_JPEG='' if test ! "$with_jpeg" = 'no' then { echo "$as_me:$LINENO: checking for JPEG support " >&5 echo $ECHO_N "checking for JPEG support ... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: " >&5 echo "${ECHO_T}" >&6; } failed=0; passed=0; if test "${ac_cv_header_jconfig_h+set}" = set; then { echo "$as_me:$LINENO: checking for jconfig.h" >&5 echo $ECHO_N "checking for jconfig.h... $ECHO_C" >&6; } if test "${ac_cv_header_jconfig_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_jconfig_h" >&5 echo "${ECHO_T}$ac_cv_header_jconfig_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking jconfig.h usability" >&5 echo $ECHO_N "checking jconfig.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking jconfig.h presence" >&5 echo $ECHO_N "checking jconfig.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: jconfig.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jconfig.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: jconfig.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: jconfig.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: jconfig.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jconfig.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: jconfig.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: jconfig.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: jconfig.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: jconfig.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: jconfig.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: jconfig.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jconfig.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jconfig.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: jconfig.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: jconfig.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for jconfig.h" >&5 echo $ECHO_N "checking for jconfig.h... $ECHO_C" >&6; } if test "${ac_cv_header_jconfig_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_jconfig_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_jconfig_h" >&5 echo "${ECHO_T}$ac_cv_header_jconfig_h" >&6; } fi if test $ac_cv_header_jconfig_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi if test "${ac_cv_header_jerror_h+set}" = set; then { echo "$as_me:$LINENO: checking for jerror.h" >&5 echo $ECHO_N "checking for jerror.h... $ECHO_C" >&6; } if test "${ac_cv_header_jerror_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_jerror_h" >&5 echo "${ECHO_T}$ac_cv_header_jerror_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking jerror.h usability" >&5 echo $ECHO_N "checking jerror.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking jerror.h presence" >&5 echo $ECHO_N "checking jerror.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: jerror.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: jerror.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jerror.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: jerror.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: jerror.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for jerror.h" >&5 echo $ECHO_N "checking for jerror.h... $ECHO_C" >&6; } if test "${ac_cv_header_jerror_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_jerror_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_jerror_h" >&5 echo "${ECHO_T}$ac_cv_header_jerror_h" >&6; } fi if test $ac_cv_header_jerror_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi if test "${ac_cv_header_jmorecfg_h+set}" = set; then { echo "$as_me:$LINENO: checking for jmorecfg.h" >&5 echo $ECHO_N "checking for jmorecfg.h... $ECHO_C" >&6; } if test "${ac_cv_header_jmorecfg_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_jmorecfg_h" >&5 echo "${ECHO_T}$ac_cv_header_jmorecfg_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking jmorecfg.h usability" >&5 echo $ECHO_N "checking jmorecfg.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking jmorecfg.h presence" >&5 echo $ECHO_N "checking jmorecfg.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: jmorecfg.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jmorecfg.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: jmorecfg.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: jmorecfg.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: jmorecfg.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jmorecfg.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: jmorecfg.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: jmorecfg.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: jmorecfg.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: jmorecfg.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: jmorecfg.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: jmorecfg.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jmorecfg.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jmorecfg.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: jmorecfg.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: jmorecfg.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for jmorecfg.h" >&5 echo $ECHO_N "checking for jmorecfg.h... $ECHO_C" >&6; } if test "${ac_cv_header_jmorecfg_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_jmorecfg_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_jmorecfg_h" >&5 echo "${ECHO_T}$ac_cv_header_jmorecfg_h" >&6; } fi if test $ac_cv_header_jmorecfg_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi if test "${ac_cv_header_jpeglib_h+set}" = set; then { echo "$as_me:$LINENO: checking for jpeglib.h" >&5 echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6; } if test "${ac_cv_header_jpeglib_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_jpeglib_h" >&5 echo "${ECHO_T}$ac_cv_header_jpeglib_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking jpeglib.h usability" >&5 echo $ECHO_N "checking jpeglib.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking jpeglib.h presence" >&5 echo $ECHO_N "checking jpeglib.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: jpeglib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jpeglib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: jpeglib.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: jpeglib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jpeglib.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: jpeglib.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: jpeglib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: jpeglib.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: jpeglib.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: jpeglib.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: jpeglib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: jpeglib.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: jpeglib.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for jpeglib.h" >&5 echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6; } if test "${ac_cv_header_jpeglib_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_jpeglib_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_jpeglib_h" >&5 echo "${ECHO_T}$ac_cv_header_jpeglib_h" >&6; } fi if test $ac_cv_header_jpeglib_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for jpeg_read_header in -ljpeg" >&5 echo $ECHO_N "checking for jpeg_read_header in -ljpeg... $ECHO_C" >&6; } if test "${ac_cv_lib_jpeg_jpeg_read_header+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 jpeg_read_header (); int main () { return jpeg_read_header (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_jpeg_jpeg_read_header=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_jpeg_jpeg_read_header=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_jpeg_read_header" >&5 echo "${ECHO_T}$ac_cv_lib_jpeg_jpeg_read_header" >&6; } if test $ac_cv_lib_jpeg_jpeg_read_header = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi # Test for compatible JPEG library if test ! "$ac_cv_jpeg_version_ok" = 'yes' ; then { echo "$as_me:$LINENO: checking for JPEG library is version 6b or later" >&5 echo $ECHO_N "checking for JPEG library is version 6b or later... $ECHO_C" >&6; } if test "${ac_cv_jpeg_version_ok+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { #if JPEG_LIB_VERSION < 62 #error IJG JPEG library must be version 6b or newer! #endif return 0; ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_jpeg_version_ok='yes' else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_jpeg_version_ok='no' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_jpeg_version_ok" >&5 echo "${ECHO_T}$ac_cv_jpeg_version_ok" >&6; } if test "$ac_cv_jpeg_version_ok" = 'yes' ; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } passed=`expr $passed + 1` else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } failed=`expr $failed + 1` fi fi { echo "$as_me:$LINENO: checking if JPEG package is complete" >&5 echo $ECHO_N "checking if JPEG package is complete... $ECHO_C" >&6; } if test $passed -gt 0 then if test $failed -gt 0 then { echo "$as_me:$LINENO: result: no -- some components failed test" >&5 echo "${ECHO_T}no -- some components failed test" >&6; } have_jpeg='no (failed tests)' else LIB_JPEG='-ljpeg' LIBS="$LIB_JPEG $LIBS" cat >>confdefs.h <<\_ACEOF #define HasJPEG 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } have_jpeg='yes' fi else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test "$have_jpeg" = 'yes'; then HasJPEG_TRUE= HasJPEG_FALSE='#' else HasJPEG_TRUE='#' HasJPEG_FALSE= fi # # Check for ZLIB # have_zlib='no' if test ! "$with_zlib" = 'no' || test ! "$with_png" = 'no' then LIB_ZLIB='' { echo "$as_me:$LINENO: checking for ZLIB support " >&5 echo $ECHO_N "checking for ZLIB support ... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: " >&5 echo "${ECHO_T}" >&6; } failed=0; passed=0; if test "${ac_cv_header_zconf_h+set}" = set; then { echo "$as_me:$LINENO: checking for zconf.h" >&5 echo $ECHO_N "checking for zconf.h... $ECHO_C" >&6; } if test "${ac_cv_header_zconf_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_zconf_h" >&5 echo "${ECHO_T}$ac_cv_header_zconf_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking zconf.h usability" >&5 echo $ECHO_N "checking zconf.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking zconf.h presence" >&5 echo $ECHO_N "checking zconf.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: zconf.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: zconf.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: zconf.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: zconf.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: zconf.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: zconf.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: zconf.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: zconf.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: zconf.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: zconf.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: zconf.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: zconf.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: zconf.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: zconf.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: zconf.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: zconf.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for zconf.h" >&5 echo $ECHO_N "checking for zconf.h... $ECHO_C" >&6; } if test "${ac_cv_header_zconf_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_zconf_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_zconf_h" >&5 echo "${ECHO_T}$ac_cv_header_zconf_h" >&6; } fi if test $ac_cv_header_zconf_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi if test "${ac_cv_header_zlib_h+set}" = set; then { echo "$as_me:$LINENO: checking for zlib.h" >&5 echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6; } if test "${ac_cv_header_zlib_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5 echo "${ECHO_T}$ac_cv_header_zlib_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking zlib.h usability" >&5 echo $ECHO_N "checking zlib.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking zlib.h presence" >&5 echo $ECHO_N "checking zlib.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: zlib.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: zlib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: zlib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for zlib.h" >&5 echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6; } if test "${ac_cv_header_zlib_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_zlib_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5 echo "${ECHO_T}$ac_cv_header_zlib_h" >&6; } fi if test $ac_cv_header_zlib_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for compress in -lz" >&5 echo $ECHO_N "checking for compress in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_compress+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 compress (); int main () { return compress (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_compress=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_compress=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_compress" >&5 echo "${ECHO_T}$ac_cv_lib_z_compress" >&6; } if test $ac_cv_lib_z_compress = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for uncompress in -lz" >&5 echo $ECHO_N "checking for uncompress in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_uncompress+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 uncompress (); int main () { return uncompress (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_uncompress=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_uncompress=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_uncompress" >&5 echo "${ECHO_T}$ac_cv_lib_z_uncompress" >&6; } if test $ac_cv_lib_z_uncompress = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for deflate in -lz" >&5 echo $ECHO_N "checking for deflate in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_deflate+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 deflate (); int main () { return deflate (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_deflate=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_deflate=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_deflate" >&5 echo "${ECHO_T}$ac_cv_lib_z_deflate" >&6; } if test $ac_cv_lib_z_deflate = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for inflate in -lz" >&5 echo $ECHO_N "checking for inflate in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_inflate+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 inflate (); int main () { return inflate (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_inflate=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_inflate=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_inflate" >&5 echo "${ECHO_T}$ac_cv_lib_z_inflate" >&6; } if test $ac_cv_lib_z_inflate = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for gzseek in -lz" >&5 echo $ECHO_N "checking for gzseek in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_gzseek+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 gzseek (); int main () { return gzseek (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_gzseek=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_gzseek=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzseek" >&5 echo "${ECHO_T}$ac_cv_lib_z_gzseek" >&6; } if test $ac_cv_lib_z_gzseek = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for gztell in -lz" >&5 echo $ECHO_N "checking for gztell in -lz... $ECHO_C" >&6; } if test "${ac_cv_lib_z_gztell+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 gztell (); int main () { return gztell (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_z_gztell=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_z_gztell=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_z_gztell" >&5 echo "${ECHO_T}$ac_cv_lib_z_gztell" >&6; } if test $ac_cv_lib_z_gztell = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking if ZLIB package is complete" >&5 echo $ECHO_N "checking if ZLIB package is complete... $ECHO_C" >&6; } if test $passed -gt 0 then if test $failed -gt 0 then { echo "$as_me:$LINENO: result: no -- some components failed test" >&5 echo "${ECHO_T}no -- some components failed test" >&6; } have_zlib='no (failed tests)' else LIB_ZLIB='-lz' LIBS="$LIB_ZLIB $LIBS" cat >>confdefs.h <<\_ACEOF #define HasZLIB 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } have_zlib='yes' fi else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test "$have_zlib" = 'yes'; then HasZLIB_TRUE= HasZLIB_FALSE='#' else HasZLIB_TRUE='#' HasZLIB_FALSE= fi # # Check for TIFF # have_tiff='no' LIB_TIFF='' if test ! "$with_tiff" = 'no' then { echo "$as_me:$LINENO: checking for TIFF support " >&5 echo $ECHO_N "checking for TIFF support ... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: " >&5 echo "${ECHO_T}" >&6; } failed=0; passed=0; if test "${ac_cv_header_tiff_h+set}" = set; then { echo "$as_me:$LINENO: checking for tiff.h" >&5 echo $ECHO_N "checking for tiff.h... $ECHO_C" >&6; } if test "${ac_cv_header_tiff_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_tiff_h" >&5 echo "${ECHO_T}$ac_cv_header_tiff_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking tiff.h usability" >&5 echo $ECHO_N "checking tiff.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking tiff.h presence" >&5 echo $ECHO_N "checking tiff.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: tiff.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiff.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: tiff.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: tiff.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: tiff.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiff.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: tiff.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: tiff.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: tiff.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: tiff.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: tiff.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: tiff.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: tiff.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: tiff.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: tiff.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: tiff.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for tiff.h" >&5 echo $ECHO_N "checking for tiff.h... $ECHO_C" >&6; } if test "${ac_cv_header_tiff_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_tiff_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_tiff_h" >&5 echo "${ECHO_T}$ac_cv_header_tiff_h" >&6; } fi if test $ac_cv_header_tiff_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi if test "${ac_cv_header_tiffio_h+set}" = set; then { echo "$as_me:$LINENO: checking for tiffio.h" >&5 echo $ECHO_N "checking for tiffio.h... $ECHO_C" >&6; } if test "${ac_cv_header_tiffio_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_tiffio_h" >&5 echo "${ECHO_T}$ac_cv_header_tiffio_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking tiffio.h usability" >&5 echo $ECHO_N "checking tiffio.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking tiffio.h presence" >&5 echo $ECHO_N "checking tiffio.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: tiffio.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: tiffio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiffio.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: tiffio.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: tiffio.h: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for tiffio.h" >&5 echo $ECHO_N "checking for tiffio.h... $ECHO_C" >&6; } if test "${ac_cv_header_tiffio_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_tiffio_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_tiffio_h" >&5 echo "${ECHO_T}$ac_cv_header_tiffio_h" >&6; } fi if test $ac_cv_header_tiffio_h = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for TIFFOpen in -ltiff" >&5 echo $ECHO_N "checking for TIFFOpen in -ltiff... $ECHO_C" >&6; } if test "${ac_cv_lib_tiff_TIFFOpen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 TIFFOpen (); int main () { return TIFFOpen (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_tiff_TIFFOpen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_tiff_TIFFOpen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_tiff_TIFFOpen" >&5 echo "${ECHO_T}$ac_cv_lib_tiff_TIFFOpen" >&6; } if test $ac_cv_lib_tiff_TIFFOpen = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for TIFFClientOpen in -ltiff" >&5 echo $ECHO_N "checking for TIFFClientOpen in -ltiff... $ECHO_C" >&6; } if test "${ac_cv_lib_tiff_TIFFClientOpen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 TIFFClientOpen (); int main () { return TIFFClientOpen (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_tiff_TIFFClientOpen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_tiff_TIFFClientOpen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_tiff_TIFFClientOpen" >&5 echo "${ECHO_T}$ac_cv_lib_tiff_TIFFClientOpen" >&6; } if test $ac_cv_lib_tiff_TIFFClientOpen = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking for TIFFIsByteSwapped in -ltiff" >&5 echo $ECHO_N "checking for TIFFIsByteSwapped in -ltiff... $ECHO_C" >&6; } if test "${ac_cv_lib_tiff_TIFFIsByteSwapped+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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 TIFFIsByteSwapped (); int main () { return TIFFIsByteSwapped (); ; return 0; } _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_tiff_TIFFIsByteSwapped=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_tiff_TIFFIsByteSwapped=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_tiff_TIFFIsByteSwapped" >&5 echo "${ECHO_T}$ac_cv_lib_tiff_TIFFIsByteSwapped" >&6; } if test $ac_cv_lib_tiff_TIFFIsByteSwapped = yes; then passed=`expr $passed + 1` else failed=`expr $failed + 1` fi { echo "$as_me:$LINENO: checking if TIFF package is complete" >&5 echo $ECHO_N "checking if TIFF package is complete... $ECHO_C" >&6; } if test $passed -gt 0 then if test $failed -gt 0 then { echo "$as_me:$LINENO: result: no -- some components failed test" >&5 echo "${ECHO_T}no -- some components failed test" >&6; } have_tiff='no (failed tests)' else LIB_TIFF='-ltiff' LIBS="$LIB_TIFF $LIBS" cat >>confdefs.h <<\_ACEOF #define HasTIFF 1 _ACEOF { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } have_tiff='yes' for ac_header in tiffconf.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test "$have_tiff" = 'yes'; then HasTIFF_TRUE= HasTIFF_FALSE='#' else HasTIFF_TRUE='#' HasTIFF_FALSE= fi # Libraries that the LCMS library depends on LCMS_LIB_DEPLIBS="$LIB_MATH" LCMS_LIB_DEPLIBS=`echo $LCMS_LIB_DEPLIBS | sed -e 's/ */ /g'` # Libraries that the jpegicc program depends on JPEGICC_DEPLIBS="$LIB_JPEG $LIB_MATH" JPEGICC_DEPLIBS=`echo $JPEGICC_DEPLIBS | sed -e 's/ */ /g'` # Libraries that the tifficc program depends on TIFFICC_DEPLIBS="$LIB_TIFF $LIB_JPEG $LIB_ZLIB $LIB_MATH" TIFFICC_DEPLIBS=`echo $TIFFICC_DEPLIBS | sed -e 's/ */ /g'` LIBS='' # # Perform substitutions # ac_config_files="$ac_config_files Makefile" ac_config_files="$ac_config_files lcms.pc" ac_config_files="$ac_config_files include/icc34.h" ac_config_files="$ac_config_files include/Makefile" ac_config_files="$ac_config_files jpegicc/Makefile" ac_config_files="$ac_config_files python/Makefile" ac_config_files="$ac_config_files samples/Makefile" ac_config_files="$ac_config_files testbed/Makefile" ac_config_files="$ac_config_files tifficc/Makefile" ac_config_files="$ac_config_files src/Makefile" 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 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}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= 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=`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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${SUPPORT_PYTHON_TRUE}" && test -z "${SUPPORT_PYTHON_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"SUPPORT_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"SUPPORT_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HasJPEG_TRUE}" && test -z "${HasJPEG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HasJPEG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HasJPEG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HasZLIB_TRUE}" && test -z "${HasZLIB_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HasZLIB\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HasZLIB\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HasTIFF_TRUE}" && test -z "${HasTIFF_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HasTIFF\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HasTIFF\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## 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=: # Zsh 3.x and 4.x performs 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 # PATH needs CR # 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 # 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 # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false 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.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 # 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 lcms $as_me 1.19, which was generated by GNU Autoconf 2.61. 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 cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet 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 Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ lcms config.status 1.19 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 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' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$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 ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) 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. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "lcms.pc") CONFIG_FILES="$CONFIG_FILES lcms.pc" ;; "include/icc34.h") CONFIG_FILES="$CONFIG_FILES include/icc34.h" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "jpegicc/Makefile") CONFIG_FILES="$CONFIG_FILES jpegicc/Makefile" ;; "python/Makefile") CONFIG_FILES="$CONFIG_FILES python/Makefile" ;; "samples/Makefile") CONFIG_FILES="$CONFIG_FILES samples/Makefile" ;; "testbed/Makefile") CONFIG_FILES="$CONFIG_FILES testbed/Makefile" ;; "tifficc/Makefile") CONFIG_FILES="$CONFIG_FILES tifficc/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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_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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim LIBRARY_CURRENT!$LIBRARY_CURRENT$ac_delim LIBRARY_REVISION!$LIBRARY_REVISION$ac_delim LIBRARY_AGE!$LIBRARY_AGE$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim host_os!$host_os$ac_delim target!$target$ac_delim target_cpu!$target_cpu$ac_delim target_vendor!$target_vendor$ac_delim target_os!$target_os$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim am__isrc!$am__isrc$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim CPP!$CPP$ac_delim SED!$SED$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim LD!$LD$ac_delim LN_S!$LN_S$ac_delim CXX!$CXX$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim CXXDEPMODE!$CXXDEPMODE$ac_delim am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim PYTHON!$PYTHON$ac_delim PYTHON_VERSION!$PYTHON_VERSION$ac_delim PYTHON_PREFIX!$PYTHON_PREFIX$ac_delim PYTHON_EXEC_PREFIX!$PYTHON_EXEC_PREFIX$ac_delim PYTHON_PLATFORM!$PYTHON_PLATFORM$ac_delim pythondir!$pythondir$ac_delim pkgpythondir!$pkgpythondir$ac_delim pyexecdir!$pyexecdir$ac_delim pkgpyexecdir!$pkgpyexecdir$ac_delim LCMS_PYEXECDIR!$LCMS_PYEXECDIR$ac_delim LCMS_PYINCLUDE!$LCMS_PYINCLUDE$ac_delim LCMS_PYLIB!$LCMS_PYLIB$ac_delim SUPPORT_PYTHON_TRUE!$SUPPORT_PYTHON_TRUE$ac_delim SUPPORT_PYTHON_FALSE!$SUPPORT_PYTHON_FALSE$ac_delim ECHO!$ECHO$ac_delim AR!$AR$ac_delim RANLIB!$RANLIB$ac_delim DLLTOOL!$DLLTOOL$ac_delim AS!$AS$ac_delim OBJDUMP!$OBJDUMP$ac_delim CXXCPP!$CXXCPP$ac_delim F77!$F77$ac_delim FFLAGS!$FFLAGS$ac_delim ac_ct_F77!$ac_ct_F77$ac_delim LIBTOOL!$LIBTOOL$ac_delim LIBTOOL_DEPS!$LIBTOOL_DEPS$ac_delim MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim MAINT!$MAINT$ac_delim inline!$inline$ac_delim INT8_T!$INT8_T$ac_delim UINT8_T!$UINT8_T$ac_delim INT16_T!$INT16_T$ac_delim UINT16_T!$UINT16_T$ac_delim INT32_T!$INT32_T$ac_delim UINT32_T!$UINT32_T$ac_delim INT64_T!$INT64_T$ac_delim UINT64_T!$UINT64_T$ac_delim LIB_MATH!$LIB_MATH$ac_delim HasJPEG_TRUE!$HasJPEG_TRUE$ac_delim HasJPEG_FALSE!$HasJPEG_FALSE$ac_delim LIB_JPEG!$LIB_JPEG$ac_delim HasZLIB_TRUE!$HasZLIB_TRUE$ac_delim HasZLIB_FALSE!$HasZLIB_FALSE$ac_delim LIB_ZLIB!$LIB_ZLIB$ac_delim HasTIFF_TRUE!$HasTIFF_TRUE$ac_delim HasTIFF_FALSE!$HasTIFF_FALSE$ac_delim LIB_TIFF!$LIB_TIFF$ac_delim LCMS_LIB_DEPLIBS!$LCMS_LIB_DEPLIBS$ac_delim JPEGICC_DEPLIBS!$JPEGICC_DEPLIBS$ac_delim TIFFICC_DEPLIBS!$TIFFICC_DEPLIBS$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 58; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[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="$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 || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$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 "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; 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 || 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`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 || 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`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 # 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= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF 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 sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;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 " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`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 || 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi lcms-1.19/configure.ac0000777000175300010010000003022411230105317014134 0ustar MartiNinguno# # LCMS configure script # Written by Bob Friesenhahn, June 2003 # The bugs were introduced by Marti Maria # AC_PREREQ(2.57) # # Set the package name and version # AC_INIT(lcms,1.19) # # Libtool library revision control info # See the libtool documentation under the heading "Libtool's versioning # system" in order to understand the meaning of these fields # # Here are a set of rules to help you update your library version # information: # # 1. Start with version information of `0:0:0' for each libtool library. # 2. Update the version information only immediately before a public # release of your software. More frequent updates are unnecessary, and # only guarantee that the current interface number gets larger faster. # 3. If the library source code has changed at all since the last update, # then increment revision (`c:r:a' becomes `c:r+1:a'). # 4. If any interfaces have been added, removed, or changed since the last # update, increment current, and set revision to 0. # 5. If any interfaces have been added since the last public release, then # increment age. # 6. If any interfaces have been removed since the last public release, # then set age to 0. # LIBRARY_CURRENT=1 LIBRARY_REVISION=19 LIBRARY_AGE=0 AC_SUBST(LIBRARY_CURRENT)dnl AC_SUBST(LIBRARY_REVISION)dnl AC_SUBST(LIBRARY_AGE)dnl # Obtain system type by running config.guess AC_CANONICAL_SYSTEM # Ensure that make can run correctly AM_SANITY_CHECK AM_INIT_AUTOMAKE([foreign 1.7.2 no-define dist-zip dist-bzip2]) # Disable JPEG. AC_ARG_WITH(jpeg, [ --without-jpeg disable JPEG support], [with_jpeg=$withval], [with_jpeg='yes']) # Disable TIFF. AC_ARG_WITH(tiff, [ --without-tiff disable TIFF support], [with_tiff=$withval], [with_tiff='yes']) # Disable ZLIB AC_ARG_WITH(zlib, [ --without-zlib disable ZLIB support], [with_zlib=$withval], [with_zlib='yes']) # Disable Python AC_ARG_WITH(python, [ --with-python enable building python extension], [with_python=$withval], [with_python='no']) # Check for programs AC_PROG_CC AC_PROG_CC_STDC AC_PROG_CPP AM_PROG_LD AC_SUBST(LD) AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_LN_S AC_PROG_CXX # Configure python. AM_PATH_PYTHON is basically braindead PYTHON='' if test "$with_python" = 'yes' then AM_PATH_PYTHON(2.2,PYTHON_OK='yes',PYTHON_OK='no') if test -n "$PYTHON" then LCMS_PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"` LCMS_PYEXECDIR=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1)"` LCMS_PYINCLUDE=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_inc()"` LCMS_PYLIB=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,1)"` AC_CHECK_FILE([$LCMS_PYINCLUDE/Python.h],PYTHON_OK='yes',PYTHON_OK='no') AC_SUBST(LCMS_PYEXECDIR) AC_SUBST(LCMS_PYINCLUDE) AC_SUBST(LCMS_PYLIB) # AC_SUBST(PYTHON_OK) fi fi # If python is found then enable python support AM_CONDITIONAL(SUPPORT_PYTHON,test -n "$PYTHON" -a "$PYTHON_OK" = 'yes') # # Tests for Windows # AC_EXEEXT AC_OBJEXT # Configure libtool AC_ENABLE_SHARED AC_ENABLE_STATIC AC_LIBTOOL_WIN32_DLL AC_LIBTOOL_SETUP AC_PROG_LIBTOOL AC_SUBST(LIBTOOL_DEPS) # Add configure option --enable-maintainer-mode which enables dependency # checking and generation useful to package maintainers. This is made an # option to avoid confusing end users. AM_MAINTAINER_MODE # If the C compiler does not fully support the ANSI C qualifier const, # define const to be empty. #AC_C_CONST # If the C compiler supports the keyword inline, do nothing. Otherwise # define inline to __inline__ or __inline if it accepts one of those, # otherwise define inline to be empty. AC_C_INLINE AC_SUBST(inline) # If words are stored with the most significant byte first (like # Motorola and SPARC CPUs), define `WORDS_BIGENDIAN'. AC_C_BIGENDIAN # Obtain size of an 'char' and define as SIZEOF_CHAR # Sets $ac_cv_sizeof_char #AC_CHECK_SIZEOF(char) # Obtain size of an 'unsigned char' and define as SIZEOF_UNSIGNED_CHAR # Sets $ac_cv_sizeof_unsigned_char #AC_CHECK_SIZEOF(unsigned char) # Obtain size of an 'short' and define as SIZEOF_SHORT # Sets $ac_cv_sizeof_short #AC_CHECK_SIZEOF(short) # Obtain size of an 'unsigned short' and define as SIZEOF_UNSIGNED_SHORT # Sets $ac_cv_sizeof_unsigned_short #AC_CHECK_SIZEOF(unsigned short) # Obtain size of an 'int' and define as SIZEOF_INT # Sets $ac_cv_sizeof_int AC_CHECK_SIZEOF(int) # Obtain size of an 'unsigned int' and define as SIZEOF_UNSIGNED_INT # Sets $ac_cv_sizeof_unsigned_int AC_CHECK_SIZEOF(unsigned int) # Obtain size of a 'long' and define as SIZEOF_LONG # Sets $ac_cv_sizeof_long AC_CHECK_SIZEOF(long) # Obtain size of a 'unsigned long' and define as SIZEOF_UNSIGNED_LONG # Sets $ac_cv_sizeof_unsigned_long AC_CHECK_SIZEOF(unsigned long) # Obtain size of a 'long long' and define as SIZEOF_LONG_LONG. If # 'long long' is not supported then the value defined is zero. # Sets $ac_cv_sizeof_long_long AC_CHECK_SIZEOF(long long) # Obtain size of a 'unsigned long long' and define as # SIZEOF_UNSIGNED_LONG_LONG. If 'unsigned long long' is not # supported then the value defined is zero. # Sets $ac_cv_sizeof_unsigned_long_long AC_CHECK_SIZEOF(unsigned long long) # # Compute sized types for current CPU and compiler options # AC_MSG_CHECKING(for signed 8-bit type) INT8_T='char' AC_MSG_RESULT($INT8_T) AC_SUBST(INT8_T) AC_MSG_CHECKING(for unsigned 8-bit type) UINT8_T='unsigned char' AC_MSG_RESULT($UINT8_T) AC_SUBST(UINT8_T) AC_MSG_CHECKING(for signed 16-bit type) INT16_T='short' AC_MSG_RESULT($INT16_T) AC_SUBST(INT16_T) AC_MSG_CHECKING(for unsigned 16-bit type) UINT16_T='unsigned short' AC_MSG_RESULT($UINT16_T) AC_SUBST(UINT16_T) AC_MSG_CHECKING(for signed 32-bit type) INT32_T='none' if test $ac_cv_sizeof_int -eq 4 then INT32_T='int' elif test $ac_cv_sizeof_long -eq 4 then INT32_T='long' fi AC_MSG_RESULT($INT32_T) AC_SUBST(INT32_T) AC_MSG_CHECKING(for unsigned 32-bit type) UINT32_T='none' if test $ac_cv_sizeof_unsigned_int -eq 4 then UINT32_T='unsigned int' elif test $ac_cv_sizeof_unsigned_long -eq 4 then UINT32_T='unsigned long' fi AC_MSG_RESULT($UINT32_T) AC_SUBST(UINT32_T) AC_MSG_CHECKING(for signed 64-bit type) INT64_T='none' if test $ac_cv_sizeof_long -eq 8 then INT64_T='long' elif test $ac_cv_sizeof_long_long -eq 8 then INT64_T='long long' fi AC_MSG_RESULT($INT64_T) AC_SUBST(INT64_T) AC_MSG_CHECKING(for unsigned 64-bit type) UINT64_T='none' if test $ac_cv_sizeof_unsigned_long -eq 8 then UINT64_T='unsigned long' elif test $ac_cv_sizeof_unsigned_long_long -eq 8 then UINT64_T='unsigned long long' fi AC_MSG_RESULT($UINT64_T) AC_SUBST(UINT64_T) # # Find math library # LIB_MATH='' AC_CHECK_LIB(m,sqrt,LIB_MATH="-lm",,) LIBS="$LIB_MATH $LIBS" AC_SUBST(LIB_MATH) # # Check for JPEG # have_jpeg='no' LIB_JPEG='' if test ! "$with_jpeg" = 'no' then AC_MSG_CHECKING(for JPEG support ) AC_MSG_RESULT() failed=0; passed=0; AC_CHECK_HEADER(jconfig.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_HEADER(jerror.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_HEADER(jmorecfg.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_HEADER(jpeglib.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_LIB(jpeg,jpeg_read_header,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) # Test for compatible JPEG library if test ! "$ac_cv_jpeg_version_ok" = 'yes' ; then AC_CACHE_CHECK(for JPEG library is version 6b or later, ac_cv_jpeg_version_ok, [AC_TRY_COMPILE( #include #include #include , changequote(<<, >>)dnl << #if JPEG_LIB_VERSION < 62 #error IJG JPEG library must be version 6b or newer! #endif return 0; >>, changequote([, ])dnl ac_cv_jpeg_version_ok='yes', ac_cv_jpeg_version_ok='no')]) if test "$ac_cv_jpeg_version_ok" = 'yes' ; then AC_MSG_RESULT(yes) passed=`expr $passed + 1` else AC_MSG_RESULT(no) failed=`expr $failed + 1` fi fi AC_MSG_CHECKING(if JPEG package is complete) if test $passed -gt 0 then if test $failed -gt 0 then AC_MSG_RESULT(no -- some components failed test) have_jpeg='no (failed tests)' else LIB_JPEG='-ljpeg' LIBS="$LIB_JPEG $LIBS" AC_DEFINE(HasJPEG,1,Define if you have JPEG library) AC_MSG_RESULT(yes) have_jpeg='yes' fi else AC_MSG_RESULT(no) fi fi AM_CONDITIONAL(HasJPEG, test "$have_jpeg" = 'yes') AC_SUBST(LIB_JPEG) # # Check for ZLIB # have_zlib='no' dnl PNG requires zlib so enable zlib check if PNG is requested if test ! "$with_zlib" = 'no' || test ! "$with_png" = 'no' then LIB_ZLIB='' AC_MSG_CHECKING(for ZLIB support ) AC_MSG_RESULT() failed=0; passed=0; AC_CHECK_HEADER(zconf.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_HEADER(zlib.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_LIB(z,compress,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(z,uncompress,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(z,deflate,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(z,inflate,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(z,gzseek,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(z,gztell,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_MSG_CHECKING(if ZLIB package is complete) if test $passed -gt 0 then if test $failed -gt 0 then AC_MSG_RESULT(no -- some components failed test) have_zlib='no (failed tests)' else LIB_ZLIB='-lz' LIBS="$LIB_ZLIB $LIBS" AC_DEFINE(HasZLIB,1,Define if you have zlib compression library) AC_MSG_RESULT(yes) have_zlib='yes' fi else AC_MSG_RESULT(no) fi fi AM_CONDITIONAL(HasZLIB, test "$have_zlib" = 'yes') AC_SUBST(LIB_ZLIB) # # Check for TIFF # have_tiff='no' LIB_TIFF='' if test ! "$with_tiff" = 'no' then AC_MSG_CHECKING(for TIFF support ) AC_MSG_RESULT() failed=0; passed=0; AC_CHECK_HEADER(tiff.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_HEADER(tiffio.h,passed=`expr $passed + 1`,failed=`expr $failed + 1`) AC_CHECK_LIB(tiff,TIFFOpen,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(tiff,TIFFClientOpen,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_CHECK_LIB(tiff,TIFFIsByteSwapped,passed=`expr $passed + 1`,failed=`expr $failed + 1`,) AC_MSG_CHECKING(if TIFF package is complete) if test $passed -gt 0 then if test $failed -gt 0 then AC_MSG_RESULT(no -- some components failed test) have_tiff='no (failed tests)' else LIB_TIFF='-ltiff' LIBS="$LIB_TIFF $LIBS" AC_DEFINE(HasTIFF,1,Define if you have TIFF library) AC_MSG_RESULT(yes) have_tiff='yes' AC_CHECK_HEADERS(tiffconf.h) fi else AC_MSG_RESULT(no) fi fi AM_CONDITIONAL(HasTIFF, test "$have_tiff" = 'yes') AC_SUBST(LIB_TIFF) # Libraries that the LCMS library depends on LCMS_LIB_DEPLIBS="$LIB_MATH" LCMS_LIB_DEPLIBS=`echo $LCMS_LIB_DEPLIBS | sed -e 's/ */ /g'` AC_SUBST(LCMS_LIB_DEPLIBS) # Libraries that the jpegicc program depends on JPEGICC_DEPLIBS="$LIB_JPEG $LIB_MATH" JPEGICC_DEPLIBS=`echo $JPEGICC_DEPLIBS | sed -e 's/ */ /g'` AC_SUBST(JPEGICC_DEPLIBS) # Libraries that the tifficc program depends on TIFFICC_DEPLIBS="$LIB_TIFF $LIB_JPEG $LIB_ZLIB $LIB_MATH" TIFFICC_DEPLIBS=`echo $TIFFICC_DEPLIBS | sed -e 's/ */ /g'` AC_SUBST(TIFFICC_DEPLIBS) LIBS='' # # Perform substitutions # AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([lcms.pc]) AC_CONFIG_FILES([include/icc34.h]) AC_CONFIG_FILES([include/Makefile]) AC_CONFIG_FILES([jpegicc/Makefile]) AC_CONFIG_FILES([python/Makefile]) AC_CONFIG_FILES([samples/Makefile]) AC_CONFIG_FILES([testbed/Makefile]) AC_CONFIG_FILES([tifficc/Makefile]) AC_CONFIG_FILES([src/Makefile]) AC_OUTPUT lcms-1.19/COPYING0000777000175300010010000000206611272606371012720 0ustar MartiNingunoLittle CMS Copyright (c) 1998-2007 Marti Maria Saguer 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 AUTHORS OR COPYRIGHT HOLDERS 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. lcms-1.19/Delphi/0000777000175300010010000000000011230104762013052 5ustar MartiNingunolcms-1.19/Delphi/delphidemo.cfg0000777000175300010010000000070010055155054015651 0ustar MartiNinguno-$A8 -$B- -$C+ -$D+ -$E- -$F- -$G+ -$H+ -$I+ -$J- -$K- -$L+ -$M- -$N+ -$O+ -$P+ -$Q- -$R- -$S- -$T- -$U- -$V+ -$W- -$X+ -$YD -$Z1 -cg -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -H+ -W+ -M -$M16384,1048576 -K$00400000 -LE"c:\archivos de programa\borland\delphi7\Projects\Bpl" -LN"c:\archivos de programa\borland\delphi7\Projects\Bpl" -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST lcms-1.19/Delphi/delphidemo.dof0000777000175300010010000000376210055155054015675 0ustar MartiNinguno[FileVersion] Version=7.0 [Compiler] A=8 B=0 C=1 D=1 E=0 F=0 G=1 H=1 I=1 J=0 K=0 L=1 M=0 N=1 O=1 P=1 Q=0 R=0 S=0 T=0 U=0 V=1 W=0 X=1 Y=1 Z=1 ShowHints=1 ShowWarnings=1 UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; NamespacePrefix= SymbolDeprecated=1 SymbolLibrary=1 SymbolPlatform=1 UnitLibrary=1 UnitPlatform=1 UnitDeprecated=1 HResultCompat=1 HidingMember=1 HiddenVirtual=1 Garbage=1 BoundsError=1 ZeroNilCompat=1 StringConstTruncated=1 ForLoopVarVarPar=1 TypedConstVarPar=1 AsgToTypedConst=1 CaseLabelRange=1 ForVariable=1 ConstructingAbstract=1 ComparisonFalse=1 ComparisonTrue=1 ComparingSignedUnsigned=1 CombiningSignedUnsigned=1 UnsupportedConstruct=1 FileOpen=1 FileOpenUnitSrc=1 BadGlobalSymbol=1 DuplicateConstructorDestructor=1 InvalidDirective=1 PackageNoLink=1 PackageThreadVar=1 ImplicitImport=1 HPPEMITIgnored=1 NoRetVal=1 UseBeforeDef=1 ForLoopVarUndef=1 UnitNameMismatch=1 NoCFGFileFound=1 MessageDirective=1 ImplicitVariants=1 UnicodeToLocale=1 LocaleToUnicode=1 ImagebaseMultiple=1 SuspiciousTypecast=1 PrivatePropAccessor=1 UnsafeType=0 UnsafeCode=0 UnsafeCast=0 [Linker] MapFile=0 OutputObjs=0 ConsoleApp=1 DebugInfo=0 RemoteSymbols=0 MinStackSize=16384 MaxStackSize=1048576 ImageBase=4194304 ExeDescription= [Directories] OutputDir= UnitOutputDir= PackageDLLOutputDir= PackageDCPOutputDir= SearchPath= Packages= Conditionals= DebugSourceDirs= UsePackages=0 [Parameters] RunParams= HostApplication= Launcher= UseLauncher=0 DebugCWD=d:\lcms-1.13\delphi [Language] ActiveLang= ProjectLang= RootDir= [Version Info] IncludeVerInfo=0 AutoIncBuild=0 MajorVer=1 MinorVer=0 Release=0 Build=0 Debug=0 PreRelease=0 Special=0 Private=0 DLL=0 Locale=3082 CodePage=1252 [Version Info Keys] CompanyName= FileDescription= FileVersion=1.0.0.0 InternalName= LegalCopyright= LegalTrademarks= OriginalFilename= ProductName= ProductVersion=1.0.0.0 Comments= lcms-1.19/Delphi/delphidemo.dpr0000777000175300010010000000027607402216500015703 0ustar MartiNingunoprogram delphidemo; uses Forms, demo1 in 'demo1.pas' {Form1}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. lcms-1.19/Delphi/delphidemo.res0000777000175300010010000000155407434557662015735 0ustar MartiNinguno ÿÿÿÿè ÿÿÿÿ ( @€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿwxÌÌÌ̇€ÌÌÌÌÌ̇øx ÌLÌLÌLÌø‡€ÌÌÌÌÌÌÌÀ‡øx LLLLLLLø‡€ÌÌÌÌÌÌÌÀ‡øx LLLLLLLÇø‡€ÌÌÌÌÌÌÌL‡øx LLLLLL@ÄÇø‡€ÄÄÄÄÄÄÀ LL‡÷w LLLLLLÄÄÇøxwpÄÄÄÄÄ LLL‡‡HLLÄÄÄÇ÷xpx€„„Ä LLLLxw‡yˆHLÄÄÄć‡p‡¹™„Ä LLLLGw÷{û¹˜LÄÄÄćxx÷¿¹™˜ÄDDDDHw{ûû¹™ðÄÄÄÄ„x÷»¿¿›™ðDDDHxy¿»»™™ŸÄÄÄ„÷™»ù›¹™˜ðDDDHH™›¹™›™ŸDDD„ù™›»™™˜ðDDDHH™™™¹™ŸDDD„øù™›™˜ðDD@O›™ø›™ð™Ÿù™ðÃÿÿÿðÿ€Àÿ€ÿ€À?àðððàààààààààððøøüþÿÿÀÿðHÿÿüÿÿþÿÿüÿÿþ?0ÿÿMAINICON  èlcms-1.19/Delphi/demo1.dcu0000777000175300010010000002255210322502042014557 0ustar MartiNingunoßj%+‰J3^ñ˜–

%IS_INPUT @% IS_DISPLAY @% IS_COLORSPACE @% IS_OUTPUT @% IS_ABSTRACT @ ( InSignatures¤,! Signature!dwFlags Result,c( FillComboB"Combofø! Signaturesfð Files& Descriptionsf&è Found. SearchRecf(Qú Pathf0à Profilef0Ø DirfDMê hProfilec( TForm1.Create€rá&$ÊB!Self<!.F!Owner$c(TForm1.Button2Click€oá&$µB!Self<!Sender*c( SelectedFilej0"Combo#Resultf0 List& n.c(TForm1.ComputeFlags€qá&$Ô !Self< Result dwFlagsc(TForm1.Button1Click€pá&$B!Self<!Sender* Sourcef0ø Destf0ð hSrcfè hDestfà xformf Ø i. PicWf.Ð PicHf.È Intent. dwFlagsc( Finalization€Eóa‚\! Bcž(demo1€!BcžþG<ñ F< z©þ¼&,Image1á ,Image2ñ ,Panel1 , Splitter1 ,Button2! , ComboBoxInput1 ,ComboBoxOutputA ,Label1Q ,Label2a ,WBCompensationq , NoTransform , RadioGroup1‘ ,OpenPictureDialog1 ¡ ,Button1± , ProgressBar1Á ,ComboBoxIntentÑ ,Label3á - Button2Clickî- Button1Clickî±- ComputeFlagsî¡ .CreateÄqcD>€ÿÿÿPD>ýÿ@LH2AFÿD>ülÍ%L@c‹<’øImage1üImage2Panel1 Splitter1Button2  ComboBoxInputComboBoxOutputLabel1Label2WBCompensation  NoTransform$ RadioGroup1(OpenPictureDialog1,Button10 ProgressBar14ComboBoxIntent8Label3 Button2Click Button1ClickTForm1 TForm1L^demo1öÂt =rtnmu°ÃöÂt =rtrpu°ë2öÂt =rncsu°ë"öÂt =capsu°ëöÂt =tsbau°ë3ÀÃU‹ìÄ„úÿÿSV3ɉ„úÿÿ‰ˆúÿÿ‰Œúÿÿ‰Mð‰Mì‰Uø‰Eü…”þÿÿ‹è3ÀUh¾dÿ0d‰ ²¡è‹ð²¡è‰Eôhÿ…“úÿÿPè…Œúÿÿ•“úÿÿ¹è‹•ŒúÿÿEð¹Ôè…ˆúÿÿ¹ô‹Uðè‹…ˆúÿÿ”þÿÿº?è…À…Eì‹ þÿÿ‹Uðèhü‹EìèPè‹Ø…ÛtPSè= BGRu=Sè‹Uøè„Àt+Sè‹Ð…„úÿÿè‹•„úÿÿ‹Eô‹ÿQ8‹Uì‹Æ‹ÿQ8Sè…”þÿÿè…À„sÿÿÿ…”þÿÿè‹Eü‹‹Uô‹ÿ‘ ‹Eü‹‰p 3ÀZYYd‰hÅ…„úÿÿºè…”þÿÿ‹èEìºèÃéëÊ^[‹å]Ãÿÿÿÿ\SPOOL\DRIVERS\COLOR\ÿÿÿÿ*.icmrSV„ÒtƒÄðè‹Ú‹ð3Ò‹Æè† ºè†ºÿÿ苆43Ò‹ÿ‘ЋƄÛtèdƒÄ ‹Æ^[ÃU‹ìjS‹Ø3ÀUh"dÿ0d‰ ‹ƒ(‹ÿR<„À„ãUü‹ƒ(è‹Uü‹ƒø‹€h苃ø‹€hè²è²¡è‹Ð‹ƒü‹€h苃ü‹€hè²苃ü‹€hè苃ø‹€hè‹ÿR,P‹ƒü‹€hèZ‹ÿQ@‹ƒø‹€hè‹ÿR P‹ƒü‹€hèZ‹ÿQ43ÀZYYd‰h)EüèÃéëð[Y]ÃSVQ‰$‹‹r ‹‹ÿ’̋؅Û|‹ $‹Ó‹Æ‹ÿS ë‹$èZ^[ÃSV‹Ø3ö‹ƒ‹ÿ’È„ÀtÎ ‹ƒ ‹ÿ’È„Àt΋ƒ$‹€ƒèrHt HtëÎëÎë΋Æ^[ÃU‹ìƒÄäSVW3ɉMü‰Mø‹Ø3ÀUhÍdÿ0d‰ Uüƒ èUøƒè‹Ãè‹ð‹ƒ4‹ÿ’Ì‹øƒ}ü„Rƒ}ø„HhÜ‹EüèPè‰EôhÜ‹EøèPè‰EðVWh‹EðPh‹EôPè‰E싃ü‹€hè‰E苃ü‹€hè‰Eä3Ò‹ƒ0è‹U䋃0躋ƒ0è‹}äO…ÿ|aG3ö‹Æ¹d™÷ù…Òu ‹Ö‹ƒ0è‹EèP‹ƒü‹€hè‹ÖèP‹ƒø‹€hè‹ÖèP‹EìPèFOu¢‹U䋃0è‹EìPè‹EôPè‹EðP苃ü‹ÿ’€3Ò‹ƒ0è3ÀZYYd‰hÔEøºèÃéëë_^[‹å]ÃrU‹ì3ÀUh%dÿ0d‰ ÿ3ÀZYYd‰h,Ãéëø]Ã-Ãm  x9¨ªy®}¦Â‚=Ž–ò1ž5”qÆÄÈäÒŠÖæèŒêìîðš˜ô öÜÞàâ¸zÊ|~€Ì΄ÐÔ’ØÚ°º¼¢†ˆœ¤¬²´¶ •&±4hjlVXZ\nJv5¤EfM ­EE E (i,µE ±E±,Q2± E¹ $&*5,½<.Y&]JE ÁM ÅÁ É‚q; E E6Ñ&Nr(ú"üþ & "üþ"ü "ü.ü.ü.ü&Õ ÉZÕ¡Ô±.±(¡V±¹ $±¹ $8>((!   L*ü%$ü%B$D..6±Á É$ååå É ¶vi     ”"RR"*>B à& –v$  N ,&D0>0,\–    $ $ 2 B (,,8((  ~ì^t‘•’<6“’¢   "$&(*,.024 6"8><ò$<±@>¹&>¡HDY(DqNJÞ*JT!b%d)f-h1j5p9p=pArEIMQ”U”Y–]˜ašešiœmžuK*}Þ…ûÿ‰ò!‘!•%™%)¥Cp©]­]µûÿ¹¹½ÁÁÁÅÅÉÅÍÉÑÍÕÍÙÍÝÑáÕå‘”p5`9=9žþ=žþE ñ02Q°Y)YIþmám1þY]Y}þQþq€0u$}$y$}6þuÄþyÄþ@…,…¥þ€0‘ ™.‘.þRþ™Rþ¡`0¥­ ¥žþ­Îþ± 8pµBáŒÝ¬ ÝÉþáÉþÑAѹþµQþå  alcms-1.19/Delphi/demo1.ddp0000777000175300010010000000006310303067754014563 0ustar MartiNingunoDELPHI.DIAGRAM.PORTFOLIOà@  Untitled1lcms-1.19/Delphi/demo1.dfm0000777000175300010010000000456710137710124014566 0ustar MartiNingunoÿ TFORM10g TPF0TForm1Form1LeftòTop WidthqHeightÞCaptionLittle cms Delphi demoColor clBtnFace Font.CharsetDEFAULT_CHARSET Font.Color clWindowText Font.Heightõ Font.Name MS Sans Serif Font.Style OldCreateOrder PixelsPerInch` TextHeight TImageImage1LeftTopWidth!HeightAlignalLeftStretch TImageImage2Left)TopWidth@HeightAlignalClientStretch TSplitter Splitter1Left!TopWidthHeightCursorcrHSplitTPanelPanel1LeftTopWidthiHeight²AlignalBottomTabOrderTLabelLabel1LeftðTop@Width:Height AlignmenttaRightJustifyCaptionInput profile:TLabelLabel2LeftðTopXWidthEHeight AlignmenttaRightJustifyCaptionMonitor profile:TLabelLabel3LefthTop WidthQHeight CaptionRendering intent:LayouttlCenterTButtonButton2LeftTop WidthÉHeightCaption Load &pictureTabOrderOnClick Button2Click TComboBox ComboBoxInputLeft8Top@WidthHeightCtl3D ItemHeight ParentCtl3DTabOrder TComboBoxComboBoxOutputLeft8TopXWidthHeight ItemHeight TabOrder TCheckBoxWBCompensationLeftðToppWidth©HeightCaptionBlack point compensationTabOrder TCheckBox NoTransformLeft¨ToppWidthaHeightCaption No transformTabOrder TRadioGroup RadioGroup1LeftTopHWidth¹HeightYCaptionDevice link precalculation Columns ItemIndex Items.StringsNoneStandardHigh-resLow-resTabOrderTButtonButton1LeftèTopˆWidthyHeight!CaptionApply profilesTabOrderOnClick Button1Click TProgressBar ProgressBar1LeftTopWidthYHeightMinMaxdTabOrder TComboBoxComboBoxIntentLeftÀTop Width¡HeightStylecsDropDownList ItemHeight TabOrder Items.Strings PerceptualRelative colorimetric SaturationAbsolute colorimetricTButtonButton3LeftLTop@WidthHeightCaption...TabOrder OnClick Button3ClickTButtonButton4LeftLTopXWidthHeightCaption...TabOrder OnClick Button4ClickTOpenPictureDialogOpenPictureDialog1Filter˜All (*.bmp;*.ico;*.emf;*.wmf)|*.bmp;*.ico;*.emf;*.wmf|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmfLeftTop TOpenDialog OpenDialog1 DefaultExticmFilter3ICM color profile (*.icm)|*.icm|All files (*.*)|*.* InitialDir.Left(Toplcms-1.19/Delphi/demo1.pas0000777000175300010010000001521110137710126014571 0ustar MartiNingunounit demo1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ExtDlgs, lcmsdll, ComCtrls; type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Panel1: TPanel; Splitter1: TSplitter; Button2: TButton; ComboBoxInput: TComboBox; ComboBoxOutput: TComboBox; Label1: TLabel; Label2: TLabel; WBCompensation: TCheckBox; NoTransform: TCheckBox; RadioGroup1: TRadioGroup; OpenPictureDialog1: TOpenPictureDialog; Button1: TButton; ProgressBar1: TProgressBar; ComboBoxIntent: TComboBox; Label3: TLabel; Button3: TButton; Button4: TButton; OpenDialog1: TOpenDialog; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } function ComputeFlags: DWORD; public constructor Create(Owner: TComponent); Override; { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} CONST IS_INPUT = $1; IS_DISPLAY = $2; IS_COLORSPACE = $4; IS_OUTPUT = $8; IS_ABSTRACT = $10; FUNCTION InSignatures(Signature:icProfileClassSignature; dwFlags: DWORD): Boolean; BEGIN if (((dwFlags AND IS_DISPLAY) <> 0) AND (Signature = icSigDisplayClass)) then InSignatures := TRUE else if (((dwFlags AND IS_OUTPUT) <> 0) AND (Signature = icSigOutputClass)) then InSignatures := TRUE else if (((dwFlags AND IS_INPUT) <> 0) AND (Signature = icSigInputClass)) then InSignatures := TRUE else if (((dwFlags AND IS_COLORSPACE) <> 0) AND (Signature = icSigColorSpaceClass)) then InSignatures := TRUE else if (((dwFlags AND IS_ABSTRACT) <> 0) AND (Signature = icSigAbstractClass)) then InSignatures := TRUE else InSignatures := FALSE END; PROCEDURE FillCombo(var Combo: TComboBox; Signatures: DWORD); var Files, Descriptions : TStringList; Found: Integer; SearchRec: TSearchRec; Path, Profile: String; Dir: ARRAY[0..1024] OF Char; hProfile : cmsHPROFILE; begin Files := TStringList.Create; Descriptions := TStringList.Create; GetSystemDirectory(Dir, 1023); Path := String(Dir) + '\SPOOL\DRIVERS\COLOR\'; Found := FindFirst(Path + '*.icm', faAnyFile, SearchRec); while Found = 0 do begin Profile := Path + SearchRec.Name; hProfile := cmsOpenProfileFromFile(PChar(Profile), 'r'); if (hProfile <> NIL) THEN begin if ((cmsGetColorSpace(hProfile) = icSigRgbData) AND InSignatures(cmsGetDeviceClass(hProfile), Signatures)) then begin Descriptions.Add(cmsTakeProductDesc(hProfile)); Files.Add(Profile); end; cmsCloseProfile(hProfile); end; Found := FindNext(SearchRec); end; FindClose(SearchRec); Combo.Items := Descriptions; Combo.Tag := Integer(Files); end; constructor TForm1.Create(Owner: TComponent); begin inherited Create(Owner); FillCombo(ComboBoxInput, IS_INPUT OR IS_COLORSPACE OR IS_DISPLAY); FillCombo(ComboBoxOutput, $FFFF {IS_DISPLAY} ); ComboBoxIntent.ItemIndex := INTENT_PERCEPTUAL; end; procedure TForm1.Button2Click(Sender: TObject); begin if OpenPictureDialog1.Execute then begin Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); Image1.Picture.Bitmap.PixelFormat := pf24bit; Image2.Picture.Bitmap := TBitmap.Create; Image2.Picture.Bitmap.PixelFormat := pf24bit; Image2.Picture.Bitmap.Dormant; Image2.Picture.Bitmap.width := Image1.Picture.Bitmap.width; Image2.Picture.Bitmap.height := Image1.Picture.Bitmap.height; end end; function SelectedFile(var Combo: TComboBox):string; var List: TStringList; n: Integer; begin List := TStringList(Combo.Tag); n := Combo.ItemIndex; if (n >= 0) then SelectedFile := List.Strings[n] else SelectedFile := Combo.Text; end; function TForm1.ComputeFlags: DWORD; var dwFlags: DWORD; begin dwFlags := 0; if (WBCompensation.Checked) then begin dwFlags := dwFlags OR cmsFLAGS_WHITEBLACKCOMPENSATION end; if (NoTransform.Checked) then begin dwFlags := dwFlags OR cmsFLAGS_NULLTRANSFORM end; case RadioGroup1.ItemIndex of 0: dwFlags := dwFlags OR cmsFLAGS_NOTPRECALC; 2: dwFlags := dwFlags OR cmsFLAGS_HIGHRESPRECALC; 3: dwFlags := dwFlags OR cmsFLAGS_LOWRESPRECALC; end; ComputeFlags := dwFlags end; procedure TForm1.Button1Click(Sender: TObject); var Source, Dest: String; hSrc, hDest : cmsHPROFILE; xform: cmsHTRANSFORM; i, PicW, PicH: Integer; Intent: Integer; dwFlags : DWORD; begin Source := SelectedFile(ComboBoxInput); Dest := SelectedFile(ComboBoxOutput); dwFlags := ComputeFlags; Intent := ComboBoxIntent.ItemIndex; if (Source <> '') AND (Dest <> '') then begin hSrc := cmsOpenProfileFromFile(PChar(Source), 'r'); hDest:= cmsOpenProfileFromFile(PChar(Dest), 'r'); xform := cmsCreateTransform(hSrc, TYPE_BGR_8, hDest, TYPE_BGR_8, Intent, dwFlags); PicW := Image2.Picture.Width; PicH := Image2.Picture.Height; ProgressBar1.Min := 0; ProgressBar1.Max := PicH; ProgressBar1.Step := 1; for i:= 0 TO (PicH -1) do begin if ((i MOD 100) = 0) then ProgressBar1.Position := i; cmsDoTransform(xform, Image1.Picture.Bitmap.Scanline[i], Image2.Picture.Bitmap.Scanline[i], PicW); end; ProgressBar1.Position := PicH; cmsDeleteTransform(xform); cmsCloseProfile(hSrc); cmsCloseProfile(hDest); Image2.Repaint; ProgressBar1.Position := 0; end end; procedure TForm1.Button3Click(Sender: TObject); begin if OpenDialog1.Execute then ComboBoxInput.Text:=OpenDialog1.FileName; end; procedure TForm1.Button4Click(Sender: TObject); begin if OpenDialog1.Execute then ComboBoxOutput.Text:=OpenDialog1.FileName; end; end. lcms-1.19/Delphi/lcmsdll.pas0000777000175300010010000012537010322501750015223 0ustar MartiNinguno// // Little cms DELPHI wrapper // Copyright (C) 1998-2005 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // ver 1.15 UNIT lcmsdll; INTERFACE USES Windows; CONST // Intents INTENT_PERCEPTUAL = 0; INTENT_RELATIVE_COLORIMETRIC = 1; INTENT_SATURATION = 2; INTENT_ABSOLUTE_COLORIMETRIC = 3; // Flags cmsFLAGS_MATRIXINPUT = $0001; cmsFLAGS_MATRIXOUTPUT = $0002; cmsFLAGS_MATRIXONLY = (cmsFLAGS_MATRIXINPUT OR cmsFLAGS_MATRIXOUTPUT); cmsFLAGS_NOPRELINEARIZATION = $0010; // Don't create prelinearization tables // on precalculated transforms (internal use) cmsFLAGS_NOTPRECALC = $0100; cmsFLAGS_NULLTRANSFORM = $0200; // Don't transform anyway cmsFLAGS_HIGHRESPRECALC = $0400; // Use more memory to give better accurancy cmsFLAGS_LOWRESPRECALC = $0800; // Use less memory to minimize resouces cmsFLAGS_GAMUTCHECK = $1000; // Mark Out of Gamut as alarm color (on proofing transform) cmsFLAGS_SOFTPROOFING = $4000; // Softproof of proofing profile cmsFLAGS_WHITEBLACKCOMPENSATION = $2000; cmsFLAGS_BLACKPOINTCOMPENSATION = $2000; cmsFLAGS_NODEFAULTRESOURCEDEF = $10000; // PostScript // Format descriptors TYPE_GRAY_8 = $30009; TYPE_GRAY_8_REV = $32009; TYPE_GRAY_16 = $3000A; TYPE_GRAY_16_REV = $3200A; TYPE_GRAY_16_SE = $3080A; TYPE_GRAYA_8 = $30089; TYPE_GRAYA_16 = $3008A; TYPE_GRAYA_16_SE = $3088A; TYPE_GRAYA_8_PLANAR = $31089; TYPE_GRAYA_16_PLANAR = $3108A; TYPE_RGB_8 = $40019; TYPE_RGB_8_PLANAR = $41019; TYPE_BGR_8 = $40419; TYPE_BGR_8_PLANAR = $41419; TYPE_RGB_16 = $4001A; TYPE_RGB_16_PLANAR = $4101A; TYPE_RGB_16_SE = $4081A; TYPE_BGR_16 = $4041A; TYPE_BGR_16_PLANAR = $4141A; TYPE_BGR_16_SE = $40C1A; TYPE_RGBA_8 = $40099; TYPE_RGBA_8_PLANAR = $41099; TYPE_RGBA_16 = $4009A; TYPE_RGBA_16_PLANAR = $4109A; TYPE_RGBA_16_SE = $4089A; TYPE_ARGB_8 = $44099; TYPE_ARGB_16 = $4409A; TYPE_ABGR_8 = $40499; TYPE_ABGR_16 = $4049A; TYPE_ABGR_16_PLANAR = $4149A; TYPE_ABGR_16_SE = $40C9A; TYPE_BGRA_8 = $44499; TYPE_BGRA_16 = $4449A; TYPE_BGRA_16_SE = $4489A; TYPE_CMY_8 = $50019; TYPE_CMY_8_PLANAR = $51019; TYPE_CMY_16 = $5001A; TYPE_CMY_16_PLANAR = $5101A; TYPE_CMY_16_SE = $5081A; TYPE_CMYK_8 = $60021; TYPE_CMYK_8_REV = $62021; TYPE_YUVK_8 = $62021; TYPE_CMYK_8_PLANAR = $61021; TYPE_CMYK_16 = $60022; TYPE_CMYK_16_REV = $62022; TYPE_YUVK_16 = $62022; TYPE_CMYK_16_PLANAR = $61022; TYPE_CMYK_16_SE = $60822; TYPE_KYMC_8 = $60421; TYPE_KYMC_16 = $60422; TYPE_KYMC_16_SE = $60C22; TYPE_KCMY_8 = $64021; TYPE_KCMY_8_REV = $66021; TYPE_KCMY_16 = $64022; TYPE_KCMY_16_REV = $66022; TYPE_KCMY_16_SE = $64822; TYPE_CMYKcm_8 = $0031; TYPE_CMYKcm_8_PLANAR = $1031; TYPE_CMYKcm_16 = $0032; TYPE_CMYKcm_16_PLANAR = $1032; TYPE_CMYKcm_16_SE = $0832; TYPE_CMYK7_8 = $0039; TYPE_CMYK7_16 = $003A; TYPE_CMYK7_16_SE = $083A; TYPE_KYMC7_8 = $0439; TYPE_KYMC7_16 = $043A; TYPE_KYMC7_16_SE = $0C3A; TYPE_CMYK8_8 = $0041; TYPE_CMYK8_16 = $0042; TYPE_CMYK8_16_SE = $0842; TYPE_KYMC8_8 = $0441; TYPE_KYMC8_16 = $0442; TYPE_KYMC8_16_SE = $0C42; TYPE_CMYK9_8 = $0049; TYPE_CMYK9_16 = $004A; TYPE_CMYK9_16_SE = $084A; TYPE_KYMC9_8 = $0449; TYPE_KYMC9_16 = $044A; TYPE_KYMC9_16_SE = $0C4A; TYPE_CMYK10_8 = $0051; TYPE_CMYK10_16 = $0052; TYPE_CMYK10_16_SE = $0852; TYPE_KYMC10_8 = $0451; TYPE_KYMC10_16 = $0452; TYPE_KYMC10_16_SE = $0C52; TYPE_CMYK11_8 = $0059; TYPE_CMYK11_16 = $005A; TYPE_CMYK11_16_SE = $085A; TYPE_KYMC11_8 = $0459; TYPE_KYMC11_16 = $045A; TYPE_KYMC11_16_SE = $0C5A; TYPE_CMYK12_8 = $0061; TYPE_CMYK12_16 = $0062; TYPE_CMYK12_16_SE = $0862; TYPE_KYMC12_8 = $0461; TYPE_KYMC12_16 = $0462; TYPE_KYMC12_16_SE = $0C62; TYPE_XYZ_16 = $9001A; TYPE_Lab_8 = $A0019; TYPE_LabA_8 = $A0099; TYPE_Lab_16 = $A001A; TYPE_Yxy_16 = $E001A; TYPE_YCbCr_8 = $70019; TYPE_YCbCr_8_PLANAR = $71019; TYPE_YCbCr_16 = $7001A; TYPE_YCbCr_16_PLANAR = $7101A; TYPE_YCbCr_16_SE = $7081A; TYPE_YUV_8 = $80019; TYPE_YUV_8_PLANAR = $81019; TYPE_YUV_16 = $8001A; TYPE_YUV_16_PLANAR = $8101A; TYPE_YUV_16_SE = $8081A; TYPE_HLS_8 = $D0019; TYPE_HLS_8_PLANAR = $D1019; TYPE_HLS_16 = $D001A; TYPE_HLS_16_PLANAR = $D101A; TYPE_HLS_16_SE = $D081A; TYPE_HSV_8 = $C0019; TYPE_HSV_8_PLANAR = $C1019; TYPE_HSV_16 = $C001A; TYPE_HSV_16_PLANAR = $C101A; TYPE_HSV_16_SE = $C081A; TYPE_NAMED_COLOR_INDEX = $000A; TYPE_XYZ_DBL = $90018; TYPE_Lab_DBL = $A0018; TYPE_GRAY_DBL = $30008; TYPE_RGB_DBL = $40018; TYPE_CMYK_DBL = $60020; // Some utility functions to compute new descriptors FUNCTION COLORSPACE_SH(e: Integer):Integer; FUNCTION SWAPFIRST_SH(e: Integer):Integer; FUNCTION FLAVOR_SH(e: Integer):Integer; FUNCTION PLANAR_SH(e: Integer):Integer; FUNCTION ENDIAN16_SH(e: Integer):Integer; FUNCTION DOSWAP_SH(e: Integer):Integer; FUNCTION EXTRA_SH(e: Integer):Integer; FUNCTION CHANNELS_SH(c: Integer):Integer; FUNCTION BYTES_SH(b: Integer):Integer; TYPE DWord = Cardinal; icTagSignature = DWord; icColorSpaceSignature = DWord; icProfileClassSignature= DWord; CONST // icc color space signatures icSigXYZData = $58595A20; icSigLabData = $4C616220; icSigLuvData = $4C757620; icSigYCbCrData = $59436272; icSigYxyData = $59787920; icSigRgbData = $52474220; icSigGrayData = $47524159; icSigHsvData = $48535620; icSigHlsData = $484C5320; icSigCmykData = $434D594B; icSigCmyData = $434D5920; // icc Profile class signatures icSigInputClass = $73636E72; icSigDisplayClass = $6D6E7472; icSigOutputClass = $70727472; icSigLinkClass = $6C696E6B; icSigAbstractClass = $61627374; icSigColorSpaceClass = $73706163; icSigNamedColorClass = $6e6d636c; // Added by lcms lcmsSignature = $6c636d73; icSigLuvKData = $4C75764B; {'LuvK'} icSigChromaticityTag = $6368726d; { As per Addendum 2 to Spec. ICC.1:1998-09 } icSigChromaticAdaptationTag = $63686164; TYPE cmsHPROFILE = Pointer; cmsHTRANSFORM = Pointer; LCMSHANDLE = Pointer; LCMSGAMMAPARAMS = PACKED RECORD Crc32 : DWord; TheType : Integer; Params : ARRAY [0..9] OF Double; END; GAMMATABLE = PACKED RECORD Birth : LCMSGAMMAPARAMS; nEntries : DWord; GammaTable : ARRAY [0..1] OF Word; END; LPGAMMATABLE = ^GAMMATABLE; // Colorimetric spaces cmsCIEXYZ = PACKED RECORD X, Y, Z : Double; END; LPcmsCIEXYZ = ^cmsCIEXYZ; cmsCIEXYZTRIPLE = PACKED RECORD Red, Green, Blue : cmsCIEXYZ END; LPcmsCIEXYZTRIPLE = ^cmsCIEXYZTRIPLE; cmsCIExyY = PACKED RECORD x, y, YY : Double END; LPcmsCIExyY = ^cmsCIExyY; cmsCIExyYTRIPLE = PACKED RECORD Red, Green, Blue : cmsCIExyY END; LPcmsCIExyYTRIPLE = ^cmsCIExyYTRIPLE; cmsCIELab = PACKED RECORD L, a, b: Double END; LPcmsCIELab = ^cmsCIELab; cmsCIELCh = PACKED RECORD L, C, h : Double END; LPcmsCIELCh = ^cmsCIELCh; // CIECAM97s cmsJCh = PACKED RECORD J, C, h : Double END; LPcmsJCh = ^cmsJCh; LPLUT = Pointer; CONST AVG_SURROUND_4 = 0; AVG_SURROUND = 1; DIM_SURROUND = 2; DARK_SURROUND = 3; CUTSHEET_SURROUND = 4; D_CALCULATE = -1; D_CALCULATE_DISCOUNT = -2; TYPE cmsViewingConditions = PACKED RECORD WhitePoint: cmsCIEXYZ; Yb : Double; La : Double; surround : Integer; D_value : Double END; LPcmsViewingConditions = ^cmsViewingConditions; cmsErrorHandler = FUNCTION (Severity: Integer; Msg:PChar): Integer; cdecl; LCMSARRAYOFPCHAR = ARRAY OF PChar; // Input/Output FUNCTION cmsOpenProfileFromFile(ICCProfile: PChar; sAccess: PChar) : cmsHPROFILE; StdCall; FUNCTION cmsOpenProfileFromMem(MemPtr: Pointer; dwSize: DWord) : cmsHPROFILE; StdCall; FUNCTION cmsCloseProfile(hProfile : cmsHPROFILE) : Boolean; StdCall; FUNCTION cmsCreateRGBProfile(WhitePoint : LPcmsCIExyY; Primaries: LPcmsCIExyYTRIPLE; TransferFunction: ARRAY OF LPGAMMATABLE) : cmsHPROFILE; StdCall; FUNCTION cmsCreateGrayProfile(WhitePoint: LPcmsCIExyY; TransferFunction: LPGAMMATABLE) : cmsHPROFILE; StdCall; FUNCTION cmsCreateLinearizationDeviceLink(ColorSpace: icColorSpaceSignature; TransferFunction: ARRAY OF LPGAMMATABLE) : cmsHPROFILE; StdCall; FUNCTION cmsCreateInkLimitingDeviceLink(ColorSpace: icColorSpaceSignature; Limit: Double) : cmsHPROFILE; StdCall; FUNCTION cmsCreateNULLProfile : cmsHPROFILE; StdCall; FUNCTION cmsCreateLabProfile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall; FUNCTION cmsCreateLab4Profile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; StdCall; FUNCTION cmsCreateXYZProfile:cmsHPROFILE; StdCall; FUNCTION cmsCreate_sRGBProfile:cmsHPROFILE; StdCall; FUNCTION cmsCreateBCHSWabstractProfile(nLUTPoints: Integer; Bright, Contrast, Hue, Saturation: Double; TempSrc, TempDest: Integer): cmsHPROFILE; StdCall; // Utils PROCEDURE cmsXYZ2xyY(Dest: LPcmsCIExyY; Source: LPcmsCIEXYZ); StdCall; PROCEDURE cmsxyY2XYZ(Dest: LPcmsCIEXYZ; Source: LPcmsCIExyY); StdCall; PROCEDURE cmsXYZ2Lab(WhitePoint: LPcmsCIEXYZ; xyz: LPcmsCIEXYZ; Lab: LPcmsCIELab); StdCall; PROCEDURE cmsLab2XYZ(WhitePoint: LPcmsCIEXYZ; Lab: LPcmsCIELab; xyz: LPcmsCIEXYZ); StdCall; PROCEDURE cmsLab2LCh(LCh: LPcmsCIELCh; Lab: LPcmsCIELab); StdCall; PROCEDURE cmsLCh2Lab(Lab: LPcmsCIELab; LCh: LPcmsCIELCh); StdCall; // CIELab handling FUNCTION cmsDeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; FUNCTION cmsCIE94DeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; FUNCTION cmsBFDdeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; FUNCTION cmsCMCdeltaE(Lab1, Lab2: LPcmsCIELab): Double; StdCall; FUNCTION cmsCIE2000DeltaE(Lab1, Lab2: LPcmsCIELab; Kl, Kc, Kh: Double): Double; StdCall; PROCEDURE cmsClampLab(Lab: LPcmsCIELab; amax, amin, bmax, bmin: Double); StdCall; // White point FUNCTION cmsWhitePointFromTemp(TempK: Integer; WhitePoint: LPcmsCIExyY) : Boolean; StdCall; // CIECAM97s FUNCTION cmsCIECAM97sInit(pVC : LPcmsViewingConditions ) : Pointer; StdCall; PROCEDURE cmsCIECAM97sDone(hModel : Pointer); StdCall; PROCEDURE cmsCIECAM97sForward(hModel: Pointer; pIn: LPcmsCIEXYZ; pOut: LPcmsJCh ); StdCall; PROCEDURE cmsCIECAM97sReverse(hModel: Pointer; pIn: LPcmsJCh; pOut: LPcmsCIEXYZ ); StdCall; // CIECAM02 FUNCTION cmsCIECAM02Init(pVC : LPcmsViewingConditions ) : Pointer; StdCall; PROCEDURE cmsCIECAM02Done(hModel : Pointer); StdCall; PROCEDURE cmsCIECAM02Forward(hModel: Pointer; pIn: LPcmsCIEXYZ; pOut: LPcmsJCh ); StdCall; PROCEDURE cmsCIECAM02Reverse(hModel: Pointer; pIn: LPcmsJCh; pOut: LPcmsCIEXYZ ); StdCall; // Gamma curves FUNCTION cmsBuildGamma(nEntries : Integer; Gamma: Double) : LPGAMMATABLE; StdCall; FUNCTION cmsAllocGamma(nEntries : Integer): LPGAMMATABLE; StdCall; PROCEDURE cmsFreeGamma(Gamma: LPGAMMATABLE); StdCall; PROCEDURE cmsFreeGammaTriple(Gamma: ARRAY OF LPGAMMATABLE); StdCall; FUNCTION cmsReverseGamma(nResultSamples: Integer; InGamma : LPGAMMATABLE): LPGAMMATABLE; StdCall; FUNCTION cmsJoinGamma(InGamma, OutGamma: LPGAMMATABLE): LPGAMMATABLE; StdCall; FUNCTION cmsJoinGammaEx(InGamma, OutGamma: LPGAMMATABLE; nPoints: Integer): LPGAMMATABLE; StdCall; FUNCTION cmsSmoothGamma(Gamma: LPGAMMATABLE; SmoothingLambda: Double): Boolean; StdCall; FUNCTION cmsDupGamma(Src: LPGAMMATABLE): LPGAMMATABLE; StdCall; FUNCTION cmsEstimateGamma(Src: LPGAMMATABLE): Double; StdCall; FUNCTION cmsEstimateGammaEx(Src: LPGAMMATABLE; Thereshold: Double): Double; StdCall; FUNCTION cmsReadICCGamma(hProfile: cmsHPROFILE; Sig: icTagSignature): LPGAMMATABLE; StdCall; FUNCTION cmsReadICCGammaReversed(hProfile: cmsHPROFILE; Sig: icTagSignature): LPGAMMATABLE; StdCall; CONST lcmsParametricCurveExp = 0; lcmsParametricCurveCIE_122_1966 = 1; lcmsParametricCurveIEC_61966_3 = 2; lcmsParametricCurveIEC_61966_2_1= 3; FUNCTION cmsBuildParametricGamma(nEntries: Integer; TheType: Integer; Params: array of Double) : LPGAMMATABLE; StdCall; // Access to Profile data. PROCEDURE cmsSetLanguage(LanguageCode: Integer; CountryCode: Integer); StdCall; FUNCTION cmsTakeMediaWhitePoint(Dest: LPcmsCIEXYZ; hProfile: cmsHPROFILE): Boolean; StdCall; FUNCTION cmsTakeMediaBlackPoint(Dest: LPcmsCIEXYZ; hProfile: cmsHPROFILE): Boolean; StdCall; FUNCTION cmsTakeIluminant(Dest: LPcmsCIEXYZ; hProfile: cmsHPROFILE): Boolean; StdCall; FUNCTION cmsTakeColorants(Dest: LPcmsCIEXYZTRIPLE; hProfile: cmsHPROFILE): Boolean; StdCall; FUNCTION cmsTakeHeaderFlags(hProfile: cmsHPROFILE): DWord; StdCall; FUNCTION cmsTakeProductName(hProfile: cmsHPROFILE): PChar; StdCall; FUNCTION cmsTakeProductDesc(hProfile: cmsHPROFILE): PChar; StdCall; FUNCTION cmsTakeManufacturer(hProfile: cmsHPROFILE): PChar; StdCall; FUNCTION cmsTakeModel(hProfile: cmsHPROFILE): PChar; StdCall; FUNCTION cmsTakeCopyright(hProfile: cmsHPROFILE): PChar; StdCall; FUNCTION cmsTakeProfileID(hProfile: cmsHPROFILE): PByte; StdCall; FUNCTION cmsIsTag(hProfile: cmsHPROFILE; sig: icTagSignature): Boolean; StdCall; FUNCTION cmsTakeRenderingIntent(hProfile: cmsHPROFILE): Integer; StdCall; FUNCTION cmsIsIntentSupported(hProfile: cmsHPROFILE; Intent, UsedDirection : Integer): Integer; StdCall; FUNCTION cmsTakeCharTargetData(hProfile: cmsHPROFILE; var Data : PChar; var len: Cardinal): Boolean; StdCall; FUNCTION _cmsICCcolorSpace(OurNotation: Integer) : icColorSpaceSignature; StdCall; FUNCTION _cmsLCMScolorSpace(ProfileSpace: icColorSpaceSignature): Integer; StdCall; FUNCTION _cmsChannelsOf(ColorSpace: icColorSpaceSignature): Integer; StdCall; FUNCTION cmsGetPCS(hProfile: cmsHPROFILE): icColorSpaceSignature; StdCall; FUNCTION cmsGetColorSpace(hProfile: cmsHPROFILE): icColorSpaceSignature; StdCall; FUNCTION cmsGetDeviceClass( hProfile: cmsHPROFILE): icProfileClassSignature; StdCall; FUNCTION cmsGetProfileICCversion( hProfile: cmsHPROFILE): DWord; StdCall; // Profile creation PROCEDURE cmsSetDeviceClass(hProfile: cmsHPROFILE; sig: icProfileClassSignature ); StdCall; PROCEDURE cmsSetColorSpace(hProfile: cmsHPROFILE; sig: icProfileClassSignature ); StdCall; PROCEDURE cmsSetPCS(hProfile: cmsHPROFILE; pcs: icColorSpaceSignature); StdCall; PROCEDURE cmsSetRenderingIntent(hProfile: cmsHPROFILE; Intent: Integer); StdCall; PROCEDURE cmsSetHeaderFlags(hProfile: cmsHPROFILE; dwFlags: DWord); StdCall; PROCEDURE cmsSetProfileID(hProfile: cmsHPROFILE; ProfileID: PByte); StdCall; FUNCTION cmsAddTag(hProfile: cmsHPROFILE; Sig: icTagSignature; Data: Pointer): Boolean; StdCall; FUNCTION _cmsSaveProfile(hProfile: cmsHPROFILE; FileName: PChar): Boolean; StdCall; FUNCTION _cmsSaveProfileToMem(hProfile: cmsHPROFILE; MemPtr: Pointer; var BytesNeeded: DWord): Boolean; StdCall; CONST LCMS_USED_AS_INPUT = 0; LCMS_USED_AS_OUTPUT = 1; LCMS_USED_AS_PROOF = 2; // Transforms FUNCTION cmsCreateTransform(Input: cmsHPROFILE; InputFormat: DWORD; Output: cmsHPROFILE; OutputFormat: DWORD; Intent: Integer; dwFlags: DWord): cmsHTRANSFORM; StdCall; FUNCTION cmsCreateProofingTransform(Input: cmsHPROFILE; InputFormat: DWORD; Output: cmsHPROFILE; OutputFormat: DWORD; Proofing: cmsHPROFILE; Intent: Integer; ProofingIntent: Integer; dwFlags: DWord): cmsHTRANSFORM; StdCall; FUNCTION cmsCreateMultiprofileTransform(hProfiles : ARRAY OF cmsHPROFILE; nProfiles : Integer; InputFormat: DWord; OutputFormat: DWord; Intent: Integer; dwFlags: DWord): cmsHTRANSFORM; StdCall; PROCEDURE cmsDeleteTransform( hTransform: cmsHTRANSFORM); StdCall; PROCEDURE cmsDoTransform( Transform: cmsHTRANSFORM; InputBuffer: Pointer; OutputBuffer: Pointer; Size: LongInt); StdCall; PROCEDURE cmsChangeBuffersFormat(hTransform: cmsHTRANSFORM; dwInputFormat, dwOutputFormat: DWord); StdCall; // Devicelink generation FUNCTION cmsTransform2DeviceLink(hTransform: cmsHTRANSFORM; dwFlags: DWord): cmsHPROFILE; StdCall; PROCEDURE _cmsSetLUTdepth(hProfile: cmsHPROFILE; depth: Integer); StdCall; // Named color support FUNCTION cmsNamedColorCount(xform: cmsHTRANSFORM): Integer; StdCall; FUNCTION cmsNamedColorInfo(xform: cmsHTRANSFORM; nColor: Integer; Name, Prefix, Suffix: PChar) : Boolean; StdCall; FUNCTION cmsNamedColorIndex(xform: cmsHTRANSFORM; Name: PChar): Integer; StdCall; // PostScript ColorRenderingDictionary and ColorSpaceArray FUNCTION cmsGetPostScriptCSA(hProfile: cmsHPROFILE ; Intent: Integer; Buffer: Pointer; dwBufferLen: DWord): DWord; StdCall; FUNCTION cmsGetPostScriptCRD(hProfile: cmsHPROFILE ; Intent: Integer; Buffer: Pointer; dwBufferLen: DWord): DWord; StdCall; FUNCTION cmsGetPostScriptCRDEx(hProfile: cmsHPROFILE ; Intent: Integer; dwFlags: DWord; Buffer: Pointer; dwBufferLen: DWord): DWord; StdCall; // Gamut check PROCEDURE cmsSetAlarmCodes(r, g, b: Integer); StdCall; PROCEDURE cmsGetAlarmCodes(VAR r, g, b: Integer); StdCall; // Error handling CONST LCMS_ERROR_ABORT = 0; LCMS_ERROR_SHOW = 1; LCMS_ERROR_IGNORE = 2; PROCEDURE cmsErrorAction(nAction: Integer); StdCall; PROCEDURE cmsSetErrorHandler(ErrorHandler: cmsErrorHandler); StdCall; // CGATS.13 parser FUNCTION cmsIT8Alloc: LCMSHANDLE; StdCall; PROCEDURE cmsIT8Free(hIT8: LCMSHANDLE); StdCall; // Tables FUNCTION cmsIT8TableCount(hIT8: LCMSHANDLE): Integer; StdCall; FUNCTION cmsIT8SetTable(hIT8: LCMSHANDLE; nTable: Integer): Integer; StdCall; // Persistence FUNCTION cmsIT8LoadFromFile(cFileName: PChar): LCMSHANDLE; StdCall; FUNCTION cmsIT8LoadFromMem(Ptr: Pointer; size :DWord): LCMSHANDLE; StdCall; FUNCTION cmsIT8SaveToFile(hIT8: LCMSHANDLE; cFileName: PChar): Boolean; StdCall; // Properties FUNCTION cmsIT8GetSheetType(hIT8: LCMSHANDLE): PChar; StdCall; FUNCTION cmsIT8SetSheetType(hIT8: LCMSHANDLE; TheType: PChar): Boolean; StdCall; FUNCTION cmsIT8SetComment(hIT8: LCMSHANDLE; cComment: PChar): Boolean; StdCall; FUNCTION cmsIT8SetPropertyStr(hIT8: LCMSHANDLE; cProp, Str: PChar): Boolean; StdCall; FUNCTION cmsIT8SetPropertyDbl(hIT8: LCMSHANDLE; cProp: PChar; Val: Double): Boolean; StdCall; FUNCTION cmsIT8SetPropertyHex(hIT8: LCMSHANDLE; cProp: PChar; Val: Integer): Boolean; StdCall; FUNCTION cmsIT8SetPropertyUncooked(hIT8: LCMSHANDLE; Key, Buffer: PChar): Boolean; StdCall; FUNCTION cmsIT8GetProperty(hIT8: LCMSHANDLE; cProp: PChar): PChar; StdCall; FUNCTION cmsIT8GetPropertyDbl(hIT8: LCMSHANDLE; cProp: PChar): Double; StdCall; FUNCTION cmsIT8EnumProperties(hIT8: LCMSHANDLE; var PropertyNames: LCMSARRAYOFPCHAR): Integer; StdCall; // Datasets FUNCTION cmsIT8GetDataRowCol(hIT8: LCMSHANDLE; row, col: Integer): PChar; StdCall; FUNCTION cmsIT8GetDataRowColDbl(hIT8: LCMSHANDLE; row, col: Integer): Double; StdCall; FUNCTION cmsIT8SetDataRowCol(hIT8: LCMSHANDLE; row, col: Integer; Val: PChar): Boolean; StdCall; FUNCTION cmsIT8SetDataRowColDbl(hIT8: LCMSHANDLE; row, col: Integer; Val: Double): Boolean; StdCall; FUNCTION cmsIT8GetData(hIT8: LCMSHANDLE; cPatch, cSample: PChar): PChar; StdCall; FUNCTION cmsIT8GetDataDbl(hIT8: LCMSHANDLE;cPatch, cSample: PChar): Double; StdCall; FUNCTION cmsIT8SetData(hIT8: LCMSHANDLE; cPatch, cSample, Val: PChar): Boolean; StdCall; FUNCTION cmsIT8SetDataDbl(hIT8: LCMSHANDLE; cPatch, cSample: PChar; Val: Double): Boolean; StdCall; FUNCTION cmsIT8SetDataFormat(hIT8: LCMSHANDLE; n: Integer; Sample: PChar): Boolean; StdCall; FUNCTION cmsIT8EnumDataFormat(hIT8: LCMSHANDLE; var SampleNames: LCMSARRAYOFPCHAR): Integer; StdCall; FUNCTION cmsIT8GetPatchName(hIT8: LCMSHANDLE; nPatch: Integer; Buffer: PChar): PChar; StdCall; // The LABEL extension FUNCTION cmsIT8SetTableByLabel(hIT8: LCMSHANDLE; cSet, cField, ExpectedType: PChar): Integer; StdCall; // Provided for compatibility with anterior revisions PROCEDURE cmsLabEncoded2Float(Lab: LPcmsCIELab; wLab: Pointer); StdCall; PROCEDURE cmsFloat2LabEncoded(wLab: Pointer; Lab: LPcmsCIELab); StdCall; PROCEDURE cmsXYZEncoded2Float(fxyz : LPcmsCIEXYZ; XYZ: Pointer); StdCall; PROCEDURE cmsFloat2XYZEncoded(XYZ: Pointer; fXYZ: LPcmsCIEXYZ); StdCall; FUNCTION _cmsAddTextTag(hProfile: cmsHPROFILE; sig: icTagSignature; Text: PChar): Boolean; StdCall; FUNCTION _cmsAddXYZTag(hProfile: cmsHPROFILE; sig: icTagSignature; XYZ: LPcmsCIEXYZ): Boolean; StdCall; FUNCTION _cmsAddLUTTag(hProfile: cmsHPROFILE; sig: icTagSignature; lut: PByte): Boolean; StdCall; IMPLEMENTATION // Helping functions to build format descriptors (C uses them as macros) FUNCTION COLORSPACE_SH(e: Integer):Integer; BEGIN COLORSPACE_SH := ((e) shl 16) END; FUNCTION SWAPFIRST_SH(e: Integer):Integer; BEGIN SWAPFIRST_SH := ((e) shl 13) END; FUNCTION FLAVOR_SH(e: Integer):Integer; BEGIN FLAVOR_SH := ((e) shl 13) END; FUNCTION PLANAR_SH(e: Integer):Integer; BEGIN PLANAR_SH := ((e) shl 12) END; FUNCTION ENDIAN16_SH(e: Integer):Integer; BEGIN ENDIAN16_SH := ((e) shl 11) END; FUNCTION DOSWAP_SH(e: Integer):Integer; BEGIN DOSWAP_SH := ((e) shl 10) END; FUNCTION EXTRA_SH(e: Integer):Integer; BEGIN EXTRA_SH := ((e) shl 7) END; FUNCTION CHANNELS_SH(c: Integer):Integer; BEGIN CHANNELS_SH := ((c) shl 3) END; FUNCTION BYTES_SH(b: Integer):Integer; BEGIN BYTES_SH := (b) END; CONST PT_ANY = 0; // Don't check colorspace // 1 & 2 are reserved PT_GRAY = 3; PT_RGB = 4; PT_CMY = 5; PT_CMYK = 6; PT_YCbCr = 7; PT_YUV = 8; // Lu'v' PT_XYZ = 9; PT_Lab = 10; PT_YUVK = 11; // Lu'v'K PT_HSV = 12; PT_HLS = 13; PT_Yxy = 14; FUNCTION cmsOpenProfileFromFile(ICCProfile : PChar; sAccess: PChar) : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsOpenProfileFromMem(MemPtr: Pointer; dwSize: DWord) : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsWhitePointFromTemp(TempK: Integer; WhitePoint: LPcmsCIExyY) : Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsBuildGamma(nEntries : Integer; Gamma: Double) : LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsAllocGamma(nEntries : Integer): LPGAMMATABLE; EXTERNAL 'lcms.dll'; PROCEDURE cmsFreeGamma(Gamma: LPGAMMATABLE); EXTERNAL 'lcms.dll'; PROCEDURE cmsFreeGammaTriple(Gamma: ARRAY OF LPGAMMATABLE); EXTERNAL 'lcms.dll'; FUNCTION cmsReverseGamma(nResultSamples : Integer; InGamma : LPGAMMATABLE): LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsBuildParametricGamma(nEntries: Integer; TheType: Integer; Params: array of Double) : LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsJoinGamma(InGamma, OutGamma : LPGAMMATABLE): LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsJoinGammaEx(InGamma, OutGamma: LPGAMMATABLE; nPoints: Integer): LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsSmoothGamma(Gamma: LPGAMMATABLE; SmoothingLambda: Double): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsDupGamma(Src: LPGAMMATABLE): LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsEstimateGamma(Src: LPGAMMATABLE): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsEstimateGammaEx(Src: LPGAMMATABLE; Thereshold: Double): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsReadICCGamma(hProfile: cmsHPROFILE; Sig: icTagSignature): LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsReadICCGammaReversed(hProfile: cmsHPROFILE; Sig: icTagSignature): LPGAMMATABLE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateRGBProfile( WhitePoint : LPcmsCIExyY; Primaries: LPcmsCIExyYTRIPLE; TransferFunction: ARRAY OF LPGAMMATABLE) : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateGrayProfile(WhitePoint: LPcmsCIExyY; TransferFunction: LPGAMMATABLE) : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateLinearizationDeviceLink(ColorSpace: icColorSpaceSignature; TransferFunction: ARRAY OF LPGAMMATABLE) : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateInkLimitingDeviceLink(ColorSpace: icColorSpaceSignature; Limit: Double) : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateNULLProfile : cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateLabProfile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateLab4Profile(WhitePoint: LPcmsCIExyY): cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateXYZProfile: cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreate_sRGBProfile: cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateBCHSWabstractProfile(nLUTPoints: Integer; Bright, Contrast, Hue, Saturation: Double; TempSrc, TempDest: Integer): cmsHPROFILE; EXTERNAL 'lcms.dll'; FUNCTION cmsCloseProfile( hProfile : cmsHPROFILE) : Boolean; EXTERNAL 'lcms.dll'; PROCEDURE cmsSetLanguage(LanguageCode: Integer; CountryCode: Integer); EXTERNAL 'lcms.dll'; FUNCTION cmsTakeMediaWhitePoint(Dest: LPcmsCIEXYZ; hProfile: cmsHPROFILE): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeMediaBlackPoint(Dest: LPcmsCIEXYZ; hProfile: cmsHPROFILE): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeIluminant(Dest: LPcmsCIEXYZ; hProfile: cmsHPROFILE): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeColorants(Dest: LPcmsCIEXYZTRIPLE; hProfile: cmsHPROFILE): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeHeaderFlags(hProfile: cmsHPROFILE): DWord; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeProductName(hProfile: cmsHPROFILE): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeProductDesc(hProfile: cmsHPROFILE): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeManufacturer(hProfile: cmsHPROFILE): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeModel(hProfile: cmsHPROFILE): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeCopyright(hProfile: cmsHPROFILE): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeProfileID(hProfile: cmsHPROFILE): PByte; EXTERNAL 'lcms.dll'; FUNCTION cmsIsTag(hProfile: cmsHPROFILE; sig: icTagSignature): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeRenderingIntent( hProfile: cmsHPROFILE): Integer; EXTERNAL 'lcms.dll'; FUNCTION cmsGetPCS(hProfile: cmsHPROFILE): icColorSpaceSignature; EXTERNAL 'lcms.dll'; FUNCTION cmsGetColorSpace(hProfile: cmsHPROFILE): icColorSpaceSignature; EXTERNAL 'lcms.dll'; FUNCTION cmsGetDeviceClass( hProfile: cmsHPROFILE): icProfileClassSignature; EXTERNAL 'lcms.dll'; FUNCTION cmsGetProfileICCversion( hProfile: cmsHPROFILE): DWord; EXTERNAL 'lcms.dll'; FUNCTION cmsTakeCharTargetData(hProfile: cmsHPROFILE; var Data: PChar; var len: Cardinal): Boolean; EXTERNAL 'lcms.dll'; FUNCTION _cmsICCcolorSpace(OurNotation: Integer) : icColorSpaceSignature; EXTERNAL 'lcms.dll'; FUNCTION _cmsLCMScolorSpace(ProfileSpace: icColorSpaceSignature): Integer; EXTERNAL 'lcms.dll'; FUNCTION _cmsChannelsOf(ColorSpace: icColorSpaceSignature): Integer; EXTERNAL 'lcms.dll'; PROCEDURE cmsSetDeviceClass(hProfile: cmsHPROFILE; sig: icProfileClassSignature ); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetColorSpace(hProfile: cmsHPROFILE; sig: icProfileClassSignature ); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetPCS(hProfile: cmsHPROFILE; pcs: icColorSpaceSignature); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetRenderingIntent(hProfile: cmsHPROFILE; Intent: Integer); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetHeaderFlags(hProfile: cmsHPROFILE; dwFlags: DWord); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetProfileID(hProfile: cmsHPROFILE; ProfileID: PByte); EXTERNAL 'lcms.dll'; FUNCTION cmsAddTag(hProfile: cmsHPROFILE; Sig: icTagSignature; Data: Pointer): Boolean; EXTERNAL 'lcms.dll'; FUNCTION _cmsSaveProfile(hProfile: cmsHPROFILE; FileName: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION _cmsSaveProfileToMem(hProfile: cmsHPROFILE; MemPtr: Pointer; var BytesNeeded: DWord): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIsIntentSupported(hProfile: cmsHPROFILE; Intent, UsedDirection : Integer): Integer; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateTransform(Input: cmsHPROFILE; InputFormat: DWORD; Output: cmsHPROFILE; OutputFormat: DWORD; Intent: Integer; dwFlags: DWord): cmsHTRANSFORM; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateProofingTransform(Input: cmsHPROFILE; InputFormat: DWORD; Output: cmsHPROFILE; OutputFormat: DWORD; Proofing: cmsHPROFILE; Intent: Integer; ProofingIntent: Integer; dwFlags: DWord): cmsHTRANSFORM; EXTERNAL 'lcms.dll'; FUNCTION cmsCreateMultiprofileTransform(hProfiles : ARRAY OF cmsHPROFILE; nProfiles : Integer; InputFormat: DWord; OutputFormat: DWord; Intent: Integer; dwFlags: DWord): cmsHTRANSFORM; EXTERNAL 'lcms.dll'; PROCEDURE cmsDeleteTransform( hTransform: cmsHTRANSFORM); EXTERNAL 'lcms.dll'; PROCEDURE cmsDoTransform( Transform: cmsHTRANSFORM; InputBuffer: Pointer; OutputBuffer: Pointer; Size: LongInt); EXTERNAL 'lcms.dll'; PROCEDURE cmsChangeBuffersFormat(hTransform: cmsHTRANSFORM; dwInputFormat, dwOutputFormat: DWord); EXTERNAL 'lcms.dll'; FUNCTION cmsTransform2DeviceLink(hTransform: cmsHTRANSFORM; dwFlags: DWord): cmsHPROFILE; EXTERNAL 'lcms.dll'; PROCEDURE _cmsSetLUTdepth(hProfile: cmsHPROFILE; depth: Integer); EXTERNAL 'lcms.dll'; FUNCTION cmsNamedColorCount(xform: cmsHTRANSFORM): Integer; EXTERNAL 'lcms.dll'; FUNCTION cmsNamedColorInfo(xform: cmsHTRANSFORM; nColor: Integer; Name, Prefix, Suffix: PChar) : Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsNamedColorIndex(xform: cmsHTRANSFORM; Name: PChar): Integer; EXTERNAL 'lcms.dll'; FUNCTION cmsGetPostScriptCSA(hProfile: cmsHPROFILE ; Intent: Integer; Buffer: Pointer; dwBufferLen: DWord): DWord; EXTERNAL 'lcms.dll'; FUNCTION cmsGetPostScriptCRD(hProfile: cmsHPROFILE ; Intent: Integer; Buffer: Pointer; dwBufferLen: DWord): DWord; EXTERNAL 'lcms.dll'; FUNCTION cmsGetPostScriptCRDEx(hProfile: cmsHPROFILE ; Intent: Integer; dwFlags: DWord; Buffer: Pointer; dwBufferLen: DWord): DWord; EXTERNAL 'lcms.dll'; FUNCTION cmsCIECAM97sInit(pVC : LPcmsViewingConditions ) : Pointer; EXTERNAL 'lcms.dll'; PROCEDURE cmsCIECAM97sDone(hModel : Pointer); EXTERNAL 'lcms.dll'; PROCEDURE cmsCIECAM97sForward(hModel: Pointer; pIn: LPcmsCIEXYZ; pOut: LPcmsJCh ); EXTERNAL 'lcms.dll'; PROCEDURE cmsCIECAM97sReverse(hModel: Pointer; pIn: LPcmsJCh; pOut: LPcmsCIEXYZ ); EXTERNAL 'lcms.dll'; // CIECAM02 FUNCTION cmsCIECAM02Init(pVC : LPcmsViewingConditions ) : Pointer; EXTERNAL 'lcms.dll'; PROCEDURE cmsCIECAM02Done(hModel : Pointer); EXTERNAL 'lcms.dll'; PROCEDURE cmsCIECAM02Forward(hModel: Pointer; pIn: LPcmsCIEXYZ; pOut: LPcmsJCh ); EXTERNAL 'lcms.dll'; PROCEDURE cmsCIECAM02Reverse(hModel: Pointer; pIn: LPcmsJCh; pOut: LPcmsCIEXYZ ); EXTERNAL 'lcms.dll'; // Utils PROCEDURE cmsXYZ2xyY(Dest: LPcmsCIExyY; Source: LPcmsCIEXYZ); EXTERNAL 'lcms.dll'; PROCEDURE cmsxyY2XYZ(Dest: LPcmsCIEXYZ; Source: LPcmsCIExyY); EXTERNAL 'lcms.dll'; PROCEDURE cmsXYZ2Lab(WhitePoint: LPcmsCIEXYZ; xyz: LPcmsCIEXYZ; Lab: LPcmsCIELab); EXTERNAL 'lcms.dll'; PROCEDURE cmsLab2XYZ(WhitePoint: LPcmsCIEXYZ; Lab: LPcmsCIELab; xyz: LPcmsCIEXYZ); EXTERNAL 'lcms.dll'; PROCEDURE cmsLab2LCh(LCh: LPcmsCIELCh; Lab: LPcmsCIELab); EXTERNAL 'lcms.dll'; PROCEDURE cmsLCh2Lab(Lab: LPcmsCIELab; LCh: LPcmsCIELCh); EXTERNAL 'lcms.dll'; // CIELab handling FUNCTION cmsDeltaE(Lab1, Lab2: LPcmsCIELab): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsCIE94DeltaE(Lab1, Lab2: LPcmsCIELab): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsBFDdeltaE(Lab1, Lab2: LPcmsCIELab): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsCMCdeltaE(Lab1, Lab2: LPcmsCIELab): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsCIE2000DeltaE(Lab1, Lab2: LPcmsCIELab; Kl, Kc, Kh: Double): Double; StdCall; EXTERNAL 'lcms.dll'; PROCEDURE cmsClampLab(Lab: LPcmsCIELab; amax, amin, bmax, bmin: Double); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetAlarmCodes(r, g, b: Integer); EXTERNAL 'lcms.dll'; PROCEDURE cmsGetAlarmCodes(VAR r, g, b: Integer); EXTERNAL 'lcms.dll'; PROCEDURE cmsErrorAction(nAction: Integer); EXTERNAL 'lcms.dll'; PROCEDURE cmsSetErrorHandler(ErrorHandler: cmsErrorHandler); EXTERNAL 'lcms.dll'; FUNCTION cmsIT8Alloc: LCMSHANDLE; EXTERNAL 'lcms.dll'; PROCEDURE cmsIT8Free(hIT8: LCMSHANDLE); EXTERNAL 'lcms.dll'; // Tables FUNCTION cmsIT8TableCount(hIT8: LCMSHANDLE): Integer; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetTable(hIT8: LCMSHANDLE; nTable: Integer): Integer; EXTERNAL 'lcms.dll'; // Persistence FUNCTION cmsIT8LoadFromFile(cFileName: PChar): LCMSHANDLE; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8LoadFromMem(Ptr: Pointer; size :DWord): LCMSHANDLE; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SaveToFile(hIT8: LCMSHANDLE; cFileName: PChar): Boolean; EXTERNAL 'lcms.dll'; // Properties FUNCTION cmsIT8GetSheetType(hIT8: LCMSHANDLE): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetSheetType(hIT8: LCMSHANDLE; TheType: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetComment(hIT8: LCMSHANDLE; cComment: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetPropertyStr(hIT8: LCMSHANDLE; cProp, Str: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetPropertyDbl(hIT8: LCMSHANDLE; cProp: PChar; Val: Double): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetPropertyHex(hIT8: LCMSHANDLE; cProp: PChar; Val: Integer): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetPropertyUncooked(hIT8: LCMSHANDLE; Key, Buffer: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8GetProperty(hIT8: LCMSHANDLE; cProp: PChar): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8GetPropertyDbl(hIT8: LCMSHANDLE; cProp: PChar): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8EnumProperties(hIT8: LCMSHANDLE; var PropertyNames: LCMSARRAYOFPCHAR): Integer; EXTERNAL 'lcms.dll'; // Datasets FUNCTION cmsIT8GetDataRowCol(hIT8: LCMSHANDLE; row, col: Integer): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8GetDataRowColDbl(hIT8: LCMSHANDLE; row, col: Integer): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetDataRowCol(hIT8: LCMSHANDLE; row, col: Integer; Val: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetDataRowColDbl(hIT8: LCMSHANDLE; row, col: Integer; Val: Double): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8GetData(hIT8: LCMSHANDLE; cPatch, cSample: PChar): PChar; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8GetDataDbl(hIT8: LCMSHANDLE;cPatch, cSample: PChar): Double; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetData(hIT8: LCMSHANDLE; cPatch, cSample, Val: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetDataDbl(hIT8: LCMSHANDLE; cPatch, cSample: PChar; Val: Double): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8SetDataFormat(hIT8: LCMSHANDLE; n: Integer; Sample: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8EnumDataFormat(hIT8: LCMSHANDLE; var SampleNames: LCMSARRAYOFPCHAR): Integer; EXTERNAL 'lcms.dll'; FUNCTION cmsIT8GetPatchName(hIT8: LCMSHANDLE; nPatch: Integer; Buffer: PChar): PChar; EXTERNAL 'lcms.dll'; // The LABEL extension FUNCTION cmsIT8SetTableByLabel(hIT8: LCMSHANDLE; cSet, cField, ExpectedType: PChar): Integer; EXTERNAL 'lcms.dll'; PROCEDURE cmsLabEncoded2Float(Lab: LPcmsCIELab; wLab: Pointer); EXTERNAL 'lcms.dll'; PROCEDURE cmsFloat2LabEncoded(wLab: Pointer; Lab: LPcmsCIELab); EXTERNAL 'lcms.dll'; PROCEDURE cmsXYZEncoded2Float(fxyz : LPcmsCIEXYZ; XYZ: Pointer); EXTERNAL 'lcms.dll'; PROCEDURE cmsFloat2XYZEncoded(XYZ: Pointer; fXYZ: LPcmsCIEXYZ); EXTERNAL 'lcms.dll'; FUNCTION _cmsAddTextTag(hProfile: cmsHPROFILE; sig: icTagSignature; Text: PChar): Boolean; EXTERNAL 'lcms.dll'; FUNCTION _cmsAddXYZTag(hProfile: cmsHPROFILE; sig: icTagSignature; XYZ: LPcmsCIEXYZ): Boolean; EXTERNAL 'lcms.dll'; FUNCTION _cmsAddLUTTag(hProfile: cmsHPROFILE; sig: icTagSignature; lut: PByte): Boolean; EXTERNAL 'lcms.dll'; END. lcms-1.19/Delphi/Samples/0000777000175300010010000000000011230104762014456 5ustar MartiNingunolcms-1.19/Delphi/Samples/create.pas0000777000175300010010000000327307622513052016444 0ustar MartiNinguno PROGRAM CreateProfile; USES lcmsdll, Windows; VAR Primaries: cmsCIExyYTRIPLE; WhitePoint: cmsCIExyY; GammaTables: ARRAY [1..3] OF LPGAMMATABLE; TheProfile: cmsHPROFILE; BEGIN WriteLn('Creation of profile TEST.ICM...'); {Fill in primaries (Rec709 as example) } Primaries.Red.x := 0.6400; Primaries.Red.y := 0.3300; Primaries.Red.YY := 1.0; Primaries.Green.x := 0.3000; Primaries.Green.y := 0.6000; Primaries.Green.YY := 1.0; Primaries.Blue.x := 0.1500; Primaries.Blue.y := 0.0600; Primaries.Blue.YY := 1.0; {Calculates white point from temperature} {That is, 6504§K = D65 } cmsWhitePointFromTemp(6504, @WhitePoint); { Compute gamma tables of 2.2 } GammaTables[1] := cmsBuildGamma(256, 2.2); GammaTables[2] := cmsBuildGamma(256, 2.2); GammaTables[3] := cmsBuildGamma(256, 2.2); { Does create the profile } TheProfile := cmsCreateRGBProfile(@WhitePoint, @Primaries, GammaTables); _cmsAddTextTag(TheProfile, $63707274, 'copyright (c) you'); _cmsAddTextTag(TheProfile, $646D6E64, 'Manufacturer'); _cmsAddTextTag(TheProfile, $646D6464, 'Model'); { Save the profile to a file } _cmsSaveProfile(TheProfile, 'TEST.ICM'); WriteLn('Profile saved'); { Free the gamma tables } cmsFreeGamma(GammaTables[1]); cmsFreeGamma(GammaTables[2]); cmsFreeGamma(GammaTables[3]); { And close the handle } cmsCloseProfile(TheProfile) END. lcms-1.19/Delphi/Samples/gamutchk.pas0000777000175300010010000000235207622514170017003 0ustar MartiNingunoPROGRAM GamutChk; USES lcmsdll, Windows; VAR hLabProfile, hDisplayProfile, hProof: cmsHPROFILE; ProofTransform : cmsHTRANSFORM; Lab: cmsCIELab; wRGB: ARRAY [0..2] OF Byte; BEGIN WriteLn('Gamut check test'); hLabProfile := cmsCreateLabProfile(NIL); hDisplayProfile := cmsCreate_sRGBProfile(); hProof := cmsOpenProfileFromFile('test.icm', 'r'); ProofTransform:=cmsCreateProofingTransform(hLabProfile, TYPE_Lab_DBL, hDisplayProfile, TYPE_RGB_8, hProof, INTENT_RELATIVE_COLORIMETRIC, INTENT_ABSOLUTE_COLORIMETRIC, cmsFLAGS_SOFTPROOFING OR cmsFLAGS_GAMUTCHECK OR cmsFLAGS_NOTPRECALC); cmsSetAlarmCodes(255,255,255); Write('L=?'); ReadLn(Lab.L); Write('a=?'); ReadLn(Lab.a); Write('b=?'); ReadLn(Lab.b); cmsDoTransform(ProofTransform, @Lab, @wRGB, 1); WriteLn('R=', wRGB[0], ' G=', wRGB[1], ' B=', wRGB[2]); cmsCloseProfile(hLabProfile); cmsCloseProfile(hDisplayProfile); cmsCloseProfile(hProof); cmsDeleteTransform(ProofTransform); END. lcms-1.19/Delphi/Samples/getxyz.pas0000777000175300010010000000275607622514412016541 0ustar MartiNingunoprogram TestXYZ; uses lcmsdll; type TRGB8 = Packed record r, g, b : Byte END; var InputProfile, OutputProfile : cmsHPROFILE; Transform: cmsHTRANSFORM; RGB8: TRGB8; XYZ: cmsCIEXYZ; begin InputProfile := cmsOpenProfileFromFile('profile.icm','r'); OutputProfile := cmsCreateXYZProfile(); Transform := cmsCreateTransform(InputProfile, TYPE_RGB_8, OutputProfile, TYPE_XYZ_DBL, INTENT_ABSOLUTE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); WriteLn('Enter RGB (0-255) or all 0 to end'); REPEAT Write('R?'); ReadLn(RGB8.r); Write('G?'); ReadLn(RGB8.g); Write('B?'); ReadLn(RGB8.b); cmsDoTransform(Transform, @RGB8, @XYZ, 1); {Transport to radiance} XYZ.X := XYZ.X * 100.; XYZ.Y := XYZ.Y * 100.; XYZ.Z := XYZ.Z * 100.; WriteLn; WriteLn('XYZ (as viewed on D50 box)'); Write('X='); WriteLn(XYZ.X:3:2); Write('Y='); WriteLn(XYZ.Y:3:2); Write('Z='); WriteLn(XYZ.Z:3:2); UNTIL ((RGB8.r = 0) and (RGB8.g = 0) and (RGB8.b = 0)); cmsDeleteTransform(Transform); cmsCloseProfile(InputProfile); cmsCloseProfile(OutputProfile) END. lcms-1.19/Delphi/Samples/MAKETEST.BAT0000777000175300010010000000006307343461306016237 0ustar MartiNingunodcc32 -CC test if errorlevel 0 dcc32 -CC testwp lcms-1.19/Delphi/Samples/sRGB Color Space Profile.icm0000777000175300010010000000611007026025600021403 0ustar MartiNinguno HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿlcms-1.19/Delphi/Samples/TEST.PAS0000777000175300010010000000360710303640716015617 0ustar MartiNinguno PROGRAM LcmsTest; USES lcmsdll, Windows; TYPE ScanLineType = Array[0..255] OF PACKED RECORD b, g, r: Byte; END; VAR hInProfile, hOutProfile: cmsHPROFILE; hTransform: cmsHTRANSFORM; ScanLine, ScanLineTranslated: ScanLineType; r, g, b: Integer; BEGIN hInProfile := cmsOpenProfileFromFile('HPSJTW.ICM', 'r'); hOutProfile := cmsOpenProfileFromFile('sRGB Color Space Profile.ICM', 'r'); WriteLn('Input profile : ', cmsTakeProductName(hInProfile)); WriteLn('Output profile : ', cmsTakeProductName(hOutProfile)); hTransform := cmsCreateTransform(hInProfile, TYPE_BGR_8, hOutProfile, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); WriteLn('As speed test, I will transform all spectrum...'); WriteLn('This implies an image of 255x255x255x3 = 47 MB!!!'); WriteLn('Each number represents a chunk 255x255x3 = 190.5 Kb! processed'); FOR r := 0 TO 255 DO BEGIN FOR g := 0 TO 255 DO BEGIN FOR b := 0 TO 255 DO BEGIN ScanLine[b].r := r; ScanLine[b].g := g; ScanLine[b].b := b; END; cmsDoTransform(hTransform, @ScanLine, @ScanLineTranslated, 255) END; Write(r:4, #$0d) END; WriteLn; WriteLn('Done!!!'); cmsDeleteTransform(hTransform); cmsCloseProfile(hInProfile); cmsCloseProfile(hOutProfile); END. lcms-1.19/Delphi/Samples/testfrm.pas0000777000175300010010000000443107622515472016672 0ustar MartiNingunoprogram TestFormatting; uses lcmsdll; type RGB16 = Packed record r, g, b : Word END; var InputProfile, OutputProfile : cmsHPROFILE; Transform1, Transform2: cmsHTRANSFORM; InRGB16, OutRGB16: RGB16; OutLab: cmsCIELab; procedure Mult257(var n: Word); begin n := n * 257 end; function Div257(n: Word) : Real; begin Div257 := n / 257. end; begin InputProfile := cmsCreate_sRGBProfile(); OutputProfile := cmsCreateLabProfile(NIL); Transform1 := cmsCreateTransform(InputProfile, TYPE_RGB_16, OutputProfile, TYPE_Lab_DBL, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC); Transform2 := cmsCreateTransform(OutputProfile, TYPE_Lab_DBL, InputProfile, TYPE_RGB_16, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC); REPEAT Write('R?'); ReadLn(InRGB16.r); Write('G?'); ReadLn(InRGB16.g); Write('B?'); ReadLn(InRGB16.b); { Expand to 16 bits } Mult257(InRGB16.r); Mult257(InRGB16.g); Mult257(InRGB16.b); { Forward } cmsDoTransform(Transform1, @InRGB16, @OutLab, 1); Write('L*='); WriteLn(OutLab.L:3:2); Write('a*='); WriteLn(OutLab.a:3:2); Write('b*='); WriteLn(OutLab.b:3:2); { Backwards } cmsDoTransform(Transform2, @OutLab, @OutRGB16, 1); Write('R='); WriteLn(Div257(OutRGB16.R) :3:2); Write('G='); WriteLn(Div257(OutRGB16.G) :3:2); Write('B='); WriteLn(Div257(OutRGB16.B) :3:2); UNTIL ((InRGB16.r = 0) and (InRGB16.g = 0) and (InRGB16.b = 0)); cmsDeleteTransform(Transform1); cmsDeleteTransform(Transform2); cmsCloseProfile(InputProfile); cmsCloseProfile(OutputProfile) END. lcms-1.19/Delphi/Samples/testwp.pas0000777000175300010010000000420307622515564016533 0ustar MartiNingunoprogram TestWhitePoint; uses lcmsdll; type RGB8 = Packed record r, g, b : Byte END; CMYK8 = Packed record c, m, y, k: Byte end; var WhitePoint: cmsCIExyY; Primaries: cmsCIExyYTRIPLE; Gamma: Array [1..3] OF LPGAMMATABLE; InputProfile, OutputProfile : cmsHPROFILE; Transform: cmsHTRANSFORM; InRGB8: RGB8; OutCMYK8: CMYK8; begin cmsWhitePointFromTemp(9300, @WhitePoint); Primaries.Red.x := 0.67; Primaries.Red.y := 0.33; Primaries.Red.YY := 1.0; Primaries.Green.x := 0.21; Primaries.Green.y := 0.71; Primaries.Green.YY := 1.0; Primaries.Blue.x := 0.14; Primaries.Blue.y := 0.08; Primaries.Blue.YY := 1.0; Gamma[1] := cmsBuildGamma(256, 2.0); Gamma[2] := cmsBuildGamma(256, 2.0); Gamma[3] := cmsBuildGamma(256, 2.0); InputProfile := cmsCreateRGBProfile(@WhitePoint, @Primaries, Gamma); OutputProfile := cmsOpenProfileFromFile('CMYK.icm', 'r'); WriteLn('Input profile : ', cmsTakeProductName(InputProfile)); WriteLn('Output profile : ', cmsTakeProductName(OutputProfile)); Transform := cmsCreateTransform(InputProfile, TYPE_RGB_8, OutputProfile, TYPE_CMYK_8, INTENT_PERCEPTUAL, 0); REPEAT Write('R?'); ReadLn(InRGB8.r); Write('G?'); ReadLn(InRGB8.g); Write('B?'); ReadLn(InRGB8.b); cmsDoTransform(Transform, @InRGB8, @OutCMYK8, 1); Write('C='); WriteLn(OutCMYK8.c); Write('M='); WriteLn(OutCMYK8.m); Write('Y='); WriteLn(OutCMYK8.y); Write('K='); WriteLn(OutCMYK8.k); UNTIL ((InRGB8.r = 0) and (InRGB8.g = 0) and (InRGB8.b = 0)); cmsDeleteTransform(Transform); cmsCloseProfile(InputProfile); cmsCloseProfile(OutputProfile) END. lcms-1.19/depcomp0000777000175300010010000003554511272606371013247 0ustar MartiNinguno#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2004-05-31.23 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # 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, 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. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # Dependencies are output in .lo.d with libtool 1.4. # With libtool 1.5 they are output both in $dir.libs/$base.o.d # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the # latter, because the former will be cleaned when $dir.libs is # erased. tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir$base.o.d" tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" else tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lcms-1.19/doc/0000777000175300010010000000000011272606372012424 5ustar MartiNingunolcms-1.19/doc/LCMSAPI.TXT0000777000175300010010000026306411272606371014132 0ustar MartiNinguno little cms Engine 1.19 API Definition by Marti Maria --------------------------------------------------- Index ----- 0 - Compilation toggles 1 - Profile & Transform functions 2 - Information functions 3 - On-the-fly profile creation functions 4 - Build-In profiles 5 - White point 6 - Gamma handling 7 - Error handling 8 - Conversion functions 9 - CIECAM97s/CIECAM02 10 - Profile creation functions 11 - LUT manipultation 12 - Named color functions 13 - PostScript 14 - CGATS.13 - 200 0 - Compilation toggles _________________________________ Generally, there is no need to touch anything. Comment/uncomment if the testbet hints to do so. Optimization mode. USE_ASSEMBLER Is fastest by far, but it is limited to Pentium. USE_FLOAT are the generic floating-point routines. USE_C should work on virtually any machine. Define this if you are using this package as a DLL (windows only) LCMS_DLL Define this if you are compiling using this package as a DLL (windows only) LCMS_DLL_BUILD Uncomment if you are trying the engine in a non-windows environment like linux, SGI, VAX, FreeBSD, BeOS, etc. NON_WINDOWS Uncomment this one if you are using big endian machines (only meaningful when NON_WINDOWS is used) USE_BIG_ENDIAN Uncomment this one if your compiler/machine does support the "long long" type This will speedup fixed point math. (USE_C only) USE_INT64 Some machines does not have a reliable 'swab' function. Usually leave commented unless the testbed diagnoses the contrary. USE_CUSTOM_SWAB Uncomment this if your compiler supports inline USE_INLINE Uncomment this if your compiler doesn't work with fast floor function USE_DEFAULT_FLOOR_CONVERSION Define this one if you are using windows.h in a non-windows environment LCMS_WIN_TYPES_ALREADY_DEFINED Define this one if you want lcms.h just defining public API LCMS_APIONLY 1 - Profile & Transform functions _________________________________ These are the basic functions on making transformations. For simpler operation, you must open two profiles using cmsOpenProfileFromFile(), then create a transform with these opened profiles with cmsCreateTransform(). Using this transform you can color correct your bitmaps by cmsDoTransform(). When you are done you must free the transform AND the profiles by cmsDeleteTransform() and cmsCloseProfile(). _________________________________________________________________________________ cmsHPROFILE cmsOpenProfileFromFile(const char *ICCProfile, const char *sAccess); _________________________________________________________________________________ Opens a profile returning a handle to it. The profile must be contained in a file on disk. Parameters: ICCProfile: File name w/ full path. sAccess: "r" for normal operation, "w" for profile creation Returns: NULL on error, a profile handle on success. Example: void GetProductNameOf(const char *ICMProfileFile) { cmsHPROFILE hProfile hProfile = cmsOpenProfileFromFile(ICMProfileFile, "r"); if (hProfile == NULL) printf("Error!"); else { printf("%s\n", cmsGetProductName(hProfile)); cmsCloseProfile(hProfile); } } _________________________________________________________________________________ cmsHPROFILE cmsOpenProfileFromMem(LPVOID MemPtr, DWORD dwSize); _________________________________________________________________________________ Same as anterior, but profile is contained in memory. Usefull for embedded profiles. MemPtr must point to a buffer of at least dwSize bytes. This buffer must hold a full profile image. Memory must be contiguous. Parameters: MemPtr: Points to a block of contiguous memory containing the profile dwSize: Profile's size measured in bytes. Returns: NULL on error, a profile handle on success. _________________________________________________________________________________ LCMSBOOL cmsCloseProfile(cmsHPROFILE hProfile); _________________________________________________________________________________ Closes a profile handle and frees associated memory. Note that cmsDeleteTransform() does NOT close the involved profiles. You must close any opened profile handle on cleanup. Parameters: hProfile: Handle to an open profile Returns: FALSE on error, TRUE on success Comments: Can return error when creating profile if the profile is not properly flushed to disk. _________________________________________________________________________________ cmsHTRANSFORM cmsCreateTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, int Intent, DWORD dwFlags); . _________________________________________________________________________________ Creates a transform for translating bitmaps. Parameters: Input, Output: Input, Output profile handles Input, Output format: This value describes how values are to be coded. It is formed by a combination of channels, bitdepths andextra samples. See below. for example: TYPE_BGR_8 : 3 channels of 8 bits, using Windows convention TYPE_RGB_8 : 3 channels of 8 bits per component TYPE_RGB_16 : 3 channels of 16 bits per component TYPE_RGBA_8 : 4 channels, 3 containing RGB of 8 bpc, and one channel of 8 bits holding alpha ... Note than even some Lab and XYZ are defined, these specifiers has nothing to do with colorspaces, but only how data is encoded. The CMM will only check for same colorspace as profile. Intent: The ICC intent to apply. If an appropiate tag for this intent is not found, no error is raised and the intent is reverted to perceptual. See the tutorial for a explanation of intents. INTENT_PERCEPTUAL 0 INTENT_RELATIVE_COLORIMETRIC 1 INTENT_SATURATION 2 INTENT_ABSOLUTE_COLORIMETRIC 3 dwFlags: This value commands on how to handle the whole process. Some or none of this values can be joined via the or | operator. cmsFLAGS_MATRIXINPUT: CLUT ignored on input profile, matrix-shaper used instead (for speed, and debugging purposes) cmsFLAGS_MATRIXOUTPUT: Same as anterior, but for output profile only. cmsFLAGS_MATRIXONLY: Both input and output are forced to matrix-shaper. cmsFLAGS_NOTPRECALC: By default, lcms smelt luts into a device-link CLUT. This speedup whole transform greatly. If you don't wanna this, and wish every value to be translated to PCS and back to output space, include this flag. cmsFLAGS_NULLTRANFORM: Don't transform anyway, only apply pack/unpack routines (usefull to deactivate color correction but keep formatting capabilities) cmsFLAGS_HIGHRESPRECALC: Use 48 points instead of 33 for device-link CLUT precalculation. Not needed but for the most extreme cases of mismatch of "impedance" between profiles. cmsFLAGS_LOWRESPRECALC: Use lower resolution table. cmsFLAGS_GRIDPOINTS(n): You can specify the desired number of gridpoints in devicelink by using this macro in the flags. cmsFLAGS_BLACKPOINTCOMPENSATION: Use BPC algorithm. cmsFLAGS_PRESERVEBLACK: Preserve K channel on CMYK -> CMYK transforms cmsFLAGS_NOTCACHE: Inhibit the 1-pixel built-in cache cmsFLAGS_NOWHITEONWHITEFIXUP: Do NOT fix white-on-white broken profiles cmsFLAGS_NOPRELINEARIZATION: Do NOT use prelinearization tables Returns: NULL on error, a transform handle on success. Comments: This function tries to build a device link profile using the Input and Output profiles. This small time-consuming penalty (3 sec. on a Pentium-100) does accelerate the bitmap transform process greately. You can override this behaviour if you wish, or if you plan to transform only a couple of pixels by using cmsFLAGS_NOTPRECALC on dwFlags parameter. But normally it will be better leave this flag alone. Also, in this function is where you must specify the format of the input and output bitmaps. The InputFormat and OutputFormat parameters are formed by combining several bits: // Format of pixel is defined by one integer, using bits as follows // // TTTTT - Y F P X S EEE CCCC BBB // // T: Pixeltype // F: Flavor 0=MinIsBlack(Chocolate) 1=MinIsWhite(Vanilla) // P: Planar? 0=Chunky, 1=Planar // X: swap 16 bps endianess? // S: Do swap? ie, BGR, KYMC // E: Extra samples // C: Channels (Samples per pixel) // B: Bytes per sample // Y: Swap first - changes ABGR to BGRA and KCMY to CMYK // -: Unused (reserved) lcms.h does include several predefined specifiers, as examples: TYPE_RGB_8 8 bits per sample RGB TYPE_BGR_8 8 bits per sample BGR (Windows Bitmaps are often coded in this way) TYPE_RGB_16 16 bits per sample RGB TYPE_RGBA_8 8 bits per sample RGB plus alpha channel. Alpha is ignored by lcms. TYPE_RGBA_16 16 bits per sample RGB plus alpha. TYPE_XYZ_16 16 bits fixed 15.16 XYZ (used in PCS) TYPE_Lab_8 8 bits per sample Lab TYPE_Lab_16 16 bits per sample Lab TYPE_CMY_8 8 bits per sample CMY TYPE_CMY_16 16 bits per sample CMY TYPE_CMYK_8 8 bits per sample CMYK TYPE_CMYK_16 16 bits per sample CMY You can build your own specifiers if you wish by combining the following macros with the bitwise OR operator | DOSWAP_SH(e) 1 or 0 depending on swap even channels EXTRA_SH(e) up to 7 extra channels CHANNELS_SH(c) up to 4 handled channels BYTES_SH(b) 1 if 16 bits per sample, 0 if 8 bits per sample ENDIAN16_SH(e) 1 if 16 bits samples comes swapped. SWAPFIRST_SH(s) 1 changes ABGR to BGRA and KCMY to CMYK FLAVOR_SH(s) 0 = BlackIsZero (Chocolate) 1=WhiteIsZero (Vanilla, Negative) PLANAR_SH(p) 0 = Chunky, 1=Planar COLORSPACE_SH(s) Available Colorspaces ===================== PT_ANY Don't check colorspace 1 & 2 are reserved PT_GRAY PT_RGB PT_CMY PT_CMYK PT_YCbCr PT_YUV PT_XYZ PT_Lab PT_YUVK PT_HSV PT_HLS PT_Yxy See the lcms.h for more information on how to build format specifiers. _________________________________________________________________________________ cmsHTRANSFORM cdecl cmsCreateProofingTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, cmsHPROFILE Proofing, int Intent, int ProofingIntent, DWORD dwFlags); _________________________________________________________________________________ Same as cmsCreateTransform(), but including soft-proofing. The obtained transform emulates the device described by the "Proofing" profile. Useful to preview final result whithout rendering to physical medium. Parameters and returns same as anterior, but with the addition of Proofing: a handle to proofing profile. ProofingIntent: Is the intent for translating emulated colors. Default is INTENT_ABSOLUTE_COLORIMETRIC. dwFlags: cmsFLAGS_GAMUTCHECK: Color out of gamut are flagged to a fixed color defined by the function cmsSetAlarmCodes(int r, int g, int b); cmsFLAGS_SOFTPROOFING: (Does need preview tag to work) does emulate the Proofing device. You need to add a combination of these flags to enable any proof! _________________________________________________________________________________ cmsHTRANSFORM cmsCreateMultiprofileTransform(cmsHPROFILE hProfiles[], int nProfiles, DWORD InputFormat, DWORD OutputFormat, int Intent, DWORD dwFlags); _________________________________________________________________________________ User passes in an array of handles to open profiles. The returned handle does "smelt" all profiles in only one devicelink. Following rules should be followed: - Colorspaces must be paired with the exception of Lab/XYZ, that can be interchanged. - Profile must be Matrix-shaper, or hold the apropiate tag, device-to-pcs or pcs-to-device on depending on profile location. - All colorspaces up to 4 (significant) channels can be used anywhere on the chain, Hexachrome separation or more can only appair at last step. This limitation is intended to be solved in future releases. Let's take as example, how to apply a abstract profile into a SRGB image. The chain would be sRGB -> Abstract -> sRGB. So, we would open sRGB and the abstract profile, and fill the array Profiles[0] = hsRGB; Profiles[1] = hAbstract; Profiles[2] = hsRGB; cmsCreateMultiprofileTransform(Profiles, 3, TYPE_RGB_8, TYPE_RGB_8, INTENT_PERCEPTUAL, 0); WARNING: he dE rises with the number of profiles. This can be used, for example, with abstract profiles. For example, abstract profiles can be applied into a typical profile-to-profile color flow to model viewing conditions. Once created, the transform will behave just like any other. _________________________________________________________________________________ void cmsDeleteTransform(cmsHTRANSFORM hTransform); _________________________________________________________________________________ Closes a transform handle and frees associated memory. Parameters: hTransform: The transform handle to be deleted. Comments: This function does NOT free any profiles associated with the transform. Is programmer's responsability to free them. _________________________________________________________________________________ void cmsDoTransform(cmsHTRANSFORM hTransform, LPVOID InputBuffer, LPVOID OutputBuffer, unsigned int Size); _________________________________________________________________________________ This function translates bitmaps according of transform. Format of buffers is described by InputFormat and OutputFormat parameters in function cmsCreateTransform() or cmsCreateProofingTransform() Parameters: hTransform: A handle to a transform describing the translation. InputBuffer: A pointer to a input bitmap OutputBuffer: A pointer to a output bitmap. Size: the number of PIXELS to be transformed. Comments: Windows, stores the bitmaps in a particular way... for speed purposes, does align the scanlines to doubleword boundaries, so a bitmap has in windows always a size multiple of 4. This is ok, since no matter if you waste a couple of bytes, but if you call cmsDoTransform() and passes it WHOLE image, lcms doesn't know nothing about this extra padding bytes. So, it assumes that you are passing a block of BGR triplets with no alignment at all. This result in a strange looking "lines" in obtained bitmap. The solution most evident is to convert scanline by scanline instead of whole image. This is as easy as to add a for() loop, and the time penalty is so low that is impossible to detect. _________________________________________________________________________________ void cmsChangeBuffersFormat(cmsHTRANSFORM hTransform, DWORD dwInputFormat, DWORD dwOutputFormat) _________________________________________________________________________________ This function does change the encoding of buffers in a yet-existing transform. Parameters: hTransform: A handle to the transform. Input, Output format: This value describes how values are to be coded. It is formed by a combination of channels, bitdepths andextra samples. See cmsCreateTransform for more info. Notes: Colorspace is *not* checked _________________________________________________________________________________ cmsHPROFILE cmsTransform2DeviceLink(cmsHTRANSFORM hTransform, DWORD dwFlags); _________________________________________________________________________________ Generates a device-link profile from a transform. This profile can then be used by any other function accepting profile handle, or be saved on disk by _cmsSaveProfile(). See icclink.c for a sample. Parameters: hTransform: A handle to the transform. Flags: cmsFLAGS_GUESSDEVICECLASS: Mark the profile profile class "guessing" from input & output colorspaces. cmsFLAGS_HIGHRESPRECALC: Use 48 points instead of 33 for device-link CLUT precalculation. Not needed but for the most extreme cases of mismatch of "impedance" between profiles. cmsFLAGS_LOWRESPRECALC: Use lower resolution table. cmsFLAGS_GRIDPOINTS(n): You can specify the desired number of gridpoints in devicelink by using this macro in the flags. cmsFLAGS_BLACKPOINTCOMPENSATION: Use BPC algorithm. cmsFLAGS_PRESERVEBLACK: Preserve K channel on CMYK -> CMYK transforms cmsFLAGS_NOTCACHE: Inhibit the 1-pixel built-in cache cmsFLAGS_NOWHITEONWHITEFIXUP: Do NOT fix white-on-white broken profiles cmsFLAGS_NOPRELINEARIZATION: Do NOT use prelinearization tables 2 - Information functions _________________________________________________________________________________ These functions are intended for identify profiles. Its main use if for building user interfaces. _________________________________________________________________________________ void cmsSetLanguage(int LanguageCode, int CountryCode); _________________________________________________________________________________ This function applies only to v4 profiles, which may have multilocalized strings for information functions. Using cmsSetLanguage(), you set the preferred language and country in what you want the information. All strings are searched for an exact match of language and country. In none found, then another search is done for same language, ignoring country. If no matching is found, the first string in table is returned. Parameters: LanguageCode: first name language code from ISO-639. http://lcweb.loc.gov/standards/iso639-2/iso639jac.html CountryCode: first name region code from ISO-3166. http://www.iso.ch/iso/en/prods-services/iso3166ma/index.html _________________________________________________________________________________ const char* cmsTakeProductName(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns a pointer to a string containing the product name. The string is holded in a static buffer that is overwritten in every call to this function. Parameters: hProfile: Handle to an open profile _________________________________________________________________________________ const char* cmsTakeProductDesc(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns a pointer to a string containing the product Description. The string is holded in a static buffer that is overwritten in every call to this function. Parameters: hProfile: Handle to an open profile Returns: Product description in a static buffer overwritten in each call to this function. _________________________________________________________________________________ const char* cmsTakeProductInfo(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns a pointer to a string containing additional info about hProfile. The string is holded in a static buffer overwritten in each call to this function. Parameters: hProfile: Handle to an open profile Returns: Product info in a static buffer overwritten in each call to this function. _________________________________________________________________________________ const char* cmsTakeManufacturer(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns a pointer to a string containing uncooked info about manufacturer. The string is holded in a static buffer overwritten in each call to this function. Parameters: hProfile: Handle to an open profile Returns: Manufacturer in a static buffer overwritten in each call to this function. _________________________________________________________________________________ const char* cmsTakeModel(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns a pointer to a string containing uncooked info about model. The string is holded in a static buffer overwritten in each call to this function. Parameters: hProfile: Handle to an open profile Returns: Model description in a static buffer overwritten in each call to this function. _________________________________________________________________________________ const char* cmsTakeCopyright(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns a pointer to a string containing uncooked info about copyright. The string is holded in a static buffer overwritten in each call to this function. Parameters: hProfile: Handle to an open profile Returns: Copyright info in a static buffer overwritten in each call to this function. _________________________________________________________________________________ icColorSpaceSignature cmsGetPCS(cmsHPROFILE hProfile) _________________________________________________________________________________ This function returns the PCS used by the hProfile, using the ICC convention. Parameters: hProfile: Handle to an open profile Returns: The PCS of the profile _________________________________________________________________________________ icColorSpaceSignature cmsGetColorSpace(cmsHPROFILE hProfile) _________________________________________________________________________________ This function returns the Color space used by the hProfile, using the ICC convention. Parameters: hProfile: Handle to an open profile Returns: The color space of the profile _________________________________________________________________________________ DWORD cmsGetProfileICCversion(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns the ICC version as stated in the header of the profile. Examples: V2 profiles: 0x2000000 V4 profiles: 0x4000000 Parameters: hProfile: Handle to an open profile Returns: The profile version stamp _________________________________________________________________________________ icProfileClassSignature cmsGetDeviceClass(cmsHPROFILE hProfile) _________________________________________________________________________________ This function returns the Device class of hProfile, using the ICC convention. Parameters: hProfile: Handle to an open profile Returns: The device class of the profile _________________________________________________________________________________ LCMSBOOL cmsTakeMediaWhitePoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); _________________________________________________________________________________ This function takes the white point of hProfile. Parameters: Dest: a pointer to an cmsCIEXYZ struct that will hold the media white point hProfile: Handle to an open profile Returns: FALSE on error, TRUE on success _________________________________________________________________________________ LCMSBOOL cmsTakeMediaBlackPoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); _________________________________________________________________________________ This function takes the contents of black point tag of hProfile if present. Parameters: Dest: a pointer to an cmsCIEXYZ struct that will hold the media black point. hProfile: Handle to an open profile Returns: FALSE on error, TRUE on success NOTES: Most profiles have garbage in this tag, for a suitable black point detection use cmsDetectBlackPoint() instead. _________________________________________________________________________________ LCMSBOOL cmsTakeIluminant(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); _________________________________________________________________________________ This function takes the value of PCS illuminant of hProfile. Parameters: hProfile: Handle to an open profile Dest: a pointer to an cmsCIEXYZ struct that will hold the illuminant white point Returns: FALSE on error, TRUE on success Notes: ICC states that profile illuminants MUST be D50. However, in real world, each manufacturer uses an illuminant value that differs slightly of D50. lcms forces it to D50 to prevent errors. _________________________________________________________________________________ LCMSBOOL cmsTakeColorants(LPcmsCIEXYZTRIPLE Dest, cmsHPROFILE hProfile); _________________________________________________________________________________ This function takes the value of colorant matrix of hProfile if present. Parameters: hProfile: Handle to an open profile Dest: a pointer to an cmsCIEXYZ struct that will hold the illuminant white point Returns: FALSE on error, TRUE on success Notes: Some profiles includes colorants even if a CLUT is already present. Often this colorants are private values, or a way to allow the profile operate in reverse direction. _________________________________________________________________________________ icInt32Number cmsGetTagCount(cmsHPROFILE hProfile); _________________________________________________________________________________ Return number of tags contained in a profile Parameters: hProfile: Handle to an open profile Returns: Number of tags _________________________________________________________________________________ icTagSignature cmsGetTagSignature(cmsHPROFILE hProfile, icInt32Number n); _________________________________________________________________________________ Enumerates tags in a profile Parameters: hProfile: Handle to an open profile n : Tag ordinal Returns: Tag signature _________________________________________________________________________________ LCMSBOOL cmsIsTag(cmsHPROFILE hProfile, icTagSignature sig); _________________________________________________________________________________ Tests whatever a particular tag is present in hProfile. Parameters: hProfile: Handle to an open profile sig: a tag signature Returns: FALSE if not present, TRUE if tag is found _________________________________________________________________________________ int cmsTakeRenderingIntent(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns the rendering intent field of the header. This field is informative and not used by the CMM for any purpose. Parameters: hProfile: Handle to an open profile Returns: one of the following values: INTENT_PERCEPTUAL 0 INTENT_RELATIVE_COLORIMETRIC 1 INTENT_SATURATION 2 INTENT_ABSOLUTE_COLORIMETRIC 3 _________________________________________________________________________________ int cmsTakeHeaderFlags(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns the flags field of the ICC profile header. These are flags to indicate various hints for the CMM such as distributed processing and caching options. The least significant 16 bits are reserved for the ICC. Currently (v4.2) there are only two ICC flags defined: Bit Meaning --- ------------------------------------------------------------- 0 Embedded Profile (0 if not embedded, 1 if embedded in file) 1 Profile cannot be used independently from the embedded color data (set to 1 if true, 0 if false) Parameters: hProfile: Handle to an open profile Returns: The header flags _________________________________________________________________________________ int cmsTakeHeaderAttributes(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns the attributes field of the ICC profile header. The device attributes field shall contain flags used to identify attributes unique to the particular device setup for which the profile is applicable. Currently (v4.2) there are only two ICC attributes defined: Bit Meaning --- ------------------------------------------------------------- 0 0=icReflective 1=icTransparency 1 0=icGlossy 1=icMatte Parameters: hProfile: Handle to an open profile Returns: The header attributes _________________________________________________________________________________ LCMSBOOL cmsIsIntentSupported(cmsHPROFILE hProfile, int Intent, int UsedDirection); _________________________________________________________________________________ This one helps on inquiring if a determinate intent is supported by an opened profile. You must give a handle to profile, the intent and a third parameter specifying how the profile would be used. The function does return TRUE if intent is supported or FALSE if not. If the intent is not supported, lcms will use default intent (usually perceptual). Parameters: hProfile: Handle to an open profile Intent: one of the following values: INTENT_PERCEPTUAL 0 INTENT_RELATIVE_COLORIMETRIC 1 INTENT_SATURATION 2 INTENT_ABSOLUTE_COLORIMETRIC 3 Direction: LCMS_USED_AS_INPUT 0 LCMS_USED_AS_OUTPUT 1 LCMS_USED_AS_PROOF 2 Returns: TRUE if intent is supported or FALSE if not. If the intent is not supported, lcms will use default intent (usually perceptual). _________________________________________________________________________________ LCMSBOOL cmsTakeCharTargetData(cmsHPROFILE hProfile, char** Data, size_t* len); _________________________________________________________________________________ Retrieves the target data the profiler has used to build the profile. Usage of this tag is optional. The lprof profiles does store such information when "verbose" mode is selected. Parameters: hProfile: Handle to an open profile Data: Pointer to a pointer to a bite block. This function allocates this block by calling malloc(). User is responsible of free it after use. size: Pointer to a size_t variable holding the size of datablock. Returns: TRUE on success, FALSE on error or if the profile has not such tag. Example: char* TargetData; size_t len; cmsTakeCharTargetData(hProfile, &Data, &len); ... do whatsever with Data... free(Data); _________________________________________________________________________________ const LPBYTE cmsTakeProfileID(cmsHPROFILE hProfile); _________________________________________________________________________________ Returns the 16-bytes profile ID (version 4 only). The ProfileID is holded in a static buffer overwritten in each call to this function. Parameters: hProfile: Handle to an open profile Returns: A pointer to a static buffer holding the 16 bytes ID. This buffer is overwritten in each function call. _________________________________________________________________________________ LCMSBOOL _cmsIsMatrixShaper(cmsHPROFILE hProfile); _________________________________________________________________________________ Tests whatever a particular profile is implemented as Matrix-shaper- Parameters: hProfile: Handle to an open profile Returns: TRUE or FALSE about profile being implemented as matrix-shaper _________________________________________________________________________________ void cmsSetAlarmCodes(int r, int g, int b) _________________________________________________________________________________ Used to establish the out-of-gamut alarm color. This color will replace all out-of-gamut colors if sFLAGS_GAMUTCHEK is used in dwFlags parameter. See cmsCreateTransform() _________________________________________________________________________________ void _cmsSetLUTdepth(cmsHPROFILE hProfile, int depth); _________________________________________________________________________________ INTERNAL, USE WITH CAUTION. Used to inform the profile writting logic that all LUTS should be written in 8-bit resolution. lcms currently allows to write profiles with same resolution in all LUTS. Incoming versions may fix that. Parameters: hProfile: Handle to an open profile depth: either 8 or 16 _________________________________________________________________________________ LCMSBOOL _cmsSaveProfile(cmsHPROFILE hProfile, const char* FileName); LCMSBOOL _cmsSaveProfileToMem(cmsHPROFILE hProfile, void *MemPtr, size_t* BytesNeeded); _________________________________________________________________________________ INTERNAL, USE WITH CAUTION. Dumps the contents of a profile FULLY GENERATED BY USING VIRTUAL PROFILES to disk or memory. Disk based profiles are not suitable for these functions. DEPRECATED, use cmsOpenProfileFromFile() with a "w" as access mode instead. _________________________________________________________________________________ 3 - On-the-fly (virtual) profile creation functions _________________________________________________________________________________ These function gives the ability of create virtual profiles. These profiles are often used in modelling monitors, but can also be used as any input or output device. Once created, you can use the profile handle like another file-based profile. _________________________________________________________________________________ cmsHPROFILE cmsCreateGrayProfile(LPcmsCIExyY WhitePoint, LPGAMMATABLE TransferFunction) _________________________________________________________________________________ Creates a grayscale virtual profile based on white point and transfer tables. Parameters: White point: You can specify chromacity of white point, or use cmsWhitePointFromTemp() to generate the white point from temperature. Gamma tables: You can directly specify tables or use the gamma handling functions for obtaining these tables _________________________________________________________________________________ cmsHPROFILE cmsCreateRGBProfile(LPcmsCIExyY WhitePoint, LPcmsCIExyYTRIPLE Primaries, LPGAMMATABLE TransferFunction[3]) _________________________________________________________________________________ Creates a virtual profile based in primaries, white point and transfer tables. Parameters: White point: You can specify chromacity of white point, or use cmsWhitePointFromTemp() to generate the white point from temperature. Primaries: The primaries (the TRUE primaries, not the colorants) of the device. Gamma tables: You can directly specify tables or use the gamma handling functions for obtaining these tables _________________________________________________________________________________ cmsHPROFILE cmsCreateLinearizationDeviceLink(icColorSpaceSignature ColorSpace, LPGAMMATABLE TransferFunctions[]); _________________________________________________________________________________ Creates a specialized devicelink, operating in space "ColorSpace". This devicelink has only linearization tables. Usefull for embedding gamma/brightness/contrast controls in a multiprofile transform. TransferFunctions[] must contain as many curves as components has the target color space. For example, RGB must be 3 curves. CMYK needs 4 curves. _________________________________________________________________________________ cmsHPROFILE LCMSEXPORT cmsCreateInkLimitingDeviceLink(icColorSpaceSignature ColorSpace, double Limit) _________________________________________________________________________________ Creates a specialized devicelink, operating in space "ColorSpace". This devicelink handles ink-limiting feature. Useful for RIP construction and other goodies Parameters: hTransform: A handle to the transform. Limit: The amount of ink-limit, in pertentage. Allowable values are from 0% to 400% Notes: Currently only works on CMYK, but Hexachrome support is expected in future revisions. _________________________________________________________________________________ cmsHPROFILE cmsCreateBCHSWabstractProfile(int nLUTPoints, double Bright, double Contrast, double Hue, double Saturation, int TempSrc, int TempDest); _________________________________________________________________________________ Creates a abstract devicelink operating in Lab for Bright/Contrast/Hue/Saturation and white point translation. White points are specified as temperatures ºK Parameters: int nLUTPoints : Resulting CLUT resolution double Bright : Bright increment. May be negative double Contrast : Contrast increment. May be negative. double Hue : Hue displacement in degree. double Saturation : Saturation increment. May be negative int TempSrc : Source white point temperature int TempDest : Destination white point temperature. Renges: Bright: _________________________________________________________________________________ 4 - Built-In profiles _________________________________________________________________________________ These are standard profiles optimized for speed. _________________________________________________________________________________ cmsHPROFILE cmsCreateLabProfile(LPcmsCIExyY WhitePoint); _________________________________________________________________________________ Creates a virtual profile of CIE Lab. If WhitePoint is NULL, then D50 is assumed. It uses v2 PCS encoding. _________________________________________________________________________________ cmsHPROFILE cmsCreateLab4Profile(LPcmsCIExyY WhitePoint); _________________________________________________________________________________ Creates a virtual profile of CIE Lab operanting in v4 PCS encoding. If WhitePoint is NULL, then D50 is assumed. _________________________________________________________________________________ cmsHPROFILE cmsCreateXYZProfile(void); _________________________________________________________________________________ Creates a virtual XYZ profile (Assumes D50) _________________________________________________________________________________ cmsHPROFILE cmsCreate_sRGBProfile(void); _________________________________________________________________________________ Creates a virtual profile of sRGB standard colorspace. _________________________________________________________________________________ 5 - White point _________________________________________________________________________________ _________________________________________________________________________________ LCMSBOOL cmsWhitePointFromTemp(int TempK, LPcmsCIExyY WhitePoint); _________________________________________________________________________________ Obtains the chromaticity of white point based on temperature §K Parameters: TempK: Temperature in §K Returns: FALSE on error, TRUE on success _________________________________________________________________________________ LCMSAPI LCMSBOOL LCMSEXPORT cmsAdaptToIlluminant(LPcmsCIEXYZ Result, LPcmsCIEXYZ SourceWhitePt, LPcmsCIEXYZ Illuminant, LPcmsCIEXYZ Value); _________________________________________________________________________________ Provides a model-dependent chromatic adaptation between two illuminants, actually it uses a Von-Kries approximation of Bradford, using the Lam-Rigg cone responses. It Is under consideration to be replaced for a more proper model like CIECAM97s in futures versions. Parameters: Result: Points to resulting XYZ color SourceWhitePoint: original white point Illuminant: adapting illuminant Value: the original color Returns: FALSE on error, TRUE on success _________________________________________________________________________________ double cmsSetAdaptationState(double d); _________________________________________________________________________________ Specifies adaptation state of observer for V4 absolute colorimetric transforms. Only two values are implemented: d = 0: No adaptation d = 1: Observer is fully adapted _________________________________________________________________________________ 6 - Gamma handling functions _________________________________________________________________________________ This is the struct of a gamma table (or transfer function) typedef struct { int nEntries; WORD GammaTable[1]; } GAMMATABLE, FAR* LPGAMMATABLE; That is, first it comes a 32 integer for entry count, followed of a variable number of words describing the table. The easiest way to generate a gamma table is to use the following function _________________________________________________________________________________ LPGAMMATABLE cmsBuildGamma(int nEntries, double Gamma); _________________________________________________________________________________ Allocates an fill a table describing generic gamma. You must specify the number of entries your table will consist of, and the float value for gamma. _________________________________________________________________________________ LPGAMMATABLE cmsBuildParametricGamma(int nEntries, int Type, double Params[]); _________________________________________________________________________________ Does build a parametric curve based on parameters. Params[] does contain Gamma, a, b, c, d, e, f Type 1 : X = Y ^ Gamma | Gamma = Params[0] Type 2 : CIE 122-1966 Y = (aX + b)^Gamma | X >= -b/a Y = 0 | else Type 3: IEC 61966-3 Y = (aX + b)^Gamma | X <= -b/a Y = c | else Type 4: IEC 61966-2.1 (sRGB) Y = (aX + b)^Gamma | X >= d Y = cX | X < d Type 5: Y = (aX + b)^Gamma + e | X <= d Y = cX + f | else Giving negative values for Type does result in reversed curve. _________________________________________________________________________________ LPGAMMATABLE cmsAllocGamma(int nEntries); _________________________________________________________________________________ Allocates space for a gamma table, memory is unitialized. _________________________________________________________________________________ void cmsFreeGamma(LPGAMMATABLE Gamma); _________________________________________________________________________________ Frees a gamma table _________________________________________________________________________________ LPGAMMATABLE cmsReverseGamma(int nResultSamples, LPGAMMATABLE InGamma); _________________________________________________________________________________ Reverses a gamma table resampling it in a new table. This function reverses the gamma table if it can be done. lcms does not detect whatever a non-monotonic function is given, so wrong input can result in ugly results: not to be a problem since "normal" gamma curves are not collapsing inputs at same output value. The new curve will be resampled to nResultSamples entries. _________________________________________________________________________________ LPGAMMATABLE cmsJoinGamma(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma); _________________________________________________________________________________ Obtains a table joining two tables, one as input and other as output. Output table is reversed and then composited with input gamma. This will let you to "refine" the generic gamma for monitors (2.1 or 2.2 are usual values) to match viewing conditions of more or less background light. Note that this function uses TABULATED functions, so very exotic curves can be obtained by combining transfer functions with reversed gamma curves. Normally there is no need of worry about such gamma manipulations, but the functionality is here if you wish to use. _________________________________________________________________________________ LCMSBOOL cmsSmoothGamma(LPGAMMATABLE Tab, double lambda); _________________________________________________________________________________ Does smooth the curve contained into Tab. Smooth curves does work better and more pleasant to eye. Parameters: Tab: Table to be smoothed lambda: The smoothing factor. 0..500 is the working range. Returns: TRUE on success. FALSE on error _________________________________________________________________________________ double cmsEstimateGamma(LPGAMMATABLE t); double cmsEstimateGammaEx(LPWORD Table, int nEntries, double Thereshold); _________________________________________________________________________________ Returns a numerical estimation of the apparent gamma on the given table. _________________________________________________________________________________ LPGAMMATABLE cmsReadICCGamma(cmsHPROFILE hProfile, icTagSignature sig); LPGAMMATABLE cmsReadICCGammaReversed(cmsHPROFILE hProfile, icTagSignature sig); int cmsReadICCText(cmsHPROFILE hProfile, icTagSignature sig, char *Text); int cmsReadICCTextEx(cmsHPROFILE hProfile, icTagSignature sig, char *Text, size_t size); _________________________________________________________________________________ _________________________________________________________________________________ LPcmsSEQ cmsReadProfileSequenceDescription(cmsHPROFILE hProfile); void cmsFreeProfileSequenceDescription(LPcmsSEQ pseq); _________________________________________________________________________________ Reads and free profile sequence description structure _________________________________________________________________________________ void cmsSetUserFormatters(cmsHTRANSFORM hTransform, DWORD dwInput, cmsFORMATTER Input, DWORD dwOutput, cmsFORMATTER Output); void cmsGetUserFormatters(cmsHTRANSFORM hTransform, LPDWORD InputFormat, cmsFORMATTER* Input, LPDWORD OutputFormat, cmsFORMATTER* Output); _________________________________________________________________________________ _________________________________________________________________________________ 7 - Error handling _________________________________________________________________________________ _________________________________________________________________________________ void cmsErrorAction(int nAction) _________________________________________________________________________________ Tells lcms how to react if an error is raised. Parameters: nAction: can be one of these: LCMS_ERROR_ABORT Aborts whole application LCMS_ERROR_SHOW Displays a message, but does not abort application LCMS_ERROR_IGNORE Does not show any message, however, operation is aborted. _________________________________________________________________________________ void cmsSignalError(int ErrorCode, const char *ErrorText, ...) _________________________________________________________________________________ This is the default error handler. If you are using lcms as a static library, you can replace it by one of your own. Parameters: ErrorCode: a number for coding error (with not meaning by now) ErrorText: a format specifier describing the error ... : additional parameters needed by ErrorText, in a printf like fashion. _________________________________________________________________________________ void cmsSetErrorHandler(cmsErrorHandlerFunction Fn); _________________________________________________________________________________ This function sets an user-defined error handler. The error handler must be defined as: int ErrorHandlerFunction(int ErrorCode, const char *ErrorText); ErrorCode can be one of the following values: LCMS_ERRC_WARNING 0x1000 LCMS_ERRC_RECOVERABLE 0x2000 LCMS_ERRC_ABORTED 0x3000 ErrorText is a text holding an english description of error. _________________________________________________________________________________ 8 - Conversion functions _________________________________________________________________________________ These functions can be used to convert from several colorimetric spaces and to/from fixed encoding in spaces XYZ and Lab used by profiles. _________________________________________________________________________________ LCMSAPI void LCMSEXPORT cmsXYZ2xyY(LPcmsCIExyY Dest, CONST LPcmsCIEXYZ Source); LCMSAPI void LCMSEXPORT cmsxyY2XYZ(LPcmsCIEXYZ Dest, CONST LPcmsCIExyY Source); _________________________________________________________________________________ Does convert form/to XYZ Color Space to xyY color space Parameters: Dest, Source: points to vectors to convert _________________________________________________________________________________ void cmsXYZ2Lab(LPcmsCIEXYZ WhitePoint, LPcmsCIELab Lab, const LPcmsCIEXYZ xyz); void cmsLab2XYZ(LPcmsCIEXYZ WhitePoint, LPcmsCIEXYZ xyz, const LPcmsCIELab Lab); _________________________________________________________________________________ Does convert from/to XYZ Color Space to CIE L a* b* Color Space Parameters: xyz, Lab : Pointers to values WhitePoint: Pointer to media white. If NULL, the D50 is assumed. _________________________________________________________________________________ void cmsLabEncoded2Float(LPcmsCIELab Lab, const WORD wLab[3]); void cmsFloat2LabEncoded(WORD wLab[3], const LPcmsCIELab Lab); _________________________________________________________________________________ Does convert form/to the encoded notation of Lab pcs to floating point. Parameters: wLab, Lab : Pointers to values _________________________________________________________________________________ void cmsXYZEncoded2Float(LPcmsCIEXYZ fxyz, const WORD XYZ[3]); void cmsFloat2XYZEncoded(WORD XYZ[3], const LPcmsCIEXYZ fXYZ); _________________________________________________________________________________ Does convert form/to the encoded notation of XYZ pcs to floating point. Parameters: fxyz, XYZ : Pointers to values _________________________________________________________________________________ void cmsLab2LCh(LPcmsCIELCh LCh, const LPcmsCIELab Lab); void cmsLCh2Lab(LPcmsCIELab Lab, const LPcmsCIELCh LCh); _________________________________________________________________________________ Does convert between polar/rectangulat form of CIE L*a*b* L = L C = sqrt(a*a+b*b) h = atan(b/a) Where C=colorfulness and h=hue. Parameters: Lab, LCh : Pointers to values _________________________________________________________________________________ double cmsDeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); _________________________________________________________________________________ Computes the dE between two Lab values. The formula is dE = sqrt (dL^2 + da^2 + db^2) Parameters: Lab1, Lab2: Points to the Lab values. Returns: The dE. If any Lab is negative, or with L>100 it returns 65535. _________________________________________________________________________________ double cmsCIE94DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsBFDdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsCMCdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsCIE2000DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2, double Kl, double Kc, double Kh); _________________________________________________________________________________ Several additional error measurement systems. _________________________________________________________________________________ void cmsClampLab(LPcmsCIELab Lab, double amax, double amin, double bmax, double bmin); _________________________________________________________________________________ Clamps carefully a Lab value, keeping hue constant. L is unchanged and not used. The gamut boundaries are given by the rectangle (amin, bmin) - (amax, bmax) if Lab value is inside gamut, this function don't touch anything, if outside, converts to LCh, and keeping h constant, reduce C until inside gamut. _________________________________________________________________________________ LCMSAPI icColorSpaceSignature LCMSEXPORT _cmsICCcolorSpace(int OurNotation); LCMSAPI int LCMSEXPORT _cmsLCMScolorSpace(icColorSpaceSignature ProfileSpace); LCMSAPI int LCMSEXPORT _cmsChannelsOf(icColorSpaceSignature ColorSpace); _________________________________________________________________________________ _________________________________________________________________________________ 9 - CIECAM97s/CIECAM02 _________________________________________________________________________________ The model input data are the adapting field luminance in cd/m2 (normally taken to be 20% of the luminance of white in the adapting field), La , the relative tristimulus values of the stimulus, XYZ, the relative tristimulus values of white in the same viewing conditions, "whitePoint", and the relative luminance of the background, Yb . Relative tristimulus values should be expressed on a scale from Y = 0 for a perfect black to Y = 100 for a perfect reflecting diffuser. All CIE tristimulus values are obtained using the CIE 1931 Standard Colorimetric Observer (2°). typedef struct { cmsCIEXYZ whitePoint; // The media white in XYZ double Yb; double La; int surround; double D_value; } cmsViewingConditions, FAR* LPcmsViewingConditions; surround can be one of these #define AVG_SURROUND 1 #define DIM_SURROUND 2 #define DARK_SURROUND 3 D_value (adaptation degree) is any value between 0 and 1, and additionally: #define D_CALCULATE (-1) // Calculate D #define D_CALCULATE_DISCOUNT (-2) // Calculate w/ partial discounting _________________________________________________________________________________ HANDLE cmsCIECAM97sInit(LPcmsViewingConditions pVC)/cmsCIECAM02Init _________________________________________________________________________________ Does init the model. It returns a handle for further reference Parameters: pVC: points to a cmsViewingConditions struct holding viewing condition parameters Returns: A handle to a model instance, or NULL if error. _________________________________________________________________________________ void cmsCIECAM97sDone(HANDLE hModel)/cmsCIECAM02Done _________________________________________________________________________________ Terminates a model Parameters: hModel: A handle to the model instance to terminate. _________________________________________________________________________________ void cmsCIECAM97sForward(HANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut)/ cmsCIECAM02Forward _________________________________________________________________________________ Model forward. Transforms from XYZ to JCh. Parameters: hModel: A handle to the model instance pIn, POut: Pointers to values _________________________________________________________________________________ void cmsCIECAM97sReverse(HANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut)/ cmsCIECAM02Reverse _________________________________________________________________________________ Model reverse. Transforms from JCh to XYZ. Parameters: hModel: A handle to the model instance pIn, POut: Pointers to values _________________________________________________________________________________ 10 - Profile creation functions _________________________________________________________________________________ _________________________________________________________________________________ void cmsSetDeviceClass(cmsHPROFILE hProfile, icProfileClassSignature sig); _________________________________________________________________________________ Does set device class signature in profile header _________________________________________________________________________________ void cmsSetColorSpace(cmsHPROFILE hProfile, icColorSpaceSignature sig); _________________________________________________________________________________ Does set colorspace signaure in profile header _________________________________________________________________________________ void cmsSetPCS(cmsHPROFILE hProfile, icColorSpaceSignature pcs); _________________________________________________________________________________ Does set PCS signature in profile header _________________________________________________________________________________ void cmsSetRenderingIntent(cmsHPROFILE hProfile, int RenderingIntent); _________________________________________________________________________________ Sets the rendering intent in profile header _________________________________________________________________________________ void cmsSetProfileID(cmsHPROFILE hProfile, LPBYTE ProfileID); _________________________________________________________________________________ Sets the profile ID in profile header (ver 4 only) _________________________________________________________________________________ void cmsSetHeaderFlags(cmsSetHeaderFlags(cmsHPROFILE hProfile, DWORD Flags) _________________________________________________________________________________ Does set flags in profile header _________________________________________________________________________________ void cmsSetHeaderAttributes(cmsSetHeaderFlags(cmsHPROFILE hProfile, DWORD Flags) _________________________________________________________________________________ Does set attribute flags in profile header _________________________________________________________________________________ LCMSBOOL cmsAddTag(cmsHPROFILE hProfile, icTagSignature sig, void* data); _________________________________________________________________________________ Adds a new tag to a profile. Supported tags are: Signature Expected data type ================= ================== icSigCharTargetTag const char* icSigCopyrightTag const char* icSigProfileDescriptionTag const char* icSigDeviceMfgDescTag const char* icSigDeviceModelDescTag const char* icSigRedColorantTag LPcmsCIEXYZ icSigGreenColorantTag LPcmsCIEXYZ icSigBlueColorantTag LPcmsCIEXYZ icSigMediaWhitePointTag LPcmsCIEXYZ icSigMediaBlackPointTag LPcmsCIEXYZ icSigRedTRCTag LPGAMMATABLE icSigGreenTRCTag LPGAMMATABLE icSigBlueTRCTag LPGAMMATABLE icSigGrayTRCTag LPGAMMATABLE icSigAToB0Tag LPLUT icSigAToB1Tag LPLUT icSigAToB2Tag LPLUT icSigBToA0Tag LPLUT icSigBToA1Tag LPLUT icSigBToA2Tag LPLUT icSigGamutTag LPLUT icSigPreview0Tag LPLUT icSigPreview1Tag LPLUT icSigPreview2Tag LPLUT icSigChromaticityTag LPcmsCIExyYTRIPLE icSigNamedColor2Tag LPcmsNAMEDCOLORLIST icSigColorantTableTag LPcmsNAMEDCOLORLIST icSigColorantTableOutTag LPcmsNAMEDCOLORLIST icSigCalibrationDateTimeTag const struct tm* _________________________________________________________________________________ 11 - LUT manipulation _________________________________________________________________________________ This is the pipeline LUT is implementing [Mat] -> [L1] -> [Mat3] -> [Ofs3] -> [L3] -> [CLUT] -> [L4] -> [Mat4] -> [Ofs4] -> [L2] _________________________________________________________________________________ LPLUT cmsAllocLUT(void); _________________________________________________________________________________ Does allocate an empty LUT. Input is passed transparently to output by default Returns: A handle to a new LUT, or NULL if error. _________________________________________________________________________________ LPLUT cmsDupLUT(LPLUT Orig); _________________________________________________________________________________ Duplicates a LUT. Returns: A handle to a new LUT, or NULL if error. _________________________________________________________________________________ LPLUT cmsAllocLinearTable(LPLUT NewLUT, LPGAMMATABLE Tables[], int nTable); _________________________________________________________________________________ Does include a prelinearization tables set into a LUT Parameters: NewLUT: The target LUT Tables[]: A set of tables to be set nTable: Identificates the position of tables in pipeline 1 - Prelinearization 2 - Postlinearization 3 - L3 4 - L4 Values 3 and 4 are reserved for v4 profiles _________________________________________________________________________________ LPLUT cmsAlloc3DGrid(LPLUT Lut, int clutPoints, int inputChan, int outputChan); _________________________________________________________________________________ Allocates an empty 3D CLUT table. Parameters: Lut: The target LUT clutPoints: The points number of a side of the (hyper)cube inputChan, outputChan: The channels count Returns: A handle to the LUT, or NULL if error. _________________________________________________________________________________ void cmsFreeLUT(LPLUT Lut); _________________________________________________________________________________ Free any used memory. After this call the LUT is not longer valid Parameters: Lut: The target LUT _________________________________________________________________________________ void cmsEvalLUT(LPLUT Lut, WORD In[], WORD Out[]); _________________________________________________________________________________ Evaluates a LUT, giving In[] values. Returns Out[] values. Parameters: Lut: The target LUT In: Input Values Out: Output Values _________________________________________________________________________________ LPLUT cmsSetMatrixLUT(LPLUT Lut, LPMAT3 M); _________________________________________________________________________________ Provided for backwards compatibility sake. Sets the 'Mat' Matrix in the LUT pipeline _________________________________________________________________________________ LPLUT cmsSetMatrixLUT4(LPLUT Lut, LPMAT3 M, LPVEC3 off, DWORD dwFlags); _________________________________________________________________________________ Set a matrix in V4 style. Flags defines the location in the LUT pipeline: LUT_HASMATRIX: Mat LUT_HASMATRIX3: Mat3 LUT_HASMATRIX4: Mat4 _________________________________________________________________________________ LPLUT cmsReadICCLut(cmsHPROFILE hProfile, icTagSignature sig); _________________________________________________________________________________ Does retrive a LUT from a profile handle. Parameters: hProfile: a handle to a open profile sig: The tag signature Returns: A pointer to newly created LUT on success NULL on error _________________________________________________________________________________ int cmsSample3DGrid(LPLUT Lut, _cmsSAMPLER Sampler, LPVOID Cargo, DWORD dwFlags); _________________________________________________________________________________ Builds the CLUT table by calling repeatly a supplied callback function typedef int (* _cmsSAMPLER)(register WORD In[], register WORD Out[], register LPVOID Cargo); The programmer has to write a callback function. This function should calculate Out values given a In[] set. For example, if we want a LUT to invert channels, a sampler could be: int InvertSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { for (i=0; i < 3; i++) Out[i] = ~ In[i]; return 0; } cmsSample3DGrid does call this function to build the CLUT. Pre/post linearization tables may be taken into account across flags parameter Flags Meaning ================ ======================================= LUT_HASTL1 Do reverse linear interpolation on prelinearization table before calling the callback. LUT_HASTL2 Do reverse linear interpolation on postlinearization table after calling the callback. Flags are intended as an aid for building non-uniformly spaced CLUTs. Using flags results in "undoing" any linearization tables could apply. In such way, the programmer is expected to have in In[] always the original colorspace, and must return Out[] values always in original (non-postlinearized) space as well. The callback must return 0 if all is ok, or any other value to indicate error. If error condition is raised, whole CLUT construction is aborted. Parameters: Lut: a pointer to LUT structure Sampler: The callback function Cargo: A 32-bit value. Could be used as pointer to pass parameters to callback. dwFlags: any combination of LUT_HASTL1 or LUT_HASTL2 joined by bitwise-or operator '|' _________________________________________________________________________________ 12 - Named color functions _________________________________________________________________________________ Named color profiles are a special kind of profiles handling lists of spot colors. The typical example is PANTONE. CMM deals with named color profiles like all other types, except they must be in input stage and the encoding supported is limited to a one single channel of 16-bit indexes. Let's assume we have a Named color profile holding only 4 colors: · CYAN · MAGENTA · YELLOW · BLACK We create a transform using: hTransform = cmsCreateColorTransform(hNamedColorProfile, TYPE_NAMED_COLOR_INDEX, hOutputProfile, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); "TYPE_NAMED_COLOR_INDEX" is a special encoding for these profiles, it represents a single channel holding the spot color index. In our case value 0 will be "CYAN", value 1 "MAGENTA" and so one. For converting between string and index there is an auxiliary function: int cmsNamedColorIndex(cmsHTRANSFORM hTransform, const char* ColorName); That will perform a look up on the spot colors database and return the color number or -1 if the color was not found. Other additional functions for named color transforms are: int cmsNamedColorCount(cmsHTRANSFORM hTransform); That returns the number of colors present on transform database. int cmsNamedColorInfo(cmsHTRANSFORM hTransform, int nColor, LPNAMEDCOLORINFO Info); That returns extended information about a given color. Named color profiles can also be grouped by using multiprofile transforms. In such case, the database will be formed by the union of all colors in all named color profiles present in transform. Named color profiles does hold two coordinates for each color, let's take our PANTONE example. This profile would contain for each color the CMYK colorants plus its PCS coordinates, usually in Lab space. lcms can work with named color using both coordinates. Creating a transform with two profiles, if the input one is a named color, then you obtain the translated color using PCS. Example, named color -> sRGB will give the color patches in sRGB In the other hand, setting second profile to NULL, returns the device coordinates, that is, CMYK colorants in our PANTONE sample. Example: Named color -> NULL will give the CMYK amount for each spot color. The transform must use TYPE_NAMED_COLOR_INDEX on input. That is, a single channel containing the 0-based color index. Then you have: cmsNamedColorIndex(cmsHTRANSFORM xform, const char* Name) for obtaining index from color name, and cmsNamedColorInfo(), cmsNamedColorCount() to retrieve the list. The profile is supposed to be for a unique device. Then the CMYK values does represent the amount of inks THIS PRINTER needs to render the spot color. The profile also has the Lab values corresponding to the color. This really would have no sense if gamut of printer were infinite, but since printers does have a limited gamut a PANTONE-certified printer renders colors near gamut boundaries with some limitations. The named color profile is somehow explaining which are these limitation for that printer. So, you can use a named color profile in two different ways, as output, giving the index and getting the CMYK values or as input and getting the Lab for that color. A transform named color -> NULL will give the CMYK values for the spot color on the printer the profile is describing. This would be the normal usage. A transform Named color -> another printer will give on the output printer the spot colors as if they were printed in the printer named color profile is describing. This is useful for soft proofing. As an additional feature, lcms can "group" several named color profiles into a single database by means of cmsCreateMultiprofileTransform(). Such case works as described above, but joining all named colors as they were in a single profile. _________________________________________________________________________________ 13. PostScript generation _________________________________________________________________________________ 3 functions carry the task of obtaining CRD and CSA. DWORD cmsGetPostScriptCSA(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); DWORD cmsGetPostScriptCRD(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); DWORD cmsGetPostScriptCRDEx(cmsHPROFILE hProfile, int Intent, DWORD dwFlags, LPVOID Buffer, DWORD dwBufferLen); cmsGetPostScriptCRDEx allows black point compensation using cmsFLAGS_BLACKPOINTCOMPENSATION in flags field. PostScrip colorflow is often done in a different way. Insted of creating a transform, it is sometimes desirable to delegate the color management to PostScript interpreter. These functions does translate input and output profiles into Color Space Arrays (CSA) and Color Rendering Dictionaries (CRD) · CRD are equivalent to output (printer) profiles. Can be loaded into printer at startup and can be stored as resources. · CSA are equivalent to input and workspace profiles, and are intended to be included in the document definition. These functions does generate the PostScript equivalents. Since the lenght of the resultant PostScript code is unknown in advance, you can call the functions with len=0 and Buffer=NULL to get the lenght. After that, you need to allocate enough memory to contain the whole block Example: Size = cmsGetPostScriptCSA(hProfile, INTENT_PERCEPTUAL, NULL, 0); If (Size == 0) error() Block = malloc(Size); cmsGetPostScriptCSA(hProfile, INTENT_PERCEPTUAL, Block, Size); Devicelink profiles are supported, as long as input colorspace matches Lab/XYZ for CSA or output colorspace matches Lab/XYZ for CRD. This can be used in conjuntion with cmsCreateMultiprofileTransform(), and cmsTransform2DeviceLink() to embed complex color flow into PostScript. WARNING: Preccision of PostScript is limited to 8 bits per sample. If you can choose between normal transforms and CSA/CRD, normal transforms will give more accurancy. However, there are situations where there is no chance. _________________________________________________________________________________ 14 - CGATS.13 - 200 _________________________________________________________________________________ This standard defines an exchange format for spectral measurement data, colorimetric data, and densitometric data in electronic form using keywords and data tables. It maintains human readability of the data as well as enabling machine readability. It includes a series of predefined keywords and data format identifiers and makes provision for the dynamic definition of additional keywords and data format identifiers as necessary. It was prepared by CGATS/SC3 in an effort to consolidate the common format requirements for the exchange of spectral measurement data, colorimetric data, and densitometric data in electronic form. These requirements presently appear in a number of CGATS and IT8 standards such as CGAT S.5, IT8.7/1, IT8.7/2, and IT8.7/3. While it is the intent that each of these individual standards will continue to identify required data, the basic data format and keywords and data identifier s will be defined in this standard for consistent use across all applicable standards. The Committee for Graphic Arts Technologies Standards (CGATS) was accredited by the American National Standards Institute in 1989 to serve as the coordinator of graphic arts standards activities. CGATS recommends the adoption and use of this standard by the graphic arts industry and its suppliers at their earliest convenience. lcms parser has following additions: .INCLUDE directive ------------------ Works like #include in C language. LABEL special keyword --------------------- _________________________________________________________________________________ LCMSHANDLE cmsIT8Alloc(void); _________________________________________________________________________________ Does allocate an empty CGATS.13/IT8 object. Mostly used for creating new IT8 files Returns: A handle to a CGATS.13, or NULL if error. _________________________________________________________________________________ void cmsIT8Free(LCMSHANDLE hIT8); _________________________________________________________________________________ Free any used memory. After this call the IT8 parser is not longer valid Parameters: hIT8: The CGATS.13 parser handle _________________________________________________________________________________ Tables _________________________________________________________________________________ In the lcms implementation, a CGATS.13/IT8 object may contain any number of tables. Tables are separated by END_DATA keyword. _________________________________________________________________________________ int cmsIT8TableCount(LCMSHANDLE hIT8); _________________________________________________________________________________ Returns the number of tables the CGATS.13/IT8 object contains. Parameters: hIT8: The CGATS.13 parser handle _________________________________________________________________________________ int cmsIT8SetTable(LCMSHANDLE hIT8, int nTable); _________________________________________________________________________________ Sets the current table on a given CGATS.13/IT8 object Parameters: hIT8: The CGATS.13 parser handle nTable: The table number (0 based) Returns: the number of tables the CGATS.13/IT8 object contains. Comments: Setting nTable to TableCount + 1 does allocate a new empty table _________________________________________________________________________________ Persistence _________________________________________________________________________________ These are functions to load/save CGATS.13/IT8 objects from file and memory stream. _________________________________________________________________________________ LCMSHANDLE cmsIT8LoadFromFile(const char* cFileName); _________________________________________________________________________________ Does allocate an CGATS.13/IT8 object and fills it with the contents of cFileName. Mostly used for reading existing IT8 files. Parameters: cFileName: The IT8/CGATS.13 file name to read/parse Returns: A handle to a CGATS.13, or NULL if error. _________________________________________________________________________________ LCMSHANDLE cmsIT8LoadFromMem(void *Ptr, size_t len); _________________________________________________________________________________ Same as anterior, but the IT8/CGATS.13 stream is readed from a memory block. Parameters: Ptr: Points to a block of contiguous memory containing the IT8/CGATS.13 stream. len: IT8/CGATS.13 stream s size measured in bytes. Returns: NULL on error, a profile handle on success. _________________________________________________________________________________ LCMSBOOL cmsIT8SaveToFile(LCMSHANDLE hIT8, const char* cFileName); _________________________________________________________________________________ Saves a IT8/CGATS.13 object to a file. Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SaveToMem(LCMSHANDLE hIT8, void *MemPtr, size_t* BytesNeeded); _________________________________________________________________________________ Saves a IT8/CGATS.13 object to a memory stream. Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ Type and comments _________________________________________________________________________________ The sheet type is a identifier placed on the very first line of the IT8/CGATS.13 stream. It can be IT8.7/xx or whatever. _________________________________________________________________________________ const char* cmsIT8GetSheetType(LCMSHANDLE hIT8); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetSheetType(LCMSHANDLE hIT8, const char* Type); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetComment(LCMSHANDLE hIT8, const char* cComment); _________________________________________________________________________________ This function is intended to provide a way automated IT8 creators can embed comments into file. Comments have no effect, and its only purpose is to document any of the file meaning. Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ Properties _________________________________________________________________________________ Properties are pairs . Each table may contain any number of properties. Its primary purpose is store simpler settings. _________________________________________________________________________________ LCMSBOOL cmsIT8SetPropertyStr(LCMSHANDLE hIT8, const char* cProp, const char *Str); LCMSBOOL cmsIT8SetPropertyDbl(LCMSHANDLE hIT8, const char* cProp, double Val); LCMSBOOL cmsIT8SetPropertyHex(LCMSHANDLE hIT8, const char* cProp, int Val); LCMSBOOL cmsIT8SetPropertyUncooked(LCMSHANDLE hIT8, const char* Key, const char* Buffer); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ const char* cmsIT8GetProperty(LCMSHANDLE hIT8, const char* cProp); double cmsIT8GetPropertyDbl(LCMSHANDLE hIT8, const char* cProp); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ int cmsIT8EnumProperties(LCMSHANDLE IT8, char ***PropertyNames); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle PropertyNames: A pointer to a variable which would recive a pointer to an array of property name strings. Returns: _________________________________________________________________________________ Datasets _________________________________________________________________________________ _________________________________________________________________________________ const char* cmsIT8GetDataRowCol(LCMSHANDLE IT8, int row, int col); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ double cmsIT8GetDataRowColDbl(LCMSHANDLE IT8, int row, int col); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetDataRowCol(LCMSHANDLE hIT8, int row, int col, const char* Val); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetDataRowColDbl(LCMSHANDLE hIT8, int row, int col, double Val); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ const char* cmsIT8GetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ double cmsIT8GetDataDbl(LCMSHANDLE IT8, const char* cPatch, const char* cSample); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample, char *Val); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetDataDbl(LCMSHANDLE hIT8, const char* cPatch, const char* cSample, double Val); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ LCMSBOOL cmsIT8SetDataFormat(LCMSHANDLE IT8, int n, const char *Sample); _________________________________________________________________________________ Parameters: hIT8: The CGATS.13 parser handle Returns: _________________________________________________________________________________ int cmsIT8EnumDataFormat(LCMSHANDLE IT8, char ***SampleNames); _________________________________________________________________________________ Returns an array with pointers to the column names of currect table. Parameters: hIT8: The CGATS.13 parser handle SampleNames: A pointer to a variable of type char** which will hold the table. Returns: The number of column names in table. _________________________________________________________________________________ const char* cmsIT8GetPatchName(LCMSHANDLE hIT8, int nPatch, char* buffer); _________________________________________________________________________________ Fills buffer with the contents of SAMPLE_ID column for the set given in nPatch. That usually corresponds to patch name. Parameters: hIT8: The CGATS.13 parser handle nPatch : patch number to retreive name buffer: A memory buffer to recivepatch name, or NULL to allow function to allocate it own buffer. Returns: A pointer to the patch name, either the user-supplied buffer or an internal memory block. lcms-1.19/doc/TUTORIAL.TXT0000777000175300010010000020570311272606371014301 0ustar MartiNinguno little cms Engine http://www.littlecms.com How to use the engine in your applications by Marti Maria Ver 1.19 --------------------------------------------------- Introduction BASIC USAGE =========== 1. Basic Concepts 2. Step-by-step example 3. Embedded profiles 4. Device-link profiles 5. Built-in profiles 6. On-the-fly profiles 7. Gamma tables 8. Proofing 9.1 Black point compensation 9.2 Black preservation 10. Error handling 11. Getting information from profiles. ADVANCED TOPICS =============== 12. Creating and writting new profiles 13. LUT handling 14. Helper functions 15. Color difference functions 16. PostScript operators 17. CIECAM02 18. Named color profiles 19. Conclusion Sample 1: How to convert RGB to CMYK and back Sample 2: How to deal with Lab/XYZ spaces Annex A. About intents Annex B. Apparent bug in XYZ -> sRGB transforms ---------------------------- Introduction: This file has been written to present the lcms core library to would-be writers of applications. It first describes the concepts on which the engine is based, and then how to use it to obtain transformations, colorspace conversions and separations. Then, a guided step-by-step example, shows how to use the engine in a simple or more sophisticated way. This document doesn't even try to explain the basic concepts of color management. For a comprehensive explanation, I will recommend the excellent color & gamma FAQs by Charles A. Poynton, http://www.poynton.com For more details about profile architecture, you can reach the latest ICC specs on: http://www.color.org **PLEASE NOTE THAN lcms IS NOT AN ICC SUPPORTED LIBRARY** I will assume the reader does have a working knowledge of the C programming language. This don't mean lcms can only be used by C applications, but it seems the easiest way to present the API functionality. I currently have successfully used the lcms DLL from Delphi, C++ Builder, Visual C++, Tcl/Tk, and even Visual Basic. DELPHI USERS: If you plan to use lcms from Delphi, there is a folder in the package containing units and samples for Delphi interface. Rest of document does refer to C API, but you can use same functions on Delphi. 1. Basic Concepts: ============================================================================ lcms defines two kinds of structures, that are used to manage the various abstractions required to access ICC profiles. These are profiles and transforms. In a care of good encapsulation, these objects are not directly accessible from a client application. Rather, the user receives a 'handle' for each object it queries and wants to use. This handle is a stand-alone reference; it cannot be used like a pointer to access directly the object's data. There are typedef's for such handles: cmsHPROFILE identifies a handle to an open profile. cmsHTRANSFORM identifies a handle to a transform. Conventions of use: o All API functions and types have their label prefixed by 'cms' (lower-case). o #defined constants are always in upper case o Some functions does accepts flags. In such cases, you can build the flags specifier joining the values with the bitwise-or operator '|' o An important note is that the engine should not leak memory when returning an error, e.g., querying the creation of an object will allocate several internal tables that will be freed if a disk error occurs during a load. Since these are a very generic conventions widely used, I will no further discuss this stuff. 2. Step-by-step Example: ============================================================================ Here is an example to show, step by step, how a client application can transform a bitmap between two ICC profiles using the lcms API This is an example of how to do the whole thing: #include "lcms.h" int main(void) { cmsHPROFILE hInProfile, hOutProfile; cmsHTRANSFORM hTransform; int i; hInProfile = cmsOpenProfileFromFile("HPSJTW.ICM", "r"); hOutProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r"); hTransform = cmsCreateTransform(hInProfile, TYPE_BGR_8, hOutProfile, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); for (i=0; i < AllScanlinesTilesOrWatseverBlocksYouUse; i++) { cmsDoTransform(hTransform, YourInputBuffer, YourOutputBuffer, YourBuffersSizeInPixels); } cmsDeleteTransform(hTransform); cmsCloseProfile(hInProfile); cmsCloseProfile(hOutProfile); return 0; } Let's discuss how it works. a) Open the profiles You will need the profile handles for create the transform. In this example, I will create a transform using a HP Scan Jet profile present in Win95 as input, and sRGB profile as output. This task can be done by following lines: cmsHPROFILE hInProfile, hOutProfile; hInProfile = cmsOpenProfileFromFile("HPSJTW.ICM", "r") hOutProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r") You surely have noticed a second parameter with a small "r". This parameter is used to set the access mode. It describes the "opening mode" like the C function fopen(). Currently lcms does support both read and write profiles. WARNING!: opening with 'w' WILL OVERWRITE YOUR PROFILE! Don't do this except if you want to create a NEW profile. NOTES: This only will take a small fraction of memory. The BToA or AToB tables, which usually are big, are only loaded at transform-time, and on demand. You can safely open a lot of profiles if you wish so. If cmsOpenProfileFromFile() fails, it raises an error signal that can or cannot be catched by the application depending of the state of the error handler. In this example, I'm using the "if-error-abort-whole- application" behaviour, corresponding with the LCMS_ERROR_ABORT setting of cmsErrorAction(). See the error handling paragraph below for more information. lcms is a standalone color engine, it knows nothing about where the profiles are placed. lcms does assume nothing about a specific directory (as Windows does, currently expects profiles to be located on SYSTEM32/SPOOL/DRIVERS/COLOR folder in main windows directory), so for get this example working, you need to copy the profiles in the local directory. b) Identify the desired format of pixels. lcms can handle a lot of formats. In fact, it can handle: - 8 and 16 bits per channel - up to 16 channels - extra channels like alpha - swapped-channels like BGR - endian-swapped 16 bps formats like PNG - chunky and planar organization - Reversed (negative) channels - Floating-point numbers For describing such formats, lcms does use a 32-bit value, referred below as "format specifiers". There are several (most usual) encodings predefined as constants, but there are a lot more. See lcms.h to review the current list. TYPE_RGB_DBL TYPE_CMYK_DBL TYPE_Lab_DBL TYPE_XYZ_DBL TYPE_YCbCr_DBL Takes directly the floating-point structs TYPE_GRAY_8 Grayscale 8 bits TYPE_GRAY_16 Grayscale 16 bits TYPE_GRAY_16_SE Grayscale 16 bits, swap endian TYPE_GRAYA_8 Grayscale + alpha, 8 bits TYPE_GRAYA_16 Grayscale + alpha, 16 bits TYPE_GRAYA_16_SE Grayscale + alpha, 16 bits TYPE_GRAYA_8_PLANAR Grayscale + alpha, 8 bits, separate planes TYPE_GRAYA_16_PLANAR Grayscale + alpha, 16 bits, separate planes TYPE_RGB_8 RGB, 8 bits TYPE_RGB_8_PLANAR RGB, 8 bits, separate planes TYPE_BGR_8 BGR, 8 bits (windows uses this format for BMP) TYPE_BGR_8_PLANAR BGR, 8 bits, separate planes TYPE_RGB_16 RGB, 16 bits TYPE_RGB_16_PLANAR ... TYPE_RGB_16_SE TYPE_BGR_16 TYPE_BGR_16_PLANAR TYPE_BGR_16_SE TYPE_RGBA_8 These ones with alpha channel TYPE_RGBA_8_PLANAR TYPE_RGBA_16 TYPE_RGBA_16_PLANAR TYPE_RGBA_16_SE TYPE_ABGR_8 TYPE_ABGR_16 TYPE_ABGR_16_PLANAR TYPE_ABGR_16_SE TYPE_CMY_8 These ones for CMY separations TYPE_CMY_8_PLANAR TYPE_CMY_16 TYPE_CMY_16_PLANAR TYPE_CMY_16_SE TYPE_CMYK_8 These ones for CMYK separations TYPE_CMYK_8_PLANAR TYPE_CMYK_16 TYPE_CMYK_16_PLANAR TYPE_CMYK_16_SE TYPE_KYMC_8 Reversed CMYK TYPE_KYMC_16 TYPE_KYMC_16_SE TYPE_XYZ_16 XYZ, xyY and CIELab TYPE_Yxy_16 TYPE_Lab_8 TYPE_Lab_16 TYPE_CMYKcm_8 HiFi separations TYPE_CMYKcm_8_PLANAR TYPE_CMYKcm_16 TYPE_CMYKcm_16_PLANAR TYPE_CMYKcm_16_SE TYPE_CMYK7_8 TYPE_CMYK7_16 TYPE_CMYK7_16_SE TYPE_KYMC7_8 TYPE_KYMC7_16 TYPE_KYMC7_16_SE TYPE_CMYK8_8 TYPE_CMYK8_16 TYPE_CMYK8_16_SE .. etc... For example, if you are transforming a windows .bmp to a bitmap for display, you will use TYPE_BGR_8 for both, input and output buffers, windows does store images as B,G,R and not as R,G,B. Other example, you need to convert from a CMYK separation to RGB in order to display; then you would use TYPE_CMYK_8 on input and TYPE_BGR_8 on output. If you need to do the separation from a TIFF, TYPE_RGB_8 on input and TYPE_CMYK_8 on output. Please note TYPE_RGB_8 and TYPE_BGR_8 are *not* same. The format specifiers are useful above color management. This will provide a way to handle a lot of formats, converting them in a single, well-known one. For example, if you need to deal with several pixel layouts coming from a file (TIFF for example), you can use a fixed output format, say TYPE_BGR_8 and then, vary the input format on depending on the file parameters. lcms also provides a flag for inhibit color management if you want speed and don't care about profiles. see cmsFLAGS_NULLTRANSFORM for more info. c) Create the transform When creating transform, you are giving to lcms all information it needs about how to translate your pixels. The syntax for simpler transforms is: cmsHTRANSFORM hTransform; hTransform = cmsCreateTransform(hInputProfile, TYPE_BGR_8, hOutputProfile, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); You give the profile handles, the format of your buffers, the rendering intent and a combination of flags controlling the transform behaviour. It's out of scope of this document to define the exact meaning of rendering intents. I will try to make a quick explanation here, but often the meaning of intents depends on the profile manufacturer. See appendix A for more information. INTENT_PERCEPTUAL: Hue hopefully maintained (but not required), lightness and saturation sacrificed to maintain the perceived color. White point changed to result in neutral grays. Intended for images. In lcms: Default intent of profiles is used INTENT_RELATIVE_COLORIMETRIC: Within and outside gamut; same as Absolute Colorimetric. White point changed to result in neutral grays. In lcms: If adequate table is present in profile, then, it is used. Else reverts to perceptual intent. INTENT_SATURATION: Hue and saturation maintained with lightness sacrificed to maintain saturation. White point changed to result in neutral grays. Intended for business graphics (make it colorful charts, graphs, overheads, ...) In lcms: If adequate table is present in profile, then, it is used. Else reverts to perceptual intent. INTENT_ABSOLUTE_COLORIMETRIC: Within the destination device gamut; hue, lightness and saturation are maintained. Outside the gamut; hue and lightness are maintained, saturation is sacrificed. White point for source and destination; unchanged. Intended for spot colors (Pantone, TruMatch, logo colors, ...) In lcms: relative colorimetric intent is used with undoing of chromatic adaptation. Not all profiles does support all intents, there is a function for inquiring which intents are really supported, but if you specify a intent that the profile doesn't handle, lcms will select default intent instead. Usually perceptual one. This will force to "look nice", no matter the intent is not the one really desired. lcms tries to "smelt" input and output profiles in a single matrix-shaper or in a big 3D CLUT of 33 points. This will improve greatly the performance of the transform, but may induce a small delay of 1-2 seconds on some really old machines. If you are willing to transform just a palette or a few colors, you don't need this precalculations. Then, the flag cmsFLAGS_NOTPRECALC in cmsCreateTransform() can be used to inhibit the 3D CLUT creation. See the API reference for a more detailed discussion of the flags. NOTES: Some old display profiles, only archives absolute colorimetric intents. For these profiles, default intents are absolute colorimetric ones. This is really a rare case. d) Next, you can translate your bitmap, calling repeatedly the processing function: cmsDoTransform(hTransform, YourInputBuffer, YourOutputBuffer, YourBuffersSize); This function is intended to be quite fast. You can use this function for translating a scan line, a tile, a strip, or whole image at time. NOTES: Windows, stores the bitmaps in a particular way... for speed purposes, does align the scan lines to double word boundaries, a bitmap has in windows always a size multiple of 4. This is OK, since no matter if you waste a couple of bytes, but if you call cmsDoTransform() and passes it WHOLE image, lcms doesn't know nothing about this extra padding bytes. It assumes that you are passing a block of BGR triplets with no alignment at all. This result in a strange looking "lines" in obtained bitmap. The solution most evident is to convert scan line by scan line instead of whole image. This is as easy as to add a for() loop, and the time penalty is so low that is impossible to detect. It is safe to use same block for input and output, but only if the input and output are coded in same format. For example, you can safely use only one buffer for RGB to RGB but you cannot use same buffer for RGB as input and CMYK as output. e) Last, free all stuff. This can be done by calling cmsDeleteTransform(hTransform); cmsCloseProfile(hInputProfile); cmsCloseProfile(hOutputProfile); And you are done! Note that cmsDeleteTransform() does NOT automatically free associated profiles. This works in such way to let programmers to use a open profile in more than one transform. 3. Embedded profiles ============================================================================ Some image file formats, like TIFF, JPEG or PNG, does include the ability of embed profiles. This means that the input profile for the bitmap is stored inside the image file. lcms provides a specialised profile-opening function for deal with such profiles. cmsHPROFILE cmsOpenProfileFromMem(LPVOID MemPtr, DWORD dwSize); This function works like cmsOpenProfileFromFile(), but assuming that you are given full profile in a memory block rather than a filename. Here is not any "r", since these profiles are always read-only. A successful call will return a handle to an opened profile that behaves just like any other file-based. Memory based profiles does not waste more resources than memory, so you can have tons of profiles opened sumultaneously using this function. NOTES: Once opened, you can safely FREE the memory block. lcms keeps a temporary copy. You can retrieve information of this profile, but generally these are minimal shaper-matrix profiles with little if none handy info present. Be also warned that some software does embed WRONG profiles, i.e., profiles marked as using different colorspace that one the profile really manages. lcms is NOT likely to understand these profiles since they are wrong after all. 4. Device-link profiles ============================================================================ Device-link profiles are "smelted" profiles that represents a whole transform rather than single-device profiles. In theory, device-link profiles may have greater precision that single ones and are faster to load. If you plan to use device-link profiles, be warned there are drawbacks about its inter-operability and the gain of speed is almost null. Perhaps their only advantage is when restoration from CMYK with great precision is required, since CMYK to pcs CLUTs can become very, very big. For creating a device-link transform, you must open the device link profile as usual, using cmsOpenProfileFromFile(). Then, create the transform with the device link profile as input and the output profile parameter equal to NULL: hDeviceLink = cmsOpenProfileFromFile("MYDEVLINK.ICC", "r"); hTransform = cmsCreateTransform(hDeviceLink, TYPE_RGB_8, NULL, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); That's all. lcms will understand and transparently handle the device-link profile. There is also a function for dumping a transform into a devicelink profile cmsHPROFILE cmsTransform2DeviceLink(cmsHTRANSFORM hTransform, DWORD dwFlags); This profile can be used in any other transform or saved to disk/memory. 5. - Built-in profiles ============================================================================ In order to make things ease, there are several built-in profiles that programmer can use without the need of any disk file. These does include: - sRGB profile - L*a*b profiles - XYZ profile - Gray profiles - RGB matrix-shaper. - Linearization device link - Ink-Limiting - Bright/Contrast/Hue/Saturation/White point adjust devicelink. sRGB, Lab and XYZ are very usefull for tricking & trapping. For example, creating a transform from sRGB to Lab could be done without any disk file. Something like: hsRGB = cmsCreate_sRGBProfile(); hLab = cmsCreateLabProfile() xform = cmsCreateTransform(hSRGB, TYPE_RGB_DBL, hLab, TYPE_Lab_DBL, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC); Then you can convert directly form double sRGB values (in 0..1.0 range) to Lab by using: double RGB[3]; cmsCIELab Lab; RGB[0] = 0.1; RGB[1] = 0.2 RGB[2] = 0.3; cmsDoTransform(xform, RGB, &Lab, 1); .. get result on "Lab" variable .. Even more, you can create your own RGB or Gray profiles "on the fly" by using cmsCreateRGBProfile() and cmsCreateGrayProfile(). See next section for a explanation on how to do. 6. - On-the-fly profiles. ============================================================================ There are several situations where it will be useful to build a minimal profile using adjusts only available at run time. Surely you have seen the classical pattern-gray trick for adjusting gamma: the end user moves a scroll bar and when pattern seems to match background gray, then gamma is adjusted. Another trick is to use a black background with some gray rectangles. The user chooses the most neutral grey, giving the white point or the temperature in °K. All these visual gadgets are not part of lcms, you must implement them by yourself if you like. But lcms will help you with a function for generating a virtual profile based on the results of these tests. Another usage would be to build colorimetric descriptors for file images that does not include any embedded profile, but does include fields for identifying original colorspace. One example is TIFF files. The TIFF 6.0 spec talks about "RGB Image Colorimetry" (See section 20) a "colorimetric" TIFF image has all needed parameters (WhitePointTag=318, PrimaryChromacitiesTag=318, TransferFunction=301,TransferRange=342) Obtain a emulated profile from such files is easy since the contents of these tags does match the cmsCreateRGBProfile() parameters. Also PNG can come with information for build a virtual profile, See the gAMA and cHRM chunks. This is the main function for creating virtual RGB profiles: cmsHPROFILE cmsCreateRGBProfile(LPcmsCIExyY WhitePoint, LPcmsCIExyYTRIPLE Primaries, LPGAMMATABLE TransferFunction[3]); It takes as arguments the white point, the primaries and 3 gamma curves. The profile emulated is always operating in RGB space. Once created, a handle to a profile is returned. This opened profile behaves like any other file or memory based profile. Virtual RGB profiles are implemented as matrix-shaper, so they cannot compete against CLUT based ones, but generally are good enough to provide a reasonable alternative to generic profiles. For simplify the parameters construction, there are additional functions: LCMSBOOL cmsWhitePointFromTemp(int TempK, LPcmsCIExyY WhitePoint); This function computes the xyY chromacity of white point using the temperature. Screen manufacturers often includes a white point hard switch in monitors, but they refer as "Temperature" instead of chromacity. Most extended temperatures are 5000K, 6500K and 9300K It returns TRUE if a valid white point can be computed, or FALSE if the temperature were non valid. You must give a pointer to a cmsCIExyY struct for holding resulting white point. For primaries, currently I don't know any trick or proof for identifying primaries, so here are a few chromacities of most extended. Y is always 1.0 RED GREEN BLUE x y x y x y ---- ---- ---- ---- ---- ---- NTSC 0.67, 0.33, 0.21, 0.71, 0.14, 0.08 EBU(PAL/SECAM) 0.64, 0.33, 0.29, 0.60, 0.15, 0.06 SMPTE 0.630, 0.340, 0.310, 0.595, 0.155, 0.070 HDTV 0.670, 0.330, 0.210, 0.710, 0.150, 0.060 CIE 0.7355,0.2645,0.2658,0.7243,0.1669,0.0085 These are TRUE primaries, not colorants. lcms does include a white-point balancing and a chromatic adaptation using a method called Bradford Transform for D50 adaptation. NOTE: Additional information about Bradford transform math can be found on the sRGB site: http://www.srgb.com Another kind of profiles that can be built on runtime are GrayScale profiles. This can be accomplished by the function: cmsHPROFILE cmsCreateGrayProfile(LPcmsCIExyY WhitePoint, LPGAMMATABLE TransferFunction); This one is somehow easier, since it only takes the gray curve (transfer function) and the media white point. Of course gray scale does not need primaries! 7. - Gamma tables ============================================================================ The gamma tables or transfer functions are stored in a simple way, let's examine the GAMMATABLE typedef: typedef struct { int nEntries; WORD GammaTable[1]; } GAMMATABLE, FAR* LPGAMMATABLE; That is, first it comes a 32 integer for entry count, followed of a variable number of words describing the table. The easiest way to generate a gamma table is to use the function LPGAMMATABLE cmsBuildGamma(int nEntries, double Gamma); You must specify the number of entries your table will consist of, and the float value for gamma. The generated table has linear and non-linear steps, the linear ramp near 0 is for minimising noise. If you want to fill yourself the values, you can allocate space for your table by using LPGAMMATABLE cmsAllocGamma(int nEntries); This function only creates memory for the table. The entries does not contain any useful value (garbage) since it is expected you will fill this table after created. You can find the inverse of a tabulated curve by using: LPGAMMATABLE cmsReverseGamma(int nResultSamples, LPGAMMATABLE InGamma); This function reverses the gamma table if it can be done. lcms does not detect whatever a non-monotonic function is given, so wrong input can result in ugly results: not to be a problem since "normal" gamma curves are not collapsing inputs at same output value. The new curve will be re-sampled to nResultSamples entries. You can also smooth the curve by using: LCMSBOOL cmsSmoothGamma(LPGAMMATABLE Tab, double lambda); "Smooth" curves does work better and are more pleasant to eyes. You can join two gamma curves with: LPGAMMATABLE cmsJoinGamma(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma); This will let you to "refine" the generic gamma for monitors (2.1 or 2.2 are usual values) to match viewing conditions of more or less background light. Note that this function uses TABULATED functions, so very exotic curves can be obtained by combining transfer functions with reversed gamma curves. Normally there is no need of worry about such gamma manipulations, but the functionality is here if you wish to use. There is a Extended join function that let specify the point it will have: LPGAMMATABLE cmsJoinGammaEx(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma, int nPoints); You must free all gamma tables you allocate (or create via cmsReverseGamma() or cmsJoinGamma()) by using: void cmsFreeGamma(LPGAMMATABLE Gamma); Another functions for dealing with gamma curves are: LPGAMMATABLE cmsDupGamma(LPGAMMATABLE Src); Duplicates a gamma table, allocatine a new memory block double cmsEstimateGamma(LPGAMMATABLE t); This one does a coarse estimation of the apparent gamma of a given curve. It is intended mainly for informational purposes. double cmsEstimateGammaEx(LPGAMMATABLE t, double Thereshold); This is similar to anterior, but it let specify the Standard deviation below that the curve is considered pure exponential. cmsEstimateGamma() does use a default value of 0.7 LPGAMMATABLE cmsBuildParametricGamma(int nEntries, int Type, double Params[]); This one is intended to build parametric curves, as stated in ICC 4.0 spec. "Type" refers to ICC type plus one. If type is negative, then the curve is analitically reversed. This function is still experimental. 8. Proofing. ============================================================================ An additional ability of lcms is to create "proofing" transforms. A proofing transform does emulate the colors that will appear if a image is rendered on a specific device. That is, for example, with a proofing transform I can see how will look a photo of my little daughter if rendered on my HP. Since most printer profiles does include some sort of gamut-remapping, it is likely colors will not look *exactly* as the original. Using a proofing transform, it can be done by using the appropriate function. Note that this is an important feature for final users, it is worth of all color-management stuff if the final media is not cheap. The creation of a proofing transform involves three profiles, the input and output ones as cmsCreateTransform() plus another, representing the emulated profile. cmsHTRANSFORM cmsCreateProofingTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, cmsHPROFILE Proofing, int Intent, int ProofingIntent, DWORD dwFlags); Also, there is another parameter for specifying the intent for the proof. The Intent here, represents the intent the user will select when printing, and the proofing intent represent the intent system is using for showing the proofed color. Since some printers can archive colors that displays cannot render (darker ones) some gamut-remapping must be done to accommodate such colors. Normally INTENT_ABSOLUTE_COLORIMETRIC is to be used: is is likely the user wants to see the exact colors on screen, cutting off these unrepresentable colors. INTENT_RELATIVE_COLORIMETRIC could serve as well. Proofing transforms can also be used to show the colors that are out of the printer gamut. You can activate this feature by using the cmsFLAGS_GAMUTCHECK flag in dwFlags field. Then, the function: void cmsSetAlarmCodes(int r, int g, int b); Can be used to define the marker. rgb are expected to be integers in range 0..255 NOTES: For activating the preview or gamut check features, you MUST include the corresponding flags cmsFLAGS_SOFTPROOFING cmsFLAGS_GAMUTCHECK This is done in such way because the user usually wants to compare with/without softproofing. Then, you can share same code. If any of the flags is present, the transform does the proofing stuff. If not, the transform ignores the proofing profile/intent and behaves like a normal input-output transform. In practical usage, you need only to associate the check boxes of "softproofing" and "gamut check" with these flags. 9.1 Black point compensation ============================================================================ The black point compensation feature does work in conjunction with relative colorimetric intent. Perceptual intent should make no difference, although it affects some profiles. The mechanics are simple. BPC does scale full image across gray axis in order to accommodate the darkest tone origin media can render to darkest tone destination media can render. As a such, BPC is primarily targeting CMYK. Let's take an example. You have a separation (CMYK image) for, say, SWOP. Then you want to translate this separation to another media on another printer. The destination media/printer can deliver a black darker that original SWOP. Now you have several options. a) use perceptual intent, and let profile do the gamut remapping for you. Some users complains about the profiles moving too much the colors. This is the "normal" ICC way. b) use relative colorimetric.This will not move any color, but depending on different media you would end with "flat" images, taking only a fraction of available grays or a "collapsed" images, with loss of detail in dark shadows. c) Use relative colorimetric + black point compensation. This is the discussion theme. Colors are unmoved *except* gray balance that is scaled in order to accommodate to the dynamic range of new media. Is not a smart CMM, but a fist step letting the CMM to do some remapping. The algorithm used for black point compensation is a XYZ linear scaling in order to match endpoints. You can enable the BPC feature by using this in the dwFlags field, it works on softproofs too. cmsFLAGS_BLACKPOINTCOMPENSATION 9.2 - Black preserving transforms =========================================================================== Black preservation deals with CMYK -> CMYK transforms, and is intended to preserve, as much as possible, the black (K) channel whilst matching color by using CMY inks. There is a tradeoff between accuracy and black preservation, so you lost some accuracy in order to preserve the original separation. Not to be a big problem in most cases, benefits of keeping K channel are huge! For sure you have seen prints of gray images with a huge color cast towards magenta or green. That's very unpleasant. Mainly, this happens because metamerism is not taken into account when doing the profile. Black ink chromaticity changes on different illuminants. For example, a profile is done measuring black ink under D50, then, under D50 this black ink have tendency to magenta. Ok, the profile captures such chroma and, when reproducing colorimetrically, replaces the destination black with CMY reproducing this magenta. Now, If you take the original K ink and examine it under sunlight, it is not magenta anymore! But the reproduction using CMY keeps going magenta. Result: a nasty color cast . And this is just one of the reasons why keeping black ink is so important. Maybe there is a slight discontinuity, as big as the chromaticity of blacks differ, but it is so small that the smoothing induced by the CLUT is enough to compensate. And this is almost nothing when compared with the huge cast on grays a CMYK->Lab->CMYK may create. You can enable the black preservation feature by using this flag: cmsFLAGS_PRESERVEBLACK 10. Error handling ============================================================================ lcms primary goal is to be quite simple, so error handling is managed in a simple way. If you are using lcms as a DLL, you can tell lcms what is supposed to happen when an error is detected. For doing that, you can use this function. void cmsErrorAction(int nAction); 'nAction' can be one of the following values: LCMS_ERROR_ABORT 0 LCMS_ERROR_SHOW 1 LCMS_ERROR_IGNORE 2 Default is LCMS_ERROR_ABORT. That is, if an error is detected, lcms will show a MessageBox with a small explanation about the error and then WILL ABORT WHOLE APPLICATION. This behaviour is desirable when debugging, but not in final releases. For inhibit such aborting, you can use LCMS_ERROR_SHOW. This setting will show the error text, but doesn't finish the application. Some functions like cmsOpenProfileFromFile() or cmsCreateTransform() will return NULL instead of a valid handle as error-marker. Others will return FALSE. The last setting is LCMS_ERROR_IGNORE, that is, no message is displayed and only a NULL or FALSE is returned if operation fails. Note that if you use LCMS_ERROR_SHOW or LCMS_ERROR_IGNORE, your code must check the return code. This is not necessary if you are using LCMS_ERROR_ABORT, since the application will be terminated as soon as the error is detected. If you doesn't like this scheme, you can provide your own error handling, function by using: void cmsSetErrorHandler(cmsErrorHandlerFunction Fn); You need to write your own error handling function, in the form: int MyErrorHandlerFunction(int ErrorCode, const char *ErrorText) { ... do whatsever you want with error codes .. } And then register the error handler by using: cmsSetErrorHandler(MyErrorHandlerFunction); ErrorCode can be one of the following values: LCMS_ERRC_WARNING 0x1000 LCMS_ERRC_RECOVERABLE 0x2000 LCMS_ERRC_ABORTED 0x3000 ErrorText is a text holding an english description of error. You should return 1 if you are handling the error. Returning 0, throws the error back to the default error handler. WARNING: lcms is *not* supposed to recover from all errors. If you are using your own error handling, please note that you have to abort all process if you recive LCMS_ERRC_ABORTED in ErrorCode parameter. Incoming versions will handle this issue more properly. 11. Getting information from profiles. ============================================================================ There are some functions for retrieve information on opened profiles. These are: LCMSBOOL cmsIsTag(cmsHPROFILE hProfile, icTagSignature sig); This one does check if a particular tag is present. Remaining does take useful information about general parameters. LCMSBOOL cmsTakeMediaWhitePoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); LCMSBOOL cmsTakeMediaBlackPoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); LCMSBOOL cmsTakeIluminant(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); LCMSBOOL cmsTakeColorants(LPcmsCIEXYZTRIPLE Dest, cmsHPROFILE hProfile); const char* cmsTakeProductName(cmsHPROFILE hProfile); const char* cmsTakeProductDesc(cmsHPROFILE hProfile); int cmsTakeRenderingIntent(cmsHPROFILE hProfile); icColorSpaceSignature cmsGetPCS(cmsHPROFILE hProfile); icColorSpaceSignature cmsGetColorSpace(cmsHPROFILE hProfile); icProfileClassSignature cmsGetDeviceClass(cmsHPROFILE hProfile); These functions are given mainly for building user interfaces, you don't need to use them if you just want a plain translation. Other usage would be to identify "families" of profiles. The functions returning strings are using an static buffer that is overwritten in each call, others does accept a pointer to an specific struct that is filled if function is successful. #define LCMS_USED_AS_INPUT 0 #define LCMS_USED_AS_OUTPUT 1 #define LCMS_USED_AS_PROOF 2 LCMSBOOL cmsIsIntentSupported(cmsHPROFILE hProfile, int Intent, int UsedDirection); This one helps on inquiring if a determinate intent is supported by an opened profile. You must give a handle to profile, the intent and a third parameter specifying how the profile would be used. The function does return TRUE if intent is supported or FALSE if not. If the intent is not supported, lcms will use default intent (usually perceptual). ADVANCED TOPICS =============== The following section does describe additional functions for advanced use of lcms. Several of these are expanding the capabilities of lcms above a 'pure' CMM. In this way, they do not belong to the CMM layer, but as a low level primitives for the CMS formed by the CMM and the profilers. There is no need of these function on "normal" usage. 12. Creating and writting new profiles. ============================================================================ Since version 1.09, lcms has the capability of writting profiles. The interface is very simple, despite its use does imply certain knowleage of profile internals. These are the functions needed to create a new profile: void cmsSetDeviceClass(cmsHPROFILE hProfile, icProfileClassSignature sig); void cmsSetColorSpace(cmsHPROFILE hProfile, icColorSpaceSignature sig); void cmsSetPCS(cmsHPROFILE hProfile, icColorSpaceSignature pcs); void cmsSetRenderingIntent(cmsHPROFILE hProfile, int RenderingIntent); LCMSBOOL cmsAddTag(cmsHPROFILE hProfile, icTagSignature sig, void* data); And the generic file management ones: cmsOpenProfileFromFile() and cmsCloseProfile() Device class, colorspace and PCS type does affect to header and overall profile. cmsSetRenderingIntent() sets the (informative) intent field on header. Rest of information is included using cmsAddTag(). Of course you must know which tags to include and the meaning of each tag. LittleCms does nothing to check the validity of newly created profiles. These functions are only intended to be a low level interface to profile creation. Creating a new profile ----------------------- When you open a profile with 'w' as access mode, you got a simpler Lab identity. That is, a profile marked as Lab colorspace that passes input untouched to output. You need to fully qualify your profile by setting its colorspace, device class, PCS and then add the required tags. cmsAddTag() does understand following tags: Signature Expected data type ========================== ================== icSigCharTargetTag const char* icSigCopyrightTag const char* icSigProfileDescriptionTag const char* icSigDeviceMfgDescTag const char* icSigDeviceModelDescTag const char* icSigRedColorantTag LPcmsCIEXYZ icSigGreenColorantTag LPcmsCIEXYZ icSigBlueColorantTag LPcmsCIEXYZ icSigMediaWhitePointTag LPcmsCIEXYZ icSigMediaBlackPointTag LPcmsCIEXYZ icSigRedTRCTag LPGAMMATABLE icSigGreenTRCTag LPGAMMATABLE icSigBlueTRCTag LPGAMMATABLE icSigGrayTRCTag LPGAMMATABLE icSigAToB0Tag LPLUT icSigAToB1Tag LPLUT icSigAToB2Tag LPLUT icSigBToA0Tag LPLUT icSigBToA1Tag LPLUT icSigBToA2Tag LPLUT icSigGamutTag LPLUT icSigPreview0Tag LPLUT icSigPreview1Tag LPLUT icSigPreview2Tag LPLUT icSigChromaticityTag LPcmsCIExyYTRIPLE icSigNamedColor2Tag LPcmsNAMEDCOLORLIST icSigColorantTableTag LPcmsNAMEDCOLORLIST icSigColorantTableOutTag LPcmsNAMEDCOLORLIST icSigCalibrationDateTimeTag const struct tm* More tags are expected to be added in future revisions. Another way to create profiles is by using _cmsSaveProfile() or _cmsSaveProfileToMem(). See the API reference for details. 13. LUT handling ============================================================================ LUT stands for L)ook U)p T)ables. This is a generalizad way to handle workflows consisting of a quite complex stages. Here is the pipeline scheme, Don't panic! [Mat] -> [L1] -> [Mat3] -> [Ofs3] -> [L3] -> [CLUT] -> [L4] -> [Mat4] -> [Ofs4] -> [L2] Mat{n} are matrices of 3x3 Ofs{n} are offsets CLUT is a multidimensional LUT table Some or all of these stages may be missing. LUTS can handle up to 8 channels on input and 16 channels of output. The programmer can allocate a LUT by calling: NewLUT = cmsAllocLUT(); This allocates an empty LUT. Input is passed transparently to output by default. The programmer can optionally add pre/post linearization tables by using: cmsAllocLinearTable(LPLUT NewLUT, LPGAMMATABLE Tables[], int nTable); Being Table: 1 - Prelinearization 1D table L1 2 - Postlinearization 1D table L2 3 - linearization 1D table L3 4 - linearization 1D table L4 The 3x3 matrices can be set by: LPLUT cmsSetMatrixLUT4(LPLUT Lut, LPMAT3 M, LPVEC3 off, DWORD dwFlags); Flags define the matrix to set: LUT_HASMATRIX: Mat LUT_HASMATRIX3: Mat3 LUT_HASMATRIX4: Mat4 The CLUT is a multidimensional table where most of the magic of colormanagement is done. It holds as many (hyper)cubes as ouput channels and the dimension of these hypercubes is the number of input channels. To fill the CLUT with sampled values, the programmer can call: LCMSBOOL cmsSample3DGrid(LPLUT Lut, _cmsSAMPLER Sampler, LPVOID Cargo, DWORD dwFlags) This function builds the CLUT table by calling repeatly a callback function: typedef int (* _cmsSAMPLER)(register WORD In[], register WORD Out[], register LPVOID Cargo); The programmer has to write his callback function. This function should calculate Out[] values given a In[] set. For example, if we want a LUT to invert (negate) channels, a sampler could be: int InvertSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { for (i=0; i < 3; i++) Out[i] = ~ In[i]; return TRUE; } cmsSample3DGrid does call this function to build the CLUT. Pre/post linearization tables may be taken into account across flags parameter Flags Meaning ================ ======================================= LUT_HASTL1 Do reverse linear interpolation on prelinearization table before calling the callback. LUT_HASTL2 Do reverse linear interpolation on postlinearization table after calling the callback. LUT_INSPECT Does NOT write any data to the 3D CLUT, instead, retrieve the coordinates for inspection only. If using such flag, Out[] will hold the CLUT contents. In[] -> The CLUT indexes Out[] -> The CLUT contents HASTL1 and HASTL2 Flags are intended to be used as an aid for building non-uniformly spaced CLUTs. Using these flags results in "undoing" any linearization that tables could apply. In such way, the callback is expected to be called with In[] always the original colorspace, and must return Out[] values always in original (non-postlinearized) space as well. The linearization cooking is done automatically. The callback must return TRUE if all is ok, or zero to indicate error. If error condition is raised, whole CLUT construction is aborted. Once builded, programmer can evaluate the LUT by using: void cmsEvalLUT(LPLUT Lut, WORD In[], WORD Out[]); That does interpolate values according on pipeline tables. Finally, a LUT can be freed by void cmsFreeLUT(LPLUT Lut); Or retrieved from a profile using: LPLUT cmsReadICCLut(cmsHPROFILE hProfile, icTagSignature sig); To include a LUT in a profile, use cmsAddTag() with tag signature and a pointer to LUT structure as parameters. See cmsAddTag() in the API reference for more info. 14. Helper functions ============================================================================ Here are some functions that could be useful. They are not needed in "normal" usage. Colorimetric space conversions: void cmsXYZ2xyY(LPcmsCIExyY Dest, const LPcmsCIEXYZ Source); void cmsxyY2XYZ(LPcmsCIEXYZ Dest, const LPcmsCIExyY Source); void cmsXYZ2Lab(LPcmsCIEXYZ WhitePoint, LPcmsCIELab Lab, const LPcmsCIEXYZ xyz); void cmsLab2XYZ(LPcmsCIEXYZ WhitePoint, LPcmsCIEXYZ xyz, const LPcmsCIELab Lab); void cmsLab2LCh(LPcmsCIELCh LCh, const LPcmsCIELab Lab); void cmsLCh2Lab(LPcmsCIELab Lab, const LPcmsCIELCh LCh); Notation conversion: (converts from PT_* colorspaces to ICC notation) icColorSpaceSignature _cmsICCcolorSpace(int OurNotation); Channels of a given colorspace: int _cmsChannelsOf(icColorSpaceSignature ColorSpace); Chromatic Adaptation: LCMSBOOL cmsAdaptToIlluminant(LPcmsCIEXYZ Result, LPcmsCIEXYZ SourceWhitePt, LPcmsCIEXYZ Illuminant, LPcmsCIEXYZ Value); Build a balanced transfer matrix with chromatic adaptation, this is equivalent to "cooking" required to conform a colorant matrix. LCMSBOOL cmsBuildRGB2XYZtransferMatrix(LPMAT3 r, LPcmsCIExyY WhitePoint, LPcmsCIExyYTRIPLE Primaries); 15. Color difference functions ============================================================================ These functions does compute the difference between two Lab colors, using several difference spaces double cmsDeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsCIE94DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsBFDdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsCMCdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); double cmsCIE2000DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2, double Kl, double Kc, double Kh); 16. PostScript generation ============================================================================ 3 functions carry the task of obtaining CRD and CSA. DWORD cmsGetPostScriptCSA(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); DWORD cmsGetPostScriptCRD(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); DWORD cmsGetPostScriptCRDEx(cmsHPROFILE hProfile, int Intent, DWORD dwFlags, LPVOID Buffer, DWORD dwBufferLen); cmsGetPostScriptCRDEx allows black point compensation using cmsFLAGS_WHITEBLACKCOMPENSATION in flags field. PostScrip colorflow is often done in a different way. Insted of creating a transform, it is sometimes desirable to delegate the color management to PostScript interpreter. These functions does translate input and output profiles into Color Space Arrays (CSA) and Color Rendering Dictionaries (CRD) · CRD are equivalent to output (printer) profiles. Can be loaded into printer at startup and can be stored as resources. · CSA are equivalent to input and workspace profiles, and are intended to be included in the document definition. These functions does generate the PostScript equivalents. Since the lenght of the resultant PostScript code is unknown in advance, you can call the functions with len=0 and Buffer=NULL to get the lenght. After that, you need to allocate enough memory to contain the whole block Example: Size = cmsGetPostScriptCSA(hProfile, INTENT_PERCEPTUAL, NULL, 0); If (Size == 0) error() Block = malloc(Size); cmsGetPostScriptCSA(hProfile, INTENT_PERCEPTUAL, Block, Size); Devicelink profiles are supported, as long as input colorspace matches Lab/XYZ for CSA or output colorspace matches Lab/XYZ for CRD. This can be used in conjuntion with cmsCreateMultiprofileTransform(), and cmsTransform2DeviceLink() to embed complex color flow into PostScript. WARNING: Preccision of PostScript is limited to 8 bits per sample. If you can choose between normal transforms and CSA/CRD, normal transforms will give more accurancy. However, there are situations where there is no chance. 17. CIECAM02 ============================================================================ The model input data are the adapting field luminance in cd/m2 (normally taken to be 20% of the luminance of white in the adapting field), La , the relative tristimulus values of the stimulus, XYZ, the relative tristimulus values of white in the same viewing conditions, "whitePoint", and the relative luminance of the background, Yb . Relative tristimulus values should be expressed on a scale from Y = 0 for a perfect black to Y = 100 for a perfect reflecting diffuser. All CIE tristimulus values are obtained using the CIE 1931 Standard Colorimetric Observer (2°). typedef struct { cmsCIEXYZ whitePoint; // The media white in XYZ double Yb; double La; int surround; double D_value; } cmsViewingConditions, FAR* LPcmsViewingConditions; Surround can be one of these #define AVG_SURROUND 1 #define DIM_SURROUND 2 #define DARK_SURROUND 3 D_value (adaptation degree) is any value between 0 and 1 The functions for dealing with CAM02 appearance model are: LCMSHANDLE cmsCIECAM02Init(LPcmsViewingConditions pVC); void cmsCIECAM02Done(LCMSHANDLE hModel); void cmsCIECAM02Forward(LCMSHANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut); void cmsCIECAM02Reverse(LCMSHANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut); For example, to convert XYZ values from a given viewing condition to another: a) Create descriptions of both viewing conditions by using cmsCIECAM02Init b) Convert XYZ to JCh using cmsCIECAM02Forward for viewing condition 1 c) Convert JCh back to XYZ using cmsCIECAM02Reverse for viewing condition 2 d) when done, free both descriptions cmsViewingConditions vc1, vc2; cmsJCh Out; cmsCIEXYZ In; HANDLE h1, h2; vc.whitePoint.X = 98.88; vc.whitePoint.Y = 90.00; vc.whitePoint.Z = 32.03; vc.Yb = 18; vc.La = 200; vc.surround = AVG_SURROUND; vc.D_value = 1.0; h1 = cmsCIECAM02Init(&vc); vc2.whitePoint.X = 98.88; vc2.whitePoint.Y = 100.00; vc2.whitePoint.Z = 32.03; vc2.Yb = 20; vc2.La = 20; vc2.surround = AVG_SURROUND; vc2.D_value = 1.0; h2 = cmsCIECAM02Init(&vc); In.X= 19.31; In.Y= 23.93; In.Z =10.14; cmsCIECAM02Forward(h1, &In, &Out); cmsCIECAM02Reverse(h2, &Out, &In); cmsCIECAM02Done(h1); cmsCIECAM02Done(h2); See the CIECAM02 paper on CIE site for further details. 18. Named color profiles ============================================================================ Named color profiles are a special kind of profiles handling lists of spot colors. The typical example is PANTONE. CMM deals with named color profiles like all other types, except they must be in input stage and the encoding supported is limited to a one single channel of 16-bit indexes. Let's assume we have a Named color profile holding only 4 colors: · CYAN · MAGENTA · YELLOW · BLACK We create a transform using: hTransform = cmsCreateTransform(hNamedColorProfile, TYPE_NAMED_COLOR_INDEX, hOutputProfile, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); "TYPE_NAMED_COLOR_INDEX" is a special encoding for these profiles, it represents a single channel holding the spot color index. In our case value 0 will be "CYAN", value 1 "MAGENTA" and so one. For converting between string and index there is an auxiliary function: int cmsNamedColorIndex(cmsHTRANSFORM hTransform, const char* ColorName); That will perform a look up on the spot colors database and return the color number or -1 if the color was not found. Other additional functions for named color transforms are: int cmsNamedColorCount(cmsHTRANSFORM hTransform); That returns the number of colors present on transform database. LCMSBOOL cmsNamedColorInfo(cmsHTRANSFORM xform, int nColor, char* Name, char* Prefix, char* Suffix); That returns extended information about a given color. Named color profiles can also be grouped by using multiprofile transforms. In such case, the database will be formed by the union of all colors in all named color profiles present in transform. Named color profiles does hold two coordinates for each color, let's take our PANTONE example. This profile would contain for each color the CMYK colorants plus its PCS coordinates, usually in Lab space. lcms can work with named color using both coordinates. Creating a transform with two profiles, if the input one is a named color, then you obtain the translated color using PCS. Example, named color -> sRGB will give the color patches in sRGB In the other hand, setting second profile to NULL, returns the device coordinates, that is, CMYK colorants in our PANTONE sample. Example: Named color -> NULL will give the CMYK amount for each spot color. The transform must use TYPE_NAMED_COLOR_INDEX on input. That is, a single channel containing the 0-based color index. Then you have: cmsNamedColorIndex(cmsHTRANSFORM xform, const char* Name) for obtaining index from color name, and cmsNamedColorInfo(), cmsNamedColorCount() to retrieve the list. The profile is supposed to be for a unique device. Then the CMYK values does represent the amount of inks THIS PRINTER needs to render the spot color. The profile also has the Lab values corresponding to the color. This really would have no sense if gamut of printer were infinite, but since printers does have a limited gamut a PANTONE-certified printer renders colors near gamut boundaries with some limitations. The named color profile is somehow explaining which are these limitation for that printer. So, you can use a named color profile in two different ways, as output, giving the index and getting the CMYK values or as input and getting the Lab for that color. A transform named color -> NULL will give the CMYK values for the spot color on the printer the profile is describing. This would be the normal usage. A transform Named color -> another printer will give on the output printer the spot colors as if they were printed in the printer named color profile is describing. This is useful for soft proofing. As an additional feature, lcms can "group" several named color profiles into a single database by means of cmsCreateMultiprofileTransform(). Such case works as described above, but joining all named colors as they were in a single profile. 19. Conclusion. ============================================================================ That's almost all you must know to begin experimenting with profiles, just a couple of words about the possibilities ICC profiles can give to programmers: o ColorSpace profiles are valuable tools for converting from/to exotic file formats. I'm using lcms to read Lab TIFF using the popular Sam Leffler's TIFFLib. Also, the ability to restore separations are much better that the infamous 1-CMY method. o Abstract profiles can be used to manipulate color of images, contrast, brightness and true-gray reductions can be done fast and accurately. Grayscale conversions can be done exceptionally well, and even in tweaked colorspaces that does emulate more gray levels that the output device can effectively render. o lcms does all calculation on 16 bit per component basis, the display and output profiles can take advantage of these precision and efficiently emulate more than 8 bits per sample. You probably will not notice this effect on screen, but it can be seen on printed or film media. o There is a huge quantity of profiles moving around the net, and there is very good software for generating them, so future compatibility seems to be assured. I thank you for your time and consideration. Enjoy! Sample 1: How to convert RGB to CMYK and back ============================================= This is easy. Just use a transform between RGB profile to CMYK profile. #include "lcms.h" int main(void) { cmsHPROFILE hInProfile, hOutProfile; cmsHTRANSFORM hTransform; int i; hInProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r"); hOutProfile = cmsOpenProfileFromFile("MyCmyk.ICM", "r"); hTransform = cmsCreateTransform(hInProfile, TYPE_RGB_8, hOutProfile, TYPE_CMYK_8, INTENT_PERCEPTUAL, 0); for (i=0; i < AllScanlinesTilesOrWatseverBlocksYouUse; i++) { cmsDoTransform(hTransform, YourInputBuffer, YourOutputBuffer, YourBuffersSizeInPixels); } cmsDeleteTransform(hTransform); cmsCloseProfile(hInProfile); cmsCloseProfile(hOutProfile); return 0; } And Back....? Same. Just exchange profiles and format descriptors: int main(void) { cmsHPROFILE hInProfile, hOutProfile; cmsHTRANSFORM hTransform; int i; hInProfile = cmsOpenProfileFromFile("MyCmyk.ICM", "r"); hOutProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r"); hTransform = cmsCreateTransform(hInProfile, TYPE_CMYK_8, hOutProfile, TYPE_RGB_8, INTENT_PERCEPTUAL, 0); for (i=0; i < AllScanlinesTilesOrWatseverBlocksYouUse; i++) { cmsDoTransform(hTransform, YourInputBuffer, YourOutputBuffer, YourBuffersSizeInPixels); } cmsDeleteTransform(hTransform); cmsCloseProfile(hInProfile); cmsCloseProfile(hOutProfile); return 0; } Sample 2: How to deal with Lab/XYZ spaces ========================================== This is more elaborated. There is a Lab identity Built-In profile involved. // Converts Lab(D50) to sRGB: int main(void) { cmsHPROFILE hInProfile, hOutProfile; cmsHTRANSFORM hTransform; int i; BYTE RGB[3]; cmsCIELab Lab[..]; hInProfile = cmsCreateLabProfile(NULL); hOutProfile = cmsOpenProfileFromFile("sRGBColorSpace.ICM", "r"); hTransform = cmsCreateTransform(hInProfile, TYPE_Lab_DBL, hOutProfile, TYPE_RGB_8, INTENT_PERCEPTUAL, 0); for (i=0; i < AllLabValuesToConvert; i++) { // Fill in the Float Lab Lab[i].L = Your L; Lab[i].a = Your a; Lab[i].b = Your b; cmsDoTransform(hTransform, Lab, RGB, 1); .. Do whatsever with the RGB values in RGB[3] } cmsDeleteTransform(hTransform); cmsCloseProfile(hInProfile); cmsCloseProfile(hOutProfile); return 0; } Annex A. About intents ============================================================================ Charles Cowens gives to me a clear explanation about accomplished intents. Since it is very useful to understand how intents are internally implemented, I will reproduce here. AtoBX/BtoAX LUTs and Rendering Intents The ICC spec is pretty detailed about the LUTs and their varying meaning according to context in tables 20, 21, and 22 in section 6.3. My reading of this is that even though there are 4 rendering intent selectors there are really 6 rendering styles: Relative Indefinite (Relative) Perceptual Relative Colorimetric (Relative) Saturation Absolute Indefinite Absolute Colorimetric If a device profile has a single-LUT or matrix: * Perceptual, Relative Colorimetric, Saturation selectors produce the same Relative Indefinite rendering style * Absolute Colorimetric selector produces an Absolute Indefinite rendering style derived from the single LUT or matrix, the media white point tag, and the inverse of a white point compensation method designated by the CMS If a device profile has 3 LUTs: * Perceptual, Relative Colorimetric, Saturation selectors produce the appropriate rendering styles using the 0, 1, and 2 LUTs respectively * Absolute Colorimetric selector produces an Absolute Colorimetric rendering style derived from the Relative Colorimetric LUT (numbered "1"), the media white point tag, and the inverse of a white point compensation method designated by the CMS This would explain why perceptual is the default rendering style because a single-LUT profile's LUT is numbered "0". Annex B Apparent bug in XYZ -> sRGB transforms ============================================================================ John van den Heuvel warns me about an apparent bug on XYZ -> sRGB transforms. Ver 1.10 should minimize this effect. The obtained results are visually OK, but numbers seems to be wrong. It appears only when following conditions: a) You are using a transform from a colorspace with a gamut a lot bigger that output space, i.e. XYZ. Note than sRGB -> XYZ does work OK. b) You are using absolute colorimetric intent. c) You transform a color near gamut hull boundary d) The output profile is implemented as a matrix-shaper, i.e. sRGB. e) You are using precalculated device link tables. The numbers lcms returns doesn't match closely that color, but other perceptually close to the intended one. It happens that since XYZ has a very big gamut, and sRGB a narrow one on compared to XYZ, when lcms tries to compute the device link between XYZ -> sRGB, got most values as negative RGB (out of gamut). lcms assumes this is effectively out of gamut and clamps to 0. Then, since (127, 0, 0) is just over gamut boundary (for example (127, -1, -1) would be out of gamut), lcms does interpolate wrongly, not between -n to n but between 0 to n. I could put an If() in the code for dealing with such situation, but I guess it is better not touch anything and document this behaviour. XYZ is almost never used as a storage space, and since most monitor profiles are implemented as matrix shaper touching this would slow down common operations. The solution is quite simple, if you want to deal with numbers, then use cmsFLAGS_NOTPRECALC. If you deal with images, let lcms optimize the transform. Visual results should appear OK, no matter numbers doesn't match. lcms-1.19/filter.c0000777000175300010010000000654711272606370013325 0ustar MartiNinguno/* // // Little cms sources filter utility // Copyright (C) 1998-2003 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // A simple filter to strip CR and ^Z, and replace //-like comments to old style */ #include #include static int ch; static int IsEof; static FILE *In, *Out; static void NextCh(void) { if (IsEof) ch = 0; else { do { ch = getc(In); } while (ch == '\r' || ch == '\032'); /* Ignore CR and ^Z */ IsEof = (ch == EOF); if (IsEof) ch = 0; } } static void Translate(void) { IsEof = 0; while (!IsEof) { NextCh(); switch (ch) { case '/': NextCh(); if (ch == '/') { /* Found comment */ NextCh(); /* Cleanup white spaces */ while (ch == ' ' && !IsEof) NextCh(); if (ch == '\n' && !IsEof) /* Comment is empty */ break; /* Comment contains something */ putc('/', Out); putc('*', Out); putc(' ', Out); while (ch != '\n' && !IsEof) { putc(ch, Out); NextCh(); } putc(' ', Out); putc('*', Out); putc('/', Out); } else putc('/', Out); break; default:; } if (ch != 0) putc(ch, Out); } } int main(int argc, char *argv[]) { if (argc != 3) { fprintf(stderr, "Usage: %s infile outfile\n", argv[0]); return 1; } if (access(argv[2], 0) == 0) { fprintf(stderr, "%s already exist, please erase manually\n", argv[2]); return 1; } In = fopen(argv[1], "rb"); if (!In) { perror(argv[1]); return 1;}; Out = fopen(argv[2], "wb"); if (!Out) { perror(argv[2]); return 2;}; Translate(); fclose(In); fclose(Out); return 0; } lcms-1.19/include/0000777000175300010010000000000011272606372013302 5ustar MartiNingunolcms-1.19/include/icc34.h0000755000175300010010000011621111272606371014360 0ustar MartiNinguno/* Header file guard bands */ #ifndef ICC_H #define ICC_H /***************************************************************** Copyright (c) 1994-1996 SunSoft, Inc. 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 restrict- ion, 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 NON- INFRINGEMENT. IN NO EVENT SHALL SUNSOFT, INC. OR ITS PARENT COMPANY 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 SunSoft, Inc. shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without written authorization from SunSoft Inc. ******************************************************************/ /* * This version of the header file corresponds to the profile * specification version 3.4. * * All header file entries are pre-fixed with "ic" to help * avoid name space collisions. Signatures are pre-fixed with * icSig. * * The structures defined in this header file were created to * represent a description of an ICC profile on disk. Rather * than use pointers a technique is used where a single byte array * was placed at the end of each structure. This allows us in "C" * to extend the structure by allocating more data than is needed * to account for variable length structures. * * This also ensures that data following is allocated * contiguously and makes it easier to write and read data from * the file. * * For example to allocate space for a 256 count length UCR * and BG array, and fill the allocated data. Note strlen + 1 * to remember NULL terminator. * icUcrBgCurve *ucrCurve, *bgCurve; int ucr_nbytes, bg_nbytes, string_bytes; icUcrBg *ucrBgWrite; char ucr_string[100], *ucr_char; strcpy(ucr_string, "Example ucrBG curves"); ucr_nbytes = sizeof(icUInt32Number) + (UCR_CURVE_SIZE * sizeof(icUInt16Number)); bg_nbytes = sizeof(icUInt32Number) + (BG_CURVE_SIZE * sizeof(icUInt16Number)); string_bytes = strlen(ucr_string) + 1; ucrBgWrite = (icUcrBg *)malloc( (ucr_nbytes + bg_nbytes + string_bytes)); ucrCurve = (icUcrBgCurve *)ucrBgWrite->data; ucrCurve->count = UCR_CURVE_SIZE; for (i=0; icount; i++) ucrCurve->curve[i] = (icUInt16Number)i; bgCurve = (icUcrBgCurve *)((char *)ucrCurve + ucr_nbytes); bgCurve->count = BG_CURVE_SIZE; for (i=0; icount; i++) bgCurve->curve[i] = 255 - (icUInt16Number)i; ucr_char = (char *)((char *)bgCurve + bg_nbytes); memcpy(ucr_char, ucr_string, string_bytes); * */ /* * Many of the structures contain variable length arrays. This * is represented by the use of the convention. * * type data[icAny]; */ /*------------------------------------------------------------------------*/ /* * Defines used in the specification */ #define icMagicNumber 0x61637370L /* 'acsp' */ #define icVersionNumber 0x02100000L /* 2.1.0, BCD */ /* Screening Encodings */ #define icPrtrDefaultScreensFalse 0x00000000L /* Bit pos 0 */ #define icPrtrDefaultScreensTrue 0x00000001L /* Bit pos 0 */ #define icLinesPerInch 0x00000002L /* Bit pos 1 */ #define icLinesPerCm 0x00000000L /* Bit pos 1 */ /* * Device attributes, currently defined values correspond * to the low 4 bytes of the 8 byte attribute quantity, see * the header for their location. */ #define icReflective 0x00000000L /* Bit pos 0 */ #define icTransparency 0x00000001L /* Bit pos 0 */ #define icGlossy 0x00000000L /* Bit pos 1 */ #define icMatte 0x00000002L /* Bit pos 1 */ /* * Profile header flags, the low 16 bits are reserved for consortium * use. */ #define icEmbeddedProfileFalse 0x00000000L /* Bit pos 0 */ #define icEmbeddedProfileTrue 0x00000001L /* Bit pos 0 */ #define icUseAnywhere 0x00000000L /* Bit pos 1 */ #define icUseWithEmbeddedDataOnly 0x00000002L /* Bit pos 1 */ /* Ascii or Binary data */ #define icAsciiData 0x00000000L #define icBinaryData 0x00000001L /* * Define used to indicate that this is a variable length array */ #define icAny 1 /*------------------------------------------------------------------------*/ /* * Use this area to translate platform definitions of long * etc into icXXX form. The rest of the header uses the icXXX * typedefs. Signatures are 4 byte quantities. * */ #ifdef PACKAGE_NAME /* June 9, 2003, Adapted for use with configure by Bob Friesenhahn Added the stupid check for autoconf by Marti Maria. PACKAGE_NAME is defined if autoconf is being used */ typedef @UINT8_T@ icUInt8Number; typedef @UINT16_T@ icUInt16Number; typedef @UINT32_T@ icUInt32Number; typedef @UINT32_T@ icUInt64Number[2]; typedef @INT8_T@ icInt8Number; typedef @INT16_T@ icInt16Number; typedef @INT32_T@ icInt32Number; typedef @INT32_T@ icInt64Number[2]; #else /* *Apr-17-2002: Modified by Marti Maria in order to provide wider portability. */ #if defined (__digital__) && defined (__unix__) /* Tru64 */ #include typedef uint8_t icUInt8Number; typedef uint16_t icUInt16Number; typedef uint32_t icUInt32Number; typedef uint32_t icUInt64Number[2]; typedef int8_t icInt8Number; typedef int16_t icInt16Number; typedef int32_t icInt32Number; typedef int32_t icInt64Number[2]; #else #ifdef __sgi #include "sgidefs.h" /* * Number definitions */ /* Unsigned integer numbers */ typedef unsigned char icUInt8Number; typedef unsigned short icUInt16Number; typedef __uint32_t icUInt32Number; typedef __uint32_t icUInt64Number[2]; /* Signed numbers */ typedef char icInt8Number; typedef short icInt16Number; typedef __int32_t icInt32Number; typedef __int32_t icInt64Number[2]; #else #if defined(__GNUC__) || defined(__unix__) || defined(__unix) #include #if defined(__sun) || defined(__hpux) || defined (__MINGW) || defined(__MINGW32__) #if defined (__MINGW) || defined(__MINGW32__) #include #endif typedef uint8_t icUInt8Number; typedef uint16_t icUInt16Number; typedef uint32_t icUInt32Number; typedef uint32_t icUInt64Number[2]; #else /* Unsigned integer numbers */ typedef u_int8_t icUInt8Number; typedef u_int16_t icUInt16Number; typedef u_int32_t icUInt32Number; typedef u_int32_t icUInt64Number[2]; #endif /* Signed numbers */ typedef int8_t icInt8Number; typedef int16_t icInt16Number; typedef int32_t icInt32Number; typedef int32_t icInt64Number[2]; #else /* default definitions */ /* * Number definitions */ /* Unsigned integer numbers */ typedef unsigned char icUInt8Number; typedef unsigned short icUInt16Number; typedef unsigned long icUInt32Number; typedef unsigned long icUInt64Number[2]; /* Signed numbers */ typedef char icInt8Number; typedef short icInt16Number; typedef long icInt32Number; typedef long icInt64Number[2]; #endif /* default defs */ #endif #endif #endif /* Base types */ typedef icInt32Number icSignature; typedef icInt32Number icS15Fixed16Number; typedef icUInt32Number icU16Fixed16Number; /*------------------------------------------------------------------------*/ /* public tags and sizes */ typedef enum { icSigAToB0Tag = 0x41324230L, /* 'A2B0' */ icSigAToB1Tag = 0x41324231L, /* 'A2B1' */ icSigAToB2Tag = 0x41324232L, /* 'A2B2' */ icSigBlueColorantTag = 0x6258595AL, /* 'bXYZ' */ icSigBlueTRCTag = 0x62545243L, /* 'bTRC' */ icSigBToA0Tag = 0x42324130L, /* 'B2A0' */ icSigBToA1Tag = 0x42324131L, /* 'B2A1' */ icSigBToA2Tag = 0x42324132L, /* 'B2A2' */ icSigCalibrationDateTimeTag = 0x63616C74L, /* 'calt' */ icSigCharTargetTag = 0x74617267L, /* 'targ' */ icSigCopyrightTag = 0x63707274L, /* 'cprt' */ icSigCrdInfoTag = 0x63726469L, /* 'crdi' */ icSigDeviceMfgDescTag = 0x646D6E64L, /* 'dmnd' */ icSigDeviceModelDescTag = 0x646D6464L, /* 'dmdd' */ icSigGamutTag = 0x67616D74L, /* 'gamt ' */ icSigGrayTRCTag = 0x6b545243L, /* 'kTRC' */ icSigGreenColorantTag = 0x6758595AL, /* 'gXYZ' */ icSigGreenTRCTag = 0x67545243L, /* 'gTRC' */ icSigLuminanceTag = 0x6C756d69L, /* 'lumi' */ icSigMeasurementTag = 0x6D656173L, /* 'meas' */ icSigMediaBlackPointTag = 0x626B7074L, /* 'bkpt' */ icSigMediaWhitePointTag = 0x77747074L, /* 'wtpt' */ icSigNamedColorTag = 0x6E636f6CL, /* 'ncol' * OBSOLETE, use ncl2 */ icSigNamedColor2Tag = 0x6E636C32L, /* 'ncl2' */ icSigPreview0Tag = 0x70726530L, /* 'pre0' */ icSigPreview1Tag = 0x70726531L, /* 'pre1' */ icSigPreview2Tag = 0x70726532L, /* 'pre2' */ icSigProfileDescriptionTag = 0x64657363L, /* 'desc' */ icSigProfileSequenceDescTag = 0x70736571L, /* 'pseq' */ icSigPs2CRD0Tag = 0x70736430L, /* 'psd0' */ icSigPs2CRD1Tag = 0x70736431L, /* 'psd1' */ icSigPs2CRD2Tag = 0x70736432L, /* 'psd2' */ icSigPs2CRD3Tag = 0x70736433L, /* 'psd3' */ icSigPs2CSATag = 0x70733273L, /* 'ps2s' */ icSigPs2RenderingIntentTag = 0x70733269L, /* 'ps2i' */ icSigRedColorantTag = 0x7258595AL, /* 'rXYZ' */ icSigRedTRCTag = 0x72545243L, /* 'rTRC' */ icSigScreeningDescTag = 0x73637264L, /* 'scrd' */ icSigScreeningTag = 0x7363726EL, /* 'scrn' */ icSigTechnologyTag = 0x74656368L, /* 'tech' */ icSigUcrBgTag = 0x62666420L, /* 'bfd ' */ icSigViewingCondDescTag = 0x76756564L, /* 'vued' */ icSigViewingConditionsTag = 0x76696577L, /* 'view' */ icMaxEnumTag = 0xFFFFFFFFL } icTagSignature; /* technology signature descriptions */ typedef enum { icSigDigitalCamera = 0x6463616DL, /* 'dcam' */ icSigFilmScanner = 0x6673636EL, /* 'fscn' */ icSigReflectiveScanner = 0x7273636EL, /* 'rscn' */ icSigInkJetPrinter = 0x696A6574L, /* 'ijet' */ icSigThermalWaxPrinter = 0x74776178L, /* 'twax' */ icSigElectrophotographicPrinter = 0x6570686FL, /* 'epho' */ icSigElectrostaticPrinter = 0x65737461L, /* 'esta' */ icSigDyeSublimationPrinter = 0x64737562L, /* 'dsub' */ icSigPhotographicPaperPrinter = 0x7270686FL, /* 'rpho' */ icSigFilmWriter = 0x6670726EL, /* 'fprn' */ icSigVideoMonitor = 0x7669646DL, /* 'vidm' */ icSigVideoCamera = 0x76696463L, /* 'vidc' */ icSigProjectionTelevision = 0x706A7476L, /* 'pjtv' */ icSigCRTDisplay = 0x43525420L, /* 'CRT ' */ icSigPMDisplay = 0x504D4420L, /* 'PMD ' */ icSigAMDisplay = 0x414D4420L, /* 'AMD ' */ icSigPhotoCD = 0x4B504344L, /* 'KPCD' */ icSigPhotoImageSetter = 0x696D6773L, /* 'imgs' */ icSigGravure = 0x67726176L, /* 'grav' */ icSigOffsetLithography = 0x6F666673L, /* 'offs' */ icSigSilkscreen = 0x73696C6BL, /* 'silk' */ icSigFlexography = 0x666C6578L, /* 'flex' */ icMaxEnumTechnology = 0xFFFFFFFFL } icTechnologySignature; /* type signatures */ typedef enum { icSigCurveType = 0x63757276L, /* 'curv' */ icSigDataType = 0x64617461L, /* 'data' */ icSigDateTimeType = 0x6474696DL, /* 'dtim' */ icSigLut16Type = 0x6d667432L, /* 'mft2' */ icSigLut8Type = 0x6d667431L, /* 'mft1' */ icSigMeasurementType = 0x6D656173L, /* 'meas' */ icSigNamedColorType = 0x6E636f6CL, /* 'ncol' * OBSOLETE, use ncl2 */ icSigProfileSequenceDescType = 0x70736571L, /* 'pseq' */ icSigS15Fixed16ArrayType = 0x73663332L, /* 'sf32' */ icSigScreeningType = 0x7363726EL, /* 'scrn' */ icSigSignatureType = 0x73696720L, /* 'sig ' */ icSigTextType = 0x74657874L, /* 'text' */ icSigTextDescriptionType = 0x64657363L, /* 'desc' */ icSigU16Fixed16ArrayType = 0x75663332L, /* 'uf32' */ icSigUcrBgType = 0x62666420L, /* 'bfd ' */ icSigUInt16ArrayType = 0x75693136L, /* 'ui16' */ icSigUInt32ArrayType = 0x75693332L, /* 'ui32' */ icSigUInt64ArrayType = 0x75693634L, /* 'ui64' */ icSigUInt8ArrayType = 0x75693038L, /* 'ui08' */ icSigViewingConditionsType = 0x76696577L, /* 'view' */ icSigXYZType = 0x58595A20L, /* 'XYZ ' */ icSigXYZArrayType = 0x58595A20L, /* 'XYZ ' */ icSigNamedColor2Type = 0x6E636C32L, /* 'ncl2' */ icSigCrdInfoType = 0x63726469L, /* 'crdi' */ icMaxEnumType = 0xFFFFFFFFL } icTagTypeSignature; /* * Color Space Signatures * Note that only icSigXYZData and icSigLabData are valid * Profile Connection Spaces (PCSs) */ typedef enum { icSigXYZData = 0x58595A20L, /* 'XYZ ' */ icSigLabData = 0x4C616220L, /* 'Lab ' */ icSigLuvData = 0x4C757620L, /* 'Luv ' */ icSigYCbCrData = 0x59436272L, /* 'YCbr' */ icSigYxyData = 0x59787920L, /* 'Yxy ' */ icSigRgbData = 0x52474220L, /* 'RGB ' */ icSigGrayData = 0x47524159L, /* 'GRAY' */ icSigHsvData = 0x48535620L, /* 'HSV ' */ icSigHlsData = 0x484C5320L, /* 'HLS ' */ icSigCmykData = 0x434D594BL, /* 'CMYK' */ icSigCmyData = 0x434D5920L, /* 'CMY ' */ icSig2colorData = 0x32434C52L, /* '2CLR' */ icSig3colorData = 0x33434C52L, /* '3CLR' */ icSig4colorData = 0x34434C52L, /* '4CLR' */ icSig5colorData = 0x35434C52L, /* '5CLR' */ icSig6colorData = 0x36434C52L, /* '6CLR' */ icSig7colorData = 0x37434C52L, /* '7CLR' */ icSig8colorData = 0x38434C52L, /* '8CLR' */ icSig9colorData = 0x39434C52L, /* '9CLR' */ icSig10colorData = 0x41434C52L, /* 'ACLR' */ icSig11colorData = 0x42434C52L, /* 'BCLR' */ icSig12colorData = 0x43434C52L, /* 'CCLR' */ icSig13colorData = 0x44434C52L, /* 'DCLR' */ icSig14colorData = 0x45434C52L, /* 'ECLR' */ icSig15colorData = 0x46434C52L, /* 'FCLR' */ icMaxEnumData = 0xFFFFFFFFL } icColorSpaceSignature; /* profileClass enumerations */ typedef enum { icSigInputClass = 0x73636E72L, /* 'scnr' */ icSigDisplayClass = 0x6D6E7472L, /* 'mntr' */ icSigOutputClass = 0x70727472L, /* 'prtr' */ icSigLinkClass = 0x6C696E6BL, /* 'link' */ icSigAbstractClass = 0x61627374L, /* 'abst' */ icSigColorSpaceClass = 0x73706163L, /* 'spac' */ icSigNamedColorClass = 0x6e6d636cL, /* 'nmcl' */ icMaxEnumClass = 0xFFFFFFFFL } icProfileClassSignature; /* Platform Signatures */ typedef enum { icSigMacintosh = 0x4150504CL, /* 'APPL' */ icSigMicrosoft = 0x4D534654L, /* 'MSFT' */ icSigSolaris = 0x53554E57L, /* 'SUNW' */ icSigSGI = 0x53474920L, /* 'SGI ' */ icSigTaligent = 0x54474E54L, /* 'TGNT' */ icMaxEnumPlatform = 0xFFFFFFFFL } icPlatformSignature; /*------------------------------------------------------------------------*/ /* * Other enums */ /* Measurement Flare, used in the measurmentType tag */ typedef enum { icFlare0 = 0x00000000L, /* 0% flare */ icFlare100 = 0x00000001L, /* 100% flare */ icMaxFlare = 0xFFFFFFFFL } icMeasurementFlare; /* Measurement Geometry, used in the measurmentType tag */ typedef enum { icGeometryUnknown = 0x00000000L, /* Unknown */ icGeometry045or450 = 0x00000001L, /* 0/45, 45/0 */ icGeometry0dord0 = 0x00000002L, /* 0/d or d/0 */ icMaxGeometry = 0xFFFFFFFFL } icMeasurementGeometry; /* Rendering Intents, used in the profile header */ typedef enum { icPerceptual = 0, icRelativeColorimetric = 1, icSaturation = 2, icAbsoluteColorimetric = 3, icMaxEnumIntent = 0xFFFFFFFFL } icRenderingIntent; /* Different Spot Shapes currently defined, used for screeningType */ typedef enum { icSpotShapeUnknown = 0, icSpotShapePrinterDefault = 1, icSpotShapeRound = 2, icSpotShapeDiamond = 3, icSpotShapeEllipse = 4, icSpotShapeLine = 5, icSpotShapeSquare = 6, icSpotShapeCross = 7, icMaxEnumSpot = 0xFFFFFFFFL } icSpotShape; /* Standard Observer, used in the measurmentType tag */ typedef enum { icStdObsUnknown = 0x00000000L, /* Unknown */ icStdObs1931TwoDegrees = 0x00000001L, /* 2 deg */ icStdObs1964TenDegrees = 0x00000002L, /* 10 deg */ icMaxStdObs = 0xFFFFFFFFL } icStandardObserver; /* Pre-defined illuminants, used in measurement and viewing conditions type */ typedef enum { icIlluminantUnknown = 0x00000000L, icIlluminantD50 = 0x00000001L, icIlluminantD65 = 0x00000002L, icIlluminantD93 = 0x00000003L, icIlluminantF2 = 0x00000004L, icIlluminantD55 = 0x00000005L, icIlluminantA = 0x00000006L, icIlluminantEquiPowerE = 0x00000007L, icIlluminantF8 = 0x00000008L, icMaxEnumIluminant = 0xFFFFFFFFL } icIlluminant; /*------------------------------------------------------------------------*/ /* * Arrays of numbers */ /* Int8 Array */ typedef struct { icInt8Number data[icAny]; /* Variable array of values */ } icInt8Array; /* UInt8 Array */ typedef struct { icUInt8Number data[icAny]; /* Variable array of values */ } icUInt8Array; /* uInt16 Array */ typedef struct { icUInt16Number data[icAny]; /* Variable array of values */ } icUInt16Array; /* Int16 Array */ typedef struct { icInt16Number data[icAny]; /* Variable array of values */ } icInt16Array; /* uInt32 Array */ typedef struct { icUInt32Number data[icAny]; /* Variable array of values */ } icUInt32Array; /* Int32 Array */ typedef struct { icInt32Number data[icAny]; /* Variable array of values */ } icInt32Array; /* UInt64 Array */ typedef struct { icUInt64Number data[icAny]; /* Variable array of values */ } icUInt64Array; /* Int64 Array */ typedef struct { icInt64Number data[icAny]; /* Variable array of values */ } icInt64Array; /* u16Fixed16 Array */ typedef struct { icU16Fixed16Number data[icAny]; /* Variable array of values */ } icU16Fixed16Array; /* s15Fixed16 Array */ typedef struct { icS15Fixed16Number data[icAny]; /* Variable array of values */ } icS15Fixed16Array; /* The base date time number */ typedef struct { icUInt16Number year; icUInt16Number month; icUInt16Number day; icUInt16Number hours; icUInt16Number minutes; icUInt16Number seconds; } icDateTimeNumber; /* XYZ Number */ typedef struct { icS15Fixed16Number X; icS15Fixed16Number Y; icS15Fixed16Number Z; } icXYZNumber; /* XYZ Array */ typedef struct { icXYZNumber data[icAny]; /* Variable array of XYZ numbers */ } icXYZArray; /* Curve */ typedef struct { icUInt32Number count; /* Number of entries */ icUInt16Number data[icAny]; /* The actual table data, real * number is determined by count * Interpretation depends on how * data is used with a given tag */ } icCurve; /* Data */ typedef struct { icUInt32Number dataFlag; /* 0 = ascii, 1 = binary */ icInt8Number data[icAny]; /* Data, size from tag */ } icData; /* lut16 */ typedef struct { icUInt8Number inputChan; /* Number of input channels */ icUInt8Number outputChan; /* Number of output channels */ icUInt8Number clutPoints; /* Number of grid points */ icInt8Number pad; /* Padding for byte alignment */ icS15Fixed16Number e00; /* e00 in the 3 * 3 */ icS15Fixed16Number e01; /* e01 in the 3 * 3 */ icS15Fixed16Number e02; /* e02 in the 3 * 3 */ icS15Fixed16Number e10; /* e10 in the 3 * 3 */ icS15Fixed16Number e11; /* e11 in the 3 * 3 */ icS15Fixed16Number e12; /* e12 in the 3 * 3 */ icS15Fixed16Number e20; /* e20 in the 3 * 3 */ icS15Fixed16Number e21; /* e21 in the 3 * 3 */ icS15Fixed16Number e22; /* e22 in the 3 * 3 */ icUInt16Number inputEnt; /* Num of in-table entries */ icUInt16Number outputEnt; /* Num of out-table entries */ icUInt16Number data[icAny]; /* Data follows see spec */ /* * Data that follows is of this form * * icUInt16Number inputTable[inputChan][icAny]; * The in-table * icUInt16Number clutTable[icAny]; * The clut * icUInt16Number outputTable[outputChan][icAny]; * The out-table */ } icLut16; /* lut8, input & output tables are always 256 bytes in length */ typedef struct { icUInt8Number inputChan; /* Num of input channels */ icUInt8Number outputChan; /* Num of output channels */ icUInt8Number clutPoints; /* Num of grid points */ icInt8Number pad; icS15Fixed16Number e00; /* e00 in the 3 * 3 */ icS15Fixed16Number e01; /* e01 in the 3 * 3 */ icS15Fixed16Number e02; /* e02 in the 3 * 3 */ icS15Fixed16Number e10; /* e10 in the 3 * 3 */ icS15Fixed16Number e11; /* e11 in the 3 * 3 */ icS15Fixed16Number e12; /* e12 in the 3 * 3 */ icS15Fixed16Number e20; /* e20 in the 3 * 3 */ icS15Fixed16Number e21; /* e21 in the 3 * 3 */ icS15Fixed16Number e22; /* e22 in the 3 * 3 */ icUInt8Number data[icAny]; /* Data follows see spec */ /* * Data that follows is of this form * * icUInt8Number inputTable[inputChan][256]; * The in-table * icUInt8Number clutTable[icAny]; * The clut * icUInt8Number outputTable[outputChan][256]; * The out-table */ } icLut8; /* Measurement Data */ typedef struct { icStandardObserver stdObserver; /* Standard observer */ icXYZNumber backing; /* XYZ for backing */ icMeasurementGeometry geometry; /* Meas. geometry */ icMeasurementFlare flare; /* Measurement flare */ icIlluminant illuminant; /* Illuminant */ } icMeasurement; /* Named color */ /* * icNamedColor2 takes the place of icNamedColor */ typedef struct { icUInt32Number vendorFlag; /* Bottom 16 bits for IC use */ icUInt32Number count; /* Count of named colors */ icUInt32Number nDeviceCoords; /* Num of device coordinates */ icInt8Number prefix[32]; /* Prefix for each color name */ icInt8Number suffix[32]; /* Suffix for each color name */ icInt8Number data[icAny]; /* Named color data follows */ /* * Data that follows is of this form * * icInt8Number root1[32]; * Root name for 1st color * icUInt16Number pcsCoords1[icAny]; * PCS coords of 1st color * icUInt16Number deviceCoords1[icAny]; * Dev coords of 1st color * icInt8Number root2[32]; * Root name for 2nd color * icUInt16Number pcsCoords2[icAny]; * PCS coords of 2nd color * icUInt16Number deviceCoords2[icAny]; * Dev coords of 2nd color * : * : * Repeat for name and PCS and device color coordinates up to (count-1) * * NOTES: * PCS and device space can be determined from the header. * * PCS coordinates are icUInt16 numbers and are described in Annex A of * the ICC spec. Only 16 bit L*a*b* and XYZ are allowed. The number of * coordinates is consistent with the headers PCS. * * Device coordinates are icUInt16 numbers where 0x0000 represents * the minimum value and 0xFFFF represents the maximum value. * If the nDeviceCoords value is 0 this field is not given. */ } icNamedColor2; /* Profile sequence structure */ typedef struct { icSignature deviceMfg; /* Dev Manufacturer */ icSignature deviceModel; /* Dev Model */ icUInt64Number attributes; /* Dev attributes */ icTechnologySignature technology; /* Technology sig */ icInt8Number data[icAny]; /* Desc text follows */ /* * Data that follows is of this form, this is an icInt8Number * to avoid problems with a compiler generating bad code as * these arrays are variable in length. * * icTextDescription deviceMfgDesc; * Manufacturer text * icTextDescription modelDesc; * Model text */ } icDescStruct; /* Profile sequence description */ typedef struct { icUInt32Number count; /* Number of descriptions */ icUInt8Number data[icAny]; /* Array of desc structs */ } icProfileSequenceDesc; /* textDescription */ typedef struct { icUInt32Number count; /* Description length */ icInt8Number data[icAny]; /* Descriptions follow */ /* * Data that follows is of this form * * icInt8Number desc[count] * NULL terminated ascii string * icUInt32Number ucLangCode; * UniCode language code * icUInt32Number ucCount; * UniCode description length * icInt16Number ucDesc[ucCount];* The UniCode description * icUInt16Number scCode; * ScriptCode code * icUInt8Number scCount; * ScriptCode count * icInt8Number scDesc[67]; * ScriptCode Description */ } icTextDescription; /* Screening Data */ typedef struct { icS15Fixed16Number frequency; /* Frequency */ icS15Fixed16Number angle; /* Screen angle */ icSpotShape spotShape; /* Spot Shape encodings below */ } icScreeningData; typedef struct { icUInt32Number screeningFlag; /* Screening flag */ icUInt32Number channels; /* Number of channels */ icScreeningData data[icAny]; /* Array of screening data */ } icScreening; /* Text Data */ typedef struct { icInt8Number data[icAny]; /* Variable array of chars */ } icText; /* Structure describing either a UCR or BG curve */ typedef struct { icUInt32Number count; /* Curve length */ icUInt16Number curve[icAny]; /* The array of curve values */ } icUcrBgCurve; /* Under color removal, black generation */ typedef struct { icInt8Number data[icAny]; /* The Ucr BG data */ /* * Data that follows is of this form, this is a icInt8Number * to avoid problems with a compiler generating bad code as * these arrays are variable in length. * * icUcrBgCurve ucr; * Ucr curve * icUcrBgCurve bg; * Bg curve * icInt8Number string; * UcrBg description */ } icUcrBg; /* viewingConditionsType */ typedef struct { icXYZNumber illuminant; /* In candelas per sq. meter */ icXYZNumber surround; /* In candelas per sq. meter */ icIlluminant stdIluminant; /* See icIlluminant defines */ } icViewingCondition; /* CrdInfo type */ typedef struct { icUInt32Number count; /* Char count includes NULL */ icInt8Number desc[icAny]; /* Null terminated string */ } icCrdInfo; /*------------------------------------------------------------------------*/ /* * Tag Type definitions */ /* * Many of the structures contain variable length arrays. This * is represented by the use of the convention. * * type data[icAny]; */ /* The base part of each tag */ typedef struct { icTagTypeSignature sig; /* Signature */ icInt8Number reserved[4]; /* Reserved, set to 0 */ } icTagBase; /* curveType */ typedef struct { icTagBase base; /* Signature, "curv" */ icCurve curve; /* The curve data */ } icCurveType; /* dataType */ typedef struct { icTagBase base; /* Signature, "data" */ icData data; /* The data structure */ } icDataType; /* dateTimeType */ typedef struct { icTagBase base; /* Signature, "dtim" */ icDateTimeNumber date; /* The date */ } icDateTimeType; /* lut16Type */ typedef struct { icTagBase base; /* Signature, "mft2" */ icLut16 lut; /* Lut16 data */ } icLut16Type; /* lut8Type, input & output tables are always 256 bytes in length */ typedef struct { icTagBase base; /* Signature, "mft1" */ icLut8 lut; /* Lut8 data */ } icLut8Type; /* Measurement Type */ typedef struct { icTagBase base; /* Signature, "meas" */ icMeasurement measurement; /* Measurement data */ } icMeasurementType; /* Named color type */ /* icNamedColor2Type, replaces icNamedColorType */ typedef struct { icTagBase base; /* Signature, "ncl2" */ icNamedColor2 ncolor; /* Named color data */ } icNamedColor2Type; /* Profile sequence description type */ typedef struct { icTagBase base; /* Signature, "pseq" */ icProfileSequenceDesc desc; /* The seq description */ } icProfileSequenceDescType; /* textDescriptionType */ typedef struct { icTagBase base; /* Signature, "desc" */ icTextDescription desc; /* The description */ } icTextDescriptionType; /* s15Fixed16Type */ typedef struct { icTagBase base; /* Signature, "sf32" */ icS15Fixed16Array data; /* Array of values */ } icS15Fixed16ArrayType; typedef struct { icTagBase base; /* Signature, "scrn" */ icScreening screen; /* Screening structure */ } icScreeningType; /* sigType */ typedef struct { icTagBase base; /* Signature, "sig" */ icSignature signature; /* The signature data */ } icSignatureType; /* textType */ typedef struct { icTagBase base; /* Signature, "text" */ icText data; /* Variable array of chars */ } icTextType; /* u16Fixed16Type */ typedef struct { icTagBase base; /* Signature, "uf32" */ icU16Fixed16Array data; /* Variable array of values */ } icU16Fixed16ArrayType; /* Under color removal, black generation type */ typedef struct { icTagBase base; /* Signature, "bfd " */ icUcrBg data; /* ucrBg structure */ } icUcrBgType; /* uInt16Type */ typedef struct { icTagBase base; /* Signature, "ui16" */ icUInt16Array data; /* Variable array of values */ } icUInt16ArrayType; /* uInt32Type */ typedef struct { icTagBase base; /* Signature, "ui32" */ icUInt32Array data; /* Variable array of values */ } icUInt32ArrayType; /* uInt64Type */ typedef struct { icTagBase base; /* Signature, "ui64" */ icUInt64Array data; /* Variable array of values */ } icUInt64ArrayType; /* uInt8Type */ typedef struct { icTagBase base; /* Signature, "ui08" */ icUInt8Array data; /* Variable array of values */ } icUInt8ArrayType; /* viewingConditionsType */ typedef struct { icTagBase base; /* Signature, "view" */ icViewingCondition view; /* Viewing conditions */ } icViewingConditionType; /* XYZ Type */ typedef struct { icTagBase base; /* Signature, "XYZ" */ icXYZArray data; /* Variable array of XYZ nums */ } icXYZType; /* CRDInfoType where [0] is the CRD product name count and string and * [1] -[5] are the rendering intents 0-4 counts and strings */ typedef struct { icTagBase base; /* Signature, "crdi" */ icCrdInfo info; /* 5 sets of counts & strings */ }icCrdInfoType; /* icCrdInfo productName; PS product count/string */ /* icCrdInfo CRDName0; CRD name for intent 0 */ /* icCrdInfo CRDName1; CRD name for intent 1 */ /* icCrdInfo CRDName2; CRD name for intent 2 */ /* icCrdInfo CRDName3; CRD name for intent 3 */ /*------------------------------------------------------------------------*/ /* * Lists of tags, tags, profile header and profile structure */ /* A tag */ typedef struct { icTagSignature sig; /* The tag signature */ icUInt32Number offset; /* Start of tag relative to * start of header, Spec * Clause 5 */ icUInt32Number size; /* Size in bytes */ } icTag; /* A Structure that may be used independently for a list of tags */ typedef struct { icUInt32Number count; /* Num tags in the profile */ icTag tags[icAny]; /* Variable array of tags */ } icTagList; /* The Profile header */ typedef struct { icUInt32Number size; /* Prof size in bytes */ icSignature cmmId; /* CMM for profile */ icUInt32Number version; /* Format version */ icProfileClassSignature deviceClass; /* Type of profile */ icColorSpaceSignature colorSpace; /* Clr space of data */ icColorSpaceSignature pcs; /* PCS, XYZ or Lab */ icDateTimeNumber date; /* Creation Date */ icSignature magic; /* icMagicNumber */ icPlatformSignature platform; /* Primary Platform */ icUInt32Number flags; /* Various bits */ icSignature manufacturer; /* Dev manufacturer */ icUInt32Number model; /* Dev model number */ icUInt64Number attributes; /* Device attributes */ icUInt32Number renderingIntent;/* Rendering intent */ icXYZNumber illuminant; /* Profile illuminant */ icSignature creator; /* Profile creator */ icInt8Number reserved[44]; /* Reserved */ } icHeader; /* * A profile, * we can't use icTagList here because its not at the end of the structure */ typedef struct { icHeader header; /* The header */ icUInt32Number count; /* Num tags in the profile */ icInt8Number data[icAny]; /* The tagTable and tagData */ /* * Data that follows is of the form * * icTag tagTable[icAny]; * The tag table * icInt8Number tagData[icAny]; * The tag data */ } icProfile; /*------------------------------------------------------------------------*/ /* Obsolete entries */ /* icNamedColor was replaced with icNamedColor2 */ typedef struct { icUInt32Number vendorFlag; /* Bottom 16 bits for IC use */ icUInt32Number count; /* Count of named colors */ icInt8Number data[icAny]; /* Named color data follows */ /* * Data that follows is of this form * * icInt8Number prefix[icAny]; * Prefix * icInt8Number suffix[icAny]; * Suffix * icInt8Number root1[icAny]; * Root name * icInt8Number coords1[icAny]; * Color coordinates * icInt8Number root2[icAny]; * Root name * icInt8Number coords2[icAny]; * Color coordinates * : * : * Repeat for root name and color coordinates up to (count-1) */ } icNamedColor; /* icNamedColorType was replaced by icNamedColor2Type */ typedef struct { icTagBase base; /* Signature, "ncol" */ icNamedColor ncolor; /* Named color data */ } icNamedColorType; #endif /* ICC_H */ lcms-1.19/include/icc34.h.in0000777000175300010010000011621410625566322014776 0ustar MartiNinguno/* Header file guard bands */ #ifndef ICC_H #define ICC_H /***************************************************************** Copyright (c) 1994-1996 SunSoft, Inc. 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 restrict- ion, 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 NON- INFRINGEMENT. IN NO EVENT SHALL SUNSOFT, INC. OR ITS PARENT COMPANY 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 SunSoft, Inc. shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without written authorization from SunSoft Inc. ******************************************************************/ /* * This version of the header file corresponds to the profile * specification version 3.4. * * All header file entries are pre-fixed with "ic" to help * avoid name space collisions. Signatures are pre-fixed with * icSig. * * The structures defined in this header file were created to * represent a description of an ICC profile on disk. Rather * than use pointers a technique is used where a single byte array * was placed at the end of each structure. This allows us in "C" * to extend the structure by allocating more data than is needed * to account for variable length structures. * * This also ensures that data following is allocated * contiguously and makes it easier to write and read data from * the file. * * For example to allocate space for a 256 count length UCR * and BG array, and fill the allocated data. Note strlen + 1 * to remember NULL terminator. * icUcrBgCurve *ucrCurve, *bgCurve; int ucr_nbytes, bg_nbytes, string_bytes; icUcrBg *ucrBgWrite; char ucr_string[100], *ucr_char; strcpy(ucr_string, "Example ucrBG curves"); ucr_nbytes = sizeof(icUInt32Number) + (UCR_CURVE_SIZE * sizeof(icUInt16Number)); bg_nbytes = sizeof(icUInt32Number) + (BG_CURVE_SIZE * sizeof(icUInt16Number)); string_bytes = strlen(ucr_string) + 1; ucrBgWrite = (icUcrBg *)malloc( (ucr_nbytes + bg_nbytes + string_bytes)); ucrCurve = (icUcrBgCurve *)ucrBgWrite->data; ucrCurve->count = UCR_CURVE_SIZE; for (i=0; icount; i++) ucrCurve->curve[i] = (icUInt16Number)i; bgCurve = (icUcrBgCurve *)((char *)ucrCurve + ucr_nbytes); bgCurve->count = BG_CURVE_SIZE; for (i=0; icount; i++) bgCurve->curve[i] = 255 - (icUInt16Number)i; ucr_char = (char *)((char *)bgCurve + bg_nbytes); memcpy(ucr_char, ucr_string, string_bytes); * */ /* * Many of the structures contain variable length arrays. This * is represented by the use of the convention. * * type data[icAny]; */ /*------------------------------------------------------------------------*/ /* * Defines used in the specification */ #define icMagicNumber 0x61637370L /* 'acsp' */ #define icVersionNumber 0x02100000L /* 2.1.0, BCD */ /* Screening Encodings */ #define icPrtrDefaultScreensFalse 0x00000000L /* Bit pos 0 */ #define icPrtrDefaultScreensTrue 0x00000001L /* Bit pos 0 */ #define icLinesPerInch 0x00000002L /* Bit pos 1 */ #define icLinesPerCm 0x00000000L /* Bit pos 1 */ /* * Device attributes, currently defined values correspond * to the low 4 bytes of the 8 byte attribute quantity, see * the header for their location. */ #define icReflective 0x00000000L /* Bit pos 0 */ #define icTransparency 0x00000001L /* Bit pos 0 */ #define icGlossy 0x00000000L /* Bit pos 1 */ #define icMatte 0x00000002L /* Bit pos 1 */ /* * Profile header flags, the low 16 bits are reserved for consortium * use. */ #define icEmbeddedProfileFalse 0x00000000L /* Bit pos 0 */ #define icEmbeddedProfileTrue 0x00000001L /* Bit pos 0 */ #define icUseAnywhere 0x00000000L /* Bit pos 1 */ #define icUseWithEmbeddedDataOnly 0x00000002L /* Bit pos 1 */ /* Ascii or Binary data */ #define icAsciiData 0x00000000L #define icBinaryData 0x00000001L /* * Define used to indicate that this is a variable length array */ #define icAny 1 /*------------------------------------------------------------------------*/ /* * Use this area to translate platform definitions of long * etc into icXXX form. The rest of the header uses the icXXX * typedefs. Signatures are 4 byte quantities. * */ #ifdef PACKAGE_NAME /* June 9, 2003, Adapted for use with configure by Bob Friesenhahn Added the stupid check for autoconf by Marti Maria. PACKAGE_NAME is defined if autoconf is being used */ typedef @UINT8_T@ icUInt8Number; typedef @UINT16_T@ icUInt16Number; typedef @UINT32_T@ icUInt32Number; typedef @UINT32_T@ icUInt64Number[2]; typedef @INT8_T@ icInt8Number; typedef @INT16_T@ icInt16Number; typedef @INT32_T@ icInt32Number; typedef @INT32_T@ icInt64Number[2]; #else /* *Apr-17-2002: Modified by Marti Maria in order to provide wider portability. */ #if defined (__digital__) && defined (__unix__) /* Tru64 */ #include typedef uint8_t icUInt8Number; typedef uint16_t icUInt16Number; typedef uint32_t icUInt32Number; typedef uint32_t icUInt64Number[2]; typedef int8_t icInt8Number; typedef int16_t icInt16Number; typedef int32_t icInt32Number; typedef int32_t icInt64Number[2]; #else #ifdef __sgi #include "sgidefs.h" /* * Number definitions */ /* Unsigned integer numbers */ typedef unsigned char icUInt8Number; typedef unsigned short icUInt16Number; typedef __uint32_t icUInt32Number; typedef __uint32_t icUInt64Number[2]; /* Signed numbers */ typedef char icInt8Number; typedef short icInt16Number; typedef __int32_t icInt32Number; typedef __int32_t icInt64Number[2]; #else #if defined(__GNUC__) || defined(__unix__) || defined(__unix) #include #if defined(__sun) || defined(__hpux) || defined (__MINGW) || defined(__MINGW32__) #if defined (__MINGW) || defined(__MINGW32__) #include #endif typedef uint8_t icUInt8Number; typedef uint16_t icUInt16Number; typedef uint32_t icUInt32Number; typedef uint32_t icUInt64Number[2]; #else /* Unsigned integer numbers */ typedef u_int8_t icUInt8Number; typedef u_int16_t icUInt16Number; typedef u_int32_t icUInt32Number; typedef u_int32_t icUInt64Number[2]; #endif /* Signed numbers */ typedef int8_t icInt8Number; typedef int16_t icInt16Number; typedef int32_t icInt32Number; typedef int32_t icInt64Number[2]; #else /* default definitions */ /* * Number definitions */ /* Unsigned integer numbers */ typedef unsigned char icUInt8Number; typedef unsigned short icUInt16Number; typedef unsigned long icUInt32Number; typedef unsigned long icUInt64Number[2]; /* Signed numbers */ typedef char icInt8Number; typedef short icInt16Number; typedef long icInt32Number; typedef long icInt64Number[2]; #endif /* default defs */ #endif #endif #endif /* Base types */ typedef icInt32Number icSignature; typedef icInt32Number icS15Fixed16Number; typedef icUInt32Number icU16Fixed16Number; /*------------------------------------------------------------------------*/ /* public tags and sizes */ typedef enum { icSigAToB0Tag = 0x41324230L, /* 'A2B0' */ icSigAToB1Tag = 0x41324231L, /* 'A2B1' */ icSigAToB2Tag = 0x41324232L, /* 'A2B2' */ icSigBlueColorantTag = 0x6258595AL, /* 'bXYZ' */ icSigBlueTRCTag = 0x62545243L, /* 'bTRC' */ icSigBToA0Tag = 0x42324130L, /* 'B2A0' */ icSigBToA1Tag = 0x42324131L, /* 'B2A1' */ icSigBToA2Tag = 0x42324132L, /* 'B2A2' */ icSigCalibrationDateTimeTag = 0x63616C74L, /* 'calt' */ icSigCharTargetTag = 0x74617267L, /* 'targ' */ icSigCopyrightTag = 0x63707274L, /* 'cprt' */ icSigCrdInfoTag = 0x63726469L, /* 'crdi' */ icSigDeviceMfgDescTag = 0x646D6E64L, /* 'dmnd' */ icSigDeviceModelDescTag = 0x646D6464L, /* 'dmdd' */ icSigGamutTag = 0x67616D74L, /* 'gamt ' */ icSigGrayTRCTag = 0x6b545243L, /* 'kTRC' */ icSigGreenColorantTag = 0x6758595AL, /* 'gXYZ' */ icSigGreenTRCTag = 0x67545243L, /* 'gTRC' */ icSigLuminanceTag = 0x6C756d69L, /* 'lumi' */ icSigMeasurementTag = 0x6D656173L, /* 'meas' */ icSigMediaBlackPointTag = 0x626B7074L, /* 'bkpt' */ icSigMediaWhitePointTag = 0x77747074L, /* 'wtpt' */ icSigNamedColorTag = 0x6E636f6CL, /* 'ncol' * OBSOLETE, use ncl2 */ icSigNamedColor2Tag = 0x6E636C32L, /* 'ncl2' */ icSigPreview0Tag = 0x70726530L, /* 'pre0' */ icSigPreview1Tag = 0x70726531L, /* 'pre1' */ icSigPreview2Tag = 0x70726532L, /* 'pre2' */ icSigProfileDescriptionTag = 0x64657363L, /* 'desc' */ icSigProfileSequenceDescTag = 0x70736571L, /* 'pseq' */ icSigPs2CRD0Tag = 0x70736430L, /* 'psd0' */ icSigPs2CRD1Tag = 0x70736431L, /* 'psd1' */ icSigPs2CRD2Tag = 0x70736432L, /* 'psd2' */ icSigPs2CRD3Tag = 0x70736433L, /* 'psd3' */ icSigPs2CSATag = 0x70733273L, /* 'ps2s' */ icSigPs2RenderingIntentTag = 0x70733269L, /* 'ps2i' */ icSigRedColorantTag = 0x7258595AL, /* 'rXYZ' */ icSigRedTRCTag = 0x72545243L, /* 'rTRC' */ icSigScreeningDescTag = 0x73637264L, /* 'scrd' */ icSigScreeningTag = 0x7363726EL, /* 'scrn' */ icSigTechnologyTag = 0x74656368L, /* 'tech' */ icSigUcrBgTag = 0x62666420L, /* 'bfd ' */ icSigViewingCondDescTag = 0x76756564L, /* 'vued' */ icSigViewingConditionsTag = 0x76696577L, /* 'view' */ icMaxEnumTag = 0xFFFFFFFFL } icTagSignature; /* technology signature descriptions */ typedef enum { icSigDigitalCamera = 0x6463616DL, /* 'dcam' */ icSigFilmScanner = 0x6673636EL, /* 'fscn' */ icSigReflectiveScanner = 0x7273636EL, /* 'rscn' */ icSigInkJetPrinter = 0x696A6574L, /* 'ijet' */ icSigThermalWaxPrinter = 0x74776178L, /* 'twax' */ icSigElectrophotographicPrinter = 0x6570686FL, /* 'epho' */ icSigElectrostaticPrinter = 0x65737461L, /* 'esta' */ icSigDyeSublimationPrinter = 0x64737562L, /* 'dsub' */ icSigPhotographicPaperPrinter = 0x7270686FL, /* 'rpho' */ icSigFilmWriter = 0x6670726EL, /* 'fprn' */ icSigVideoMonitor = 0x7669646DL, /* 'vidm' */ icSigVideoCamera = 0x76696463L, /* 'vidc' */ icSigProjectionTelevision = 0x706A7476L, /* 'pjtv' */ icSigCRTDisplay = 0x43525420L, /* 'CRT ' */ icSigPMDisplay = 0x504D4420L, /* 'PMD ' */ icSigAMDisplay = 0x414D4420L, /* 'AMD ' */ icSigPhotoCD = 0x4B504344L, /* 'KPCD' */ icSigPhotoImageSetter = 0x696D6773L, /* 'imgs' */ icSigGravure = 0x67726176L, /* 'grav' */ icSigOffsetLithography = 0x6F666673L, /* 'offs' */ icSigSilkscreen = 0x73696C6BL, /* 'silk' */ icSigFlexography = 0x666C6578L, /* 'flex' */ icMaxEnumTechnology = 0xFFFFFFFFL } icTechnologySignature; /* type signatures */ typedef enum { icSigCurveType = 0x63757276L, /* 'curv' */ icSigDataType = 0x64617461L, /* 'data' */ icSigDateTimeType = 0x6474696DL, /* 'dtim' */ icSigLut16Type = 0x6d667432L, /* 'mft2' */ icSigLut8Type = 0x6d667431L, /* 'mft1' */ icSigMeasurementType = 0x6D656173L, /* 'meas' */ icSigNamedColorType = 0x6E636f6CL, /* 'ncol' * OBSOLETE, use ncl2 */ icSigProfileSequenceDescType = 0x70736571L, /* 'pseq' */ icSigS15Fixed16ArrayType = 0x73663332L, /* 'sf32' */ icSigScreeningType = 0x7363726EL, /* 'scrn' */ icSigSignatureType = 0x73696720L, /* 'sig ' */ icSigTextType = 0x74657874L, /* 'text' */ icSigTextDescriptionType = 0x64657363L, /* 'desc' */ icSigU16Fixed16ArrayType = 0x75663332L, /* 'uf32' */ icSigUcrBgType = 0x62666420L, /* 'bfd ' */ icSigUInt16ArrayType = 0x75693136L, /* 'ui16' */ icSigUInt32ArrayType = 0x75693332L, /* 'ui32' */ icSigUInt64ArrayType = 0x75693634L, /* 'ui64' */ icSigUInt8ArrayType = 0x75693038L, /* 'ui08' */ icSigViewingConditionsType = 0x76696577L, /* 'view' */ icSigXYZType = 0x58595A20L, /* 'XYZ ' */ icSigXYZArrayType = 0x58595A20L, /* 'XYZ ' */ icSigNamedColor2Type = 0x6E636C32L, /* 'ncl2' */ icSigCrdInfoType = 0x63726469L, /* 'crdi' */ icMaxEnumType = 0xFFFFFFFFL } icTagTypeSignature; /* * Color Space Signatures * Note that only icSigXYZData and icSigLabData are valid * Profile Connection Spaces (PCSs) */ typedef enum { icSigXYZData = 0x58595A20L, /* 'XYZ ' */ icSigLabData = 0x4C616220L, /* 'Lab ' */ icSigLuvData = 0x4C757620L, /* 'Luv ' */ icSigYCbCrData = 0x59436272L, /* 'YCbr' */ icSigYxyData = 0x59787920L, /* 'Yxy ' */ icSigRgbData = 0x52474220L, /* 'RGB ' */ icSigGrayData = 0x47524159L, /* 'GRAY' */ icSigHsvData = 0x48535620L, /* 'HSV ' */ icSigHlsData = 0x484C5320L, /* 'HLS ' */ icSigCmykData = 0x434D594BL, /* 'CMYK' */ icSigCmyData = 0x434D5920L, /* 'CMY ' */ icSig2colorData = 0x32434C52L, /* '2CLR' */ icSig3colorData = 0x33434C52L, /* '3CLR' */ icSig4colorData = 0x34434C52L, /* '4CLR' */ icSig5colorData = 0x35434C52L, /* '5CLR' */ icSig6colorData = 0x36434C52L, /* '6CLR' */ icSig7colorData = 0x37434C52L, /* '7CLR' */ icSig8colorData = 0x38434C52L, /* '8CLR' */ icSig9colorData = 0x39434C52L, /* '9CLR' */ icSig10colorData = 0x41434C52L, /* 'ACLR' */ icSig11colorData = 0x42434C52L, /* 'BCLR' */ icSig12colorData = 0x43434C52L, /* 'CCLR' */ icSig13colorData = 0x44434C52L, /* 'DCLR' */ icSig14colorData = 0x45434C52L, /* 'ECLR' */ icSig15colorData = 0x46434C52L, /* 'FCLR' */ icMaxEnumData = 0xFFFFFFFFL } icColorSpaceSignature; /* profileClass enumerations */ typedef enum { icSigInputClass = 0x73636E72L, /* 'scnr' */ icSigDisplayClass = 0x6D6E7472L, /* 'mntr' */ icSigOutputClass = 0x70727472L, /* 'prtr' */ icSigLinkClass = 0x6C696E6BL, /* 'link' */ icSigAbstractClass = 0x61627374L, /* 'abst' */ icSigColorSpaceClass = 0x73706163L, /* 'spac' */ icSigNamedColorClass = 0x6e6d636cL, /* 'nmcl' */ icMaxEnumClass = 0xFFFFFFFFL } icProfileClassSignature; /* Platform Signatures */ typedef enum { icSigMacintosh = 0x4150504CL, /* 'APPL' */ icSigMicrosoft = 0x4D534654L, /* 'MSFT' */ icSigSolaris = 0x53554E57L, /* 'SUNW' */ icSigSGI = 0x53474920L, /* 'SGI ' */ icSigTaligent = 0x54474E54L, /* 'TGNT' */ icMaxEnumPlatform = 0xFFFFFFFFL } icPlatformSignature; /*------------------------------------------------------------------------*/ /* * Other enums */ /* Measurement Flare, used in the measurmentType tag */ typedef enum { icFlare0 = 0x00000000L, /* 0% flare */ icFlare100 = 0x00000001L, /* 100% flare */ icMaxFlare = 0xFFFFFFFFL } icMeasurementFlare; /* Measurement Geometry, used in the measurmentType tag */ typedef enum { icGeometryUnknown = 0x00000000L, /* Unknown */ icGeometry045or450 = 0x00000001L, /* 0/45, 45/0 */ icGeometry0dord0 = 0x00000002L, /* 0/d or d/0 */ icMaxGeometry = 0xFFFFFFFFL } icMeasurementGeometry; /* Rendering Intents, used in the profile header */ typedef enum { icPerceptual = 0, icRelativeColorimetric = 1, icSaturation = 2, icAbsoluteColorimetric = 3, icMaxEnumIntent = 0xFFFFFFFFL } icRenderingIntent; /* Different Spot Shapes currently defined, used for screeningType */ typedef enum { icSpotShapeUnknown = 0, icSpotShapePrinterDefault = 1, icSpotShapeRound = 2, icSpotShapeDiamond = 3, icSpotShapeEllipse = 4, icSpotShapeLine = 5, icSpotShapeSquare = 6, icSpotShapeCross = 7, icMaxEnumSpot = 0xFFFFFFFFL } icSpotShape; /* Standard Observer, used in the measurmentType tag */ typedef enum { icStdObsUnknown = 0x00000000L, /* Unknown */ icStdObs1931TwoDegrees = 0x00000001L, /* 2 deg */ icStdObs1964TenDegrees = 0x00000002L, /* 10 deg */ icMaxStdObs = 0xFFFFFFFFL } icStandardObserver; /* Pre-defined illuminants, used in measurement and viewing conditions type */ typedef enum { icIlluminantUnknown = 0x00000000L, icIlluminantD50 = 0x00000001L, icIlluminantD65 = 0x00000002L, icIlluminantD93 = 0x00000003L, icIlluminantF2 = 0x00000004L, icIlluminantD55 = 0x00000005L, icIlluminantA = 0x00000006L, icIlluminantEquiPowerE = 0x00000007L, icIlluminantF8 = 0x00000008L, icMaxEnumIluminant = 0xFFFFFFFFL } icIlluminant; /*------------------------------------------------------------------------*/ /* * Arrays of numbers */ /* Int8 Array */ typedef struct { icInt8Number data[icAny]; /* Variable array of values */ } icInt8Array; /* UInt8 Array */ typedef struct { icUInt8Number data[icAny]; /* Variable array of values */ } icUInt8Array; /* uInt16 Array */ typedef struct { icUInt16Number data[icAny]; /* Variable array of values */ } icUInt16Array; /* Int16 Array */ typedef struct { icInt16Number data[icAny]; /* Variable array of values */ } icInt16Array; /* uInt32 Array */ typedef struct { icUInt32Number data[icAny]; /* Variable array of values */ } icUInt32Array; /* Int32 Array */ typedef struct { icInt32Number data[icAny]; /* Variable array of values */ } icInt32Array; /* UInt64 Array */ typedef struct { icUInt64Number data[icAny]; /* Variable array of values */ } icUInt64Array; /* Int64 Array */ typedef struct { icInt64Number data[icAny]; /* Variable array of values */ } icInt64Array; /* u16Fixed16 Array */ typedef struct { icU16Fixed16Number data[icAny]; /* Variable array of values */ } icU16Fixed16Array; /* s15Fixed16 Array */ typedef struct { icS15Fixed16Number data[icAny]; /* Variable array of values */ } icS15Fixed16Array; /* The base date time number */ typedef struct { icUInt16Number year; icUInt16Number month; icUInt16Number day; icUInt16Number hours; icUInt16Number minutes; icUInt16Number seconds; } icDateTimeNumber; /* XYZ Number */ typedef struct { icS15Fixed16Number X; icS15Fixed16Number Y; icS15Fixed16Number Z; } icXYZNumber; /* XYZ Array */ typedef struct { icXYZNumber data[icAny]; /* Variable array of XYZ numbers */ } icXYZArray; /* Curve */ typedef struct { icUInt32Number count; /* Number of entries */ icUInt16Number data[icAny]; /* The actual table data, real * number is determined by count * Interpretation depends on how * data is used with a given tag */ } icCurve; /* Data */ typedef struct { icUInt32Number dataFlag; /* 0 = ascii, 1 = binary */ icInt8Number data[icAny]; /* Data, size from tag */ } icData; /* lut16 */ typedef struct { icUInt8Number inputChan; /* Number of input channels */ icUInt8Number outputChan; /* Number of output channels */ icUInt8Number clutPoints; /* Number of grid points */ icInt8Number pad; /* Padding for byte alignment */ icS15Fixed16Number e00; /* e00 in the 3 * 3 */ icS15Fixed16Number e01; /* e01 in the 3 * 3 */ icS15Fixed16Number e02; /* e02 in the 3 * 3 */ icS15Fixed16Number e10; /* e10 in the 3 * 3 */ icS15Fixed16Number e11; /* e11 in the 3 * 3 */ icS15Fixed16Number e12; /* e12 in the 3 * 3 */ icS15Fixed16Number e20; /* e20 in the 3 * 3 */ icS15Fixed16Number e21; /* e21 in the 3 * 3 */ icS15Fixed16Number e22; /* e22 in the 3 * 3 */ icUInt16Number inputEnt; /* Num of in-table entries */ icUInt16Number outputEnt; /* Num of out-table entries */ icUInt16Number data[icAny]; /* Data follows see spec */ /* * Data that follows is of this form * * icUInt16Number inputTable[inputChan][icAny]; * The in-table * icUInt16Number clutTable[icAny]; * The clut * icUInt16Number outputTable[outputChan][icAny]; * The out-table */ } icLut16; /* lut8, input & output tables are always 256 bytes in length */ typedef struct { icUInt8Number inputChan; /* Num of input channels */ icUInt8Number outputChan; /* Num of output channels */ icUInt8Number clutPoints; /* Num of grid points */ icInt8Number pad; icS15Fixed16Number e00; /* e00 in the 3 * 3 */ icS15Fixed16Number e01; /* e01 in the 3 * 3 */ icS15Fixed16Number e02; /* e02 in the 3 * 3 */ icS15Fixed16Number e10; /* e10 in the 3 * 3 */ icS15Fixed16Number e11; /* e11 in the 3 * 3 */ icS15Fixed16Number e12; /* e12 in the 3 * 3 */ icS15Fixed16Number e20; /* e20 in the 3 * 3 */ icS15Fixed16Number e21; /* e21 in the 3 * 3 */ icS15Fixed16Number e22; /* e22 in the 3 * 3 */ icUInt8Number data[icAny]; /* Data follows see spec */ /* * Data that follows is of this form * * icUInt8Number inputTable[inputChan][256]; * The in-table * icUInt8Number clutTable[icAny]; * The clut * icUInt8Number outputTable[outputChan][256]; * The out-table */ } icLut8; /* Measurement Data */ typedef struct { icStandardObserver stdObserver; /* Standard observer */ icXYZNumber backing; /* XYZ for backing */ icMeasurementGeometry geometry; /* Meas. geometry */ icMeasurementFlare flare; /* Measurement flare */ icIlluminant illuminant; /* Illuminant */ } icMeasurement; /* Named color */ /* * icNamedColor2 takes the place of icNamedColor */ typedef struct { icUInt32Number vendorFlag; /* Bottom 16 bits for IC use */ icUInt32Number count; /* Count of named colors */ icUInt32Number nDeviceCoords; /* Num of device coordinates */ icInt8Number prefix[32]; /* Prefix for each color name */ icInt8Number suffix[32]; /* Suffix for each color name */ icInt8Number data[icAny]; /* Named color data follows */ /* * Data that follows is of this form * * icInt8Number root1[32]; * Root name for 1st color * icUInt16Number pcsCoords1[icAny]; * PCS coords of 1st color * icUInt16Number deviceCoords1[icAny]; * Dev coords of 1st color * icInt8Number root2[32]; * Root name for 2nd color * icUInt16Number pcsCoords2[icAny]; * PCS coords of 2nd color * icUInt16Number deviceCoords2[icAny]; * Dev coords of 2nd color * : * : * Repeat for name and PCS and device color coordinates up to (count-1) * * NOTES: * PCS and device space can be determined from the header. * * PCS coordinates are icUInt16 numbers and are described in Annex A of * the ICC spec. Only 16 bit L*a*b* and XYZ are allowed. The number of * coordinates is consistent with the headers PCS. * * Device coordinates are icUInt16 numbers where 0x0000 represents * the minimum value and 0xFFFF represents the maximum value. * If the nDeviceCoords value is 0 this field is not given. */ } icNamedColor2; /* Profile sequence structure */ typedef struct { icSignature deviceMfg; /* Dev Manufacturer */ icSignature deviceModel; /* Dev Model */ icUInt64Number attributes; /* Dev attributes */ icTechnologySignature technology; /* Technology sig */ icInt8Number data[icAny]; /* Desc text follows */ /* * Data that follows is of this form, this is an icInt8Number * to avoid problems with a compiler generating bad code as * these arrays are variable in length. * * icTextDescription deviceMfgDesc; * Manufacturer text * icTextDescription modelDesc; * Model text */ } icDescStruct; /* Profile sequence description */ typedef struct { icUInt32Number count; /* Number of descriptions */ icUInt8Number data[icAny]; /* Array of desc structs */ } icProfileSequenceDesc; /* textDescription */ typedef struct { icUInt32Number count; /* Description length */ icInt8Number data[icAny]; /* Descriptions follow */ /* * Data that follows is of this form * * icInt8Number desc[count] * NULL terminated ascii string * icUInt32Number ucLangCode; * UniCode language code * icUInt32Number ucCount; * UniCode description length * icInt16Number ucDesc[ucCount];* The UniCode description * icUInt16Number scCode; * ScriptCode code * icUInt8Number scCount; * ScriptCode count * icInt8Number scDesc[67]; * ScriptCode Description */ } icTextDescription; /* Screening Data */ typedef struct { icS15Fixed16Number frequency; /* Frequency */ icS15Fixed16Number angle; /* Screen angle */ icSpotShape spotShape; /* Spot Shape encodings below */ } icScreeningData; typedef struct { icUInt32Number screeningFlag; /* Screening flag */ icUInt32Number channels; /* Number of channels */ icScreeningData data[icAny]; /* Array of screening data */ } icScreening; /* Text Data */ typedef struct { icInt8Number data[icAny]; /* Variable array of chars */ } icText; /* Structure describing either a UCR or BG curve */ typedef struct { icUInt32Number count; /* Curve length */ icUInt16Number curve[icAny]; /* The array of curve values */ } icUcrBgCurve; /* Under color removal, black generation */ typedef struct { icInt8Number data[icAny]; /* The Ucr BG data */ /* * Data that follows is of this form, this is a icInt8Number * to avoid problems with a compiler generating bad code as * these arrays are variable in length. * * icUcrBgCurve ucr; * Ucr curve * icUcrBgCurve bg; * Bg curve * icInt8Number string; * UcrBg description */ } icUcrBg; /* viewingConditionsType */ typedef struct { icXYZNumber illuminant; /* In candelas per sq. meter */ icXYZNumber surround; /* In candelas per sq. meter */ icIlluminant stdIluminant; /* See icIlluminant defines */ } icViewingCondition; /* CrdInfo type */ typedef struct { icUInt32Number count; /* Char count includes NULL */ icInt8Number desc[icAny]; /* Null terminated string */ } icCrdInfo; /*------------------------------------------------------------------------*/ /* * Tag Type definitions */ /* * Many of the structures contain variable length arrays. This * is represented by the use of the convention. * * type data[icAny]; */ /* The base part of each tag */ typedef struct { icTagTypeSignature sig; /* Signature */ icInt8Number reserved[4]; /* Reserved, set to 0 */ } icTagBase; /* curveType */ typedef struct { icTagBase base; /* Signature, "curv" */ icCurve curve; /* The curve data */ } icCurveType; /* dataType */ typedef struct { icTagBase base; /* Signature, "data" */ icData data; /* The data structure */ } icDataType; /* dateTimeType */ typedef struct { icTagBase base; /* Signature, "dtim" */ icDateTimeNumber date; /* The date */ } icDateTimeType; /* lut16Type */ typedef struct { icTagBase base; /* Signature, "mft2" */ icLut16 lut; /* Lut16 data */ } icLut16Type; /* lut8Type, input & output tables are always 256 bytes in length */ typedef struct { icTagBase base; /* Signature, "mft1" */ icLut8 lut; /* Lut8 data */ } icLut8Type; /* Measurement Type */ typedef struct { icTagBase base; /* Signature, "meas" */ icMeasurement measurement; /* Measurement data */ } icMeasurementType; /* Named color type */ /* icNamedColor2Type, replaces icNamedColorType */ typedef struct { icTagBase base; /* Signature, "ncl2" */ icNamedColor2 ncolor; /* Named color data */ } icNamedColor2Type; /* Profile sequence description type */ typedef struct { icTagBase base; /* Signature, "pseq" */ icProfileSequenceDesc desc; /* The seq description */ } icProfileSequenceDescType; /* textDescriptionType */ typedef struct { icTagBase base; /* Signature, "desc" */ icTextDescription desc; /* The description */ } icTextDescriptionType; /* s15Fixed16Type */ typedef struct { icTagBase base; /* Signature, "sf32" */ icS15Fixed16Array data; /* Array of values */ } icS15Fixed16ArrayType; typedef struct { icTagBase base; /* Signature, "scrn" */ icScreening screen; /* Screening structure */ } icScreeningType; /* sigType */ typedef struct { icTagBase base; /* Signature, "sig" */ icSignature signature; /* The signature data */ } icSignatureType; /* textType */ typedef struct { icTagBase base; /* Signature, "text" */ icText data; /* Variable array of chars */ } icTextType; /* u16Fixed16Type */ typedef struct { icTagBase base; /* Signature, "uf32" */ icU16Fixed16Array data; /* Variable array of values */ } icU16Fixed16ArrayType; /* Under color removal, black generation type */ typedef struct { icTagBase base; /* Signature, "bfd " */ icUcrBg data; /* ucrBg structure */ } icUcrBgType; /* uInt16Type */ typedef struct { icTagBase base; /* Signature, "ui16" */ icUInt16Array data; /* Variable array of values */ } icUInt16ArrayType; /* uInt32Type */ typedef struct { icTagBase base; /* Signature, "ui32" */ icUInt32Array data; /* Variable array of values */ } icUInt32ArrayType; /* uInt64Type */ typedef struct { icTagBase base; /* Signature, "ui64" */ icUInt64Array data; /* Variable array of values */ } icUInt64ArrayType; /* uInt8Type */ typedef struct { icTagBase base; /* Signature, "ui08" */ icUInt8Array data; /* Variable array of values */ } icUInt8ArrayType; /* viewingConditionsType */ typedef struct { icTagBase base; /* Signature, "view" */ icViewingCondition view; /* Viewing conditions */ } icViewingConditionType; /* XYZ Type */ typedef struct { icTagBase base; /* Signature, "XYZ" */ icXYZArray data; /* Variable array of XYZ nums */ } icXYZType; /* CRDInfoType where [0] is the CRD product name count and string and * [1] -[5] are the rendering intents 0-4 counts and strings */ typedef struct { icTagBase base; /* Signature, "crdi" */ icCrdInfo info; /* 5 sets of counts & strings */ }icCrdInfoType; /* icCrdInfo productName; PS product count/string */ /* icCrdInfo CRDName0; CRD name for intent 0 */ /* icCrdInfo CRDName1; CRD name for intent 1 */ /* icCrdInfo CRDName2; CRD name for intent 2 */ /* icCrdInfo CRDName3; CRD name for intent 3 */ /*------------------------------------------------------------------------*/ /* * Lists of tags, tags, profile header and profile structure */ /* A tag */ typedef struct { icTagSignature sig; /* The tag signature */ icUInt32Number offset; /* Start of tag relative to * start of header, Spec * Clause 5 */ icUInt32Number size; /* Size in bytes */ } icTag; /* A Structure that may be used independently for a list of tags */ typedef struct { icUInt32Number count; /* Num tags in the profile */ icTag tags[icAny]; /* Variable array of tags */ } icTagList; /* The Profile header */ typedef struct { icUInt32Number size; /* Prof size in bytes */ icSignature cmmId; /* CMM for profile */ icUInt32Number version; /* Format version */ icProfileClassSignature deviceClass; /* Type of profile */ icColorSpaceSignature colorSpace; /* Clr space of data */ icColorSpaceSignature pcs; /* PCS, XYZ or Lab */ icDateTimeNumber date; /* Creation Date */ icSignature magic; /* icMagicNumber */ icPlatformSignature platform; /* Primary Platform */ icUInt32Number flags; /* Various bits */ icSignature manufacturer; /* Dev manufacturer */ icUInt32Number model; /* Dev model number */ icUInt64Number attributes; /* Device attributes */ icUInt32Number renderingIntent;/* Rendering intent */ icXYZNumber illuminant; /* Profile illuminant */ icSignature creator; /* Profile creator */ icInt8Number reserved[44]; /* Reserved */ } icHeader; /* * A profile, * we can't use icTagList here because its not at the end of the structure */ typedef struct { icHeader header; /* The header */ icUInt32Number count; /* Num tags in the profile */ icInt8Number data[icAny]; /* The tagTable and tagData */ /* * Data that follows is of the form * * icTag tagTable[icAny]; * The tag table * icInt8Number tagData[icAny]; * The tag data */ } icProfile; /*------------------------------------------------------------------------*/ /* Obsolete entries */ /* icNamedColor was replaced with icNamedColor2 */ typedef struct { icUInt32Number vendorFlag; /* Bottom 16 bits for IC use */ icUInt32Number count; /* Count of named colors */ icInt8Number data[icAny]; /* Named color data follows */ /* * Data that follows is of this form * * icInt8Number prefix[icAny]; * Prefix * icInt8Number suffix[icAny]; * Suffix * icInt8Number root1[icAny]; * Root name * icInt8Number coords1[icAny]; * Color coordinates * icInt8Number root2[icAny]; * Root name * icInt8Number coords2[icAny]; * Color coordinates * : * : * Repeat for root name and color coordinates up to (count-1) */ } icNamedColor; /* icNamedColorType was replaced by icNamedColor2Type */ typedef struct { icTagBase base; /* Signature, "ncol" */ icNamedColor ncolor; /* Named color data */ } icNamedColorType; #endif /* ICC_H */ lcms-1.19/include/lcms.h0000777000175300010010000023032211272606371014415 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // Version 1.19 #ifndef __cms_H // ********** Configuration toggles **************************************** // Optimization mode. // // Note that USE_ASSEMBLER Is fastest by far, but it is limited to Pentium. // USE_FLOAT are the generic floating-point routines. USE_C should work on // virtually any machine. //#define USE_FLOAT 1 // #define USE_C 1 #define USE_ASSEMBLER 1 // Define this if you are using this package as a DLL (windows only) // #define LCMS_DLL 1 // #define LCMS_DLL_BUILD 1 // Uncomment if you are trying the engine in a non-windows environment // like linux, SGI, VAX, FreeBSD, BeOS, etc. #define NON_WINDOWS 1 // Uncomment this one if you are using big endian machines (only meaningful // when NON_WINDOWS is used) // #define USE_BIG_ENDIAN 1 // Uncomment this one if your compiler/machine does support the // "long long" type This will speedup fixed point math. (USE_C only) #define USE_INT64 1 // Some machines does not have a reliable 'swab' function. Usually // leave commented unless the testbed diagnoses the contrary. // #define USE_CUSTOM_SWAB 1 // Uncomment this if your compiler supports inline #define USE_INLINE 1 // Uncomment this if your compiler doesn't work with fast floor function // #define USE_DEFAULT_FLOOR_CONVERSION 1 // Uncomment this line on multithreading environments // #define USE_PTHREADS 1 // Uncomment this line if you want lcms to use the black point tag in profile, // if commented, lcms will compute the black point by its own. // It is safer to leve it commented out // #define HONOR_BLACK_POINT_TAG 1 // ********** End of configuration toggles ****************************** #define LCMS_VERSION 119 // Microsoft VisualC++ // Deal with Microsoft's attempt at deprecating C standard runtime functions #ifdef _MSC_VER # undef NON_WINDOWS # if (_MSC_VER >= 1400) # ifndef _CRT_SECURE_NO_DEPRECATE # define _CRT_SECURE_NO_DEPRECATE 1 # endif # endif #endif // Borland C #ifdef __BORLANDC__ # undef NON_WINDOWS #endif #include #include #include #include #include #include // Metroworks CodeWarrior #ifdef __MWERKS__ # define unlink remove # if WIN32 # define USE_CUSTOM_SWAB 1 # undef NON_WINDOWS # else # define NON_WINDOWS 1 # endif #endif // Here comes the Non-Windows settings #ifdef NON_WINDOWS // Non windows environments. Also avoid indentation on includes. #ifdef USE_PTHREADS # include typedef pthread_rwlock_t LCMS_RWLOCK_T; # define LCMS_CREATE_LOCK(x) pthread_rwlock_init((x), NULL) # define LCMS_FREE_LOCK(x) pthread_rwlock_destroy((x)) # define LCMS_READ_LOCK(x) pthread_rwlock_rdlock((x)) # define LCMS_WRITE_LOCK(x) pthread_rwlock_wrlock((x)) # define LCMS_UNLOCK(x) pthread_rwlock_unlock((x)) #endif #undef LCMS_DLL #ifdef USE_ASSEMBLER # undef USE_ASSEMBLER # define USE_C 1 #endif #ifdef _HOST_BIG_ENDIAN # define USE_BIG_ENDIAN 1 #endif #if defined(__sgi__) || defined(__sgi) || defined(__powerpc__) || defined(sparc) || defined(__ppc__) || defined(__s390__) || defined(__s390x__) # define USE_BIG_ENDIAN 1 #endif #if TARGET_CPU_PPC # define USE_BIG_ENDIAN 1 #endif #if macintosh # ifndef __LITTLE_ENDIAN__ # define USE_BIG_ENDIAN 1 # endif #endif #ifdef __BIG_ENDIAN__ # define USE_BIG_ENDIAN 1 #endif #ifdef WORDS_BIGENDIAN # define USE_BIG_ENDIAN 1 #endif #if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) # include # define USE_INT64 1 # define LCMSSLONGLONG int64_t # define LCMSULONGLONG u_int64_t #endif #ifdef USE_INT64 # ifndef LCMSULONGLONG # define LCMSULONGLONG unsigned long long # define LCMSSLONGLONG long long # endif #endif #if !defined(__INTEGRITY) # include #endif #include #if defined(__GNUC__) || defined(__FreeBSD__) # include #endif #ifndef LCMS_WIN_TYPES_ALREADY_DEFINED typedef unsigned char BYTE, *LPBYTE; typedef unsigned short WORD, *LPWORD; typedef unsigned long DWORD, *LPDWORD; typedef char *LPSTR; typedef void *LPVOID; #define ZeroMemory(p,l) memset((p),0,(l)) #define CopyMemory(d,s,l) memcpy((d),(s),(l)) #define FAR #ifndef stricmp # define stricmp strcasecmp #endif #ifndef FALSE # define FALSE 0 #endif #ifndef TRUE # define TRUE 1 #endif #define LOWORD(l) ((WORD)(l)) #define HIWORD(l) ((WORD)((DWORD)(l) >> 16)) #ifndef MAX_PATH # define MAX_PATH (256) #endif #define cdecl #endif // The specification for "inline" is section 6.7.4 of the C99 standard (ISO/IEC 9899:1999). #define LCMS_INLINE static inline #else // Win32 stuff #ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN #endif #include #ifdef _WIN64 # ifdef USE_ASSEMBLER # undef USE_ASSEMBLER # define USE_C 1 # endif #endif #ifdef USE_INT64 # ifndef LCMSULONGLONG # define LCMSULONGLONG unsigned __int64 # define LCMSSLONGLONG __int64 # endif #endif // This works for both VC & BorlandC #define LCMS_INLINE __inline #ifdef USE_PTHREADS typedef CRITICAL_SECTION LCMS_RWLOCK_T; # define LCMS_CREATE_LOCK(x) InitializeCriticalSection((x)) # define LCMS_FREE_LOCK(x) DeleteCriticalSection((x)) # define LCMS_READ_LOCK(x) EnterCriticalSection((x)) # define LCMS_WRITE_LOCK(x) EnterCriticalSection((x)) # define LCMS_UNLOCK(x) LeaveCriticalSection((x)) #endif #endif #ifndef USE_PTHREADS typedef int LCMS_RWLOCK_T; # define LCMS_CREATE_LOCK(x) # define LCMS_FREE_LOCK(x) # define LCMS_READ_LOCK(x) # define LCMS_WRITE_LOCK(x) # define LCMS_UNLOCK(x) #endif // Base types typedef int LCMSBOOL; typedef void* LCMSHANDLE; #include "icc34.h" // ICC header file // Some tag & type additions #define lcmsSignature ((icSignature) 0x6c636d73L) #define icSigLuvKData ((icColorSpaceSignature) 0x4C75764BL) // 'LuvK' #define icSigHexachromeData ((icColorSpaceSignature) 0x4d434836L) // MCH6 #define icSigHeptachromeData ((icColorSpaceSignature) 0x4d434837L) // MCH7 #define icSigOctachromeData ((icColorSpaceSignature) 0x4d434838L) // MCH8 #define icSigMCH5Data ((icColorSpaceSignature) 0x4d434835L) // MCH5 #define icSigMCH6Data ((icColorSpaceSignature) 0x4d434836L) // MCH6 #define icSigMCH7Data ((icColorSpaceSignature) 0x4d434837L) // MCH7 #define icSigMCH8Data ((icColorSpaceSignature) 0x4d434838L) // MCH8 #define icSigMCH9Data ((icColorSpaceSignature) 0x4d434839L) // MCH9 #define icSigMCHAData ((icColorSpaceSignature) 0x4d434841L) // MCHA #define icSigMCHBData ((icColorSpaceSignature) 0x4d434842L) // MCHB #define icSigMCHCData ((icColorSpaceSignature) 0x4d434843L) // MCHC #define icSigMCHDData ((icColorSpaceSignature) 0x4d434844L) // MCHD #define icSigMCHEData ((icColorSpaceSignature) 0x4d434845L) // MCHE #define icSigMCHFData ((icColorSpaceSignature) 0x4d434846L) // MCHF #define icSigChromaticityTag ((icTagSignature) 0x6368726dL) // As per Addendum 2 to Spec. ICC.1:1998-09 #define icSigChromaticAdaptationTag ((icTagSignature) 0x63686164L) // 'chad' #define icSigColorantTableTag ((icTagSignature) 0x636c7274L) // 'clrt' #define icSigColorantTableOutTag ((icTagSignature) 0x636c6f74L) // 'clot' #define icSigParametricCurveType ((icTagTypeSignature) 0x70617261L) // parametric (ICC 4.0) #define icSigMultiLocalizedUnicodeType ((icTagTypeSignature) 0x6D6C7563L) #define icSigS15Fixed16ArrayType ((icTagTypeSignature) 0x73663332L) #define icSigChromaticityType ((icTagTypeSignature) 0x6368726dL) #define icSiglutAtoBType ((icTagTypeSignature) 0x6d414220L) // mAB #define icSiglutBtoAType ((icTagTypeSignature) 0x6d424120L) // mBA #define icSigColorantTableType ((icTagTypeSignature) 0x636c7274L) // clrt typedef struct { icUInt8Number gridPoints[16]; // Number of grid points in each dimension. icUInt8Number prec; // Precision of data elements in bytes. icUInt8Number pad1; icUInt8Number pad2; icUInt8Number pad3; /*icUInt8Number data[icAny]; Data follows see spec for size */ } icCLutStruct; // icLutAtoB typedef struct { icUInt8Number inputChan; // Number of input channels icUInt8Number outputChan; // Number of output channels icUInt8Number pad1; icUInt8Number pad2; icUInt32Number offsetB; // Offset to first "B" curve icUInt32Number offsetMat; // Offset to matrix icUInt32Number offsetM; // Offset to first "M" curve icUInt32Number offsetC; // Offset to CLUT icUInt32Number offsetA; // Offset to first "A" curve /*icUInt8Number data[icAny]; Data follows see spec for size */ } icLutAtoB; // icLutBtoA typedef struct { icUInt8Number inputChan; // Number of input channels icUInt8Number outputChan; // Number of output channels icUInt8Number pad1; icUInt8Number pad2; icUInt32Number offsetB; // Offset to first "B" curve icUInt32Number offsetMat; // Offset to matrix icUInt32Number offsetM; // Offset to first "M" curve icUInt32Number offsetC; // Offset to CLUT icUInt32Number offsetA; // Offset to first "A" curve /*icUInt8Number data[icAny]; Data follows see spec for size */ } icLutBtoA; #ifdef __cplusplus extern "C" { #endif // Calling convention #ifdef NON_WINDOWS # define LCMSEXPORT # define LCMSAPI #else # ifdef LCMS_DLL # ifdef __BORLANDC__ # define LCMSEXPORT __stdcall _export # define LCMSAPI # else // VC++ # define LCMSEXPORT _stdcall # ifdef LCMS_DLL_BUILD # define LCMSAPI __declspec(dllexport) # else # define LCMSAPI __declspec(dllimport) # endif # endif # else # define LCMSEXPORT cdecl # define LCMSAPI # endif #endif #ifdef USE_ASSEMBLER #ifdef __BORLANDC__ # define ASM asm # define RET(v) return(v) #else // VC++ # define ASM __asm # define RET(v) return #endif #endif #ifdef _MSC_VER #ifndef stricmp # define stricmp _stricmp #endif #ifndef unlink # define unlink _unlink #endif #ifndef swab # define swab _swab #endif #ifndef itoa # define itoa _itoa #endif #ifndef fileno # define fileno _fileno #endif #ifndef strupr # define strupr _strupr #endif #ifndef hypot # define hypot _hypot #endif #ifndef snprintf # define snprintf _snprintf #endif #ifndef vsnprintf # define vsnprintf _vsnprintf #endif #endif #ifndef M_PI # define M_PI 3.14159265358979323846 #endif #ifndef LOGE # define LOGE 0.4342944819 #endif // ********** Little cms API *************************************************** typedef LCMSHANDLE cmsHPROFILE; // Opaque typedefs to hide internals typedef LCMSHANDLE cmsHTRANSFORM; #define MAXCHANNELS 16 // Maximum number of channels // Format of pixel is defined by one DWORD, using bit fields as follows // // D TTTTT U Y F P X S EEE CCCC BBB // // D: Use dither (8 bits only) // T: Pixeltype // F: Flavor 0=MinIsBlack(Chocolate) 1=MinIsWhite(Vanilla) // P: Planar? 0=Chunky, 1=Planar // X: swap 16 bps endianess? // S: Do swap? ie, BGR, KYMC // E: Extra samples // C: Channels (Samples per pixel) // B: Bytes per sample // Y: Swap first - changes ABGR to BGRA and KCMY to CMYK #define DITHER_SH(s) ((s) << 22) #define COLORSPACE_SH(s) ((s) << 16) #define SWAPFIRST_SH(s) ((s) << 14) #define FLAVOR_SH(s) ((s) << 13) #define PLANAR_SH(p) ((p) << 12) #define ENDIAN16_SH(e) ((e) << 11) #define DOSWAP_SH(e) ((e) << 10) #define EXTRA_SH(e) ((e) << 7) #define CHANNELS_SH(c) ((c) << 3) #define BYTES_SH(b) (b) // Pixel types #define PT_ANY 0 // Don't check colorspace // 1 & 2 are reserved #define PT_GRAY 3 #define PT_RGB 4 #define PT_CMY 5 #define PT_CMYK 6 #define PT_YCbCr 7 #define PT_YUV 8 // Lu'v' #define PT_XYZ 9 #define PT_Lab 10 #define PT_YUVK 11 // Lu'v'K #define PT_HSV 12 #define PT_HLS 13 #define PT_Yxy 14 #define PT_HiFi 15 #define PT_HiFi7 16 #define PT_HiFi8 17 #define PT_HiFi9 18 #define PT_HiFi10 19 #define PT_HiFi11 20 #define PT_HiFi12 21 #define PT_HiFi13 22 #define PT_HiFi14 23 #define PT_HiFi15 24 #define NOCOLORSPACECHECK(x) ((x) & 0xFFFF) // Some (not all!) representations #ifndef TYPE_RGB_8 // TYPE_RGB_8 is a very common identifier, so don't include ours // if user has it already defined. #define TYPE_GRAY_8 (COLORSPACE_SH(PT_GRAY)|CHANNELS_SH(1)|BYTES_SH(1)) #define TYPE_GRAY_8_REV (COLORSPACE_SH(PT_GRAY)|CHANNELS_SH(1)|BYTES_SH(1)|FLAVOR_SH(1)) #define TYPE_GRAY_16 (COLORSPACE_SH(PT_GRAY)|CHANNELS_SH(1)|BYTES_SH(2)) #define TYPE_GRAY_16_REV (COLORSPACE_SH(PT_GRAY)|CHANNELS_SH(1)|BYTES_SH(2)|FLAVOR_SH(1)) #define TYPE_GRAY_16_SE (COLORSPACE_SH(PT_GRAY)|CHANNELS_SH(1)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_GRAYA_8 (COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(1)) #define TYPE_GRAYA_16 (COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(2)) #define TYPE_GRAYA_16_SE (COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_GRAYA_8_PLANAR (COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_GRAYA_16_PLANAR (COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_RGB_8 (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_RGB_8_PLANAR (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_BGR_8 (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_BGR_8_PLANAR (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(1)|DOSWAP_SH(1)|PLANAR_SH(1)) #define TYPE_RGB_16 (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_RGB_16_PLANAR (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_RGB_16_SE (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_BGR_16 (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_BGR_16_PLANAR (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)|PLANAR_SH(1)) #define TYPE_BGR_16_SE (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_RGBA_8 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_RGBA_8_PLANAR (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_RGBA_16 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_RGBA_16_PLANAR (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_RGBA_16_SE (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_ARGB_8 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)|SWAPFIRST_SH(1)) #define TYPE_ARGB_16 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|SWAPFIRST_SH(1)) #define TYPE_ABGR_8 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_ABGR_16 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_ABGR_16_PLANAR (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)|PLANAR_SH(1)) #define TYPE_ABGR_16_SE (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_BGRA_8 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)|DOSWAP_SH(1)|SWAPFIRST_SH(1)) #define TYPE_BGRA_16 (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|DOSWAP_SH(1)|SWAPFIRST_SH(1)) #define TYPE_BGRA_16_SE (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)|SWAPFIRST_SH(1)) #define TYPE_CMY_8 (COLORSPACE_SH(PT_CMY)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_CMY_8_PLANAR (COLORSPACE_SH(PT_CMY)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_CMY_16 (COLORSPACE_SH(PT_CMY)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_CMY_16_PLANAR (COLORSPACE_SH(PT_CMY)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_CMY_16_SE (COLORSPACE_SH(PT_CMY)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_CMYK_8 (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)) #define TYPE_CMYKA_8 (COLORSPACE_SH(PT_CMYK)|EXTRA_SH(1)|CHANNELS_SH(4)|BYTES_SH(1)) #define TYPE_CMYK_8_REV (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)|FLAVOR_SH(1)) #define TYPE_YUVK_8 TYPE_CMYK_8_REV #define TYPE_CMYK_8_PLANAR (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_CMYK_16 (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)) #define TYPE_CMYK_16_REV (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|FLAVOR_SH(1)) #define TYPE_YUVK_16 TYPE_CMYK_16_REV #define TYPE_CMYK_16_PLANAR (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_CMYK_16_SE (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC_8 (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC_16 (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC_16_SE (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_KCMY_8 (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)|SWAPFIRST_SH(1)) #define TYPE_KCMY_8_REV (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)|FLAVOR_SH(1)|SWAPFIRST_SH(1)) #define TYPE_KCMY_16 (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|SWAPFIRST_SH(1)) #define TYPE_KCMY_16_REV (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|FLAVOR_SH(1)|SWAPFIRST_SH(1)) #define TYPE_KCMY_16_SE (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|ENDIAN16_SH(1)|SWAPFIRST_SH(1)) // HiFi separations, Thanks to Steven Greaves for providing the code, // the colorspace is not checked #define TYPE_CMYK5_8 (CHANNELS_SH(5)|BYTES_SH(1)) #define TYPE_CMYK5_16 (CHANNELS_SH(5)|BYTES_SH(2)) #define TYPE_CMYK5_16_SE (CHANNELS_SH(5)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC5_8 (CHANNELS_SH(5)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC5_16 (CHANNELS_SH(5)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC5_16_SE (CHANNELS_SH(5)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_CMYKcm_8 (CHANNELS_SH(6)|BYTES_SH(1)) #define TYPE_CMYKcm_8_PLANAR (CHANNELS_SH(6)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_CMYKcm_16 (CHANNELS_SH(6)|BYTES_SH(2)) #define TYPE_CMYKcm_16_PLANAR (CHANNELS_SH(6)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_CMYKcm_16_SE (CHANNELS_SH(6)|BYTES_SH(2)|ENDIAN16_SH(1)) // Separations with more than 6 channels aren't very standarized, // Except most start with CMYK and add other colors, so I just used // then total number of channels after CMYK i.e CMYK8_8 #define TYPE_CMYK7_8 (CHANNELS_SH(7)|BYTES_SH(1)) #define TYPE_CMYK7_16 (CHANNELS_SH(7)|BYTES_SH(2)) #define TYPE_CMYK7_16_SE (CHANNELS_SH(7)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC7_8 (CHANNELS_SH(7)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC7_16 (CHANNELS_SH(7)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC7_16_SE (CHANNELS_SH(7)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_CMYK8_8 (CHANNELS_SH(8)|BYTES_SH(1)) #define TYPE_CMYK8_16 (CHANNELS_SH(8)|BYTES_SH(2)) #define TYPE_CMYK8_16_SE (CHANNELS_SH(8)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC8_8 (CHANNELS_SH(8)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC8_16 (CHANNELS_SH(8)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC8_16_SE (CHANNELS_SH(8)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_CMYK9_8 (CHANNELS_SH(9)|BYTES_SH(1)) #define TYPE_CMYK9_16 (CHANNELS_SH(9)|BYTES_SH(2)) #define TYPE_CMYK9_16_SE (CHANNELS_SH(9)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC9_8 (CHANNELS_SH(9)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC9_16 (CHANNELS_SH(9)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC9_16_SE (CHANNELS_SH(9)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_CMYK10_8 (CHANNELS_SH(10)|BYTES_SH(1)) #define TYPE_CMYK10_16 (CHANNELS_SH(10)|BYTES_SH(2)) #define TYPE_CMYK10_16_SE (CHANNELS_SH(10)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC10_8 (CHANNELS_SH(10)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC10_16 (CHANNELS_SH(10)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC10_16_SE (CHANNELS_SH(10)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_CMYK11_8 (CHANNELS_SH(11)|BYTES_SH(1)) #define TYPE_CMYK11_16 (CHANNELS_SH(11)|BYTES_SH(2)) #define TYPE_CMYK11_16_SE (CHANNELS_SH(11)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC11_8 (CHANNELS_SH(11)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC11_16 (CHANNELS_SH(11)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC11_16_SE (CHANNELS_SH(11)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) #define TYPE_CMYK12_8 (CHANNELS_SH(12)|BYTES_SH(1)) #define TYPE_CMYK12_16 (CHANNELS_SH(12)|BYTES_SH(2)) #define TYPE_CMYK12_16_SE (CHANNELS_SH(12)|BYTES_SH(2)|ENDIAN16_SH(1)) #define TYPE_KYMC12_8 (CHANNELS_SH(12)|BYTES_SH(1)|DOSWAP_SH(1)) #define TYPE_KYMC12_16 (CHANNELS_SH(12)|BYTES_SH(2)|DOSWAP_SH(1)) #define TYPE_KYMC12_16_SE (CHANNELS_SH(12)|BYTES_SH(2)|DOSWAP_SH(1)|ENDIAN16_SH(1)) // Colorimetric #define TYPE_XYZ_16 (COLORSPACE_SH(PT_XYZ)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_Lab_8 (COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_ALab_8 (COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(1)|EXTRA_SH(1)|DOSWAP_SH(1)) #define TYPE_Lab_16 (COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_Yxy_16 (COLORSPACE_SH(PT_Yxy)|CHANNELS_SH(3)|BYTES_SH(2)) // YCbCr #define TYPE_YCbCr_8 (COLORSPACE_SH(PT_YCbCr)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_YCbCr_8_PLANAR (COLORSPACE_SH(PT_YCbCr)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_YCbCr_16 (COLORSPACE_SH(PT_YCbCr)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_YCbCr_16_PLANAR (COLORSPACE_SH(PT_YCbCr)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_YCbCr_16_SE (COLORSPACE_SH(PT_YCbCr)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) // YUV #define TYPE_YUV_8 (COLORSPACE_SH(PT_YUV)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_YUV_8_PLANAR (COLORSPACE_SH(PT_YUV)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_YUV_16 (COLORSPACE_SH(PT_YUV)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_YUV_16_PLANAR (COLORSPACE_SH(PT_YUV)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_YUV_16_SE (COLORSPACE_SH(PT_YUV)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) // HLS #define TYPE_HLS_8 (COLORSPACE_SH(PT_HLS)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_HLS_8_PLANAR (COLORSPACE_SH(PT_HLS)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_HLS_16 (COLORSPACE_SH(PT_HLS)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_HLS_16_PLANAR (COLORSPACE_SH(PT_HLS)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_HLS_16_SE (COLORSPACE_SH(PT_HLS)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) // HSV #define TYPE_HSV_8 (COLORSPACE_SH(PT_HSV)|CHANNELS_SH(3)|BYTES_SH(1)) #define TYPE_HSV_8_PLANAR (COLORSPACE_SH(PT_HSV)|CHANNELS_SH(3)|BYTES_SH(1)|PLANAR_SH(1)) #define TYPE_HSV_16 (COLORSPACE_SH(PT_HSV)|CHANNELS_SH(3)|BYTES_SH(2)) #define TYPE_HSV_16_PLANAR (COLORSPACE_SH(PT_HSV)|CHANNELS_SH(3)|BYTES_SH(2)|PLANAR_SH(1)) #define TYPE_HSV_16_SE (COLORSPACE_SH(PT_HSV)|CHANNELS_SH(3)|BYTES_SH(2)|ENDIAN16_SH(1)) // Named color index. Only 16 bits allowed (don't check colorspace) #define TYPE_NAMED_COLOR_INDEX (CHANNELS_SH(1)|BYTES_SH(2)) // Double values. Painful slow, but sometimes helpful. NOTE THAT 'BYTES' FIELD IS SET TO ZERO! #define TYPE_XYZ_DBL (COLORSPACE_SH(PT_XYZ)|CHANNELS_SH(3)|BYTES_SH(0)) #define TYPE_Lab_DBL (COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(0)) #define TYPE_GRAY_DBL (COLORSPACE_SH(PT_GRAY)|CHANNELS_SH(1)|BYTES_SH(0)) #define TYPE_RGB_DBL (COLORSPACE_SH(PT_RGB)|CHANNELS_SH(3)|BYTES_SH(0)) #define TYPE_CMYK_DBL (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(0)) #endif // Gamma table parameters typedef struct { unsigned int Crc32; // Has my table been touched? // Keep initial parameters for further serialization int Type; double Params[10]; } LCMSGAMMAPARAMS, FAR* LPLCMSGAMMAPARAMS; // Gamma tables. typedef struct { LCMSGAMMAPARAMS Seed; // Parameters used for table creation // Table-based representation follows int nEntries; WORD GammaTable[1]; } GAMMATABLE; typedef GAMMATABLE FAR* LPGAMMATABLE; // Sampled curves (1D) typedef struct { int nItems; double* Values; } SAMPLEDCURVE; typedef SAMPLEDCURVE FAR* LPSAMPLEDCURVE; // Vectors typedef struct { // Float Vector double n[3]; } VEC3; typedef VEC3 FAR* LPVEC3; typedef struct { // Matrix VEC3 v[3]; } MAT3; typedef MAT3 FAR* LPMAT3; // Colorspace values typedef struct { double X; double Y; double Z; } cmsCIEXYZ; typedef cmsCIEXYZ FAR* LPcmsCIEXYZ; typedef struct { double x; double y; double Y; } cmsCIExyY; typedef cmsCIExyY FAR* LPcmsCIExyY; typedef struct { double L; double a; double b; } cmsCIELab; typedef cmsCIELab FAR* LPcmsCIELab; typedef struct { double L; double C; double h; } cmsCIELCh; typedef cmsCIELCh FAR* LPcmsCIELCh; typedef struct { double J; double C; double h; } cmsJCh; typedef cmsJCh FAR* LPcmsJCh; // Primaries typedef struct { cmsCIEXYZ Red; cmsCIEXYZ Green; cmsCIEXYZ Blue; } cmsCIEXYZTRIPLE; typedef cmsCIEXYZTRIPLE FAR* LPcmsCIEXYZTRIPLE; typedef struct { cmsCIExyY Red; cmsCIExyY Green; cmsCIExyY Blue; } cmsCIExyYTRIPLE; typedef cmsCIExyYTRIPLE FAR* LPcmsCIExyYTRIPLE; // Following ICC spec #define D50X (0.9642) #define D50Y (1.0) #define D50Z (0.8249) #define PERCEPTUAL_BLACK_X (0.00336) #define PERCEPTUAL_BLACK_Y (0.0034731) #define PERCEPTUAL_BLACK_Z (0.00287) // Does return pointers to constant structs LCMSAPI LPcmsCIEXYZ LCMSEXPORT cmsD50_XYZ(void); LCMSAPI LPcmsCIExyY LCMSEXPORT cmsD50_xyY(void); // Input/Output LCMSAPI cmsHPROFILE LCMSEXPORT cmsOpenProfileFromFile(const char *ICCProfile, const char *sAccess); LCMSAPI cmsHPROFILE LCMSEXPORT cmsOpenProfileFromMem(LPVOID MemPtr, DWORD dwSize); LCMSAPI LCMSBOOL LCMSEXPORT cmsCloseProfile(cmsHPROFILE hProfile); // Predefined run-time profiles LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateRGBProfile(LPcmsCIExyY WhitePoint, LPcmsCIExyYTRIPLE Primaries, LPGAMMATABLE TransferFunction[3]); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateGrayProfile(LPcmsCIExyY WhitePoint, LPGAMMATABLE TransferFunction); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateLinearizationDeviceLink(icColorSpaceSignature ColorSpace, LPGAMMATABLE TransferFunctions[]); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateInkLimitingDeviceLink(icColorSpaceSignature ColorSpace, double Limit); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateLabProfile(LPcmsCIExyY WhitePoint); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateLab4Profile(LPcmsCIExyY WhitePoint); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateXYZProfile(void); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreate_sRGBProfile(void); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateBCHSWabstractProfile(int nLUTPoints, double Bright, double Contrast, double Hue, double Saturation, int TempSrc, int TempDest); LCMSAPI cmsHPROFILE LCMSEXPORT cmsCreateNULLProfile(void); // Colorimetric space conversions LCMSAPI void LCMSEXPORT cmsXYZ2xyY(LPcmsCIExyY Dest, const cmsCIEXYZ* Source); LCMSAPI void LCMSEXPORT cmsxyY2XYZ(LPcmsCIEXYZ Dest, const cmsCIExyY* Source); LCMSAPI void LCMSEXPORT cmsXYZ2Lab(LPcmsCIEXYZ WhitePoint, LPcmsCIELab Lab, const cmsCIEXYZ* xyz); LCMSAPI void LCMSEXPORT cmsLab2XYZ(LPcmsCIEXYZ WhitePoint, LPcmsCIEXYZ xyz, const cmsCIELab* Lab); LCMSAPI void LCMSEXPORT cmsLab2LCh(LPcmsCIELCh LCh, const cmsCIELab* Lab); LCMSAPI void LCMSEXPORT cmsLCh2Lab(LPcmsCIELab Lab, const cmsCIELCh* LCh); // CIELab handling LCMSAPI double LCMSEXPORT cmsDeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); LCMSAPI double LCMSEXPORT cmsCIE94DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); LCMSAPI double LCMSEXPORT cmsBFDdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); LCMSAPI double LCMSEXPORT cmsCMCdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2); LCMSAPI double LCMSEXPORT cmsCIE2000DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2, double Kl, double Kc, double Kh); LCMSAPI void LCMSEXPORT cmsClampLab(LPcmsCIELab Lab, double amax, double amin, double bmax, double bmin); LCMSAPI LCMSBOOL LCMSEXPORT cmsWhitePointFromTemp(int TempK, LPcmsCIExyY WhitePoint); LCMSAPI LCMSBOOL LCMSEXPORT cmsAdaptToIlluminant(LPcmsCIEXYZ Result, LPcmsCIEXYZ SourceWhitePt, LPcmsCIEXYZ Illuminant, LPcmsCIEXYZ Value); LCMSAPI LCMSBOOL LCMSEXPORT cmsBuildRGB2XYZtransferMatrix(LPMAT3 r, LPcmsCIExyY WhitePoint, LPcmsCIExyYTRIPLE Primaries); // Viewing conditions #define AVG_SURROUND_4 0 #define AVG_SURROUND 1 #define DIM_SURROUND 2 #define DARK_SURROUND 3 #define CUTSHEET_SURROUND 4 #define D_CALCULATE (-1) #define D_CALCULATE_DISCOUNT (-2) typedef struct { cmsCIEXYZ whitePoint; double Yb; double La; int surround; double D_value; } cmsViewingConditions; typedef cmsViewingConditions FAR* LPcmsViewingConditions; // CIECAM97s LCMSAPI LCMSHANDLE LCMSEXPORT cmsCIECAM97sInit(LPcmsViewingConditions pVC2); LCMSAPI void LCMSEXPORT cmsCIECAM97sDone(LCMSHANDLE hModel); LCMSAPI void LCMSEXPORT cmsCIECAM97sForward(LCMSHANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut); LCMSAPI void LCMSEXPORT cmsCIECAM97sReverse(LCMSHANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut); // CIECAM02 LCMSAPI LCMSHANDLE LCMSEXPORT cmsCIECAM02Init(LPcmsViewingConditions pVC); LCMSAPI void LCMSEXPORT cmsCIECAM02Done(LCMSHANDLE hModel); LCMSAPI void LCMSEXPORT cmsCIECAM02Forward(LCMSHANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut); LCMSAPI void LCMSEXPORT cmsCIECAM02Reverse(LCMSHANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut); // Gamma LCMSAPI LPGAMMATABLE LCMSEXPORT cmsBuildGamma(int nEntries, double Gamma); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsBuildParametricGamma(int nEntries, int Type, double Params[]); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsAllocGamma(int nEntries); LCMSAPI void LCMSEXPORT cmsFreeGamma(LPGAMMATABLE Gamma); LCMSAPI void LCMSEXPORT cmsFreeGammaTriple(LPGAMMATABLE Gamma[3]); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsDupGamma(LPGAMMATABLE Src); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsReverseGamma(int nResultSamples, LPGAMMATABLE InGamma); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsJoinGamma(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsJoinGammaEx(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma, int nPoints); LCMSAPI LCMSBOOL LCMSEXPORT cmsSmoothGamma(LPGAMMATABLE Tab, double lambda); LCMSAPI double LCMSEXPORT cmsEstimateGamma(LPGAMMATABLE t); LCMSAPI double LCMSEXPORT cmsEstimateGammaEx(LPWORD Table, int nEntries, double Thereshold); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsReadICCGamma(cmsHPROFILE hProfile, icTagSignature sig); LCMSAPI LPGAMMATABLE LCMSEXPORT cmsReadICCGammaReversed(cmsHPROFILE hProfile, icTagSignature sig); // Access to Profile data. LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeMediaWhitePoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeMediaBlackPoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeIluminant(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeColorants(LPcmsCIEXYZTRIPLE Dest, cmsHPROFILE hProfile); LCMSAPI DWORD LCMSEXPORT cmsTakeHeaderFlags(cmsHPROFILE hProfile); LCMSAPI DWORD LCMSEXPORT cmsTakeHeaderAttributes(cmsHPROFILE hProfile); LCMSAPI void LCMSEXPORT cmsSetLanguage(const char LanguageCode[4], const char CountryCode[4]); LCMSAPI const char* LCMSEXPORT cmsTakeProductName(cmsHPROFILE hProfile); LCMSAPI const char* LCMSEXPORT cmsTakeProductDesc(cmsHPROFILE hProfile); LCMSAPI const char* LCMSEXPORT cmsTakeProductInfo(cmsHPROFILE hProfile); LCMSAPI const char* LCMSEXPORT cmsTakeManufacturer(cmsHPROFILE hProfile); LCMSAPI const char* LCMSEXPORT cmsTakeModel(cmsHPROFILE hProfile); LCMSAPI const char* LCMSEXPORT cmsTakeCopyright(cmsHPROFILE hProfile); LCMSAPI const BYTE* LCMSEXPORT cmsTakeProfileID(cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeCreationDateTime(struct tm *Dest, cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeCalibrationDateTime(struct tm *Dest, cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsIsTag(cmsHPROFILE hProfile, icTagSignature sig); LCMSAPI int LCMSEXPORT cmsTakeRenderingIntent(cmsHPROFILE hProfile); LCMSAPI LCMSBOOL LCMSEXPORT cmsTakeCharTargetData(cmsHPROFILE hProfile, char** Data, size_t* len); LCMSAPI int LCMSEXPORT cmsReadICCTextEx(cmsHPROFILE hProfile, icTagSignature sig, char *Text, size_t size); LCMSAPI int LCMSEXPORT cmsReadICCText(cmsHPROFILE hProfile, icTagSignature sig, char *Text); #define LCMS_DESC_MAX 512 typedef struct { icSignature deviceMfg; icSignature deviceModel; icUInt32Number attributes[2]; icTechnologySignature technology; char Manufacturer[LCMS_DESC_MAX]; char Model[LCMS_DESC_MAX]; } cmsPSEQDESC, FAR *LPcmsPSEQDESC; typedef struct { int n; cmsPSEQDESC seq[1]; } cmsSEQ, FAR *LPcmsSEQ; LCMSAPI LPcmsSEQ LCMSEXPORT cmsReadProfileSequenceDescription(cmsHPROFILE hProfile); LCMSAPI void LCMSEXPORT cmsFreeProfileSequenceDescription(LPcmsSEQ pseq); // Translate form/to our notation to ICC LCMSAPI icColorSpaceSignature LCMSEXPORT _cmsICCcolorSpace(int OurNotation); LCMSAPI int LCMSEXPORT _cmsLCMScolorSpace(icColorSpaceSignature ProfileSpace); LCMSAPI int LCMSEXPORT _cmsChannelsOf(icColorSpaceSignature ColorSpace); LCMSAPI LCMSBOOL LCMSEXPORT _cmsIsMatrixShaper(cmsHPROFILE hProfile); // How profiles may be used #define LCMS_USED_AS_INPUT 0 #define LCMS_USED_AS_OUTPUT 1 #define LCMS_USED_AS_PROOF 2 LCMSAPI LCMSBOOL LCMSEXPORT cmsIsIntentSupported(cmsHPROFILE hProfile, int Intent, int UsedDirection); LCMSAPI icColorSpaceSignature LCMSEXPORT cmsGetPCS(cmsHPROFILE hProfile); LCMSAPI icColorSpaceSignature LCMSEXPORT cmsGetColorSpace(cmsHPROFILE hProfile); LCMSAPI icProfileClassSignature LCMSEXPORT cmsGetDeviceClass(cmsHPROFILE hProfile); LCMSAPI DWORD LCMSEXPORT cmsGetProfileICCversion(cmsHPROFILE hProfile); LCMSAPI void LCMSEXPORT cmsSetProfileICCversion(cmsHPROFILE hProfile, DWORD Version); LCMSAPI icInt32Number LCMSEXPORT cmsGetTagCount(cmsHPROFILE hProfile); LCMSAPI icTagSignature LCMSEXPORT cmsGetTagSignature(cmsHPROFILE hProfile, icInt32Number n); LCMSAPI void LCMSEXPORT cmsSetDeviceClass(cmsHPROFILE hProfile, icProfileClassSignature sig); LCMSAPI void LCMSEXPORT cmsSetColorSpace(cmsHPROFILE hProfile, icColorSpaceSignature sig); LCMSAPI void LCMSEXPORT cmsSetPCS(cmsHPROFILE hProfile, icColorSpaceSignature pcs); LCMSAPI void LCMSEXPORT cmsSetRenderingIntent(cmsHPROFILE hProfile, int RenderingIntent); LCMSAPI void LCMSEXPORT cmsSetHeaderFlags(cmsHPROFILE hProfile, DWORD Flags); LCMSAPI void LCMSEXPORT cmsSetHeaderAttributes(cmsHPROFILE hProfile, DWORD Flags); LCMSAPI void LCMSEXPORT cmsSetProfileID(cmsHPROFILE hProfile, LPBYTE ProfileID); // Intents #define INTENT_PERCEPTUAL 0 #define INTENT_RELATIVE_COLORIMETRIC 1 #define INTENT_SATURATION 2 #define INTENT_ABSOLUTE_COLORIMETRIC 3 // Flags #define cmsFLAGS_MATRIXINPUT 0x0001 #define cmsFLAGS_MATRIXOUTPUT 0x0002 #define cmsFLAGS_MATRIXONLY (cmsFLAGS_MATRIXINPUT|cmsFLAGS_MATRIXOUTPUT) #define cmsFLAGS_NOWHITEONWHITEFIXUP 0x0004 // Don't hot fix scum dot #define cmsFLAGS_NOPRELINEARIZATION 0x0010 // Don't create prelinearization tables // on precalculated transforms (internal use) #define cmsFLAGS_GUESSDEVICECLASS 0x0020 // Guess device class (for transform2devicelink) #define cmsFLAGS_NOTCACHE 0x0040 // Inhibit 1-pixel cache #define cmsFLAGS_NOTPRECALC 0x0100 #define cmsFLAGS_NULLTRANSFORM 0x0200 // Don't transform anyway #define cmsFLAGS_HIGHRESPRECALC 0x0400 // Use more memory to give better accurancy #define cmsFLAGS_LOWRESPRECALC 0x0800 // Use less memory to minimize resouces #define cmsFLAGS_WHITEBLACKCOMPENSATION 0x2000 #define cmsFLAGS_BLACKPOINTCOMPENSATION cmsFLAGS_WHITEBLACKCOMPENSATION // Proofing flags #define cmsFLAGS_GAMUTCHECK 0x1000 // Out of Gamut alarm #define cmsFLAGS_SOFTPROOFING 0x4000 // Do softproofing // Black preservation #define cmsFLAGS_PRESERVEBLACK 0x8000 // CRD special #define cmsFLAGS_NODEFAULTRESOURCEDEF 0x01000000 // Gridpoints #define cmsFLAGS_GRIDPOINTS(n) (((n) & 0xFF) << 16) // Transforms LCMSAPI cmsHTRANSFORM LCMSEXPORT cmsCreateTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, int Intent, DWORD dwFlags); LCMSAPI cmsHTRANSFORM LCMSEXPORT cmsCreateProofingTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, cmsHPROFILE Proofing, int Intent, int ProofingIntent, DWORD dwFlags); LCMSAPI cmsHTRANSFORM LCMSEXPORT cmsCreateMultiprofileTransform(cmsHPROFILE hProfiles[], int nProfiles, DWORD InputFormat, DWORD OutputFormat, int Intent, DWORD dwFlags); LCMSAPI void LCMSEXPORT cmsDeleteTransform(cmsHTRANSFORM hTransform); LCMSAPI void LCMSEXPORT cmsDoTransform(cmsHTRANSFORM Transform, LPVOID InputBuffer, LPVOID OutputBuffer, unsigned int Size); LCMSAPI void LCMSEXPORT cmsChangeBuffersFormat(cmsHTRANSFORM hTransform, DWORD InputFormat, DWORD dwOutputFormat); LCMSAPI void LCMSEXPORT cmsSetAlarmCodes(int r, int g, int b); LCMSAPI void LCMSEXPORT cmsGetAlarmCodes(int *r, int *g, int *b); // Adaptation state for absolute colorimetric intent LCMSAPI double LCMSEXPORT cmsSetAdaptationState(double d); // Primary preservation strategy #define LCMS_PRESERVE_PURE_K 0 #define LCMS_PRESERVE_K_PLANE 1 LCMSAPI int LCMSEXPORT cmsSetCMYKPreservationStrategy(int n); // Named color support typedef struct { char Name[MAX_PATH]; WORD PCS[3]; WORD DeviceColorant[MAXCHANNELS]; } cmsNAMEDCOLOR, FAR* LPcmsNAMEDCOLOR; typedef struct { int nColors; int Allocated; int ColorantCount; char Prefix[33]; char Suffix[33]; cmsNAMEDCOLOR List[1]; } cmsNAMEDCOLORLIST, FAR* LPcmsNAMEDCOLORLIST; // Named color support LCMSAPI int LCMSEXPORT cmsNamedColorCount(cmsHTRANSFORM xform); LCMSAPI LCMSBOOL LCMSEXPORT cmsNamedColorInfo(cmsHTRANSFORM xform, int nColor, char* Name, char* Prefix, char* Suffix); LCMSAPI int LCMSEXPORT cmsNamedColorIndex(cmsHTRANSFORM xform, const char* Name); // Colorant tables LCMSAPI LPcmsNAMEDCOLORLIST LCMSEXPORT cmsReadColorantTable(cmsHPROFILE hProfile, icTagSignature sig); // Profile creation LCMSAPI LCMSBOOL LCMSEXPORT cmsAddTag(cmsHPROFILE hProfile, icTagSignature sig, const void* data); // Converts a transform to a devicelink profile LCMSAPI cmsHPROFILE LCMSEXPORT cmsTransform2DeviceLink(cmsHTRANSFORM hTransform, DWORD dwFlags); // Set the 'save as 8-bit' flag LCMSAPI void LCMSEXPORT _cmsSetLUTdepth(cmsHPROFILE hProfile, int depth); // Save profile LCMSAPI LCMSBOOL LCMSEXPORT _cmsSaveProfile(cmsHPROFILE hProfile, const char* FileName); LCMSAPI LCMSBOOL LCMSEXPORT _cmsSaveProfileToMem(cmsHPROFILE hProfile, void *MemPtr, size_t* BytesNeeded); // PostScript ColorRenderingDictionary and ColorSpaceArray LCMSAPI DWORD LCMSEXPORT cmsGetPostScriptCSA(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); LCMSAPI DWORD LCMSEXPORT cmsGetPostScriptCRD(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); LCMSAPI DWORD LCMSEXPORT cmsGetPostScriptCRDEx(cmsHPROFILE hProfile, int Intent, DWORD dwFlags, LPVOID Buffer, DWORD dwBufferLen); // Error handling #define LCMS_ERROR_ABORT 0 #define LCMS_ERROR_SHOW 1 #define LCMS_ERROR_IGNORE 2 LCMSAPI int LCMSEXPORT cmsErrorAction(int nAction); #define LCMS_ERRC_WARNING 0x1000 #define LCMS_ERRC_RECOVERABLE 0x2000 #define LCMS_ERRC_ABORTED 0x3000 typedef int (* cmsErrorHandlerFunction)(int ErrorCode, const char *ErrorText); LCMSAPI void LCMSEXPORT cmsSetErrorHandler(cmsErrorHandlerFunction Fn); // LUT manipulation typedef struct _lcms_LUT_struc LUT, FAR* LPLUT; // opaque pointer LCMSAPI LPLUT LCMSEXPORT cmsAllocLUT(void); LCMSAPI LPLUT LCMSEXPORT cmsAllocLinearTable(LPLUT NewLUT, LPGAMMATABLE Tables[], int nTable); LCMSAPI LPLUT LCMSEXPORT cmsAlloc3DGrid(LPLUT Lut, int clutPoints, int inputChan, int outputChan); LCMSAPI LPLUT LCMSEXPORT cmsSetMatrixLUT(LPLUT Lut, LPMAT3 M); LCMSAPI LPLUT LCMSEXPORT cmsSetMatrixLUT4(LPLUT Lut, LPMAT3 M, LPVEC3 off, DWORD dwFlags); LCMSAPI void LCMSEXPORT cmsFreeLUT(LPLUT Lut); LCMSAPI void LCMSEXPORT cmsEvalLUT(LPLUT Lut, WORD In[], WORD Out[]); LCMSAPI double LCMSEXPORT cmsEvalLUTreverse(LPLUT Lut, WORD Target[], WORD Result[], LPWORD Hint); LCMSAPI LPLUT LCMSEXPORT cmsReadICCLut(cmsHPROFILE hProfile, icTagSignature sig); LCMSAPI LPLUT LCMSEXPORT cmsDupLUT(LPLUT Orig); // LUT Sampling typedef int (* _cmsSAMPLER)(register WORD In[], register WORD Out[], register LPVOID Cargo); #define SAMPLER_HASTL1 LUT_HASTL1 #define SAMPLER_HASTL2 LUT_HASTL2 #define SAMPLER_INSPECT 0x01000000 LCMSAPI int LCMSEXPORT cmsSample3DGrid(LPLUT Lut, _cmsSAMPLER Sampler, LPVOID Cargo, DWORD dwFlags); // Formatters typedef unsigned char* (* cmsFORMATTER)(register void* CMMcargo, register WORD ToUnroll[], register LPBYTE Buffer); LCMSAPI void LCMSEXPORT cmsSetUserFormatters(cmsHTRANSFORM hTransform, DWORD dwInput, cmsFORMATTER Input, DWORD dwOutput, cmsFORMATTER Output); LCMSAPI void LCMSEXPORT cmsGetUserFormatters(cmsHTRANSFORM hTransform, LPDWORD InputFormat, cmsFORMATTER* Input, LPDWORD OutputFormat, cmsFORMATTER* Output); // IT8.7 / CGATS.17-200x handling LCMSAPI LCMSHANDLE LCMSEXPORT cmsIT8Alloc(void); LCMSAPI void LCMSEXPORT cmsIT8Free(LCMSHANDLE IT8); // Tables LCMSAPI int LCMSEXPORT cmsIT8TableCount(LCMSHANDLE IT8); LCMSAPI int LCMSEXPORT cmsIT8SetTable(LCMSHANDLE IT8, int nTable); // Persistence LCMSAPI LCMSHANDLE LCMSEXPORT cmsIT8LoadFromFile(const char* cFileName); LCMSAPI LCMSHANDLE LCMSEXPORT cmsIT8LoadFromMem(void *Ptr, size_t len); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SaveToFile(LCMSHANDLE IT8, const char* cFileName); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SaveToMem(LCMSHANDLE hIT8, void *MemPtr, size_t* BytesNeeded); // Properties LCMSAPI const char* LCMSEXPORT cmsIT8GetSheetType(LCMSHANDLE hIT8); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetSheetType(LCMSHANDLE hIT8, const char* Type); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetComment(LCMSHANDLE hIT8, const char* cComment); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyStr(LCMSHANDLE hIT8, const char* cProp, const char *Str); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyDbl(LCMSHANDLE hIT8, const char* cProp, double Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyHex(LCMSHANDLE hIT8, const char* cProp, int Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char* cSubProp, const char *Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyUncooked(LCMSHANDLE hIT8, const char* Key, const char* Buffer); LCMSAPI const char* LCMSEXPORT cmsIT8GetProperty(LCMSHANDLE hIT8, const char* cProp); LCMSAPI double LCMSEXPORT cmsIT8GetPropertyDbl(LCMSHANDLE hIT8, const char* cProp); LCMSAPI const char* LCMSEXPORT cmsIT8GetPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char *cSubProp); LCMSAPI int LCMSEXPORT cmsIT8EnumProperties(LCMSHANDLE hIT8, const char ***PropertyNames); LCMSAPI int LCMSEXPORT cmsIT8EnumPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char*** SubpropertyNames); // Datasets LCMSAPI const char* LCMSEXPORT cmsIT8GetDataRowCol(LCMSHANDLE IT8, int row, int col); LCMSAPI double LCMSEXPORT cmsIT8GetDataRowColDbl(LCMSHANDLE IT8, int row, int col); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataRowCol(LCMSHANDLE hIT8, int row, int col, const char* Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataRowColDbl(LCMSHANDLE hIT8, int row, int col, double Val); LCMSAPI const char* LCMSEXPORT cmsIT8GetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample); LCMSAPI double LCMSEXPORT cmsIT8GetDataDbl(LCMSHANDLE IT8, const char* cPatch, const char* cSample); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample, const char *Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataDbl(LCMSHANDLE hIT8, const char* cPatch, const char* cSample, double Val); LCMSAPI int LCMSEXPORT cmsIT8GetDataFormat(LCMSHANDLE hIT8, const char* cSample); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataFormat(LCMSHANDLE IT8, int n, const char *Sample); LCMSAPI int LCMSEXPORT cmsIT8EnumDataFormat(LCMSHANDLE IT8, char ***SampleNames); LCMSAPI const char* LCMSEXPORT cmsIT8GetPatchName(LCMSHANDLE hIT8, int nPatch, char* buffer); LCMSAPI int LCMSEXPORT cmsIT8GetPatchByName(LCMSHANDLE hIT8, const char *cSample); // The LABEL extension LCMSAPI int LCMSEXPORT cmsIT8SetTableByLabel(LCMSHANDLE hIT8, const char* cSet, const char* cField, const char* ExpectedType); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetIndexColumn(LCMSHANDLE hIT8, const char* cSample); // Formatter for double LCMSAPI void LCMSEXPORT cmsIT8DefineDblFormat(LCMSHANDLE IT8, const char* Formatter); // *************************************************************************** // End of Little cms API From here functions are private // You can use them only if using static libraries, and at your own risk of // be stripped or changed at futures releases. #ifndef LCMS_APIONLY // Compatibility with anterior versions-- not needed anymore // -- Morge LCMSAPI void LCMSEXPORT cmsLabEncoded2Float(LPcmsCIELab Lab, const WORD wLab[3]); LCMSAPI void LCMSEXPORT cmsLabEncoded2Float4(LPcmsCIELab Lab, const WORD wLab[3]); LCMSAPI void LCMSEXPORT cmsFloat2LabEncoded(WORD wLab[3], const cmsCIELab* Lab); LCMSAPI void LCMSEXPORT cmsFloat2LabEncoded4(WORD wLab[3], const cmsCIELab* Lab); LCMSAPI void LCMSEXPORT cmsXYZEncoded2Float(LPcmsCIEXYZ fxyz, const WORD XYZ[3]); LCMSAPI void LCMSEXPORT cmsFloat2XYZEncoded(WORD XYZ[3], const cmsCIEXYZ* fXYZ); // Profiling Extensions --- Would be removed from API in future revisions LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddTextTag(cmsHPROFILE hProfile, icTagSignature sig, const char* Text); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddXYZTag(cmsHPROFILE hProfile, icTagSignature sig, const cmsCIEXYZ* XYZ); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddLUTTag(cmsHPROFILE hProfile, icTagSignature sig, const void* lut); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddGammaTag(cmsHPROFILE hProfile, icTagSignature sig, LPGAMMATABLE TransferFunction); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddChromaticityTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsCIExyYTRIPLE Chrm); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddSequenceDescriptionTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsSEQ PSeq); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddNamedColorTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddDateTimeTag(cmsHPROFILE hProfile, icTagSignature sig, struct tm *DateTime); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddColorantTableTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc); LCMSAPI LCMSBOOL LCMSEXPORT _cmsAddChromaticAdaptationTag(cmsHPROFILE hProfile, icTagSignature sig, const cmsCIEXYZ* mat); // --------------------------------------------------------------------------------------------------- Inline functions // Fast floor conversion logic. Thanks to Sree Kotay and Stuart Nixon // note than this only works in the range ..-32767...+32767 because // mantissa is interpreted as 15.16 fixed point. // The union is to avoid pointer aliasing overoptimization. LCMS_INLINE int _cmsQuickFloor(double val) { #ifdef USE_DEFAULT_FLOOR_CONVERSION return (int) floor(val); #else const double _lcms_double2fixmagic = 68719476736.0 * 1.5; // 2^36 * 1.5, (52-16=36) uses limited precision to floor union { double val; int halves[2]; } temp; temp.val = val + _lcms_double2fixmagic; #ifdef USE_BIG_ENDIAN return temp.halves[1] >> 16; #else return temp.halves[0] >> 16; #endif #endif } // Clamp with saturation LCMS_INLINE WORD _cmsClampWord(int in) { if (in < 0) return 0; if (in > 0xFFFF) return 0xFFFFU; // Including marker return (WORD) in; } #ifndef LCMS_USER_ALLOC // Low-level alloc hook LCMS_INLINE void* _cmsMalloc(size_t size) { if (size > ((size_t) 1024*1024*500)) return NULL; // Never allow over 500Mb if (size < 0) return NULL; // Prevent signed size_t exploits return (void*) malloc(size); } LCMS_INLINE void* _cmsCalloc(size_t nmemb, size_t size) { size_t alloc = nmemb * size; if (size == 0) { return _cmsMalloc(0); } if (alloc / size != nmemb) { return NULL; } return _cmsMalloc(alloc); } LCMS_INLINE void _cmsFree(void *Ptr) { if (Ptr) free(Ptr); } #endif // ------------------------------------------------------------------------------------------- end of inline functions // Signal error from inside lcms code void cdecl cmsSignalError(int ErrorCode, const char *ErrorText, ...); // Alignment handling (needed in ReadLUT16 and ReadLUT8) typedef struct { icS15Fixed16Number a; icUInt16Number b; } _cmsTestAlign16; #define SIZEOF_UINT16_ALIGNED (sizeof(_cmsTestAlign16) - sizeof(icS15Fixed16Number)) typedef struct { icS15Fixed16Number a; icUInt8Number b; } _cmsTestAlign8; #define SIZEOF_UINT8_ALIGNED (sizeof(_cmsTestAlign8) - sizeof(icS15Fixed16Number)) // Fixed point typedef icInt32Number Fixed32; // Fixed 15.16 whith sign #define INT_TO_FIXED(x) ((x)<<16) #define DOUBLE_TO_FIXED(x) ((Fixed32) ((x)*65536.0+0.5)) #define FIXED_TO_INT(x) ((x)>>16) #define FIXED_REST_TO_INT(x) ((x)& 0xFFFFU) #define FIXED_TO_DOUBLE(x) (((double)x)/65536.0) #define ROUND_FIXED_TO_INT(x) (((x)+0x8000)>>16) Fixed32 cdecl FixedMul(Fixed32 a, Fixed32 b); Fixed32 cdecl FixedSquare(Fixed32 a); #ifdef USE_INLINE LCMS_INLINE Fixed32 ToFixedDomain(int a) { return a + ((a + 0x7fff) / 0xffff); } LCMS_INLINE int FromFixedDomain(Fixed32 a) { return a - ((a + 0x7fff) >> 16); } #else Fixed32 cdecl ToFixedDomain(int a); // (a * 65536.0 / 65535.0) int cdecl FromFixedDomain(Fixed32 a); // (a * 65535.0 + .5) #endif Fixed32 cdecl FixedLERP(Fixed32 a, Fixed32 l, Fixed32 h); WORD cdecl FixedScale(WORD a, Fixed32 s); // Vector & Matrix operations. I'm using the notation frequently found in // literature. Mostly 'Graphic Gems' samples. Not to be same routines. // Vector members #define VX 0 #define VY 1 #define VZ 2 typedef struct { // Fixed 15.16 bits vector Fixed32 n[3]; } WVEC3, FAR* LPWVEC3; typedef struct { // Matrix (Fixed 15.16) WVEC3 v[3]; } WMAT3, FAR* LPWMAT3; void cdecl VEC3init(LPVEC3 r, double x, double y, double z); // double version void cdecl VEC3initF(LPWVEC3 r, double x, double y, double z); // Fix32 version void cdecl VEC3toFix(LPWVEC3 r, LPVEC3 v); void cdecl VEC3fromFix(LPVEC3 r, LPWVEC3 v); void cdecl VEC3scaleFix(LPWORD r, LPWVEC3 Scale); void cdecl VEC3swap(LPVEC3 a, LPVEC3 b); void cdecl VEC3divK(LPVEC3 r, LPVEC3 v, double d); void cdecl VEC3perK(LPVEC3 r, LPVEC3 v, double d); void cdecl VEC3minus(LPVEC3 r, LPVEC3 a, LPVEC3 b); void cdecl VEC3perComp(LPVEC3 r, LPVEC3 a, LPVEC3 b); LCMSBOOL cdecl VEC3equal(LPWVEC3 a, LPWVEC3 b, double Tolerance); LCMSBOOL cdecl VEC3equalF(LPVEC3 a, LPVEC3 b, double Tolerance); void cdecl VEC3scaleAndCut(LPWVEC3 r, LPVEC3 v, double d); void cdecl VEC3cross(LPVEC3 r, LPVEC3 u, LPVEC3 v); void cdecl VEC3saturate(LPVEC3 v); double cdecl VEC3distance(LPVEC3 a, LPVEC3 b); double cdecl VEC3length(LPVEC3 a); void cdecl MAT3identity(LPMAT3 a); void cdecl MAT3per(LPMAT3 r, LPMAT3 a, LPMAT3 b); void cdecl MAT3perK(LPMAT3 r, LPMAT3 v, double d); int cdecl MAT3inverse(LPMAT3 a, LPMAT3 b); LCMSBOOL cdecl MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b); double cdecl MAT3det(LPMAT3 m); void cdecl MAT3eval(LPVEC3 r, LPMAT3 a, LPVEC3 v); void cdecl MAT3toFix(LPWMAT3 r, LPMAT3 v); void cdecl MAT3fromFix(LPMAT3 r, LPWMAT3 v); void cdecl MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v); LCMSBOOL cdecl MAT3isIdentity(LPWMAT3 a, double Tolerance); void cdecl MAT3scaleAndCut(LPWMAT3 r, LPMAT3 v, double d); // Is a table linear? int cdecl cmsIsLinear(WORD Table[], int nEntries); // I hold this structures describing domain // details mainly for optimization purposes. struct _lcms_l16params_struc; typedef void (* _cms3DLERP)(WORD Input[], WORD Output[], WORD LutTable[], struct _lcms_l16params_struc* p); typedef struct _lcms_l8opt_struc { // Used on 8 bit interpolations unsigned int X0[256], Y0[256], Z0[256]; WORD rx[256], ry[256], rz[256]; } L8PARAMS, FAR* LPL8PARAMS; typedef struct _lcms_l16params_struc { // Used on 16 bits interpolations int nSamples; // Valid on all kinds of tables int nInputs; // != 1 only in 3D interpolation int nOutputs; // != 1 only in 3D interpolation WORD Domain; int opta1, opta2; int opta3, opta4; // Optimization for 3D LUT int opta5, opta6; int opta7, opta8; _cms3DLERP Interp3D; // The interpolation routine LPL8PARAMS p8; // Points to some tables for 8-bit speedup } L16PARAMS, *LPL16PARAMS; void cdecl cmsCalcL16Params(int nSamples, LPL16PARAMS p); void cdecl cmsCalcCLUT16Params(int nSamples, int InputChan, int OutputChan, LPL16PARAMS p); void cdecl cmsCalcCLUT16ParamsEx(int nSamples, int InputChan, int OutputChan, LCMSBOOL lUseTetrahedral, LPL16PARAMS p); WORD cdecl cmsLinearInterpLUT16(WORD Value, WORD LutTable[], LPL16PARAMS p); Fixed32 cdecl cmsLinearInterpFixed(WORD Value1, WORD LutTable[], LPL16PARAMS p); WORD cdecl cmsReverseLinearInterpLUT16(WORD Value, WORD LutTable[], LPL16PARAMS p); void cdecl cmsTrilinearInterp16(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p); void cdecl cmsTetrahedralInterp16(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p); void cdecl cmsTetrahedralInterp8(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p); // LUT handling #define LUT_HASMATRIX 0x0001 // Do-op Flags #define LUT_HASTL1 0x0002 #define LUT_HASTL2 0x0008 #define LUT_HAS3DGRID 0x0010 // New in rev 4.0 of ICC spec #define LUT_HASMATRIX3 0x0020 // Matrix + offset for LutAToB #define LUT_HASMATRIX4 0x0040 // Matrix + offset for LutBToA #define LUT_HASTL3 0x0100 // '3' curves for LutAToB #define LUT_HASTL4 0x0200 // '4' curves for LutBToA // V4 emulation #define LUT_V4_OUTPUT_EMULATE_V2 0x10000 // Is a V4 output LUT, emulating V2 #define LUT_V4_INPUT_EMULATE_V2 0x20000 // Is a V4 input LUT, emulating V2 #define LUT_V2_OUTPUT_EMULATE_V4 0x40000 // Is a V2 output LUT, emulating V4 #define LUT_V2_INPUT_EMULATE_V4 0x80000 // Is a V2 input LUT, emulating V4 struct _lcms_LUT_struc { DWORD wFlags; WMAT3 Matrix; // 15fixed16 matrix unsigned int InputChan; unsigned int OutputChan; unsigned int InputEntries; unsigned int OutputEntries; unsigned int cLutPoints; LPWORD L1[MAXCHANNELS]; // First linearization LPWORD L2[MAXCHANNELS]; // Last linearization LPWORD T; // 3D CLUT unsigned int Tsize; // CLUT size in bytes // Parameters & Optimizations L16PARAMS In16params; L16PARAMS Out16params; L16PARAMS CLut16params; int Intent; // Accomplished intent // New for Rev 4.0 of spec (reserved) WMAT3 Mat3; WVEC3 Ofs3; LPWORD L3[MAXCHANNELS]; L16PARAMS L3params; unsigned int L3Entries; WMAT3 Mat4; WVEC3 Ofs4; LPWORD L4[MAXCHANNELS]; L16PARAMS L4params; unsigned int L4Entries; // Gray axes fixup. Only on v2 8-bit Lab LUT LCMSBOOL FixGrayAxes; // Parameters used for curve creation LCMSGAMMAPARAMS LCurvesSeed[4][MAXCHANNELS]; }; // LUT, FAR* LPLUT; LCMSBOOL cdecl _cmsSmoothEndpoints(LPWORD Table, int nEntries); // CRC of gamma tables unsigned int _cmsCrc32OfGammaTable(LPGAMMATABLE Table); // Sampled curves LPSAMPLEDCURVE cdecl cmsAllocSampledCurve(int nItems); void cdecl cmsFreeSampledCurve(LPSAMPLEDCURVE p); LPSAMPLEDCURVE cdecl cmsDupSampledCurve(LPSAMPLEDCURVE p); LPSAMPLEDCURVE cdecl cmsConvertGammaToSampledCurve(LPGAMMATABLE Gamma, int nPoints); LPGAMMATABLE cdecl cmsConvertSampledCurveToGamma(LPSAMPLEDCURVE Sampled, double Max); void cdecl cmsEndpointsOfSampledCurve(LPSAMPLEDCURVE p, double* Min, double* Max); void cdecl cmsClampSampledCurve(LPSAMPLEDCURVE p, double Min, double Max); LCMSBOOL cdecl cmsSmoothSampledCurve(LPSAMPLEDCURVE Tab, double SmoothingLambda); void cdecl cmsRescaleSampledCurve(LPSAMPLEDCURVE p, double Min, double Max, int nPoints); LPSAMPLEDCURVE cdecl cmsJoinSampledCurves(LPSAMPLEDCURVE X, LPSAMPLEDCURVE Y, int nResultingPoints); // Shaper/Matrix handling #define MATSHAPER_HASMATRIX 0x0001 // Do-ops flags #define MATSHAPER_HASSHAPER 0x0002 #define MATSHAPER_INPUT 0x0004 // Behaviour #define MATSHAPER_OUTPUT 0x0008 #define MATSHAPER_HASINPSHAPER 0x0010 #define MATSHAPER_ALLSMELTED (MATSHAPER_INPUT|MATSHAPER_OUTPUT) typedef struct { DWORD dwFlags; WMAT3 Matrix; L16PARAMS p16; // Primary curve LPWORD L[3]; L16PARAMS p2_16; // Secondary curve (used as input in smelted ones) LPWORD L2[3]; } MATSHAPER, FAR* LPMATSHAPER; LPMATSHAPER cdecl cmsAllocMatShaper(LPMAT3 matrix, LPGAMMATABLE Shaper[], DWORD Behaviour); LPMATSHAPER cdecl cmsAllocMatShaper2(LPMAT3 matrix, LPGAMMATABLE In[], LPGAMMATABLE Out[], DWORD Behaviour); void cdecl cmsFreeMatShaper(LPMATSHAPER MatShaper); void cdecl cmsEvalMatShaper(LPMATSHAPER MatShaper, WORD In[], WORD Out[]); LCMSBOOL cdecl cmsReadICCMatrixRGB2XYZ(LPMAT3 r, cmsHPROFILE hProfile); LPMATSHAPER cdecl cmsBuildInputMatrixShaper(cmsHPROFILE InputProfile); LPMATSHAPER cdecl cmsBuildOutputMatrixShaper(cmsHPROFILE OutputProfile); // White Point & Primary chromas handling LCMSBOOL cdecl cmsAdaptationMatrix(LPMAT3 r, LPMAT3 ConeMatrix, LPcmsCIEXYZ FromIll, LPcmsCIEXYZ ToIll); LCMSBOOL cdecl cmsAdaptMatrixToD50(LPMAT3 r, LPcmsCIExyY SourceWhitePt); LCMSBOOL cdecl cmsAdaptMatrixFromD50(LPMAT3 r, LPcmsCIExyY DestWhitePt); LCMSBOOL cdecl cmsReadChromaticAdaptationMatrix(LPMAT3 r, cmsHPROFILE hProfile); // Inter-PCS conversion routines. They assume D50 as white point. void cdecl cmsXYZ2LabEncoded(WORD XYZ[3], WORD Lab[3]); void cdecl cmsLab2XYZEncoded(WORD Lab[3], WORD XYZ[3]); // Retrieve text representation of WP void cdecl _cmsIdentifyWhitePoint(char *Buffer, LPcmsCIEXYZ WhitePt); // Quantize to WORD in a (MaxSamples - 1) domain WORD cdecl _cmsQuantizeVal(double i, int MaxSamples); LPcmsNAMEDCOLORLIST cdecl cmsAllocNamedColorList(int n); int cdecl cmsReadICCnamedColorList(cmsHTRANSFORM xform, cmsHPROFILE hProfile, icTagSignature sig); void cdecl cmsFreeNamedColorList(LPcmsNAMEDCOLORLIST List); LCMSBOOL cdecl cmsAppendNamedColor(cmsHTRANSFORM xform, const char* Name, WORD PCS[3], WORD Colorant[MAXCHANNELS]); // I/O #define MAX_TABLE_TAG 100 // This is the internal struct holding profile details. typedef struct _lcms_iccprofile_struct { void* stream; // Associated stream. If NULL, // tags are supposed to be in // memory rather than in a file. // Only most important items found in ICC profile icProfileClassSignature DeviceClass; icColorSpaceSignature ColorSpace; icColorSpaceSignature PCS; icRenderingIntent RenderingIntent; icUInt32Number flags; icUInt32Number attributes; cmsCIEXYZ Illuminant; // Additions for V4 profiles icUInt32Number Version; MAT3 ChromaticAdaptation; cmsCIEXYZ MediaWhitePoint; cmsCIEXYZ MediaBlackPoint; BYTE ProfileID[16]; // Dictionary icInt32Number TagCount; icTagSignature TagNames[MAX_TABLE_TAG]; size_t TagSizes[MAX_TABLE_TAG]; size_t TagOffsets[MAX_TABLE_TAG]; LPVOID TagPtrs[MAX_TABLE_TAG]; char PhysicalFile[MAX_PATH]; LCMSBOOL IsWrite; LCMSBOOL SaveAs8Bits; struct tm Created; // I/O handlers size_t (* Read)(void *buffer, size_t size, size_t count, struct _lcms_iccprofile_struct* Icc); LCMSBOOL (* Seek)(struct _lcms_iccprofile_struct* Icc, size_t offset); LCMSBOOL (* Close)(struct _lcms_iccprofile_struct* Icc); size_t (* Tell)(struct _lcms_iccprofile_struct* Icc); // Writting LCMSBOOL (* Write)(struct _lcms_iccprofile_struct* Icc, size_t size, LPVOID Ptr); size_t UsedSpace; } LCMSICCPROFILE, FAR* LPLCMSICCPROFILE; // Create an empty template for virtual profiles cmsHPROFILE cdecl _cmsCreateProfilePlaceholder(void); // Search into tag dictionary icInt32Number cdecl _cmsSearchTag(LPLCMSICCPROFILE Profile, icTagSignature sig, LCMSBOOL lSignalError); // Search for a particular tag, replace if found or add new one else LPVOID _cmsInitTag(LPLCMSICCPROFILE Icc, icTagSignature sig, size_t size, const void* Init); LPLCMSICCPROFILE cdecl _cmsCreateProfileFromFilePlaceholder(const char* FileName); LPLCMSICCPROFILE cdecl _cmsCreateProfileFromMemPlaceholder(LPVOID MemPtr, DWORD dwSize); void _cmsSetSaveToDisk(LPLCMSICCPROFILE Icc, const char* FileName); void _cmsSetSaveToMemory(LPLCMSICCPROFILE Icc, LPVOID MemPtr, size_t dwSize); // These macros unpack format specifiers into integers #define T_DITHER(s) (((s)>>22)&1) #define T_COLORSPACE(s) (((s)>>16)&31) #define T_SWAPFIRST(s) (((s)>>14)&1) #define T_FLAVOR(s) (((s)>>13)&1) #define T_PLANAR(p) (((p)>>12)&1) #define T_ENDIAN16(e) (((e)>>11)&1) #define T_DOSWAP(e) (((e)>>10)&1) #define T_EXTRA(e) (((e)>>7)&7) #define T_CHANNELS(c) (((c)>>3)&15) #define T_BYTES(b) ((b)&7) // Internal XFORM struct struct _cmstransform_struct; // Full xform typedef void (* _cmsCOLORCALLBACKFN)(struct _cmstransform_struct *Transform, LPVOID InputBuffer, LPVOID OutputBuffer, unsigned int Size); // intermediate pass, from WORD[] to WORD[] typedef void (* _cmsADJFN)(WORD In[], WORD Out[], LPWMAT3 m, LPWVEC3 b); typedef void (* _cmsTRANSFN)(struct _cmstransform_struct *Transform, WORD In[], WORD Out[]); typedef void (* _cmsCNVRT)(WORD In[], WORD Out[]); typedef LPBYTE (* _cmsFIXFN)(register struct _cmstransform_struct *info, register WORD ToUnroll[], register LPBYTE Buffer); // Transformation typedef struct _cmstransform_struct { // Keep formats for further reference DWORD InputFormat, OutputFormat; DWORD StrideIn, StrideOut; // Planar support int Intent, ProofIntent; int DoGamutCheck; cmsHPROFILE InputProfile; cmsHPROFILE OutputProfile; cmsHPROFILE PreviewProfile; icColorSpaceSignature EntryColorSpace; icColorSpaceSignature ExitColorSpace; DWORD dwOriginalFlags; // Flags as specified by user WMAT3 m1, m2; // Matrix holding inter PCS operation WVEC3 of1, of2; // Offset terms _cmsCOLORCALLBACKFN xform; // Steps in xFORM _cmsFIXFN FromInput; _cmsTRANSFN FromDevice; _cmsADJFN Stage1; _cmsADJFN Stage2; _cmsTRANSFN ToDevice; _cmsFIXFN ToOutput; // LUTs LPLUT Device2PCS; LPLUT PCS2Device; LPLUT Gamut; // Gamut check LPLUT Preview; // Preview (Proof) LPLUT DeviceLink; // Precalculated grid - device link profile LPLUT GamutCheck; // Precalculated device -> gamut check // Matrix/Shapers LPMATSHAPER InMatShaper; LPMATSHAPER OutMatShaper; LPMATSHAPER SmeltMatShaper; // Phase of Lab/XYZ, Abs/Rel int Phase1, Phase2, Phase3; // Named color table LPcmsNAMEDCOLORLIST NamedColorList; // Flag for transform involving v4 profiles LCMSBOOL lInputV4Lab, lOutputV4Lab; // 1-pixel cache WORD CacheIn[MAXCHANNELS]; WORD CacheOut[MAXCHANNELS]; double AdaptationState; // Figure for v4 incomplete state of adaptation LCMS_RWLOCK_T rwlock; } _cmsTRANSFORM,FAR *_LPcmsTRANSFORM; // Packing & Unpacking _cmsFIXFN cdecl _cmsIdentifyInputFormat(_LPcmsTRANSFORM xform, DWORD dwInput); _cmsFIXFN cdecl _cmsIdentifyOutputFormat(_LPcmsTRANSFORM xform, DWORD dwOutput); // Conversion #define XYZRel 0 #define LabRel 1 int cdecl cmsChooseCnvrt(int Absolute, int Phase1, LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPMAT3 ChromaticAdaptationMatrixIn, int Phase2, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 ChromaticAdaptationMatrixOut, int DoBPC, double AdaptationState, _cmsADJFN *fn1, LPWMAT3 wm, LPWVEC3 wof); // Clamping & Gamut handling LCMSBOOL cdecl _cmsEndPointsBySpace(icColorSpaceSignature Space, WORD **White, WORD **Black, int *nOutputs); WORD * cdecl _cmsWhiteBySpace(icColorSpaceSignature Space); WORD cdecl Clamp_L(Fixed32 in); WORD cdecl Clamp_ab(Fixed32 in); // Detection of black point #define LCMS_BPFLAGS_D50_ADAPTED 0x0001 int cdecl cmsDetectBlackPoint(LPcmsCIEXYZ BlackPoint, cmsHPROFILE hProfile, int Intent, DWORD dwFlags); // choose reasonable resolution int cdecl _cmsReasonableGridpointsByColorspace(icColorSpaceSignature Colorspace, DWORD dwFlags); // Precalculate device link LPLUT cdecl _cmsPrecalculateDeviceLink(cmsHTRANSFORM h, DWORD dwFlags); // Precalculate black preserving device link LPLUT _cmsPrecalculateBlackPreservingDeviceLink(cmsHTRANSFORM hCMYK2CMYK, DWORD dwFlags); // Precalculate gamut check LPLUT cdecl _cmsPrecalculateGamutCheck(cmsHTRANSFORM h); // Hot fixes bad profiles LCMSBOOL cdecl _cmsFixWhiteMisalignment(_LPcmsTRANSFORM p); // Marks LUT as 8 bit on input LPLUT cdecl _cmsBlessLUT8(LPLUT Lut); // Compute gamut boundary LPLUT cdecl _cmsComputeGamutLUT(cmsHPROFILE hProfile, int Intent); // Compute softproof LPLUT cdecl _cmsComputeSoftProofLUT(cmsHPROFILE hProfile, int nIntent); // Find a suitable prelinearization tables, matching the given transform void cdecl _cmsComputePrelinearizationTablesFromXFORM(cmsHTRANSFORM h[], int nTransforms, LPLUT Grid); // Build a tone curve for K->K' if possible (only works on CMYK) LPGAMMATABLE _cmsBuildKToneCurve(cmsHTRANSFORM hCMYK2CMYK, int nPoints); // Validates a LUT LCMSBOOL cdecl _cmsValidateLUT(LPLUT NewLUT); // These are two VITAL macros, from converting between 8 and 16 bit // representation. #define RGB_8_TO_16(rgb) (WORD) ((((WORD) (rgb)) << 8)|(rgb)) #define RGB_16_TO_8(rgb) (BYTE) ((((rgb) * 65281 + 8388608) >> 24) & 0xFF) #endif // LCMS_APIONLY #define __cms_H #ifdef __cplusplus } #endif #endif lcms-1.19/include/Makefile.am0000777000175300010010000000043511272606371015342 0ustar MartiNinguno# # Makefile for include directory # Written by Bob Friesenhahn, June 2003 # Bugs added by Marti Maria Dec-2004 include_HEADERS = icc34.h lcms.h EXTRA_DIST = icc34.h.in lcms.h # For windows, we need a copy of icc34.h.in named as the header distclean-local: cp icc34.h.in icc34.h lcms-1.19/include/Makefile.in0000644000175300010010000003124711230106052015332 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for include directory # Written by Bob Friesenhahn, June 2003 # Bugs added by Marti Maria Dec-2004 VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = include DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/icc34.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = icc34.h SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(includedir)" includeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ include_HEADERS = icc34.h lcms.h EXTRA_DIST = icc34.h.in lcms.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh icc34.h: $(top_builddir)/config.status $(srcdir)/icc34.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ rm -f "$(DESTDIR)$(includedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-local distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS # For windows, we need a copy of icc34.h.in named as the header distclean-local: cp icc34.h.in icc34.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/INSTALL0000777000175300010010000000670311272606371012720 0ustar MartiNinguno LittleCMS 1.19 - Installation guide Configuration ************* All configuration is done by the configure script on linux. If you want to fine-tune the library, this can be done by editing lcms.h Normally, there is no need to touch anything. Only make sure to set properly the NON_WINDOWS toggle if you are using the engine in non MS-Windows environments (set by default), and USE_BIG_ENDIAN if your machine does use this convention. Remaining toggles does control optimization degree. If your compiler does support the new __int64 or "long long" type, (gcc does) you can gain speed by defining the USE_INT64 toggle. There is an experimetal multi-threading mode which may be activated by uncommenting USE_PTHREADS toggle. However, this is only for completness sake as the current code should be thread-safe on all but a very small fraction of time. So, use the toggle only if you make _extensive_ use of threads on multiprocessor architectures. Installation ************* Linux/Mac/unices ================ Unpack & untar the tarball (you already did!) and then type ./configure make make check This latter will run the testbed program as well. If you want to install the package, type make install This does copy lcms.h and icc34.h into /usr/local/include and liblcms.a into /usr/local/lib There is also a simple, old version compatible script. If you experience any problem with automake try this one: make -f makefile.simple this is just to keep compatibility with old versions. For cleaning object and binaries files type 'make clean' There are these targets on Makefile: install: Does install package check: builds and executes testbed program clean: Deletes object & binary files NOTE: The package doesn't build with srcdir!=builddir That is because a pre-generated icc34.h located at 'include' folder. This is needed for windows installs. So, if you plan to build the package using any builddir different from srcdir, please delete this file. Windows ======= There are projects for most popular environments in the 'Projects' folder. Just locate which one you want to use. Tifficc & jpegicc ================= automake will try to detect whatever you have libtiff and libjpeg and if found build these additional utilities. Only if you are using makefile.simple: If you have libz, libtiff and libjpeg installed, there are some additional utilities for converting images using icc profiles. Since lcms doesn't require these libraries to work, and in order to minimize the dependency carrousel, these utilities are not builded by default. If you want to build them, type 'make utils'. I will recommend to give a try if you are interested in color management. tifficc can do wonderful things like converting CMYK separations to displayable files and other interesting stuff. Run the executable without parameters to see how it works. Removing //-C++ style comments ============================== There is a utility on root called 'filter.c' If your compiler doesn't support C++-style comments, apply this filter to all source & headers. Probably you would need to make your own compilation script too. I will love! to know any exotic environment using lcms, so please me know if it worked. If you experience any difficult on installation, drop me a note info@littlecms.com lcms-1.19/install-sh0000777000175300010010000002176611272606371013676 0ustar MartiNinguno#!/bin/sh # install - install a program, script, or datafile scriptversion=2004-09-10.20 # 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. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= 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: -c (ignored) -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. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit 0;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit 0;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; 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 for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi 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 "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # 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: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # 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 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $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 "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 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. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lcms-1.19/install.gcc0000777000175300010010000000002707732014662014006 0ustar MartiNingunomake -f makefile.simplelcms-1.19/jpegicc/0000777000175300010010000000000011272606372013263 5ustar MartiNingunolcms-1.19/jpegicc/iccjpeg.c0000777000175300010010000002063611272606371015044 0ustar MartiNinguno/* * iccprofile.c * * This file provides code to read and write International Color Consortium * (ICC) device profiles embedded in JFIF JPEG image files. The ICC has * defined a standard format for including such data in JPEG "APP2" markers. * The code given here does not know anything about the internal structure * of the ICC profile data; it just knows how to put the profile data into * a JPEG file being written, or get it back out when reading. * * This code depends on new features added to the IJG JPEG library as of * IJG release 6b; it will not compile or work with older IJG versions. * * NOTE: this code would need surgery to work on 16-bit-int machines * with ICC profiles exceeding 64K bytes in size. If you need to do that, * change all the "unsigned int" variables to "INT32". You'll also need * to find a malloc() replacement that can allocate more than 64K. */ #include "iccjpeg.h" #include /* define malloc() */ /* * Since an ICC profile can be larger than the maximum size of a JPEG marker * (64K), we need provisions to split it into multiple markers. The format * defined by the ICC specifies one or more APP2 markers containing the * following data: * Identifying string ASCII "ICC_PROFILE\0" (12 bytes) * Marker sequence number 1 for first APP2, 2 for next, etc (1 byte) * Number of markers Total number of APP2's used (1 byte) * Profile data (remainder of APP2 data) * Decoders should use the marker sequence numbers to reassemble the profile, * rather than assuming that the APP2 markers appear in the correct sequence. */ #define ICC_MARKER (JPEG_APP0 + 2) /* JPEG marker code for ICC */ #define ICC_OVERHEAD_LEN 14 /* size of non-profile data in APP2 */ #define MAX_BYTES_IN_MARKER 65533 /* maximum data len of a JPEG marker */ #define MAX_DATA_BYTES_IN_MARKER (MAX_BYTES_IN_MARKER - ICC_OVERHEAD_LEN) /* * This routine writes the given ICC profile data into a JPEG file. * It *must* be called AFTER calling jpeg_start_compress() and BEFORE * the first call to jpeg_write_scanlines(). * (This ordering ensures that the APP2 marker(s) will appear after the * SOI and JFIF or Adobe markers, but before all else.) */ void write_icc_profile (j_compress_ptr cinfo, const JOCTET *icc_data_ptr, unsigned int icc_data_len) { unsigned int num_markers; /* total number of markers we'll write */ int cur_marker = 1; /* per spec, counting starts at 1 */ unsigned int length; /* number of bytes to write in this marker */ /* Calculate the number of markers we'll need, rounding up of course */ num_markers = icc_data_len / MAX_DATA_BYTES_IN_MARKER; if (num_markers * MAX_DATA_BYTES_IN_MARKER != icc_data_len) num_markers++; while (icc_data_len > 0) { /* length of profile to put in this marker */ length = icc_data_len; if (length > MAX_DATA_BYTES_IN_MARKER) length = MAX_DATA_BYTES_IN_MARKER; icc_data_len -= length; /* Write the JPEG marker header (APP2 code and marker length) */ jpeg_write_m_header(cinfo, ICC_MARKER, (unsigned int) (length + ICC_OVERHEAD_LEN)); /* Write the marker identifying string "ICC_PROFILE" (null-terminated). * We code it in this less-than-transparent way so that the code works * even if the local character set is not ASCII. */ jpeg_write_m_byte(cinfo, 0x49); jpeg_write_m_byte(cinfo, 0x43); jpeg_write_m_byte(cinfo, 0x43); jpeg_write_m_byte(cinfo, 0x5F); jpeg_write_m_byte(cinfo, 0x50); jpeg_write_m_byte(cinfo, 0x52); jpeg_write_m_byte(cinfo, 0x4F); jpeg_write_m_byte(cinfo, 0x46); jpeg_write_m_byte(cinfo, 0x49); jpeg_write_m_byte(cinfo, 0x4C); jpeg_write_m_byte(cinfo, 0x45); jpeg_write_m_byte(cinfo, 0x0); /* Add the sequencing info */ jpeg_write_m_byte(cinfo, cur_marker); jpeg_write_m_byte(cinfo, (int) num_markers); /* Add the profile data */ while (length--) { jpeg_write_m_byte(cinfo, *icc_data_ptr); icc_data_ptr++; } cur_marker++; } } /* * Prepare for reading an ICC profile */ void setup_read_icc_profile (j_decompress_ptr cinfo) { /* Tell the library to keep any APP2 data it may find */ jpeg_save_markers(cinfo, ICC_MARKER, 0xFFFF); } /* * Handy subroutine to test whether a saved marker is an ICC profile marker. */ static boolean marker_is_icc (jpeg_saved_marker_ptr marker) { return marker->marker == ICC_MARKER && marker->data_length >= ICC_OVERHEAD_LEN && /* verify the identifying string */ GETJOCTET(marker->data[0]) == 0x49 && GETJOCTET(marker->data[1]) == 0x43 && GETJOCTET(marker->data[2]) == 0x43 && GETJOCTET(marker->data[3]) == 0x5F && GETJOCTET(marker->data[4]) == 0x50 && GETJOCTET(marker->data[5]) == 0x52 && GETJOCTET(marker->data[6]) == 0x4F && GETJOCTET(marker->data[7]) == 0x46 && GETJOCTET(marker->data[8]) == 0x49 && GETJOCTET(marker->data[9]) == 0x4C && GETJOCTET(marker->data[10]) == 0x45 && GETJOCTET(marker->data[11]) == 0x0; } /* * See if there was an ICC profile in the JPEG file being read; * if so, reassemble and return the profile data. * * TRUE is returned if an ICC profile was found, FALSE if not. * If TRUE is returned, *icc_data_ptr is set to point to the * returned data, and *icc_data_len is set to its length. * * IMPORTANT: the data at **icc_data_ptr has been allocated with malloc() * and must be freed by the caller with free() when the caller no longer * needs it. (Alternatively, we could write this routine to use the * IJG library's memory allocator, so that the data would be freed implicitly * at jpeg_finish_decompress() time. But it seems likely that many apps * will prefer to have the data stick around after decompression finishes.) * * NOTE: if the file contains invalid ICC APP2 markers, we just silently * return FALSE. You might want to issue an error message instead. */ boolean read_icc_profile (j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned int *icc_data_len) { jpeg_saved_marker_ptr marker; int num_markers = 0; int seq_no; JOCTET *icc_data; unsigned int total_length; #define MAX_SEQ_NO 255 /* sufficient since marker numbers are bytes */ char marker_present[MAX_SEQ_NO+1]; /* 1 if marker found */ unsigned int data_length[MAX_SEQ_NO+1]; /* size of profile data in marker */ unsigned int data_offset[MAX_SEQ_NO+1]; /* offset for data in marker */ *icc_data_ptr = NULL; /* avoid confusion if FALSE return */ *icc_data_len = 0; /* This first pass over the saved markers discovers whether there are * any ICC markers and verifies the consistency of the marker numbering. */ for (seq_no = 1; seq_no <= MAX_SEQ_NO; seq_no++) marker_present[seq_no] = 0; for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) { if (marker_is_icc(marker)) { if (num_markers == 0) num_markers = GETJOCTET(marker->data[13]); else if (num_markers != GETJOCTET(marker->data[13])) return FALSE; /* inconsistent num_markers fields */ seq_no = GETJOCTET(marker->data[12]); if (seq_no <= 0 || seq_no > num_markers) return FALSE; /* bogus sequence number */ if (marker_present[seq_no]) return FALSE; /* duplicate sequence numbers */ marker_present[seq_no] = 1; data_length[seq_no] = marker->data_length - ICC_OVERHEAD_LEN; } } if (num_markers == 0) return FALSE; /* Check for missing markers, count total space needed, * compute offset of each marker's part of the data. */ total_length = 0; for (seq_no = 1; seq_no <= num_markers; seq_no++) { if (marker_present[seq_no] == 0) return FALSE; /* missing sequence number */ data_offset[seq_no] = total_length; total_length += data_length[seq_no]; } if (total_length <= 0) return FALSE; /* found only empty markers? */ /* Allocate space for assembled data */ icc_data = (JOCTET *) malloc(total_length * sizeof(JOCTET)); if (icc_data == NULL) return FALSE; /* oops, out of memory */ /* and fill it in */ for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) { if (marker_is_icc(marker)) { JOCTET FAR *src_ptr; JOCTET *dst_ptr; unsigned int length; seq_no = GETJOCTET(marker->data[12]); dst_ptr = icc_data + data_offset[seq_no]; src_ptr = marker->data + ICC_OVERHEAD_LEN; length = data_length[seq_no]; while (length--) { *dst_ptr++ = *src_ptr++; } } } *icc_data_ptr = icc_data; *icc_data_len = total_length; return TRUE; } lcms-1.19/jpegicc/iccjpeg.h0000777000175300010010000000523711272606371015051 0ustar MartiNinguno/* * iccprofile.h * * This file provides code to read and write International Color Consortium * (ICC) device profiles embedded in JFIF JPEG image files. The ICC has * defined a standard format for including such data in JPEG "APP2" markers. * The code given here does not know anything about the internal structure * of the ICC profile data; it just knows how to put the profile data into * a JPEG file being written, or get it back out when reading. * * This code depends on new features added to the IJG JPEG library as of * IJG release 6b; it will not compile or work with older IJG versions. * * NOTE: this code would need surgery to work on 16-bit-int machines * with ICC profiles exceeding 64K bytes in size. See iccprofile.c * for details. */ #include /* needed to define "FILE", "NULL" */ #include "jpeglib.h" /* * This routine writes the given ICC profile data into a JPEG file. * It *must* be called AFTER calling jpeg_start_compress() and BEFORE * the first call to jpeg_write_scanlines(). * (This ordering ensures that the APP2 marker(s) will appear after the * SOI and JFIF or Adobe markers, but before all else.) */ extern void write_icc_profile JPP((j_compress_ptr cinfo, const JOCTET *icc_data_ptr, unsigned int icc_data_len)); /* * Reading a JPEG file that may contain an ICC profile requires two steps: * * 1. After jpeg_create_decompress() but before jpeg_read_header(), * call setup_read_icc_profile(). This routine tells the IJG library * to save in memory any APP2 markers it may find in the file. * * 2. After jpeg_read_header(), call read_icc_profile() to find out * whether there was a profile and obtain it if so. */ /* * Prepare for reading an ICC profile */ extern void setup_read_icc_profile JPP((j_decompress_ptr cinfo)); /* * See if there was an ICC profile in the JPEG file being read; * if so, reassemble and return the profile data. * * TRUE is returned if an ICC profile was found, FALSE if not. * If TRUE is returned, *icc_data_ptr is set to point to the * returned data, and *icc_data_len is set to its length. * * IMPORTANT: the data at **icc_data_ptr has been allocated with malloc() * and must be freed by the caller with free() when the caller no longer * needs it. (Alternatively, we could write this routine to use the * IJG library's memory allocator, so that the data would be freed implicitly * at jpeg_finish_decompress() time. But it seems likely that many apps * will prefer to have the data stick around after decompression finishes.) */ extern boolean read_icc_profile JPP((j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned int *icc_data_len)); lcms-1.19/jpegicc/jpegicc.10000777000175300010010000000331711272606371014757 0ustar MartiNinguno.\"Shiju P. Nair September 30, 2004 .TH JPEGICC 1 "September 30, 2004" .SH NAME jpegicc - little cms ICC profile applier for JPEG. .SH SYNOPSIS .B jpegicc .RI [ options ] " input.jpg output.jpg" .SH DESCRIPTION lcms is a standalone CMM engine, which deals with the color management. It implements a fast transformation between ICC profiles. .B jpegicc is little cms ICC profile applier for JPEG. .SH OPTIONS .TP .B \-b Black point compensation. .TP .B \-c <0,1,2,3> Precalculates transform. (0=Off, 1=Normal, 2=Hi-res, 3=LoRes) [defaults to 1] .TP .B \-g Marks out-of-gamut colors on softproof. .TP .B \-h <0,1,2> Show summary of options and examples. .TP .BI \-i\ profile Input profile (defaults to sRGB). .TP .B \-m <0,1,2,3> SoftProof intent. .TP .B \-n Ignore embedded profile. .TP .BI \-p\ profile Soft proof profile .TP .BI \-o\ profile .p Output profile (defaults to sRGB). .TP .B \-q <0..100> Output JPEG quality. .TP .B \-t <0,1,2,3> Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute). .TP .B \-v Verbose. .SH EXAMPLES .nf To color correct from scanner to sRGB: jpegicc -iscanner.icm in.jpg out.jpg To convert from monitor1 to monitor2: jpegicc -imon1.icm -omon2.icm in.jpg out.jpg To make a CMYK separation: jpegicc -oprinter.icm inrgb.jpg outcmyk.jpg To recover sRGB from a CMYK separation: jpegicc -iprinter.icm incmyk.jpg outrgb.jpg To convert from CIELab ITU/Fax JPEG to sRGB jpegicc -iitufax.icm in.jpg out.jpg .fi .SH NOTES For suggestions, comments, bug reports etc. send mail to info@littlecms.com. .SH SEE ALSO .BR tifficc (1), .BR icc2ps (1), .BR icclink (1), .BR icctrans (1), .BR wtpt (1) .SH AUTHOR This manual page was written by Shiju p. Nair , for the Debian project. lcms-1.19/jpegicc/jpegicc.c0000777000175300010010000007264011272606371015046 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // This program does apply profiles to (some) JPEG files #include "lcms.h" #include #include #include #include #include #ifndef NON_WINDOWS # include #endif #include "jpeglib.h" #include "iccjpeg.h" #define PROGNAME "JPEGICC" // xgetopt() interface ----------------------------------------------------- extern int xoptind; extern char *xoptarg; extern int xopterr; extern char SW; int cdecl xgetopt(int argc, char *argv[], char *optionS); // ------------------------------------------------------------------------ extern cmsHPROFILE OpenStockProfile(const char* File); // Flags static LCMSBOOL Verbose = FALSE; static LCMSBOOL BlackPointCompensation = FALSE; static LCMSBOOL IgnoreEmbedded = FALSE; static LCMSBOOL GamutCheck = FALSE; static LCMSBOOL lIsITUFax = FALSE; static LCMSBOOL lIsPhotoshopApp13 = FALSE; static LCMSBOOL lIsDeviceLink = FALSE; static LCMSBOOL EmbedProfile = FALSE; static int PreserveBlack = 0; static const char* SaveEmbedded = NULL; static int Intent = INTENT_PERCEPTUAL; static int ProofingIntent = INTENT_PERCEPTUAL; static int PrecalcMode = 1; static int jpegQuality = 75; static double ObserverAdaptationState = 0; static char *cInpProf = NULL; static char *cOutProf = NULL; static char *cProofing = NULL; static FILE * InFile; static FILE * OutFile; static struct jpeg_decompress_struct Decompressor; static struct jpeg_compress_struct Compressor; static struct my_error_mgr { struct jpeg_error_mgr pub; // "public" fields LPVOID Cargo; // "private" fields } ErrorHandler; static void ConsoleWarningHandler(const char* module, const char* fmt, va_list ap) { char e[512] = { '\0' }; if (module != NULL) strcat(strcpy(e, module), ": "); vsprintf(e+strlen(e), fmt, ap); strcat(e, "."); if (Verbose) { fprintf(stderr, "\nWarning"); fprintf(stderr, " %s\n", e); } } static void ConsoleErrorHandler(const char* module, const char* fmt, va_list ap) { char e[512] = { '\0' }; if (module != NULL) strcat(strcpy(e, module), ": "); vsprintf(e+strlen(e), fmt, ap); strcat(e, "."); fprintf(stderr, "\nError"); fprintf(stderr, " %s\n", e); } // Force an error and exit w/ return code 1 static void FatalError(const char *frm, ...) { va_list args; va_start(args, frm); ConsoleErrorHandler(PROGNAME, frm, args); va_end(args); exit(1); } static int MyErrorHandler(int ErrorCode, const char *ErrorText) { FatalError("%s", ErrorText); return 0; } // Out of mem static void OutOfMem(size_t size) { FatalError("Out of memory on allocating %d bytes.", size); } METHODDEF(void) my_output_message (j_common_ptr cinfo) { char buffer[JMSG_LENGTH_MAX]; (*cinfo->err->format_message) (cinfo, buffer); FatalError("%s %s", PROGNAME, buffer); } METHODDEF(void) my_error_exit (j_common_ptr cinfo) { // struct my_error_mgr *myerr = (struct my_error_mgr *) cinfo->err; char buffer[JMSG_LENGTH_MAX]; (*cinfo->err->format_message) (cinfo, buffer); FatalError(buffer); } static LCMSBOOL IsITUFax(jpeg_saved_marker_ptr ptr) { while (ptr) { if (ptr -> marker == (JPEG_APP0 + 1) && ptr -> data_length > 5) { JOCTET FAR* data = ptr -> data; if (GETJOCTET(data[0]) == 0x47 && GETJOCTET(data[1]) == 0x33 && GETJOCTET(data[2]) == 0x46 && GETJOCTET(data[3]) == 0x41 && GETJOCTET(data[4]) == 0x58) return TRUE; } ptr = ptr -> next; } return FALSE; } #define PS_FIXED_TO_FLOAT(h, l) ((float) (h) + ((float) (l)/(1<<16))) static LCMSBOOL ProcessPhotoshopAPP13(JOCTET FAR *data, int datalen) { int i; for (i = 14; i < datalen; ) { long len; unsigned int type; if (!(GETJOCTET(data[i] ) == 0x38 && GETJOCTET(data[i+1]) == 0x42 && GETJOCTET(data[i+2]) == 0x49 && GETJOCTET(data[i+3]) == 0x4D)) break; // Not recognized i += 4; // identifying string type = (unsigned int) (GETJOCTET(data[i]<<8) + GETJOCTET(data[i+1])); i += 2; // resource type i += GETJOCTET(data[i]) + ((GETJOCTET(data[i]) & 1) ? 1 : 2); // resource name len = ((((GETJOCTET(data[i]<<8) + GETJOCTET(data[i+1]))<<8) + GETJOCTET(data[i+2]))<<8) + GETJOCTET(data[i+3]); i += 4; // Size if (type == 0x03ED && len >= 16) { Decompressor.X_density = (int) PS_FIXED_TO_FLOAT(GETJOCTET(data[i]<<8) + GETJOCTET(data[i+1]), GETJOCTET(data[i+2]<<8) + GETJOCTET(data[i+3])); Decompressor.Y_density = (int) PS_FIXED_TO_FLOAT(GETJOCTET(data[i+8]<<8) + GETJOCTET(data[i+9]), GETJOCTET(data[i+10]<<8) + GETJOCTET(data[i+11])); // Set the density unit to 1 since the // Vertical and Horizontal resolutions // are specified in Pixels per inch Decompressor.density_unit = 0x01; return TRUE; } i += len + ((len & 1) ? 1 : 0); // Alignment } return FALSE; } static LCMSBOOL HandlePhotoshopAPP13(jpeg_saved_marker_ptr ptr) { while (ptr) { if (ptr -> marker == (JPEG_APP0 + 13) && ptr -> data_length > 9) { JOCTET FAR* data = ptr -> data; if(GETJOCTET(data[0]) == 0x50 && GETJOCTET(data[1]) == 0x68 && GETJOCTET(data[2]) == 0x6F && GETJOCTET(data[3]) == 0x74 && GETJOCTET(data[4]) == 0x6F && GETJOCTET(data[5]) == 0x73 && GETJOCTET(data[6]) == 0x68 && GETJOCTET(data[7]) == 0x6F && GETJOCTET(data[8]) == 0x70) { ProcessPhotoshopAPP13(data, ptr -> data_length); return TRUE; } } ptr = ptr -> next; } return FALSE; } static LCMSBOOL OpenInput(const char* FileName) { int m; lIsITUFax = FALSE; InFile = fopen(FileName, "rb"); if (InFile == NULL) { FatalError("Cannot open '%s'", FileName); return FALSE; } // Now we can initialize the JPEG decompression object. Decompressor.err = jpeg_std_error(&ErrorHandler.pub); ErrorHandler.pub.error_exit = my_error_exit; ErrorHandler.pub.output_message = my_output_message; jpeg_create_decompress(&Decompressor); jpeg_stdio_src(&Decompressor, InFile); for (m = 0; m < 16; m++) jpeg_save_markers(&Decompressor, JPEG_APP0 + m, 0xFFFF); setup_read_icc_profile(&Decompressor); fseek(InFile, 0, SEEK_SET); jpeg_read_header(&Decompressor, TRUE); return TRUE; } static LCMSBOOL OpenOutput(const char* FileName) { OutFile = fopen(FileName, "wb"); if (OutFile == NULL) { FatalError("Cannot create '%s'", FileName); return FALSE; } Compressor.err = jpeg_std_error(&ErrorHandler.pub); ErrorHandler.pub.error_exit = my_error_exit; ErrorHandler.pub.output_message = my_output_message; Compressor.input_components = Compressor.num_components = 4; jpeg_create_compress(&Compressor); jpeg_stdio_dest(&Compressor, OutFile); return TRUE; } static LCMSBOOL Done() { jpeg_destroy_decompress(&Decompressor); jpeg_destroy_compress(&Compressor); return fclose(InFile) + fclose(OutFile); } // Build up the pixeltype descriptor static DWORD GetInputPixelType(void) { int space, bps, extra, ColorChannels, Flavor; lIsITUFax = IsITUFax(Decompressor.marker_list); lIsPhotoshopApp13 = HandlePhotoshopAPP13(Decompressor.marker_list); ColorChannels = Decompressor.num_components; extra = 0; // Alpha = None bps = 1; // 8 bits Flavor = 0; // Vanilla if (lIsITUFax) { space = PT_Lab; Decompressor.out_color_space = JCS_YCbCr; // Fake to don't touch } else switch (Decompressor.jpeg_color_space) { case JCS_GRAYSCALE: // monochrome space = PT_GRAY; Decompressor.out_color_space = JCS_GRAYSCALE; break; case JCS_RGB: // red/green/blue space = PT_RGB; Decompressor.out_color_space = JCS_RGB; break; case JCS_YCbCr: // Y/Cb/Cr (also known as YUV) space = PT_RGB; // Let IJG code to do the conversion Decompressor.out_color_space = JCS_RGB; break; case JCS_CMYK: // C/M/Y/K space = PT_CMYK; Decompressor.out_color_space = JCS_CMYK; if (Decompressor.saw_Adobe_marker) // Adobe keeps CMYK inverted, so change flavor Flavor = 1; // from vanilla to chocolate break; case JCS_YCCK: // Y/Cb/Cr/K space = PT_CMYK; Decompressor.out_color_space = JCS_CMYK; if (Decompressor.saw_Adobe_marker) // ditto Flavor = 1; break; default: FatalError("Unsupported color space (0x%x)", Decompressor.jpeg_color_space); return 0; } return (EXTRA_SH(extra)|CHANNELS_SH(ColorChannels)|BYTES_SH(bps)|COLORSPACE_SH(space)|FLAVOR_SH(Flavor)); } // Rearrange pixel type to build output descriptor static DWORD ComputeOutputFormatDescriptor(DWORD dwInput, int OutColorSpace) { int IsPlanar = T_PLANAR(dwInput); int Channels = 0; int Flavor = 0; switch (OutColorSpace) { case PT_GRAY: Channels = 1; break; case PT_RGB: case PT_CMY: case PT_Lab: case PT_YUV: case PT_YCbCr: Channels = 3; break; case PT_CMYK: if (Compressor.write_Adobe_marker) // Adobe keeps CMYK inverted, so change flavor to chocolate Flavor = 1; Channels = 4; break; default: FatalError("Unsupported output color space"); } return (COLORSPACE_SH(OutColorSpace)|PLANAR_SH(IsPlanar)|CHANNELS_SH(Channels)|BYTES_SH(1)|FLAVOR_SH(Flavor)); } // Equivalence between ICC color spaces and lcms color spaces static int GetProfileColorSpace(cmsHPROFILE hProfile) { icColorSpaceSignature ProfileSpace = cmsGetColorSpace(hProfile); switch (ProfileSpace) { case icSigGrayData: return PT_GRAY; case icSigRgbData: return PT_RGB; case icSigCmyData: return PT_CMY; case icSigCmykData: return PT_CMYK; case icSigYCbCrData:return PT_YCbCr; case icSigLuvData: return PT_YUV; case icSigXYZData: return PT_XYZ; case icSigLabData: return PT_Lab; case icSigLuvKData: return PT_YUVK; case icSigHsvData: return PT_HSV; case icSigHlsData: return PT_HLS; case icSigYxyData: return PT_Yxy; case icSigHexachromeData: return PT_HiFi; default: return icMaxEnumData; } } // From TRANSUPP static void jcopy_markers_execute(j_decompress_ptr srcinfo, j_compress_ptr dstinfo) { jpeg_saved_marker_ptr marker; /* In the current implementation, we don't actually need to examine the * option flag here; we just copy everything that got saved. * But to avoid confusion, we do not output JFIF and Adobe APP14 markers * if the encoder library already wrote one. */ for (marker = srcinfo->marker_list; marker != NULL; marker = marker->next) { if (dstinfo->write_JFIF_header && marker->marker == JPEG_APP0 && marker->data_length >= 5 && GETJOCTET(marker->data[0]) == 0x4A && GETJOCTET(marker->data[1]) == 0x46 && GETJOCTET(marker->data[2]) == 0x49 && GETJOCTET(marker->data[3]) == 0x46 && GETJOCTET(marker->data[4]) == 0) continue; /* reject duplicate JFIF */ if (dstinfo->write_Adobe_marker && marker->marker == JPEG_APP0+14 && marker->data_length >= 5 && GETJOCTET(marker->data[0]) == 0x41 && GETJOCTET(marker->data[1]) == 0x64 && GETJOCTET(marker->data[2]) == 0x6F && GETJOCTET(marker->data[3]) == 0x62 && GETJOCTET(marker->data[4]) == 0x65) continue; /* reject duplicate Adobe */ #ifdef NEED_FAR_POINTERS /* We could use jpeg_write_marker if the data weren't FAR... */ { unsigned int i; jpeg_write_m_header(dstinfo, marker->marker, marker->data_length); for (i = 0; i < marker->data_length; i++) jpeg_write_m_byte(dstinfo, marker->data[i]); } #else jpeg_write_marker(dstinfo, marker->marker, marker->data, marker->data_length); #endif } } static void WriteOutputFields(int OutputColorSpace) { J_COLOR_SPACE in_space, jpeg_space; int components; switch (OutputColorSpace) { case PT_GRAY: in_space = jpeg_space = JCS_GRAYSCALE; components = 1; break; case PT_RGB: in_space = JCS_RGB; jpeg_space = JCS_YCbCr; components = 3; break; // red/green/blue case PT_YCbCr: in_space = jpeg_space = JCS_YCbCr; components = 3; break; // Y/Cb/Cr (also known as YUV) case PT_CMYK: in_space = JCS_CMYK; jpeg_space = JCS_YCCK; components = 4; break; // C/M/Y/components case PT_Lab: in_space = jpeg_space = JCS_YCbCr; components = 3; break; // Fake to don't touch default: FatalError("Unsupported output color space"); return; } if (jpegQuality >= 100) { // avoid destructive conversion when asking for lossless compression jpeg_space = in_space; } Compressor.in_color_space = in_space; Compressor.jpeg_color_space = jpeg_space; Compressor.input_components = Compressor.num_components = components; jpeg_set_defaults(&Compressor); jpeg_set_colorspace(&Compressor, jpeg_space); // Make sure to pass resolution through if (OutputColorSpace == PT_CMYK) Compressor.write_JFIF_header = 1; //avoid subsampling on high quality factor jpeg_set_quality(&Compressor, jpegQuality, 1); if (jpegQuality >= 70) { int i; for(i=0; i < Compressor.num_components; i++) { Compressor.comp_info[i].h_samp_factor = 1; Compressor.comp_info[i].v_samp_factor = 1; } } } // A replacement for (the nonstandard) filelenght static int xfilelength(int fd) { #ifdef _MSC_VER return _filelength(fd); #else struct stat sb; if (fstat(fd, &sb) < 0) return(-1); return(sb.st_size); #endif } static void DoEmbedProfile(const char* ProfileFile) { FILE* f; size_t size, EmbedLen; LPBYTE EmbedBuffer; f = fopen(ProfileFile, "rb"); if (f == NULL) return; size = xfilelength(fileno(f)); EmbedBuffer = (LPBYTE) _cmsMalloc(size + 1); EmbedLen = fread(EmbedBuffer, 1, size, f); fclose(f); EmbedBuffer[EmbedLen] = 0; write_icc_profile (&Compressor, EmbedBuffer, EmbedLen); _cmsFree(EmbedBuffer); } static int DoTransform(cmsHTRANSFORM hXForm) { JSAMPROW ScanLineIn; JSAMPROW ScanLineOut; //Preserve resolution values from the original // (Thanks to robert bergs for finding out this bug) Compressor.density_unit = Decompressor.density_unit; Compressor.X_density = Decompressor.X_density; Compressor.Y_density = Decompressor.Y_density; // Compressor.write_JFIF_header = 1; jpeg_start_decompress(&Decompressor); jpeg_start_compress(&Compressor, TRUE); // Embed the profile if needed if (EmbedProfile && cOutProf) DoEmbedProfile(cOutProf); ScanLineIn = (JSAMPROW) _cmsMalloc(Decompressor.output_width * Decompressor.num_components); ScanLineOut = (JSAMPROW) _cmsMalloc(Compressor.image_width * Compressor.num_components); while (Decompressor.output_scanline < Decompressor.output_height) { jpeg_read_scanlines(&Decompressor, &ScanLineIn, 1); cmsDoTransform(hXForm, ScanLineIn, ScanLineOut, Decompressor.output_width); jpeg_write_scanlines(&Compressor, &ScanLineOut, 1); } _cmsFree(ScanLineIn); _cmsFree(ScanLineOut); jpeg_finish_decompress(&Decompressor); jpeg_finish_compress(&Compressor); return TRUE; } static void SaveMemoryBlock(const BYTE* Buffer, DWORD dwLen, const char* Filename) { FILE* out = fopen(Filename, "wb"); if (out == NULL) FatalError("Cannot create '%s'", Filename); if (fwrite(Buffer, 1, dwLen, out) != dwLen) FatalError("Cannot write %ld bytes to %s", dwLen, Filename); if (fclose(out) != 0) FatalError("Error flushing file '%s'", Filename); } // Transform one image static int TransformImage(char *cDefInpProf, char *cOutProf) { cmsHPROFILE hIn, hOut, hProof; cmsHTRANSFORM xform; DWORD wInput, wOutput; int OutputColorSpace; DWORD dwFlags = 0; DWORD EmbedLen; LPBYTE EmbedBuffer; // Observer adaptation state (only meaningful on absolute colorimetric intent) cmsSetAdaptationState(ObserverAdaptationState); if (BlackPointCompensation) { dwFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION; } if (PreserveBlack) { dwFlags |= cmsFLAGS_PRESERVEBLACK; if (PrecalcMode == 0) PrecalcMode = 1; cmsSetCMYKPreservationStrategy(PreserveBlack-1); } switch (PrecalcMode) { case 0: dwFlags |= cmsFLAGS_NOTPRECALC; break; case 2: dwFlags |= cmsFLAGS_HIGHRESPRECALC; break; case 3: dwFlags |= cmsFLAGS_LOWRESPRECALC; break; default:; } if (GamutCheck) dwFlags |= cmsFLAGS_GAMUTCHECK; if (lIsDeviceLink) { hIn = cmsOpenProfileFromFile(cDefInpProf, "r"); hOut = NULL; hProof = NULL; } else { if (!IgnoreEmbedded && read_icc_profile(&Decompressor, &EmbedBuffer, &EmbedLen)) { hIn = cmsOpenProfileFromMem(EmbedBuffer, EmbedLen); if (Verbose) { fprintf(stdout, " (Embedded profile found)\n"); fprintf(stdout, "Product name: %s\n", cmsTakeProductName(hIn)); fprintf(stdout, "Description : %s\n", cmsTakeProductDesc(hIn)); fflush(stdout); } if (hIn != NULL && SaveEmbedded != NULL) SaveMemoryBlock(EmbedBuffer, EmbedLen, SaveEmbedded); _cmsFree(EmbedBuffer); } else { hIn = OpenStockProfile(cDefInpProf); } hOut = OpenStockProfile(cOutProf); hProof = NULL; if (cProofing != NULL) { hProof = OpenStockProfile(cProofing); dwFlags |= cmsFLAGS_SOFTPROOFING; } } // Take input color space wInput = GetInputPixelType(); // Assure both, input profile and input JPEG are on same colorspace if (cmsGetColorSpace(hIn) != _cmsICCcolorSpace(T_COLORSPACE(wInput))) FatalError("Input profile is not operating in proper color space"); // Output colorspace is given by output profile if (lIsDeviceLink) { OutputColorSpace = T_COLORSPACE(wInput); } else { OutputColorSpace = GetProfileColorSpace(hOut); } jpeg_copy_critical_parameters(&Decompressor, &Compressor); WriteOutputFields(OutputColorSpace); wOutput = ComputeOutputFormatDescriptor(wInput, OutputColorSpace); xform = cmsCreateProofingTransform(hIn, wInput, hOut, wOutput, hProof, Intent, ProofingIntent, dwFlags); // Handle tile by tile or strip by strip strtok DoTransform(xform); jcopy_markers_execute(&Decompressor, &Compressor); cmsDeleteTransform(xform); cmsCloseProfile(hIn); cmsCloseProfile(hOut); if (hProof) cmsCloseProfile(hProof); return 1; } // Simply print help static void Help(int level) { fprintf(stderr, "little cms ICC profile applier for JPEG - v2.1\n\n"); switch(level) { default: case 0: fprintf(stderr, "usage: jpegicc [flags] input.jpg output.jpg\n"); fprintf(stderr, "\nflags:\n\n"); fprintf(stderr, "%cv - Verbose\n", SW); fprintf(stderr, "%ci - Input profile (defaults to sRGB)\n", SW); fprintf(stderr, "%co - Output profile (defaults to sRGB)\n", SW); fprintf(stderr, "%ct<0,1,2,3> - Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute)\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cb - Black point compensation\n", SW); fprintf(stderr, "%cf - Preserve black (CMYK only) 0=off, 1=black ink only, 2=full K plane\n", SW); fprintf(stderr, "%cn - Ignore embedded profile\n", SW); fprintf(stderr, "%ce - Embed destination profile\n", SW); fprintf(stderr, "%cs - Save embedded profile as \n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cc<0,1,2,3> - Precalculates transform (0=Off, 1=Normal, 2=Hi-res, 3=LoRes) [defaults to 1]\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cp - Soft proof profile\n", SW); fprintf(stderr, "%cm<0,1,2,3> - SoftProof intent\n", SW); fprintf(stderr, "%cg - Marks out-of-gamut colors on softproof\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cq<0..100> - Output JPEG quality\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cd<0..1> - Observer adaptation state (abs.col. only)\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%ch<0,1,2> - More help\n", SW); break; case 1: fprintf(stderr, "Examples:\n\n" "To color correct from scanner to sRGB:\n" "\tjpegicc %ciscanner.icm in.jpg out.jpg\n" "To convert from monitor1 to monitor2:\n" "\tjpegicc %cimon1.icm %comon2.icm in.jpg out.jpg\n" "To make a CMYK separation:\n" "\tjpegicc %coprinter.icm inrgb.jpg outcmyk.jpg\n" "To recover sRGB from a CMYK separation:\n" "\tjpegicc %ciprinter.icm incmyk.jpg outrgb.jpg\n" "To convert from CIELab ITU/Fax JPEG to sRGB\n" "\tjpegicc %ciitufax.icm in.jpg out.jpg\n\n", SW, SW, SW, SW, SW, SW); break; case 2: fprintf(stderr, "This program is intended to be a demo of the little cms\n" "engine. Both lcms and this program are freeware. You can\n" "obtain both in source code at http://www.littlecms.com\n" "For suggestions, comments, bug reports etc. send mail to\n" "marti@littlecms.com\n\n"); break; } exit(0); } // The toggles stuff static void HandleSwitches(int argc, char *argv[]) { int s; while ((s=xgetopt(argc,argv,"bBnNvVGgh:H:i:I:o:O:P:p:t:T:c:C:Q:q:M:m:L:l:eEs:S:F:f:D:d:")) != EOF) { switch (s) { case 'b': case 'B': BlackPointCompensation = TRUE; break; case 'v': case 'V': Verbose = TRUE; break; case 'i': case 'I': if (lIsDeviceLink) FatalError("Device-link already specified"); cInpProf = xoptarg; break; case 'o': case 'O': if (lIsDeviceLink) FatalError("Device-link already specified"); cOutProf = xoptarg; break; case 'l': case 'L': cInpProf = xoptarg; lIsDeviceLink = TRUE; break; case 'p': case 'P': cProofing = xoptarg; break; case 't': case 'T': Intent = atoi(xoptarg); if (Intent > 3) Intent = 3; if (Intent < 0) Intent = 0; break; case 'N': case 'n': IgnoreEmbedded = TRUE; break; case 'e': case 'E': EmbedProfile = TRUE; break; case 'f': case 'F': PreserveBlack = atoi(xoptarg); if (PreserveBlack < 0 || PreserveBlack > 2) FatalError("Unknown PreserveBlack '%d'", PreserveBlack); break; case 'g': case 'G': GamutCheck = TRUE; break; case 'c': case 'C': PrecalcMode = atoi(xoptarg); if (PrecalcMode < 0 || PrecalcMode > 2) FatalError("Unknown precalc mode '%d'", PrecalcMode); break; case 'H': case 'h': { int a = atoi(xoptarg); Help(a); } break; case 'q': case 'Q': jpegQuality = atoi(xoptarg); if (jpegQuality > 100) jpegQuality = 100; if (jpegQuality < 0) jpegQuality = 0; break; case 'm': case 'M': ProofingIntent = atoi(xoptarg); if (ProofingIntent > 3) ProofingIntent = 3; if (ProofingIntent < 0) ProofingIntent = 0; break; case 's': case 'S': SaveEmbedded = xoptarg; break; case 'd': case 'D': ObserverAdaptationState = atof(xoptarg); if (ObserverAdaptationState != 0 && ObserverAdaptationState != 1.0) fprintf(stderr, "Warning: Adaptation states other that 0 or 1 are not yet implemented\n"); break; default: FatalError("Unknown option - run without args to see valid ones"); } } } // The main sink int main(int argc, char* argv[]) { char *Intents[] = {"perceptual", "relative colorimetric", "saturation", "absolute colorimetric" }; HandleSwitches(argc, argv); cmsSetErrorHandler(MyErrorHandler); if ((argc - xoptind) != 2) { Help(0); } if (Verbose) { if (lIsDeviceLink) fprintf(stdout, "%s(device link) -> %s [%s]", argv[xoptind], argv[xoptind+1], Intents[Intent]); else fprintf(stdout, "%s(%s) -> %s(%s) [%s]", argv[xoptind], (cInpProf == NULL ? "sRGB": cInpProf), argv[xoptind+1], (cOutProf == NULL ? "sRGB" : cOutProf), Intents[Intent]); } OpenInput(argv[xoptind]); OpenOutput(argv[xoptind+1]); TransformImage(cInpProf, cOutProf); if (Verbose) fprintf(stdout, "\n"); Done(); return 0; } lcms-1.19/jpegicc/Makefile.am0000777000175300010010000000105111272606371015316 0ustar MartiNinguno# # Makefile for building jpegicc # Written by Bob Friesenhahn, June 2003 # Bugs introduced by Marti Maria on October 2004 # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include if HasJPEG bin_PROGRAMS = jpegicc else bin_PROGRAMS = endif jpegicc_LDADD = $(top_builddir)/src/liblcms.la @JPEGICC_DEPLIBS@ jpegicc_LDFLAGS = @LDFLAGS@ jpegicc_SOURCES = jpegicc.c iccjpeg.c ../samples/xgetopt.c ../samples/vprf.c man_MANS = jpegicc.1 EXTRA_DIST = iccjpeg.h $(man_MANS) lcms-1.19/jpegicc/Makefile.in0000644000175300010010000005055411230106052015315 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for building jpegicc # Written by Bob Friesenhahn, June 2003 # Bugs introduced by Marti Maria on October 2004 VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ @HasJPEG_TRUE@bin_PROGRAMS = jpegicc$(EXEEXT) subdir = jpegicc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_jpegicc_OBJECTS = jpegicc.$(OBJEXT) iccjpeg.$(OBJEXT) \ xgetopt.$(OBJEXT) vprf.$(OBJEXT) jpegicc_OBJECTS = $(am_jpegicc_OBJECTS) jpegicc_DEPENDENCIES = $(top_builddir)/src/liblcms.la jpegicc_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(jpegicc_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(jpegicc_SOURCES) DIST_SOURCES = $(jpegicc_SOURCES) man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include jpegicc_LDADD = $(top_builddir)/src/liblcms.la @JPEGICC_DEPLIBS@ jpegicc_LDFLAGS = @LDFLAGS@ jpegicc_SOURCES = jpegicc.c iccjpeg.c ../samples/xgetopt.c ../samples/vprf.c man_MANS = jpegicc.1 EXTRA_DIST = iccjpeg.h $(man_MANS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign jpegicc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign jpegicc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done jpegicc$(EXEEXT): $(jpegicc_OBJECTS) $(jpegicc_DEPENDENCIES) @rm -f jpegicc$(EXEEXT) $(jpegicc_LINK) $(jpegicc_OBJECTS) $(jpegicc_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iccjpeg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpegicc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vprf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetopt.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< xgetopt.o: ../samples/xgetopt.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xgetopt.o -MD -MP -MF $(DEPDIR)/xgetopt.Tpo -c -o xgetopt.o `test -f '../samples/xgetopt.c' || echo '$(srcdir)/'`../samples/xgetopt.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xgetopt.Tpo $(DEPDIR)/xgetopt.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/xgetopt.c' object='xgetopt.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xgetopt.o `test -f '../samples/xgetopt.c' || echo '$(srcdir)/'`../samples/xgetopt.c xgetopt.obj: ../samples/xgetopt.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xgetopt.obj -MD -MP -MF $(DEPDIR)/xgetopt.Tpo -c -o xgetopt.obj `if test -f '../samples/xgetopt.c'; then $(CYGPATH_W) '../samples/xgetopt.c'; else $(CYGPATH_W) '$(srcdir)/../samples/xgetopt.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xgetopt.Tpo $(DEPDIR)/xgetopt.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/xgetopt.c' object='xgetopt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xgetopt.obj `if test -f '../samples/xgetopt.c'; then $(CYGPATH_W) '../samples/xgetopt.c'; else $(CYGPATH_W) '$(srcdir)/../samples/xgetopt.c'; fi` vprf.o: ../samples/vprf.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vprf.o -MD -MP -MF $(DEPDIR)/vprf.Tpo -c -o vprf.o `test -f '../samples/vprf.c' || echo '$(srcdir)/'`../samples/vprf.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/vprf.Tpo $(DEPDIR)/vprf.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/vprf.c' object='vprf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vprf.o `test -f '../samples/vprf.c' || echo '$(srcdir)/'`../samples/vprf.c vprf.obj: ../samples/vprf.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vprf.obj -MD -MP -MF $(DEPDIR)/vprf.Tpo -c -o vprf.obj `if test -f '../samples/vprf.c'; then $(CYGPATH_W) '../samples/vprf.c'; else $(CYGPATH_W) '$(srcdir)/../samples/vprf.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/vprf.Tpo $(DEPDIR)/vprf.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/vprf.c' object='vprf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vprf.obj `if test -f '../samples/vprf.c'; then $(CYGPATH_W) '../samples/vprf.c'; else $(CYGPATH_W) '$(srcdir)/../samples/vprf.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-man1 install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-man \ uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/jpegicc/makefile.simple0000777000175300010010000000077707705545240016273 0ustar MartiNingunoSHELL = /bin/sh CFLAGS = -g -O4 -fomit-frame-pointer -Wall # -I../include -I/usr/local/include -I/usr/include BASEDIR = $(DESTDIR)/usr BINDIR = $(BASEDIR)/bin all: jpegicc jpegicc: jpegicc.o iccjpeg.o getopt.o $(CC) $(CFLAGS) jpegicc.o iccjpeg.o getopt.o ../src/liblcms.a -o $@ -lm -ljpeg iccjpeg.o: iccjpeg.c jpegicc.o: jpegicc.c getopt.o: getopt.c install utils:: jpegicc -cp jpegicc $(BINDIR) -cp jpegicc.exe $(BINDIR) # Cygwin clean: -rm jpegicc.o getopt.o iccjpeg.o jpegicc jpegicc.exe lcms-1.19/lcms.pc.in0000777000175300010010000000032210016437160013536 0ustar MartiNingunoprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: @PACKAGE@ Description: LCMS Color Management Library Version: @VERSION@ Libs: -L${libdir} -llcms Cflags: -I${includedir} lcms-1.19/Lib/0000777000175300010010000000000011230104762012353 5ustar MartiNingunolcms-1.19/Lib/BC/0000777000175300010010000000000011272606372012651 5ustar MartiNingunolcms-1.19/Lib/BC/BC.txt0000777000175300010010000000000211272606371013670 0ustar MartiNingunoBClcms-1.19/Lib/MS/0000777000175300010010000000000011277221130012672 5ustar MartiNingunolcms-1.19/Lib/MS/MS.TXT0000777000175300010010000000000211272606371013616 0ustar MartiNingunoMSlcms-1.19/ltmain.sh0000777000175300010010000060377010515064203013505 0ustar MartiNinguno# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # 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. # # 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. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.23a TIMESTAMP=" (1.1220.2.412 2006/10/13 14:13:30)" # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) extracted_serial=`expr $extracted_serial + 1` my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) echo "\ $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP Copyright (C) 2006 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." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; *.obj) xform=obj ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg, --coverage pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-pg|--coverage|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then case $archive_cmds in *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; esac else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. # $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" # $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` else compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` fi ;; * ) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then # $show "$rm $output_objdir/${outputname}S.${objext}" # $run $rm "$output_objdir/${outputname}S.${objext}" : fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \$*\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` else relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: lcms-1.19/Makefile.am0000777000175300010010000000105011272606371013711 0ustar MartiNinguno# # Top-Level Makefile for building LCMS # Written by Bob Friesenhahn, June 2003 # # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7.2 dist-zip dist-bzip2 foreign PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ # Directories containing Makefiles to 'make' SUBDIRS = src jpegicc tifficc python samples testbed include # Additional files to distribute EXTRA_DIST = AUTHORS COPYING ChangeLog doc INSTALL NEWS README.1ST \ filter.c install.gcc lcms.pc.in pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = lcms.pc lcms-1.19/Makefile.in0000644000175300010010000005256011230106052013710 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Top-Level Makefile for building LCMS # Written by Bob Friesenhahn, June 2003 # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/lcms.pc.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ compile config.guess config.sub depcomp install-sh ltmain.sh \ missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = lcms.pc SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkgconfigdir)" pkgconfigDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7.2 dist-zip dist-bzip2 foreign # Directories containing Makefiles to 'make' SUBDIRS = src jpegicc tifficc python samples testbed include # Additional files to distribute EXTRA_DIST = AUTHORS COPYING ChangeLog doc INSTALL NEWS README.1ST \ filter.c install.gcc lcms.pc.in pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = lcms.pc all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) lcms.pc: $(top_builddir)/config.status $(srcdir)/lcms.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-libtool distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pkgconfigDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/makefile.simple0000777000175300010010000000207511230105132014634 0ustar MartiNingunoSHELL = /bin/sh MAKE_SILENT = $(MAKE) -s -f makefile.simple init: FORCED @echo "little cms color management engine 1.19" @echo @echo "Available targets are 'all', 'test', 'clean'" @echo " 'utils' " @echo @echo "- To compile additional utilities, type 'make utils'" @echo "- To install libraries, type 'make install'" @echo @echo @$(MAKE_SILENT) all all install test:: @echo "please wait ..." @cd src ; $(MAKE_SILENT) $@ ; cd .. @cd samples ; $(MAKE_SILENT) $@ ; cd .. @cd testbed ; $(MAKE_SILENT) $@ ; cd .. clean: FORCED @echo "Cleaning ..." @cd src ; $(MAKE_SILENT) $@ ; cd .. @cd samples ; $(MAKE_SILENT) $@ ; cd .. @cd testbed ; $(MAKE_SILENT) $@ ; cd .. @cd tifficc; $(MAKE_SILENT) $@ ; cd .. @cd jpegicc; $(MAKE_SILENT) $@ ; cd .. utils: FORCED @echo "Extra utilities are being built ..." @cd tifficc; $(MAKE_SILENT) $@ ; cd .. @cd jpegicc; $(MAKE_SILENT) $@ ; cd .. tifficc: FORCED @cd tifficc; $(MAKE_SILENT) $@ ; cd .. jpegicc: FORCED @cd jpegicc; $(MAKE_SILENT) $@ ; cd .. FORCED: lcms-1.19/matlab/0000777000175300010010000000000011272606372013117 5ustar MartiNingunolcms-1.19/matlab/icctrans.c0000777000175300010010000004324511272606371015103 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2003 Marti Maria, Ignacio Ruiz de Conejo // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // DESCRIPTION: // Apply a color transformation to a Matlab Structure. // #include "mex.h" #include "lcms.h" // xgetopt() interface ----------------------------------------------------- static int xoptind; static char *xoptarg; static int xopterr; static char *letP; static char SW = '-'; // ------------------------------------------------------------------------ static int Verbose ; // Print some statistics static char *cInProf; // Input profile static char *cOutProf; // Output profile static char *cProofing; // Softproofing profile static int Intent; // Rendering Intent static int ProofingIntent; // RI for proof static int PrecalcMode; // 0 = Not, 1=Normal, 2=Accurate, 3=Fast static BOOL BlackPointCompensation; static BOOL lIsDeviceLink; static BOOL lMultiProfileChain; // Multiple profile chain static cmsHPROFILE hInput, hOutput, hProof; static cmsHTRANSFORM hColorTransform; static cmsHPROFILE hProfiles[255]; static int nProfiles; static icColorSpaceSignature InputColorSpace, OutputColorSpace; static int OutputChannels, InputChannels, nBytesDepth; // Error. Print error message and abort static BOOL FatalError(const char *frm, ...) { va_list args; char Buffer[1024]; va_start(args, frm); vsprintf(Buffer, frm, args); mexErrMsgTxt(Buffer); va_end(args); return FALSE; } // This is the handler passed to lcms static int MatLabErrorHandler(int ErrorCode, const char *ErrorText) { if (ErrorCode == LCMS_ERRC_ABORTED) mexErrMsgTxt(ErrorText); else mexWarnMsgTxt(ErrorText); return 1; } // // Parse the command line options, System V style. // static void xoptinit() { xoptind = 1; xopterr = 0; letP = NULL; } static int xgetopt(int argc, char *argv[], char *optionS) { unsigned char ch; char *optP; if (SW == 0) { SW = '/'; } if (argc > xoptind) { if (letP == NULL) { if ((letP = argv[xoptind]) == NULL || *(letP++) != SW) goto gopEOF; if (*letP == SW) { xoptind++; goto gopEOF; } } if (0 == (ch = *(letP++))) { xoptind++; goto gopEOF; } if (':' == ch || (optP = strchr(optionS, ch)) == NULL) goto gopError; if (':' == *(++optP)) { xoptind++; if (0 == *letP) { if (argc <= xoptind) goto gopError; letP = argv[xoptind++]; } xoptarg = letP; letP = NULL; } else { if (0 == *letP) { xoptind++; letP = NULL; } xoptarg = NULL; } return ch; } gopEOF: xoptarg = letP = NULL; return EOF; gopError: xoptarg = NULL; if (xopterr) FatalError ("get command line option"); return ('?'); } // // Convert from ICC enumerated type to lcms style // static int ICC2LCMS(icColorSpaceSignature ProfileSpace) { switch (ProfileSpace) { case icSigGrayData: return PT_GRAY; case icSigRgbData: return PT_RGB; case icSigCmyData: return PT_CMY; case icSigCmykData: return PT_CMYK; case icSigYCbCrData:return PT_YCbCr; case icSigLuvData: return PT_YUV; case icSigXYZData: return PT_XYZ; case icSigLabData: return PT_Lab; case icSigLuvKData: return PT_YUVK; case icSigHsvData: return PT_HSV; case icSigHlsData: return PT_HLS; case icSigYxyData: return PT_Yxy; case icSigHexachromeData: return PT_HiFi; case icSig8colorData: return PT_HiFi8; default: return PT_ANY; } } // Return Mathlab type by depth static size_t SizeOfArrayType(const mxArray *Array) { switch (mxGetClassID(Array)) { case mxINT8_CLASS: return 1; case mxUINT8_CLASS: return 1; case mxINT16_CLASS: return 2; case mxUINT16_CLASS: return 2; case mxDOUBLE_CLASS: return 0; // Special case -- lcms handles double as size=0 default: FatalError("Unsupported data type"); return 0; } } // Get number of pixels of input array. Supported arrays are // organized as NxMxD, being N and M the size of image and D the // number of components. static size_t GetNumberOfPixels(const mxArray* In) { int nDimensions = mxGetNumberOfDimensions(In); const int *Dimensions = mxGetDimensions(In); switch (nDimensions) { case 1: return 1; // It is just a spot color case 2: return Dimensions[0]; // A scanline case 3: return Dimensions[0]*Dimensions[1]; // A image default: FatalError("Unsupported array of %d dimensions", nDimensions); return 0; } } // Allocates the output array. Copies the input array modifying the pixel // definition to match "OutputChannels". static mxArray* AllocateOutputArray(const mxArray* In, int OutputChannels) { mxArray* Out = mxDuplicateArray(In); // Make a "deep copy" of Input array int nDimensions = mxGetNumberOfDimensions(In); const int* Dimensions = mxGetDimensions(In); int InputChannels = Dimensions[nDimensions-1]; // Modify pixel size only if needed if (InputChannels != OutputChannels) { int i, NewSize; int *ModifiedDimensions = (int*) mxMalloc(nDimensions * sizeof(int)); CopyMemory(ModifiedDimensions, Dimensions, nDimensions * sizeof(int)); ModifiedDimensions[nDimensions - 1] = OutputChannels; switch (mxGetClassID(In)) { case mxINT8_CLASS: NewSize = sizeof(char); break; case mxUINT8_CLASS: NewSize = sizeof(unsigned char); break; case mxINT16_CLASS: NewSize = sizeof(short); break; case mxUINT16_CLASS: NewSize = sizeof(unsigned short); break; default: case mxDOUBLE_CLASS: NewSize = sizeof(double); break; } // NewSize = 1; for (i=0; i < nDimensions; i++) NewSize *= ModifiedDimensions[i]; mxSetDimensions(Out, ModifiedDimensions, nDimensions); mxFree(ModifiedDimensions); mxSetPr(Out, mxRealloc(mxGetPr(Out), NewSize)); } return Out; } // Does create a format descriptor. "Bytes" is the sizeof type in bytes // // Bytes Meaning // ------ -------- // 0 Floating point (double) // 1 8-bit samples // 2 16-bit samples static DWORD MakeFormatDescriptor(icColorSpaceSignature ColorSpace, int Bytes) { int Channels = _cmsChannelsOf(ColorSpace); return COLORSPACE_SH(ICC2LCMS(ColorSpace))|BYTES_SH(Bytes)|CHANNELS_SH(Channels)|PLANAR_SH(1); } // Opens a profile or proper built-in static cmsHPROFILE OpenProfile(const char* File) { if (!File) return cmsCreate_sRGBProfile(); if (stricmp(File, "*sRGB") == 0) return cmsCreate_sRGBProfile(NULL); if (stricmp(File, "*Lab") == 0) return cmsCreateLabProfile(NULL); if (stricmp(File, "*LabD65") == 0) { cmsCIExyY D65xyY; cmsWhitePointFromTemp(6504, &D65xyY); return cmsCreateLabProfile(&D65xyY); } if (stricmp(File, "*XYZ") == 0) return cmsCreateXYZProfile(); if (stricmp(File, "*Gray22") == 0) { LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); cmsHPROFILE hProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); cmsFreeGamma(Gamma); return hProfile; } return cmsOpenProfileFromFile(File, "r"); } static DWORD GetFlags() { DWORD dwFlags = 0; switch (PrecalcMode) { case 0: dwFlags = cmsFLAGS_NOTPRECALC; break; case 2: dwFlags = cmsFLAGS_HIGHRESPRECALC; break; case 3: dwFlags = cmsFLAGS_LOWRESPRECALC; break; case 1: break; default: FatalError("Unknown precalculation mode '%d'", PrecalcMode); } if (BlackPointCompensation) dwFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION; return dwFlags; } // Create transforms static void OpenTransforms(int argc, char *argv[]) { DWORD dwIn, dwOut, dwFlags; if (lMultiProfileChain) { int i; cmsHTRANSFORM hTmp; nProfiles = argc - xoptind; for (i=0; i < nProfiles; i++) { hProfiles[i] = OpenProfile(argv[i+xoptind]); } // Create a temporary devicelink hTmp = cmsCreateMultiprofileTransform(hProfiles, nProfiles, 0, 0, Intent, GetFlags()); hInput = cmsTransform2DeviceLink(hTmp, 0); hOutput = NULL; cmsDeleteTransform(hTmp); InputColorSpace = cmsGetColorSpace(hInput); OutputColorSpace = cmsGetPCS(hInput); lIsDeviceLink = TRUE; } else if (lIsDeviceLink) { hInput = cmsOpenProfileFromFile(cInProf, "r"); hOutput = NULL; InputColorSpace = cmsGetColorSpace(hInput); OutputColorSpace = cmsGetPCS(hInput); } else { hInput = OpenProfile(cInProf); hOutput = OpenProfile(cOutProf); InputColorSpace = cmsGetColorSpace(hInput); OutputColorSpace = cmsGetColorSpace(hOutput); if (cmsGetDeviceClass(hInput) == icSigLinkClass || cmsGetDeviceClass(hOutput) == icSigLinkClass) FatalError("Use %cl flag for devicelink profiles!\n", SW); } if (Verbose) { mexPrintf("From: %s\n", cmsTakeProductName(hInput)); if (hOutput) mexPrintf("To : %s\n\n", cmsTakeProductName(hOutput)); } OutputChannels = _cmsChannelsOf(OutputColorSpace); InputChannels = _cmsChannelsOf(InputColorSpace); dwIn = MakeFormatDescriptor(InputColorSpace, nBytesDepth); dwOut = MakeFormatDescriptor(OutputColorSpace, nBytesDepth); dwFlags = GetFlags(); if (cProofing != NULL) { hProof = OpenProfile(cProofing); dwFlags |= cmsFLAGS_SOFTPROOFING; } hColorTransform = cmsCreateProofingTransform(hInput, dwIn, hOutput, dwOut, hProof, Intent, ProofingIntent, dwFlags); } static void ApplyTransforms(const mxArray *In, mxArray *Out) { double *Input = mxGetPr(In); double *Output = mxGetPr(Out); size_t nPixels = GetNumberOfPixels(In);; cmsDoTransform(hColorTransform, Input, Output, nPixels ); } static void CloseTransforms(void) { int i; if (hColorTransform) cmsDeleteTransform(hColorTransform); if (hInput) cmsCloseProfile(hInput); if (hOutput) cmsCloseProfile(hOutput); if (hProof) cmsCloseProfile(hProof); for (i=0; i < nProfiles; i++) cmsCloseProfile(hProfiles[i]); hColorTransform = NULL; hInput = NULL; hOutput = NULL; hProof = NULL; } static void HandleSwitches(int argc, char *argv[]) { int s; xoptinit(); while ((s = xgetopt(argc, argv,"C:c:VvbBI:i:O:o:T:t:L:l:r:r:P:p:Mm")) != EOF) { switch (s){ case 'b': case 'B': BlackPointCompensation = TRUE; break; case 'c': case 'C': PrecalcMode = atoi(xoptarg); if (PrecalcMode < 0 || PrecalcMode > 3) FatalError("Unknown precalc mode '%d'", PrecalcMode); break; case 'v': case 'V': Verbose = TRUE; break; case 'i': case 'I': if (lIsDeviceLink) FatalError("Device-link already specified"); cInProf = xoptarg; break; case 'o': case 'O': if (lIsDeviceLink) FatalError("Device-link already specified"); cOutProf = xoptarg; break; case 't': case 'T': Intent = atoi(xoptarg); if (Intent > 3) Intent = 3; if (Intent < 0) Intent = 0; break; case 'l': case 'L': cInProf = xoptarg; lIsDeviceLink = TRUE; break; case 'p': case 'P': cProofing = xoptarg; break; case 'r': case 'R': ProofingIntent = atoi(xoptarg); if (ProofingIntent > 3) ProofingIntent = 3; if (ProofingIntent < 0) ProofingIntent = 0; break; case 'm': case 'M': lMultiProfileChain = TRUE; break; default: FatalError("Unknown option."); } } // For multiprofile, need to specify -m if (xoptind < argc) { if (!lMultiProfileChain) FatalError("Use %cm for multiprofile transforms", SW); } } // -------------------------------------------------- Print some fancy help static void PrintHelp(void) { mexPrintf("(MX) little cms ColorSpace conversion tool - v0.3 BETA\n\n"); mexPrintf("usage: icctrans (mVar, flags)\n\n"); mexPrintf("mVar : Matlab array.\n"); mexPrintf("flags: a string containing one or more of following options.\n\n"); mexPrintf("\t%cv - Verbose\n", SW); mexPrintf("\t%ci - Input profile (defaults to sRGB)\n", SW); mexPrintf("\t%co - Output profile (defaults to sRGB)\n", SW); mexPrintf("\t%cl - Transform by device-link profile\n", SW); mexPrintf("\t%cm - Apply multiprofile chain\n", SW); mexPrintf("\t%ct<0,1,2,3> - Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute)\n", SW); mexPrintf("\t%cb - Black point compensation\n", SW); mexPrintf("\t%cc<0,1,2,3> - Precalculates transform (0=Off, 1=Normal, 2=Hi-res, 3=LoRes) [defaults to 0]\n", SW); mexPrintf("\t%cp - Soft proof profile\n", SW); mexPrintf("\t%cr<0,1,2,3> - Soft proof intent\n", SW); mexPrintf("\nYou can use following built-ins as profiles:\n\n"); mexPrintf("\t'*sRGB' -> IEC6 1996-2.1 sRGB\n"); mexPrintf("\t'*Lab' -> D50 based Lab\n"); mexPrintf("\t'*LabD65' -> D65 based Lab\n"); mexPrintf("\t'*XYZ' -> XYZ (D50)\n"); mexPrintf("\t'*Gray22' -> D50 gamma 2.2 grayscale.\n\n"); mexPrintf("For suggestions, comments, bug reports etc. send mail to\n" "marti.maria@hp.com or ignacio.ruiz-de-conejo@hp.com\n\n"); } // Main entry point void mexFunction( int nlhs, // Number of left hand side (output) arguments mxArray *plhs[], // Array of left hand side arguments int nrhs, // Number of right hand side (input) arguments const mxArray *prhs[] // Array of right hand side arguments ) { char CommandLine[4096+1]; char *pt, *argv[128]; int argc = 1; if (nrhs != 2) { PrintHelp(); return; } if(nlhs > 1) { FatalError("Too many output arguments."); } // Setup error handler cmsSetErrorHandler(MatLabErrorHandler); // Defaults Verbose = 0; cInProf = NULL; cOutProf = NULL; cProofing = NULL; lMultiProfileChain = FALSE; nProfiles = 0; Intent = INTENT_PERCEPTUAL; ProofingIntent = INTENT_ABSOLUTE_COLORIMETRIC; PrecalcMode = 0; BlackPointCompensation = FALSE; lIsDeviceLink = FALSE; // Check types. Fist parameter is array of values, second parameter is command line if (!mxIsNumeric(prhs[0])) FatalError("Type mismatch on argument 1 -- Must be numeric"); if (!mxIsChar(prhs[1])) FatalError("Type mismatch on argument 2 -- Must be string"); // Unpack string to command line buffer if (mxGetString(prhs[1], CommandLine, 4096)) FatalError("Cannot unpack command string"); // Separate to argv[] convention argv[0] = NULL; for (pt = strtok(CommandLine, " "); pt; pt = strtok(NULL, " ")) { argv[argc++] = pt; } // Parse arguments HandleSwitches(argc, argv); nBytesDepth = SizeOfArrayType(prhs[0]); OpenTransforms(argc, argv); plhs[0] = AllocateOutputArray(prhs[0], OutputChannels); ApplyTransforms(prhs[0], plhs[0]); CloseTransforms(); // Done! } lcms-1.19/matlab/icctrans.matlab.pdf0000777000175300010010000027412310252311124016654 0ustar MartiNinguno%PDF-1.4 %âãÏÓ 17 0 obj<> endobj xref 17 19 0000000016 00000 n 0000000899 00000 n 0000000676 00000 n 0000000979 00000 n 0000001108 00000 n 0000001263 00000 n 0000001678 00000 n 0000002060 00000 n 0000002579 00000 n 0000002943 00000 n 0000003164 00000 n 0000003391 00000 n 0000003630 00000 n 0000003706 00000 n 0000005775 00000 n 0000006319 00000 n 0000006551 00000 n 0000006585 00000 n 0000009254 00000 n trailer <]>> startxref 0 %%EOF 19 0 obj<>stream xÚb```a``ú"]ø€(Æ ÄÝ»Î=€Ê°ÍðPŠØÜg0yV¢B§ÅC1=?¨ ˆ0N«Q‚JM@ÀÉÀðk)q„Á( ßÇø„û…è›A ± g1¬°Ÿ!ÿ@â«jÃÆLËC¡¶ñ00¦i& ¶0zäZ endstream endobj 18 0 obj<> endobj 20 0 obj<> endobj 21 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 22 0 obj<> endobj 23 0 obj<> endobj 24 0 obj<> endobj 25 0 obj<> endobj 26 0 obj<> endobj 27 0 obj<> endobj 28 0 obj<> endobj 29 0 obj<> endobj 30 0 obj<>stream H‰œWÛrÛÈ}×Wô›.bŒ;eåŠ-{¥l¯Ëfmv³Ú‡!4¤à€ JQþ"û°ß›Ó3 ™R¼I¹J˜îÓÝgºÏ<û9¤uòjqò|±ˆ(¤Åê$ dQ€n•ÎeFq.Ó$ˆi±9 h}âãM€w‹Ò-#,ïN~—’>íªѵ¦‹ÖKe(ý¥Ñ{IïUWy™L„"ÏÏ‹y†—ÕZÃi»¢?†Yœ„2aø<ŠŸGÝ$Þ¯‹¿ž„"À‰ wFÀy‹/J2„’íC±«0‹°‹æI,ƒÌmv‘¤ûH‚1’‹‹…—f¢SMFxò˶¹Õ]_µ .Ûºíz²àà0`rÖæQºG鬇ë°àËu£ÊªdmH˜êLes¦lLù¡ óõ4Ü<¡ fÅþ‡öÖ’1 ù€)–Eî`Ù•E–åXCþ'Ü ñsìäbFårÑxHŸ UÛÑ{ä…òÖ\˜Z-é¹È2˜ÈƒÜy ÓbHùâ¦êÉ´mMw^.ªº&µÝ‚¹¨A0çžTcŸm=–ª××®4ÖÆBˆ™¥)\s²öÕeOùÜyBÊLK ùµÈo9ÍËZKzÙÓÆËÁAíù)k Ò /jÉlNÅ­௞Ù°?¸;Ô‡]fC:ó$q.»]ÓTÍšÌ öf¢ê½„)ÛÍF5×tW™›vgh«:ÅFà,¼E2®«~ë⃧ù4¾|t ñÕꞪubS™PÆ’Aßhünts˜v=Ÿ>.¦Å„Œ÷cDÎÁ>¢)u-ïÔg#ÓÂÀ•¼°/(ÇᦠäÏ#WpñâUei,£|Žã˜í‹+ñîýOWÕ•1µ.7=ÎÊúy«JM“sgÉáÓ-jI¯Þ,^ZS‹gîHˆñiWØ Ï¾¯ÄæGÕÍhU«uDz(›¹ÝHg#gTש{yËÓP¬Ë3°®73qUYR€c„:lÚNsoá2­ÚºnïìË-—¯—{¬2²¾¸Ðäßrã,p¶æpêÇ¡]ýN¾Ñ –m¯]]]œv›ç»÷~õݶkWU­_pWáÓe³e"ºŸ‘°k½R»ÚðѤþÓÛWœµÁÜÔR{lé‡ù¿LÕǦl/bBÓò}ò¶*µ_WÍ?öƳ³íôl(²†^n·õ=m€¢·–7(ãÌwÁ,œE³xšƒX‚óº+õÖìT=£ðÜ2¶Úh·D3>ÿ¬Ì®³'oFñùËeßÖ;£ŸˆxÉKÈ5L¬£Wµ*^‹óÊ]b«›ÞãÇö—Ç@?vºTu¹«•ÑHø>Œü‡ÕŠ!À3ƒÎÿRùîè»ö“î'(Å/Ó¢¿Ž,œzß×ës»²…›TèÁéšÚèŽ#˜Ø¨\Ö'&¾yÜ~nwTªmnz˜–»ª6~…N úYöHP§Ï˜ §Dä¿ Ë7jE‘ù:¿x¬ §ÏÞ©%ïà-¯Ó€Ü„ÂO~ý:KOí×Yú­¯úùï£m,QFxxœM§ÏÞ¢7EÑéˆc­Ð®)’­ñ¢-0ê&-በ~–ÔïÖkÝÛ4³Ã eÀj¹[S§·mZhSJê1Sh£ªšYb§ÂEŸQÙ; @}ÙX2mXÖÈ ÏÛ?ßl% ò·o'vbÄñ\æ9s dœ±ëôÉŠõé8ZB—˜pFd<Ñ£‚Ûçãn#™¸Q)*§µd­å_ktÐZqDA"‹H˜f.O!‰³P¦GH&éôc ðsÎþüµ¾v¡‡… ƒ‰R ckss˜±«ª8ˆd@óª*´@– Bî68¤ÿ¹­y¼ÜÝ(C rC'c.gzF,DœÚÎeNÆ|4çΨµÂâ"u0Ü•ë ƒš pßî$½ƒfLŒI…ÅТ‰Á UÃNȽKßù| ¢œ(uŒaà±²êÆ`hz|‡°Ó²/;è©PhÝœíuè¨J¾Nx‘È,§hžàq”q'pvEçÚiu}%~C 5ÒT«ß®¼?Mg~hû˜U7„s%Ô )&wxï=Þ_§"\_òüèbàp røsµÙÖV˜i–¿™´®kåËSîߦ²ßpÿ»¢q"ÀGÉ_$ƒÇíHÐ÷»FV!Q¨¹,l¡îÐ/Q:Ûû?O8â±83ŠvÇÛѾÁ 'æ ׯjì¾Bâ³à ¶âqs:ìÆ®7—Ç’þf‰£Ýu€¾ìzãùóƒy¶|¥Ä£¯®v¸‘¢ÍN °ô¦ñº3ã¡p[Ùsz$±]y²‘‰VÍkrW”Ž1E¢µ[\P¶ÎvL'Á‘&èÍŽ+óG9â¿à¸+ì9ºdŽÒܛѿ}ÒÒÝz)ñnÏØ'yÎç2L&WÁáxqÙôçÒÔKø¼y™Ðh‡PÕ­]—¸ +lîÎ|$X aNùØdÂ+oFà›Èã5-žd¸8Ô©pnµM¯‚rBR Áò‰=ÙuÛy¸ÀŠŠ³ V]î¹®æÚ~£­Ê¶ÊÁ>÷­EÄßšxŸ¾…ò6‡,C#u7%½—RžŸÁÊpØv(œÚãZãÃA©…‘,’IœÉÁpò°§±ñvÉwÔ¦2ööòÉ’èÐÿYâ'ÈòT{[í “ò?ëô°ƒ endstream endobj 31 0 obj<> endobj 32 0 obj<> endobj 33 0 obj[/ICCBased 34 0 R] endobj 34 0 obj<>stream H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= €x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(ЇR¡,¨*T2B-Ð ¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 N'çÎ)Î].ÂuæJ¸rî î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 35 0 obj<> endobj 1 0 obj<> endobj 2 0 obj<>/Font<>/XObject<>/ProcSet[/PDF/Text/ImageC]/ExtGState<>>> endobj 3 0 obj<>stream H‰œW]sÛ¸}ׯÀÛ’ !~&“dbo’º]oÓTÓ™Nœš‚,f)R%(Ëé¿Ø<ìïí¹HQŠã¦MfL p¿Ï=÷黿 v«gç‹ÙÓÅ"d‚-V3ð dþÛ·8å “£@²Åf°ÛÙ_|[”ö5Äë~öÑ»äìîú7[*vÑú1^£>·g슳«¢«ü„G^Áüy–§ >¾/n Y»b‹"‘‘àÒâi(Ÿ†9Dþ§ÅŸgÂiudÎ!îH!¨óŸÉ”Äš2.dÌèˆÇâç™Ñ;5xJ«õ¯m_•ŠõkHL½¢gí®ce»ÙøâÍ’ÕU£X¥Y¡µñÜÛùóšÚ TÇ£¹Å ØåNÁ2£y(xžBõAx6 ¬t\[5æèR­|É3¯ðáÔÈÛÕ=+!.ñZ?ÀrÝvz[Øe·œ±ýº*פšþà§Øôîœ[¹s+ª‰ƒå¡ÊÌ ÿ+ävûJ+ܤؾÝÕKÖ(µd}ËôV•Õʺ?âQ<1"î …½ç ÛWýÚXñû¼úÊÚm_µS%ãùôð¨Dèü¹2‹¦'±ËJo뤰™“óã£"ä’ȶ«n«¦¨ÅЬ¤àÎ\pH”M»¬Vì¬6ˆeMÊóÌä˜yRò0a©Lx–Ù4óm;$¢)3lAÎ&.«"È,ãÚÏ; ëT]£úº¸1–ÂÇí³!gEðpýåˆ7Ĉ”Ns¹k^¾´v\{‹³›O×¾¹óÍbö¯Y(‘'ÑÅ\™†<£Ÿ’Å—TN! ~˜²r3{z¹ìçvö7 ®ŽF‡YÆÓé±ü¼‘(ƒ„ÇyŽÚÿVl8Š–z±=?7ÖøwàJOY,Pbâ.›²¬lê¼­nwbâÙ$…Lq#È›æ]QmêïÎÙµW+³´êÉ¿¦*2Èš·8‰­ÊȪ×ìÍÅ%ÝRÜc"O—mÍú®hì¯UÛm€®òjÇ|T赆DWJÅÄt”£Ü§ièpFij5YÀJ]:𨠊dNÚà ˆaeѰÅŠí¶FŘÌî·¸Ô;  F ›OaVˆÀiÐ6õÊ{@d hGÂê3v³3Uï–¬_áƒ#ĈG[ìE}WÝÓÙ~ °îÔÊÄ^gaXi “ôèº$É7PÀEdÂäY?ÜõNiÎÈS«¶®Û}PW÷pU~t@#£•î|[+àðºÝ›Œº¸|C·W»&†|9Â31\¬1W”m×)½m›%‰†_ŠBM¼Ñùp.rø«±½V¶ ähƒÙ¨…ü¤rTȃñg;!°aE×d1à7ü¸¹×Þ%€®ýKqÎmì,ŠƒÇ¬,)5° ²€ã .?¡¯ôû£ee¥ºÛŽ}_ÐÆB)RÒ§Ù ³¾x2  .:ÌGþ ])È™„t?P)´îÂþQ îøÈ äsùÜ>žÛãñsûàŒ'ŸqÇlŒÒ‚ýQ±'pÕÃÊ·¢e†Š'}\àLzÝ0*œ‰;‘ªÖ¢Ö-•¬Ñ5íϤn¢2ž‰õ¶«š^uŒh…² ‹;tEœauAŸvZ=¡çñÈÊjGßì.=8§8DôOïÃ8.Z\ž+ÝOÝ38u³ïª n‰c=ö\\ýó/¼¯VØ÷|ðcä´“£vò@`ÑB¤qÜÐâƒ; òÞtÌ^à 5ßãÁ€wÝi×OGVC0°íÚU…ÒìMDàÎ%±µ¦íáä]s®è%DkO(–u£kX†6ì+PˆNõ»®±”«(w„Ú¡§Í%SdÇ-8i”Ó ½zõн%å:äíOÝÉC¶Éç Áéub0GsH’ÄÒQzR¡š/k¦9“hY­\ˆÐ’_¼xÉ.ž]__½^üòú<ÙŠëku|mèYl‰¯¯ërƒ¿CÊñe]O5Ž¢ìTÔDãïF>LÀg&e)&=?<ô|  •©BKLO…¨0 5Ø>þZþáÓ@ÔÛâ'g[³Ðúô[ëêQ ÀšÕDZjóêç§óÅ$­?zœ½†"­-HN§@‰>T*Û;ˆSf¬¨Í¢ºG«¶'L_ ½Öt|w c²ìÀJ«½c]6…ü 9©ï ÃN5k¥£$< ŽF§dÌLò±^™qŒ¥èi²ŒÁ/ôaIaÍgÚHÑœ³./.”-(R3‚±ÙâýÁ‚ ZêæŽ²µKŽCé• ¨åP)ùvˆPzÔG‡0qQ“ñÍ­eVÇN·lÌ kì옴ô«0ôl¬VwfÕq»4–üi>Vµ¯æVˆeN±cz8j‘H‡cï‹Î°ÆÈÞ vŠtù}n—¾’ž ’€4mÔ8ú5~mwݶծ©Œ~ˆ“‰ò“„NÒ=NPeÃê¬Å5òÝC‚Ö¡·õ'Qyt¼Jº,AHnT¿WªXƒ× “a˜óì„Mê82f*µ¤rЪÿT ¡ÆÇàÿ"9öÄÌOíèÂ÷`)Bë8‘y dÕ¦ˆs ºSM#—Æ«¦$.‰K^‘THzó³vO¢ö­ ¯?^€`º4žb„Qî8f_ÚÚðè,ÂwÆJÕõ0ß2iÃUô0”˜nmÇäaŸ6Ps³ãÖÔykDýåÌtÏ–†µ9Œ˜bM8œ–®Hknë%ð»wΧ Ÿ’‚Á0—†4^ >:µRFL ø{Fs޹ÊÙ[H°e4.9Í÷•ÄYã¹3«ÝP%bXeRgŽÓßÀ-…lHÏ`OœŸÚ3Œs‘”îŠ »ÙìtOñÐ(áj…1‘³KBˆUkt‰@ ¦µ?N>Ò¹§®J<Û):Ê”«.¾Z!€ô°Zׯ: ]žE>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀhà"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?è!<$”-·I% á$©2xI$)(J •“ÂP’JT$$”²t’AJI$’R’N’JY$é$¥’N’JYeu/¬7§¹Õ¹ÞµíæºõëʧÖþµn;1qÜ[v@$¼-`ÓOŠâŸkMÄþ‘Üü•lùÌ}1ß©l`À'ê—Ëù½Aúã™}†¼jÀ—:]ÄêW}iê€Ë®3û­>A`ãäZÆ¿i‚á'̧.7?Û2ªK6B~bÜŽ côCÔb}hêN{CÃ×~ó`éæÕ¯‡õƒçúY RþÏ–âEemî¤üVî63.k}²'O$£Íd‰ÞÇŠ¥ÊcÛ‡Ä=[×´9„9®Ô8æ—;‡›gN¹µ¾M>æŽÀþpó]‚'u^ØdPÑφX¥GPv*I$¾ V%$$”²Iá$”²IÒIK$$”²IÒIK$žIK$$”²IÒÑ%,’t’R’H$’””% $¥% $’• BtÉ%I“¤¤ ÒKDåªI:P’”’IÒR’I$¤’N’–I8I%)$’IJI$é)né'I,’xI%)2t»¤§Î¾·Ünë7k-§mmF¿ŠÇÚM.ÓOÊ®õâjeN³kõþÑUÍãs¾CÉfe—®^n¦z#äÐ1‹dÌÉû’£Áo³]ò(ÔÖƒ W ×µÐZdGðPȳÄ!¢‹Ë‹ Lat½‹¬¢º –.hV0j©÷¹÷5®m°æ¸×óšBÚÄéìÅ´'ßY=µ’ß‚ˆ’Yx@s³zK¬¨XÖý üàs§UCkw-‘¯ÅhdÞﱹ̾Ó,ðpî*mÖ,î~—Ǻ¹È“îýVŸE%­n1iI$’JRP$¤ÉÒI+$$¤ÉÒI+'I$¤’JJÉÒJR’I(IT¤¸N™%)$é’R’I(IJI$è%d’NH@’\§OX¤é¡:JRP’I)I$,$’R’I$”¤ð’I)I’IJI$’R’I$”¥•õ£ Ù½æ3WÕ4xìä}ËY7â›(‰DÄõº1ýo“àØ˜îŽDî½Ñm陯 a.¢Ï̓ù§Ì*n ‚T `H#g\N3C«Fê.{·z£À)Rdzó·h5½Ô¤|ÕíúWFfÕ¢¥î’×dk|V&Õ£öÀÜ»2ª ñ±Àü´…Ó}Qê˜méƒÛv†´ž$«ŸYZ3­ÁÌ¥©å žìGÉG·Õ—é³j¬cNÆ7›FÒe€n¶èås½?¥ŒãU×¶y{ÝÄ´i·ï]C¯¤Z+6°ZØ1=õðLò×<¸46LéüTü¶’q‘ˆþÆg˜¡(ƒúÉ <Amââ5Àm%ÇÃá๜;ŒÂé:uÎöƒ¬p f‰vñz~Ue¹¶=œ¶<|¸+{ÿ´Öú­ØÝ,{LŽ`ö+?%¾œªŽVMX¹ù.Ðý ǵú{¼Õ(šëºÜ‘âÖ£Pàõ¶ž…–pÃCðrÆê\î*$û†œÌ-JËMmÚàñÜ;éÊ7Öì#•ƒê6'áí&xtµÚ’ÈèÖ;k©?Íím´ë0×4´žðZ®òÙÚ´is Þõóî餒JÛQI$’JZ”’IJH$’IRI$’”’IÒRé’NZºI“¤¥ÒI0IK§L’J])L’J]$ÉÒB’I$’¤é“„”¤’I)$’IJIüŠqªu×¼W[>“¤εÅkœHö¹âÝÊdòÂäi“)ä5iº—TÄé´²]¹XúN> ÅyçYêÙ=W,ä[íkFÚ«5¾Þ·ú×@êy›êœ«ÒanÒƒG¹Ëp½…®‚ þ*–^`dÒ'ÒÞÃÊœ~©k/ɬËÓ#æêK.‚&{·º®1¬'…Ö}OúºÛlû^m{¨ÔV<]ãð ¬ý:¶áªº%ý6—µ¯­û$LÊê+fÊÛ€ïpäâšÎ–Ì›kÃÁðW¬Ç/lŽ{yÂ/02ÄÏ@s Ë„5¶¢IËKN¢-`AÔ8ähŠ]2I$…$I%.™$’R铦IJ@ê ÁÈyüÊÞ~àŽ²þ±ÜYÒrZ,m^¥e£w.?ºß2„DŸÐ(ðÍ~úC»JªÉ‰J’F!D˜…VË.<3hó…–wuº;=4±× ÇEµWUÃÇ´Ìy›õFW1®µ ±±->j÷ד˜2±›×Á=­²½Ôt÷H–’üÖÕª:‡±ôÛ] ;I$?“2%uÝKgtÛqtse…Ýœ5™/ÂÆì°²™Õ:àIuÔ¾»:î`Û? 羯îpµî™nÚäùKœ?/«Ùøx8åÙMÚÐù.Ô‚í®c„ N°QúmTÚO®ëÜmeÃs}°Km5[å¤AÞš\Æ9G´Óˆj뤙k Ðrh4’I$¥$’I)I$’JRI$’”’I ”§L§¬]$’I* Ó'IT¤’”’B“¦I%.’R’ RI$J’I$”¤é’””¢’I$§úçš_“VO¶¦ïxþS¸û‚ŸÕ°NÒu…‹Ôï9Nû¦wØcà À.—êæ>ÚÂËægÅ"|]^V0ÁëèmN¬4€U~¡Ò0²Øõ6Èú$ý!ð#Tøö‚5™vʪÙãÑõg¥WfãNïä¹Î¹oQ]uµ­cCZÑ hC¯ÜeY­£ºpÔ­‘ «jÖXx)9€>R†V;;šF©æ=XÄõ¦¡¢·$AîUgã½±Ü ¶I ±­pŸ£Ù(圦D.–(Ìz¢ IÍsL •¼»+±²Ñiøèª-<=Èquعyñ{s¡µXRI$¥bRI$’”2I)KœúìÇL[ ´‡i¿ì]£Öñ[•Òò+pÕ¬60ø9žà™–ñ< JÌ:Pðu@ßÍÓèDáeoA¯¸hHÕu]OëC113ŽúkÉ.m´Ù´´æÁÓæ¸|{!Áâ·> ‚•t¿Xú~_FwOÉa¦öCªqƒî¤x„Ó‰€öþ™}&ú`=ÃFU«àÇmð?‘pT³mm† }«¯ËÎû. —Fç4{G‹ŽzŒödñ»¾îGT©ø9ìŠXú-hc7´¿è¸D9¢Qf5OÞàæ¹ÎØÞ^}Ú@ì4V*ꘙLuY5þ³‹µö2¶› pç ¼˜!®¥Ó¬oènc» Ûôÿ«³é~ ß'ˆñq}Zœîaíûcy~A´&5å:‹ ‹Ap‡w Ö‹˜ºI’IK¤™)AK¥)’I+¤™$”ºI’IHS¦I9jéÓ$’—I2t”ºI’IK¤’I)A$’IK¦I$”ºI&IK¤šRAK gZiÂÈ´rÊÜáñU.²í½',ÿÁ;ñÑ h’b5óê5¸OŠîº%qHW Ž µ¿Þô`}!ðY9œmçÙ!eãõv[“c÷{ØÏƒ{üÕî±c©éY64ömoÅÄ7ø®"›SÄ Ye/£áe²Á¢ÑF‹é™Å­;Êê02}Fž4Y!ÕÐ` I*N‡:ø'f×G=ÿ*lÞR¥kêlökXÒLp²,Ëe̱Œpséq‘%®õªñ«s1ž{ô©o™\uù–cǼk#¼ø qqD™FZ ooUŠ÷8»q˜#JÌè9¿=ÿIÂei«|ódY¥Ïÿ9ýUÒL’¶Ô]$É$¥ÒL%)3š×´µÀ9®AàƒÙ$‚JsózF+úmؘ´²Ã{{Æ¢WždÔI-:©®/ëGJû.OÚk È$Çî¿—Ÿ*§7A0>]“s“Ë©?6£ÍãÆ;;´=¼Õœ>‘“›utÒÂKÜth'¹VÚ÷ kLËH~+§ú¿”öW—6´žÓàªA¼"ô^“~}”»PÈã‚ é:­U3¦>Ûw8VZíŒäŸ¢#á2™î¦§‚~œ ø«/-¾¯Ì'PS1G$cܧ4¸`Hè®ÓïÄÇsòÙ¬Cxh>p­Y?4͢Ǚ'ò§Zà)$’J’I$P©I$’J’ø¤’JRR’d”ºI¥$”ºI$‚P'LOZºyMÂd”É)L”¤¦I&I$.’d’Ré%)$¥$’I)IÓ$’W”Ò’H)uõ…ûz.Qñh{‚ÐYZ]·¢Ýü§0ÒMž—‘]YÄx‡‘éµz—àew})„4%ÆtP ÂîúhÑä²&uv`4j}i³gOe#›¬ðn«u.&G+¥ú×{m;†Ö\GõûXà ô»â#Õy8[Ì5Òë:e kAÐ.w€:,ÚVþ>à×x¹ºÑ³ÐSl6'žg_Ëv'N°6Cí! ŽÝÕœg9„eRúÖÍý<½¿šCŒ}ßÅI¨¶9 ¿Šsݸ’Ižê—Q¸š¶ö$+gP|BÌê–C+h丟¸)¤}%†?3Ù}^pvD~êÖXÿV@ý›Qk)ù/æåýâÁÏ9î…ÒI%i¨ºd’IK¦IüŠqêu×¼W[ysŒ•¾Ée(?%Éu_­×>jé£Òo{œqþ¨à.~ΫÕ7œ«‹¼w»ûÔæ` [åfEŸO›é…Á ¹Æ5$èó%rŸZ:ÞU ÂÒ×¾ÑôAš{ò¹Œ®­Ô²Ø+ÉȲÖ7†¹Æ>ä6¼¸^gŠ&1l<· „¤u’—€d«ø_ìÏ /=‡|Öy#IZX8ôßY K{»P—šúÌáwV±³«ÖºŠÎĽôYè§Ö.ßÕrÌXGÝ¢…X5„WO£¹ŽÖZ«ôÍ|X¸®uzµ(y-¢V‡oÇ<‚íU¬ºkÊÆ}/ú/nÒ³ðž8åjW«Q %»çY˜–aåÙgÒaˆì~k­VjxýâÍw\0 ÕšÞÿ¢åi\oW¬¿ ÎïYùp§Š„Š˜z«V7ì±§€¶%rŸTò  6x]R—:db Äórî]$Ò’¼Ð]$ʾn~6 &ì—íoæŽ\ãàБ )’Ï+*œJ‘s¶ÖÁ¯‰=€ó+†êý_#©_¾Ã¶¦ÿ5Pá£ûÓõŽ·R°OèègóuøŸ³ • ùøGåüÝ_—àRù¿%Ë¥4šR«‚Ø!¨Jq\"Um'P‰@k6· k¢ãÛ^D8sÜq ¨¡®‰-Œ&ì‚GÍG"¼æ>86ti:Ðáá2†È³tö 'Ö8‰ V«#gd ¥m²š,~£SÛú@I[šî|U 7VOŰ–®O¸Z}7hJµ}.¥ðx<,š‹«¼=¾+^ë½Z˜ãÈSò¹H˜é-y¼BXÌ«Xê‰)Q”ò´œµå2I$¥$šRR°š+¤™)I ¤`ǹ¿‰ R‚P¤§V6]µ2ÆÑd=¡ÍOJÛ˜KnfÇÍ×sZˆœN€Ú¸$5:2K?0£½¼H•S¨utúw{ãJÉ;Ÿ—ĤdÔ¨FÆ›¶ÿŸ6ÀŸïS&y;é §K¾î¥Kòj©Û«c¥»Ia2Ó´XðV-«/ÔmTµÂÇé¶ ÁÒ}òg½k¡_ìË«4¥Y·§õ ˜ßZ‘kœv±Ôfu÷7Ó¹V°‰mƒc‡ è~äa–2ÒõY8Ù;'”3uC—¯kÄ´‡-T–Æ$ÆÙ'”ɉ’rNš$–IJ¯FeÚêª%Îo0Óê5ã^ÈãP`ê9iÙ7Š=×pžËÊB'Seú͇·n“-Óã;¼wõ|Æós& Ad:˜ÔBS_tÆšnê‘BÀÌÀËÈu/Éô Ùë3Ó#P"ñMf^%wzúÜòí­ {]»Ãhi$ÏÁ–Õ¤ãIµ<.ë•û ,m’ [Y4S’ÁUðXXâvÉ;\!sŸ[èÇ£Цºƒœù5±­˜»@žPÌ}òNúÈù¢ú³Ž\àï5Ü–l©¿ÆýR°v™îŠàm'ácÏríG`ù½÷z™w¿³¬yüJ.&CXý¯àª?sœ|I?ŠŸ£¡LµA[«$8V•O†¬<'2Æu ]‚qcu0¬Ôj·qœ\ k¢æñ@ÓU»‚âª1D†Ž×[Ü>ÏŒ>‰›™ú!ry õq­¯÷˜Bô¬ÞŸ‰žÀ̺÷†ŸiøÀu,'ág[Žà@cˆl÷iàýÊ\réÝŠqëÙ£õ2Òì£QÐÜó¯ßñ\Õ× sßÛÝÇÍwAÇÑ/ O¸Àùü’åçíç®’Ñ<Æ?s—¾°õ‰OûV?PúÃÓŽË‹o´‰ciˆþÑ.?‘rýG¯u ùYéÒx¦½óî~jöNbÓsÙÏÇËÎzì;½7TúÑ…† t“4†ŸcOòßà!›Ô2³®7d<½ç<;*¤ÊARËžY7ÐvobÁ cMOrÉ1(ØøYyL²Ê+&ªcÖ¸ûkd˜Þt ©è¿QùÍÈmŽ€[I®ùÐ}ɱ–»åt²Æ;ïØ<€m¾›® sªa sÀö‚x¢³Ü^Öº;+éYX-¨WM,sšZÒ=?pwÍyõr91ˆW â°ŒY ĬU|)Öø0 a L¦[%;¸Oi…ªÍ¡ ……‚ýØ®ÀYæ ðÙªØv‹Wá•˳+mñ=Öæ äÁ”=Vº™ñ @^@Ô4Ÿ¹Wõ½¡/µju¤N‹DMÛ“Š=fzÔBÑh"{,Þ‰}/u´ˆ!–=­øZ]@¿ ûk€ö0¹¥ú¶|ÑÄjp>!YEÂqð!€#û“JÂÅÎúÁuí¬7×'ó*ijiñÛa{AûÕÞ»™‘ÓÜ15g=¡Õ·nö™àZ¨Ë'#Ú‘ÛíoYkknçI I: nu c¬²æ×[¹Îk€ĘT0nªÿBŒœçÕ–æ_k!­·_kxiÓ¸Y_\-ËÄéõÒà/ÿ8·sF±«yÓTÉæbÇeÐÅf‰.WÖ?¬y£-ÔT}*`zN{˜x|·Å?Aêy~ßP—¸ ™¼;‚°Ü+ÊSCÐdO"G»_7j¶ºO.}­$ÂÖIZ}ψÑRžBI=[ÐÄ4¨¯éùÍÍÇõÚö¶7ÀÿµZ•‚q1³ŸU6hòZwwÛ:ñ§Ä«ß´q@ÅsË2 MÍ!Â@ ™r®âÌ%™-<œ¼„ä 8€=׉Íî ö<ò„=B$ÊU#¥Š#ÎÙ¤@‰Š#ÔoCÚž» ªý\¶ç»-Ÿ¬^` NÑxn1(yXzW».€ÌŒÝ¤RKŒàkZßʹk11÷5÷{IÐKŽ®>ýÊîÛ‰xÉeuÜX‡·Õiiš9Ÿ5!Áh’GKae¥é}Zý@äa1Ù~=¯®Ç^ ›[ŽíunÓËɪäåõ+vô,6]ö¦¶ƒi;†Ö‰ aqÛ 5K­t#—enõD\< çÝ2‘ ÷Bv_D̺ú/·†‡5Õ£xkHÕª?nRÇXô¿àÊr€H–„t¼Ò;¡õ–ŒQ“Šq.¢àm¬CÇèØÙÜ\d|QºoÕî¤ÍÞ¥.¡¬sƒžÀÇ´ 'w¦ó> -W}jÊupúkÜ5|ìÜ ‚uŸÑ:žv5H·"Òç›_¹$™;œí¿• ƒ8¯¾/ÛçM½öõ>?ÍTg»~#ÒùÞ9V ½ ÇÇŽèõPù[8–9¦Ge¿MÛ«+ƉÑkãºJ%c±ŠdWA€dj¹Œ[ \;…ÑtËÄ€R ìèüxXÿZ1)·¦ÛkÛúJ¹Dvø-,‹ÃZ× âaî<”:…MÉŲ§hÛXZ~ak^Èñ|Ÿþ‡Rq˜«K«}loÙ]ƒˆÐíãm–¸HƒÈhþ+«QyiÑÚ°Ÿê˜T©”é|HŒˆ `âL”I‚ŒlLŒ¢E-ߤâa£æˆ‘ -1ˆ²h0$³ÑºY y¥î ;ú=u®»¿qª]?¦×Iº¿^Àty{Còn³óZx™¯ÄõÙUM Èi­îv¿K¸ãUf´ãR4ObÖŸ3Ž@ÆäCå³·FGD»tìk]CÂ.cè;a›HeX8×}YÁ£6Ûéªçµ´d>ÆYhÒ\ CHvãÜp¹WTûæÉ #PNÝ{kÈPÌnv}UQfu÷×Lì–=¢|ÄóRK±[ubÇ ½}W+®d¾ŒœÝ3Óu¶ÖÚÍmsk1»Ô×Ãrá2m¾ÁTú{ŽÉçléø.—# *Œ×ºÖ]Y` hÑÑ <é ™ÉnËœÐwGçxùªÙa!fQáÖ…Ãk ¡`B|V.Bª‹NÓ¨´˜×”ò˜• ;sÒÞJÛós žÜ.iÏN{ý2ÑÝ4® [¯,Ítp ÞÁÊö¹ûés²¸ƒ:­\JÝX WGw§¢æØÁ¯’Îëùéý:ÛØ}çØÏë;ISÀ¥ß£±î%íçn€ü–o×»c§Q_wÛ?pÿjoP¸´þ«ÞöäÁ:Ûæ±·à\Çövý’{® ;nPù.רXæô›ÜÒC½3´ƒS‡Ìu¦µ%©x6³¼zŸW¡Yc¢ÐÝÜç븎V~V/®Ì›XʘeàØàHóÝýë$»"ÍlµöÀXøüÊq" Þýφ0yø+3åˆõÎA?ކ!¡Ðÿ¤h»ê›¿·÷˜GÞŸôSz(ÑcdÝÜdzæÕèâ< r±ÈB{väXï»ò£ËQ­Qz3 ÁZT<”Ùk¥^Å´5ßå–ëc¾ k ì ®% hP)·|6«[¹Ò\82žÇ …R¢â(»·æ‡E<×~™N1fXw»"ç{;ËÕïpku+¼ÿž§L¦Í¥Ûn 8vöò"ãñjk!Iš²rÔÓmƶXÇ áÆÓD–‰s¶‡Ä÷ ÝY®¨áÖEt‘ï$n/<û |:§£n/«QiÚA-dèˆ+Ïϲ·œÜõí£Gôõ:ºN²šöXÚÉÚ}ÁÅÛ`‰ñ+Nš®È±ÎÁ±µØÖÍ•Y«HŽÎoy.u–½°4‚g^>kk¤?Ûº»~®{6ˆxÊ„ìÈ#0RÂÛ¶³p,- ºOògP›æ–±õX\á4¸'wÑŸŠÐÂ{nieÀ= ‡kº´•ppò]Ž\"Zqäˆ#W¾b8)‹ lÑd²ð*p€@p;¾u_ªõVá4K˵‰ˆóA¾Ñ›ktlI#ÊW3“žì›K¬!­t'DPl¯ÆÎeõÖàÿsd÷áçW‘Y®É®ÀNËGoX}ÀìKbîOZl|›  [¢i‘Œ´è8£«Y–bXv:ºÀì“øÿk1ªg¹¯,cuÚÃ">@þE +{NöVÛ{¹ÿ÷ÝÉ›nk]¼â0ÞÇ൜Æ67îd[XìXŸ¹¡je[M—Z­ÒOàY–÷Óc+°p ö~e¦ç4‡ ¶n:¼¹çøÂ*aö–mŠÛi–’[üU{ê©§pÅqqî\$|‚µsŸaØÛýÍæ¶Ö'ï*±môØöÚZyÚZ>ýÆP*U4CI¶—ùö‡&ôñËÿKX5ŽÎ%Î!(Î!ìö:ÍdžúÎþ ™Íê &³[\ÁÄŸ‰Þ‘ ¡e¸ÌŒ` u5ì#èrÑùa«¨`>­žãݺÁó‘?‚ÏÇÊÊïǬnýƸÿTÙ—PxõŽÏäÃñÞßÈ)§JË[`ùÑñhüŒ*"¬pÓµžœrÖ{GÎ4TFm nEN¯³_³ñÒTœÇƒ²Ê÷2È û½©q"’d±ÄÌVÐÝAõÓÏiEÇuÏhae$rIþ*«:¦K\66{Íq?Ú™RV½¤›u“Á«ÝùuBÂi½euß«g¨Ï 㢋ÃÚÇ´·¸Ú 6ºVsr2m3ö†šŽ¦±Àÿl+Œº·4±¶È™ÔÏõ!QKYe#è±Ö;À8·_ûsDJl®Ó§·MwCÈÿ¥ª­ölgë<†éÑZÁÉêÕÛéYˆ×²²ÐöZÀÇ~‰àG Ä`· Iä”I±eû^±2+°¹Ž°1òÇmlO •ô~¤É-¤ÚÖ€f¢¡ 4Ïu©ŽÊÍÕä#[œÇ—¾‡Ì{v:[ó ;;+ ¶>»²k,`ý’vú-ö˜ãò#í…žô’Óöštº§²?y®”-L†»‚ ÎÇê}BÆ×~6K¾ÎÿkÃ>ð ¡Æ&döW03úŽ;Cî´WPiiu¬—xhÒñ>áâ›ìßUÞùœrçèÖ—Ø"¼+5Ç®}·—äÑüVV[·¨9í²÷¾¼2%õ1ÞòG»`¤îUº^-ʱíŽvàÇ]îpdq±§Á„uÕæ%ÓF¯Ö€oè¶VEX-0NºOÞL¯9c è½?¨tÖõ\k+®ÆúŽÛmÛ¦à?0 %çýC¦;4VXY$ï¬ó¹¼´|S¥´­â–¦õ½Sb—×@´è^t‹=5G/Éy¥ÏÛûžÃøÈ”2öŠÍe¤ ÷~ä?¶:¦†ŠÃCu2I3ðcAVàbf¤åÅ"{·Úüà Ý ?¼ßî(vW{½Žh$Ö^Uu÷»q.ŸßcöŸ—d;Ç´¸5›OîY´Oõtü‰ÆB‘Z·ÝUî%ïɰö-. Ÿ(|,¼œü*Ü}¯uƒH1¶Gb[)^Xö<3ÜÖÌ›7GÉfR=bO½£Ø#S<¨3e1 °ã²]L<¶ÚðmÜú¹s®ÐÄHU­-ÞCu”h­ôµÎŸ¥£|ÂbU\†÷êÛÅÕbuKpCsŒ§•³³]ªÇúp;ê¨"2×3D”ÝÇq.[½3)õ<ÂÃéÇq’µN Ü$É£uõ¹›ÉàI+γ¯vgV»$ý¸ìø {+«z80ºÁéÖ>:JÇÍ c¾†ÆÓé ó3Ï%;=2—jꌙ=P‡{'è¬0ï´29•ßeoÕ÷4‘ºb?%ÂtòNK>+¯ê&®ŒòÝ ÄêH숉ñá¸ËȼæmODz¸kiAvšÎï’å¯k› />Ê)ßmæÂéÙ^Ð5ó—;m–=Ä’Ní\¬³ ‹Ñ£Š&ƒZ£ÞN¨¸ùWcØ,©å® ¼”†¼(™—£gÛvF­ýÌ<ˆ8ð|–ípÇ{ì%úAŽ@'Éq.ļ<‚[ÜGä]µúµWi{K,l´™'à˜T‡©Ö_…p©æ;8:||× \A ‰ µôKšêÜÙ˜4å½äv×àíÒÜ ð™ kÏDOà.¯Éjñù£´4à¬2šÃNs€ÐÍwà s{šÜOï?êa@æô©Ýæñö…%†-Q:†?£îw‡»ò¹MØíi–m`}ì}Ê5dáXøpsH1·pwàÆÊ3¾Âçµ 8ðHƒøÊiÕ¨÷þŒYc€áþ÷7üâ6Ðú•ƒËˆyiù´•|åcã¶Üñh*/êØçw—À„¬+W1õ´fÖXÒÖº —oŸ0WuÑ¥µÚ" ŠÎʲËi¶ÊÍeš{´žþ%u½+6·c±Íð,¾hVBëò†ñŸÖ?«2úŽß] ‡({J¸s®ff=O÷ÚàF@'G—Ãuû”>¶c¿#!‘úaÓ0ZñÆžag;.¼ª-/:Ö[·˜%¤îƒù¸ ÀxhÁÌŠÉç«Òz4_µÔÖÏRƒ±ìsusLŽ~j‡RÇéØ÷z7Ö@Ù³ÒÜH{t{I˜#Ý!Zë©msÚç9Þ£¸,x2;ƒÇ‚Ö ­»¦³)ìÛ~3ÎæµÅŽƒ¹Ô)«³ZÅêó]o¡¿‚ܼ«õé@0ý»añ煙қպ®}Mõ¬o½ö¾ f½šy]_EêWd4S}n´m-hs`ì-×´ÎįÕ‘±Ô’ÖíöG¬jˆ’eл˜8ƒ±H´ä šG¦-à ×M®Š˜6‚ƉÙ`äê[ýâuJ£’òÇ×KõhfàN“Ü€‹U=UŽØÂù‡Ýf;”ñ@> ·Eu‹{ƒˆ€Ó¦íÀ.Wë•T?'%ŽÖÝÎÜ’Èoˆ]51®5ÙqѰ [¬ŸÎû¸Uzö8éN¶‘éÛSÆ×èç;\ï”jÇ]TI£Zhñ4àIõK,<îkÉt|Êw·%Œ-¡¢½u™ÝüUí¬6‚îäY?öÜ&}­-;ôm<ÂOÇtjƒ–€zd]sû†?ÎÚ³î̱Œ{#!¬ã{5ˆävûÓõk°jʰ¼=°lƒûß8€5*‹2¢—TÇï$:ÁW6c|1èÙňÅ!¿E±¯ŒK6³Ös˜CYß^~åI®£k[œ ÑÀöóR鯶œ†½ ÅdHÉ=ÒÈmmËÈeNhc¬;@×C®Š½’jü¾¬ôèÜ‚)`òþ*«ÚÐaÚGï#èDAîɬ˜¤ E"!(EÚ¢Z˜ÊÆ#Í-%YÇÃ~FŒ"|Ì~Täæ1ðæ¬LƒüPS{¤Ò\éì¶2¬«ÖÚthÐç°Túf9Çl¿Ÿ™Ö:€Ê´WYý z3ܦU•àÐi‡»+,ytùö¹Î°I-áXéX¥õåeìÇ©Äü]í•UsCv4  ü§éTÇú@ùº›²ðñ[Y2Ò[·G=à€Õgý_ 9ÛŠ_^-,¯ÞyünóˆñdºÇ3àò¹9È´ÙaÜxŸ €|ySyi*Yi¢"ŸdíuÑXÄ©–ÞÖ¼KAái›1K¶7 ò>ôÒ_yú'åÂ꾯å8ÒhÊ`“%¦`ÈÒ•—êtÇðkfTÙ´l|xIü²p~Ñ\XÝÛx3rÐ4g¡ þNØüBE¹çÚëlÃOüŠxÃÒÖœÄéÇgIºZqÉv.ÑX§(>6Ø÷7éµÝüá\8÷¹Òë~d~E3‹tú–G†çGýR#ýÔ‡÷™U^[€›ˆIh™ø /ùPû\ÍíýÂÁ ¯ØDîñ&,©·ö¸àÇ'TácJ¯ªÓG[c/RÚšãu!®Oä’Eõ“Y©šG¼‘þr´Úò÷ä7»CD}À$C[Æ>à?9ä w òYV©¶›FÖ²‘djE‚'æ¥Ô6lµ¿¼Û"~]ÕƒmËYòÇÍDésß7@ŸºR¯ågäWIc‹šáaŸlîñZ3®³Ò®–U6v$óðcd•[©cC\ý®´@žž@cšÐÐy0hT›ü¤½W¦ÃÅËê5´—µ£Vò­¿Å¬c‘Ž1loÆÂ{F¥ŸÙ£ånu µÔq­¯,i»Øï¦Š<2£Gb¿˜‡o¬uúNÖîÃÉl2Î ü׎+[•ä2Ì, ,,‘Ô¡‡mú 5-#PVøî°3"“¶êÄÈüáଖ‘ßg™~ x=aÔí‰ú&Lî"Jžu8ôeX^çRßT–º–[ÉñÕ_ê-O¼ªÀvV!—°ræL˜ør¨g:·g¸z¡yfóܲ}ÞZ§D÷ì²[‡¢éö½Ø£sýfÿ½Á:Àã¿Þ³z-Žc]M­ qhs#V¸ $¤«ï´‰>„ÚÕrÆEnä²¾´·¡^ ¶8ì pЇn~å¤2k°D™‚ÓÚ?ܱ~´ÞNt±Ú>Ï{¾ˆÓR­ôxG×u€´äÞùGâU|¼—bmk²l²ÇèÖ„Ë«'MK‡ptüŠž]8†ä0·è»k‰ÿ;jšã xeEo ‰¹ %ªÜ‚]p.q“`?Šk/1$PrGŠÒÌéÜ\Ãíž$p¨ÙÓËyp•Tâ˜:êØbvѨo´žNïéé%×´“¬É<©ý‘Âáå£àb¸do n¶Mñi{¬]ÙÀ·å§3ÁáM–ú@mxã‚#¿ññVÝC-:È=àÄVÌwÖâ æp‚|”‘˜£öK¢l~ šòZáîA‚F¢~(ºA•šÝŒ#cË>ˆÌÈ“>ÑšúÛÞâÓ$–ÄA:Fï4Ä¡¥Ã9Qmú½VÍ•¡„ë¬w¸Hû•pêë©ûÕgÜÒ}†)‹çÌvFÔBwÜýI0<“‹"Zâ€]¤ò¡¾"{𕪞Ïì§K&|þTFt×9ÁÎ/-î7Ÿûê;™k¾Nù84ÿÑhM^)|ï¤Èîâ]ùJº";5 uÎ% C |LŸûòÆ“ ˆñ.Ÿûê#ÃÑ.<@I˜õÛ£ëôÇÌÿzq¥º¢d@Ÿÿ˜¤ÞŸ@vç§Iü¡Xû63D4ð •±ßEä“Þcä% <GÅN?EþL‘ü ¬çfÁ´êg5ññµ\}5:¶·Ì€‡cXvÖØy¥¦>ôë[MxÉ:>–ÏæGâו6²æ™-hòß(¢÷4D²ƒÛ?ܦr)™pkZ9vñ§Ü•¦˜þ˜3tV~%Çø*–õ;˜vï¡¿J¶üŽ–—0ÏÒ#Ý÷Ì$ÃdœkXc°öÏäJü•G}Z©¸²ÚÄñ-#ø¢7¬táüèõîÀâ?"¼ÀòÙy© rÓ¯âS´Öò[S£¾ïá(_ŠHðkŽ£{v°Ý\ð68~ (z‰|øƒjv€tHûʵ¶°C­-'¸øÀGu»lÔké_k€ð:}Ðkm6q¸Ý°¬2²úáßý±?{S7O¼8“ÁÿTäi”m¨4{+o‰'HüÈ´:LmjGà4V¾Éù¥ÄƒÛOã)ŸƒXn²íþ!"çu8~3^Ö‘öÕ»˜Êi—}3á Þ^B‡¹¶@ .-#^ÁbXðçR8Ø5ù•Gš!äÞåH>›×ý^êלì[OÃÏà·zžYÎ鹘Õn¡»Ù㹞è\u¾ž?TÁȬÃn©¥Ãù@–•Ðã¹µõ»ÄÃ2XÛ#ÉÍÕTº!¹Â6‡¡du-Îs¶ê°–˦t?%ÕãY˜'n­gˆDp6;™\§F´ ºë’Ö=Ðãðátø·YEâ§ šóÜÉå\±³8QÝ­~5ou¢·bßÝÕ<€OŒ9¹«nOíïðÛq¦ÝCxŸ‚ô0eÕÃƒŽ£žÚ.Oë­ýD04Wd®#¶Ö{N¾>Hƒ½•¨Õ¯Ñrº•®,†™ü×9š A÷ë[Ù±©5îÐd¢|Ê¥Ñn5ºê_ís´ þWÈ´,Ê©‡¨‰–ׯƒò" L[t×¾Âûl.o"™äÿ8OŠæþ¼ýcé˜ÔŽ•a·(=®ºÀ%­ Ý Üy:ö[tõ&Ü}ØZ׸mss{s /7úïöQÖìû#vS«@?¼ ><·&L’«ánâõy8´»ÂY¯4ÚC›´5ÇRA‰¼Šãi{šíÍÔVŽöºÆÔÙäpgYÓj„™ ‹-DîšÜl+Üíõ K }´gÔRÛ5€=³ð”×6Â×H-ЂŸ<¢P*ÇŽ¦ÑY±á£’¬dbÉ®Á-#žÅ ÅÂWQMm}m$HŽê·6ømá2êv;ˆa2Ò yÞÕ¤‡k¨sc‰í][é8à Ö× È¼=ÂãË]]~ú†™×IV1dâMl¸¸O›²Úºë©p9Ÿ¢¬Ué°‡´Vøuuèá!ÇÉPËÉÏÉanNM–‰6Y ôè=ãB„ÇÜØç1´$¶uÇ'EYÃKmq7gÿJIîÄŠ½¾¬4v“ƳÜà^N­‚ƒM`ëcêÏN«/¬b×”ÐÚ,xo!Þ+о¸Zpú3+oý©³c¿ªÑ¸…çÎÛ3$p –sÚ?Tz¦*i¶‰ fºõº 'säëÊa\jO Dê’–Õ6×|Q4ÍCÏðIKmr”¿¿nêNH’øÀALC´™ã²‰$ëÊ.Æ:$}ÊO£`®;·tTõÝS0d=–bÍeÀ5Ñøèšºs쇻&¶°9Íöö€³±²`Ù6îxdñù™‘Žû'Ô± jù|cHHO„ot£ ;S¡v.A·Òûw¤bD—‘ñÐ4ýè/éF«}\Œ¯S?œ®ÀÑ´yQ±ÔVKMÒ×GºaÓÌ·Ë]Un£{Å5º«-°îö4Ãw´h 4Lü9L±¾ÔT1€EÁ6?O¹åÏkƒõâ Ìj}½ŠÒ¥™uÇŠ52N¤€|&Y}'¬Snìw×é\GèøúM×éB¿ê8¸¼“/Ðé:ð4L®”Wß]£+×þÅ ‚`$4 ù#’ð%Œ6a¯cœÙë‡mŽ¥ô°ÖëwAf’‹“uo°s§‘ÉÊ\yÌO«PVOôèC¯ë5­‹C›âÙûô*–c²Ã-¸³§þ©ÎV¹À–¸XæÁýêMm¯o6yËGåV÷Ù­U»Y™.Òú¬©Äý'¸}à-bTÁ5>Èð–ëðö¬Ûq³}OfݳÉiŸúIlÏn“ w¼&‚zÆ×:JÇíõ#胴›v„ÌÀ¦×o5Á? C¦¬ÃõÝÈnØù›ÔFçÙSCïÿ¿'ƒÜ,#±m»`,kŸ·±lþXA9¦¿k«{GîìÕ¡b[k¤â±€L9Ññ‰„ßo½®ý5cd‘êC~;Á@䎚ըb•÷¤ß´jk¤RO”ë÷oKíl°Ãé%§‡0‘÷‡&9˜înˆñná÷èQ—^ÝÇiœ iûœ?Šuø¢¼9¸Ë‹ýÐçú‘üS¿’ªsÝßGD~R§fP°†×mgùþBŠÇTöl}l/0ß‘)XETÐ-i­þðD¸¯žÕƒ›ö+ßK¹Í"ð"WDmÈlmÛP6@ù®wª¸¿-åÎæñÂ0‰_Ȳâ”ßùVuî}< mhi3ªÜéý]™½n›ÞÀê±Û[ 5ÑÏå\¨."–ÇG©ÍÑ«ŽŠŸ¶/É·îž;½gTÀý™êQüÃȲ¨üÙ×i[´\3(®à%ÜÄ,ª²ÜZq2}À³nâd V·Jg¤ÁQÁJ” `:[¸ÎulÛ©p2àýáq¿Z/qëåŽÆ8 Ãý‹¯¾ÚñÃíæÖÂñ·W@Þ}`ê§+®]{G¦׃¬Ѥ¤4GwVŸµŒs}!¦ç˜§Ô<Æ’~ } å3©8ç×¼mp´hdþn<•Zº“n#ks\ÚØBI:‚cD+ªllŠñÙi°µ­q {]í÷ðD‘u»ÙfKá©—í^­Ôíkq²ßæWdó·EãýT“šöŸÌ†’å+·#É ±¡¯cD>Jx·zW7mj"AÓø bˆPsœø¢Ž—Ý$}ϽûœªÑÀÝÊŽß6“Áì­÷mSÔ²+c?@‚Þe¦ëÍñi2_ªÁ…¯GóÿT&‘A|­š\E‚S`u#à¹Jœ ¦éú²Rl@jÛË{-¦À ZÓ¸çÝ@í·p;·šëzþ^Ú›ŽÓ«õÀp°qð«Ì{½Pv3‚ jŸ€têÇ̽–a¬ãÁ#¿nUÚik5ˆqå+he9VVÀv´é(­á>R7]–B"¯»"T¨Èu7×k~•nâ ¨‡'t¹t_«z›®Ëêëë-ysωq’»<C -õoí9íÚwOÁt˜Ïs_fßa·Òg™&Pϳ,çÅÉÿ:ôì ;Zý8üи ®ÿë}mÌ«=å¾›íl4N€†ƒø.TôšHÑîŽþÕ>úî׿®»92è´‡J­ÇKù!¿¥ØÙØgðO ±”ˆø&D«.À°r@ù¡œ[â|ÓSHà#}–÷pßÄ$1/žüQá(°Š4KT‹,i‡4‚ “i°é´¥EZ0×… LDüÔè u(Õ³n®d#Çâe**6_º‡±À°H&tˆã5Rì·=­¬˜Úgtë§­Šóœ D°jÐ=Úþ( ¦»ßF¥ÿÈ¥íÈt)ãÂl±-ôn¤dZ>ƒÏ¸ð~U¦q]—ŒëÎÒ÷—–`°ŽÑ3ðY}çk 7 šÐ'ä!¬»*f­÷$ÄŸÁ7‡À¦üBø•=™‘{ v¹ÁÍ0{r8ñ[7ä±»‹]$èÖ³š?Pe¬m9 Ü:¶#Q¤Dþ ó:m«Ú$ÇC@¡óîû‘à{GŠë²p¶¡´†–†™ óGę́ɭnÝ„X;f|Bº(Û\Ï£"{˜SnÇ–4Þá2§†îuc–SÐ3{Ýc‹ým»Ž¬¨‚ø”#•]NÛc‹bé1÷Ȉˆ˜$HÚ'ðJÖ6ßcêÜßÏ 4}ÊÄF•£޽SmúU:¹oÍŒ?#¨M^^vïÒ¶½‡¥Î'æL*/}Ø•ú¯µöƒââù¥Ž»û= Æ–÷Üdýå2yD>kLq™lC´Ü–Á.hcGÒs­">âVºÓ®Îs]µ˜áÇaÛ¸Ààø™WmêF²f8vî_¸&;*ͯ¦dØk±Ç@Ñ?Ts €"Y±â16WÆê׺ׇkþ‹ ŸÅo †Àsœ·Ý´x|µXC¡Ú5Ű=¡Òúݦ£À€å¡ë En¨ºÝî, cšb6 Ï}#Ä5 åGD¥ØïÐ?fšŸ¤ÞyÓk‡šƒ±ïÝ·`±¤sl; øª·åÙ]û,£Ð-&’çm:}(nå&eä=î,¥Ä;F“¸íüŠA“{ûà 4¦ypÛjoÙÚ ºHx“ôwG·ä˜úõ1®[ÔqÜ ŸÝ"B…¢ÇÀ°C{˜qøè®Ü\†>jsƒ>>äu»ª…Q-ú¬k« õ-xæGä1 ;)¶9­Çub¦ÞÍÿ£Kžî-Íy¬©tÉ~^¬qÊCæ­¶â‚}Í?Va×0úÎß+HcØÖϦñð?ÁN—ZÑüÛž`Ä!ìÞ+½ß4tÖ<í¬|H~%EÝ5íqAü˘çÃË$Dûå8®ç™, ó:ŸÊzGéézy‚tªç1`ÚÕÈÌØÆ¶ŸÒX#àuZBÛQ5«™Ô2 ùXO$Çò>c1À:9Òé#M~K=ÒçŽI½m *6Ë6#—sðVpDê{hÕæ$4®®>sÊÝÙàe@ž£ŒêK ¸\5;*¡3(©–LFà'D0NðG=”È•*i±ö45¥ÄžÝŽ‘•öJ²/;v°÷ÞUÜ|æS‰ŒÆŸP› Ïh0@lgÄ¡3êæWÙ[~CÅ5iþy“ß°R8•±›6ƒçÏäNŃܹéê·/1íPäEý®^v]÷Ø ’˜âwáʤotÆ ð¶]C 1¤]Áü¨N©µ°ì ï+^؆€4ÎC#gR\ÃcùÜZ#˜þäûZXç¾Ò=²Ñî3Ç’;êk›2ò{h|нÐv7hÆ©¼!wkí¯À|T_éˆÚàHä „sO${ò‡éûµ.É* â(‹œýZÒ߈„ÀnpO$£W“ä@)½-ð'‰’¥Y@*s´í¼À”½74Õψ=Õ–3cˆyGäDsi™Gm%’Ó}«‡—‚f°Ÿ8ñV#÷¤xF©ÛM„±>¡Ôf5l ×ÿ[OúªræZƒ›Ë3ø‰…¨0)¬çu@v!ÅÐâïâSýK}'v‹Z,ná¤q-™P4=äHø°ÿR®}’Ic¶;’d‘óÚBE¹èÚÏ=ñFÏPª Q•>­øµßÁ>Ö¿Û·`æIw÷sõÓ60ùI•@Ýil ië÷‰M5â‘mc‰¤¶L÷k þTeÜñ>«ü$?l sÄi }æ@kC Ïs?¥§dÙîÐ>Ú.¹Ò9~;TØê± 5îÜíNÖ9߈€¬ÝU§A»ïp×ȵWv¶p÷8é¡Ý#Î\œ „¹^ÚŸsõǵÎlGùÅE&€w9­aî¦?õ3< ®o„´DžŒÚ2žØº¾?:þL¡¡Ü_švØÒ+0ñÜÍ®°<*ô¼0àk{äk "¶Ì!Ì´9 ü{¤ödZÆ4âïî(ûqìîåtzŠòlÖÓƒå"B!µÖ˜²Ö¹Ã n?T"í¾û)¬eÃûž=LKiˆäÿzAØžågÐûMpëIh>è€DñΉ݆÷êç´é´hƒA‘­gŸ5aÅ’m¬°iôÛ%³ÑpØ=†£Ç‘ÇPÈW²¶î&@!Ñþvä<¼œÖíô©õçWtÃ’“°6ÿ7`?yÀiä\áø!Š­`‡>‘6dŸ¼¢GK¥Ö­5nõ¨$°Ö^ö>[=´:µR»¦ÚY¶¯q ×ñV^®Èaiä¸|ÔþÓ³F¸TÀÒ6ºÇANP­Øö†ß qÙ€¶°iªÖëdèCÀŸ¸¬N®\ëY¿ß%TÆÇZÀîT2ÈbH­™¡ˆHz—Ñð±™Uõpöí;ǨOh“îOuý;×½×°ˆ;šê˜ðÚ –'Mè˜,¯{«õ]¨û–¤ÖãÜÚZÖmcˆ$ϼ› Ù>æ(“# hõ­~…-gNk…Ž¢û mþS?Šä,¶Ëlu–¼½î2縒Iñ$­¬ëkÈ04€äY®›šDÊ»'@€#«¡ÒÞf¼.˧úœ…Æt–Yî1à»Nžh&9ñPÈ6`\kfçîŽLšÛô[Ç(¶Pák¡­ ¸òH?ŠƒªÇÒ— ì‹F ‡*d™ÁïCÜÑÝ¢}¥°ÙÔ̤DŽ)†c7ÚÀÐÞÒL¢6‚µàO€>IÀDõ[r _B²I$xAùBÄ>¬ïylëÁ?‘[· Ž%ÖXdw’†ëqªû÷G`;‡”÷ù£¢5`ìKÄ‹\êϘ?xYYMÛ}ð'V×í &ŽM„wÚV.c™fM`Ú×WæxL@Û<¨‘'³lô߸vS²Ãa.q’PZuR<*Á´YÐ&öÛvû·DÄ|V‹sþžûšäPÄ \çHq÷cø«‚–1‘±Î>p?"¹‚'‚û´³Êç]çÙe´ûšFÃ㦿2¨…¡h¤Ôö–Ñí p~:,ð¡æH~\úHì[Ô¬Û0#wñ@WKI¿N5ð0˜zDm÷’Œ1íxQ„WoâŒ7±²×o=Át"˜ ÜbIÚߣ§3ªbË ×GpØÕ í¤îÜ›´ù(ØýÍö5Äy8B¨„$np’ï é÷'}z¤ó´GùÉå¤Z§Ÿ9¥Ké¨U½§÷[¬ÿðAê´‚ìzÙ|µ ·ÌùBkr3ݬkA<8ÉáÙ–ÃK7(Þ¥ÏÑ­-ŽÜR¿5W“^¼l×Ï>îçk~0¬– ú ZY ÷nf”í¥åºÃ]<êOâRmv6nÓ÷OŸšhÐý©&ú†¡ÃËúRÐÞÒ%šš>‘þ.$}Ú(ÛKl‘fËOy.åI£+V—2Æ´rðI?p­ ÷bük ‰uòL}ò¢1˜2Iàî’Ž×]ôML K iûŠ“r6ˆôÜ>&Q‘êî¦ÕIúÜ{´Èÿ5Ò¢ükôokš9ÜÀˆì¦¶ ©—|å(ƒ!®`/ªAìv§zQRB0²Õ8ŠÄ'û6Sdµíw“ÄÁ9È ô#¾à?"›r5Çû¥àƒùRôø«Ô„Õ˜â%Œ¿úè†üœáê2|u0G‡*ÛòÜ8¥Óñþä·Zg}e€*uþRÝ5/½½?p‘EmpÓIÔy¨3§eIµ–ø'ñ(®Î¶@aÇܽLgd‘!‚~$ÿÄ÷G¨0gM¿tÃx4ŸÊâŽ1l ,‚AÔ€ ( ÌÃ>Ãð„ÏêYÌ:Rݱ©'iJãØª¥Ü2v!Ú@vÑ?€Qû"\Ïp9?‘ õ[ä]AÞdŸÈ…nmî1ḛl½cØ®]ÃoШ (bC‚“q\ð¦BÏmö—Cr>.qÖçì—Ö~OäMЏOw'«Aͱ£†¿r‡O{Yp%FòçÚç?WI>h¸ØÛÜÒªÌÙ-Ìb«Áíz]Ìs9çOˆWýŠžáÝ®ü‹¢hÐÈ[97zXWÙû¬t|bƒ¨m^„¼?X6ÖâÐÐZ@ŽðVs„…¡žn²°ç¸8Vd|ÕSfùÉî×ÃòWfïI¡ö<íìºÎ[ÜC]¢åú5Í«$ +±Ã²·jÖëà¢,ÁƾƋl¦©ñû¥îæøm×ñUìȯÔsœÇq üÒ±äz­Æ‚¼%³!©ódl¬£GÏÍ­«P÷X ì8ü°{Ø[?¼â½XïÎ-wÉ+¤R›E 9À—7’Dþ0€úœñ49½½„éçÈVˆ¡ì‡´9¾M%3]ck ø¶S¸#…¤1r¤Á¨ÛOà±®3c‰ )ÕÑtiíôÏä*ö N(Q­Íf‹ÕvºÇ´ž%Vº§¿é—v$pV*©¡ÛˆØíx?Š›Ü@†·ã „ã Ü’°J¶Ïcm¬è㦚*n±Ä{·|yF5’$–‚yÖP-®¶Ë¬;@(puOeÍà¸ö ë÷!>Dê„9¿Ä"W¦×†¥@´¸ê[Ä΃ñK…\K¶Ö3R#Ë÷)ŒÚ5³ñQ­ŒlD?–QýðHð‰CÔ÷>Ò õÞØhµ\‡“«KGúöEôÃA:y€?؇ êUc h³Î÷¾á·¹äʈÆcÖu¸:Ÿú™ ێЂð{+q›·F–žþ)Qè‹î§moæ…zýèC+k¹{†Ðä@gÚë$ïÙâZ?Ø¥mù§P  wØ?¹wú¥>߈m}µ“üá0Õõ 'Ì‚?"¦Ì›§ùc‘·U3›\û©þ¾IÜwÖ¾‹x?•¶Û•]žéƒãþ¡°˜kØgÅg·2³«©á1ü›s˜Òb¦6|̥ǧìWìÝêÁñïRmwºÆ´ÜPeØZ6µ³ßIü¨•åºuÛ?ÉÓûÐ2 +„ø-}µîNÓ㸡zí–ñy:«ž½'G0¸÷åPvGOnŽ#»@ütDJ7º8eÙ /c´Ù»¼8ümÈcàDZ~ Ó}äÉ ›VgkÙðí)ôÅÁkY›§µ†yBu®÷ÔàŒ÷²àÀ;4h›UÔ”Ýô¥Žç< žÑâ }ãEn¬;Û¶1‡±Ú?0£K(ke÷6Ãâyü¥I¯«ó¤ŸˆÜz*‰ê™Õäµ±e±äÊ•Uƒ«žÛZ;ù¥ûA íΎĆ{K·žI?À8ãÝ2ìÂÆc—Màž¸¡ö{Ô’?yŧOG9.Ý[6Žîò.)‡ ’|õJÁMŒc˜mO‹ B˜–´L5àOœ~ ÏÚœFÝò|"uA˾öâ½äAp–ó§P5DÒEÝ[Ï;’U¾d;orªwZ#Ù`qáR‘o@;ØØ-O*=w6ÁC1k0÷öŽ?sÒm5—vh“ò\å¯}×:רð^d7€ùÈc‰”¯²ìÓàwjØ.´‹À~øT›¡²Xv“"ýߊ9”ü±"­‹®é¹‡Y}­ÝtЍ8ó.3¤€o ¼ÀP -˜‡…̾áuŒsXkˆÏ?T]Q>ëOm5üV¦~ç_vÇ‚Ác†àá“Ìø*F§¹·½Ï:h'ï…l˜‘wm ‘U«'äͶXû~“Ý.:x”ÍÚÑ«ÀøÌ¢UŽë[¸0  ÂwdàŠ÷¶0‰ù„c(‘°ú ‰Ĺ„ÓÀîCS=õ Yâ'tGÉ0ýžæ—µÚI 2cÆ Â5X68}&8K‡Ë” ÈÓDðÞº­m­4;m®°5|þy0­äî*§Õ°7´¨rJÈðlaDø¶0‹+ý+„£“sòòKÈÔèÑà™cnÚG ïŠlj.p6VÙ„xˆNIð†ã2 jmB°6þ¡W³.ÐH ˆæù_fC5Ûi1(g$s€ó‚AüªÁ‘!ôjÐÞƒ3›æ–í1d>õ›cu…häL‘í:™”+A.$Äž@*,¦ÅÙ5Ý›„ŠÖÆoé± ®èC€ä.89Ít®§êý²Ñ<¨e³b¶~¸ö˜x–»i"¹Êì{¿Ò³Ê,þðº­NÛŠâÕÂO˜ ž£›"ºÀøâU®\ŸlkÝ«Ìî:õg4°Mì.?¾ùÙcC{Àþô!ê´—æiËL‰ød]«_i.ðÏú˜Rñˆ,¨¦ÁaJòÓA§ÞÕ³Îîì}ð€Ë®{šÆ=ó<ï<ÿh¹˜»Þ]à×0ÏÈ51µôGöZ¦Ò µGÞ;¶M{‡$©Øühö½ÍðýʰEƒOö§¢ßµèÉ€ ìD;Xɧ“?pD2Ïk¡ÃÁ§ýÉ‹*k¢6ÿ[ûÓl'Vä™™=áÅ!’ö¤ŽªNsô©6x9°GÞÔ7YG!»>2äLzƒJ¾”Úfkí®öŸ`dUaDZgÚ+ÛkuñŸã)3#²ÂOõØâHG ½hŠëöqçCýê/µ<º|'û—Ÿ¤œj´F¶úw-ÓÄ;P‰c1·n°´ŸWœ$Šz¾‚ê1¬:XÒt9J¼LvêK|Äâ¼ñ$½>õx¾ßBvˆoŸ·ý©>Š¢g^Ä4‘ø/7I;¦¨ò}Æ085Ö†ÏvþUcV$ïk‰×R¿2¸$’> ®áÈüe—4’OÂK—š$‘»²4§Ñ" Þàß!SÏôÛŠàÖ™$ã‘p©%=vL7oHϤ>+¬è”}Bòô•)Ûí­ ĸø1ÆÁrÃ*–éc_æ“ràOå¸ê\=Øù¾ö{¬Œªý7úfáíÒBËhÑs)%›ŠýHÁTií:c¶Þ!w¸ý\.W‡$ “f/m‘}¶dd;dî.—âNšù(ZÒÚòð×IiüÝÇ@ã¯â¸Ä”â¨5Ì^Ö§3cßh!¦qÀ;Aª•Ö1ô0‚\áËÜ#_Çï\BIË^ÈÔÖµ…ÃÝ:éº~'€¦Â㽺†±³[Záº;eÄC—’iê¹ëKí² ¦]<ä’½Òël¹îàk>¸D”rêÏ ƒÙÞÿR×?÷Œ«c -ø>¥îÚ7o¨’ïê½½—’|/ônü²WZú½ÇÙ÷^if難˜`†‘ÚFÓÎ’¡nSh¶Ýì=Áã÷ƒ¸\RJ|~åŽ-¿¬Á“‚àõ¶ägÖØ±ÂA'Óoo ¨Ìe‡a¬VãÁÿ̤—‡†[-ÅÅŧ€H+¨è-­^`’£-ï£ìÿXéž”,Û¼Ôà@øè¸çåäZÚ€ø Çñ•Ĥ¬òÜ\ZüÕqŽôö¾­ú1ÒF£l)œL‹¡ö îu0¸t”£‡¯â×<]ÕÔS_ó—àE»ŽvÑÁ ȸĒ—èþ ?¥ø½©~öË[ ä‚"Nk\5Ž“ù4+ŠIÖuµzz=½5c¾ý>Ï=ìù}ë„IG…£Õâ÷õÑUMõ}2t’75ަáa?D¸ ~p¼õ$u½£Þœ;LXpí´´ýó~…0qäxÈ•«†IÿÿÙ endstream endobj 5 0 obj<> endobj 6 0 obj<>/Font<>/XObject<>/ProcSet[/PDF/Text/ImageC]/ExtGState<>>> endobj 7 0 obj<>stream H‰ŒW]“ÛÆ|篘—T-°\U\ŸG‰+«G§‡=pIB‡Ã"HÞå_Xù½éÙ@ðî,«¬2qø˜™íîé}õÝû€víìÛõìÕzR@ëí,ð=?$ÿ¹«xå%$S/Ž|Iëû™O»ÙO|<[çî2ÄåiöA¼ñèÇCñ_Úhº6óØ D¥?™½õè­jŠyâEBÑ|™f«ß©&If‹ÿÍ—A"£À“"^…òUèÛïýhþqý·YÐW„rdæ!ÝEA(ÃçÍןx)‰[Ê2ò½@Æ” Fü¬_ÏlÝ+ûžDÒ•ýÞÜÏOè9V ÒµnŠ‹{U§ºÂT„î~‚ñóPT;:†¤ª #ª³-JÝRÑÚºÃÐK“•¹Ã1wêrs8жE¬Ý:êöEK[•wd£d^ì÷A\çƒ!ŠŒ\¼^4.õQUøÜ ‚vß.eèÉ¡ØàÜé¾÷ƒlÕ_uz‡†KÑðºV¢_íÖÊMiÒÕ®¨´Go*[Ú‚Nšö¦ÖTôe†¾'ƒÉZWc–¾Ï§¢,i¯Ëš’­ÄQ%7p_l6ö†®ÐÉ~7TYèÖ£ÿ0¾r-q+ry.WŒXäK@o·‡<×m»=”å#©Í¦Áš‚~N»9Ôi¯ðé†ŠŠŽºi¹Èqzd=KRÏ.‚È3 Ëü¾½bà¥r‚[¬ð>A£þ-92OŽÌ[…QØ#ÅãJƒt€ï¶òæ+/øCCm£&ùÏôá˜I&½d³G¥¥AOä-=šz4µÈh£ ª"&†`æ:fF(õ…Nx~ì÷Û~#êF }böŒÀL¼d5¶$ÊúÄmÞh€`oNöͺadnÈ:—Í÷VÙ¹“±ßã¿iNæPn¨4æŽÊâNßÌ/ÊžàeЀpÀ&gûeY[~¦Z5ê‚ÿn(Çâo5ZÄM™G^&ê¹Ï¸Í‹í£­Xß\ˆ‚)ñ嘰§Ü¡të%Ã*È/Ëæó@ùU4ý<?ÏúzQ@}NÛèjͶ~)ñnr¹æàÌ‘ 8Ó¾š³wLû@éX~™nV¨kTÕº»¦áždBqOð Ê¿¡ø/Ï,ò’”’ªÒ ¶+aB˜o¾¡œþHEžÛd7B-Њ/¨ýñ»o=<¡ÿÕÔžLm¯—†òB7»[÷¤‘Ÿoæ–L¾]² V¼hŽ[Ü©7âƒZäûwþ¼žýg¢Aúêg®Ô„Ú·Û§ž )Š„ÔgÍïg¯ÞÜôÚÌþÙÊg´ ÓÔ[¿Ç’øšŒÒO¼8Ë0Ÿ§•cÚéL<¼ž]¤g߯Œñ ç‘@FãàttÎSÜâ/ÅîÐh ¯,°LS@ö-ÔUiÛi¯5k$ï ݈RÛ[Û f+zÿÓïѰÏÌÖò%µ‹üz;Q¦suAÏ›×’\SØBîæ!¢ÃoÙ\HÁXÁ e¼F^*Ú9Ö.~Ceóqa)¬ÄOr.1«îZRhŽ¢¶ÃRU%xÄmz1 ²çÓÞä0íß\_&a+Vns,6Ôuq¤'/4u ÷›äXi0­Yõï±ä„i ¥³´„{hŒ»k›Ã}1Ãø\/‚ ÔÉ}äÑz¯i¯Žšv ÓCµ©¡\͸ÜpªRé&NÝî ®†³Jª®5tµr#cõ¹¼E½ºåÜRº~ûóßß•‡v0EC)ª<©ÇÑ H/„ź”:y†M¯ïú¡hy’<‚,V4±ªI`ˆ]' ’Ù³»áõÆ}‰Ã—œØ`;>ˆµáu²á˧éfv³Vn³¤ÓЯQe^”0'¾FD7,¢%ýõ§k£°r®„årÊ_'câO8˜ž½•ÛVçÈNE·j‹¢ gÄ¿eŠžÈÑAX²œ˜<Ôµj ´Þ+Ag;cìp*¹‰™XP«Ý´¿¾/Ü^A†*ª»`§+ÝpïeÄ©iMžjzÖw0! ±…õξ"I-ò’3ò¦®äQ`·¡ÚJ–šû‚Í4Wð­$žtƒÅ(Z¾‘8š¡P;8.€âX‡”½Êá¸^F¬ <³!f¬„ÉSZs…©•ñÜ45°)ñ';{Ÿ­¿½cÓÞ–ÊFÌyîKqׯ¿/ä’y‘cfà1°‹\D ³´Œàñ[ç|nÄòvžàï¸#KnõŒ¬…òH8÷Ñ{T,F{•<Ý5N+{ýÂôá÷#çß ‚KXNÑ0ƶZonU~Ç%‘Zs‚nigØC¡¸ñ¨MlÔ.nõ¾@SmÙ‡¦ƒžz|±›óæc®^Xö®|\¸“-^Ø1ïÜÁúO¨åLÀèнmñ 7sƒ—¡¸5Ìo€øÊöqýû©Í®l#æK'±€‡»âÁÄi„2x‹Å2À­1ž(tMc0¸yÖ]1Î3¾f ü!ŽÏ7ÂîmŽ@Oéw<…†à“mªú^Ý^q=83\ÆáÅ¢ÌÔÝûƒ»"]š¥ÑÑAÿõó¿íR£/.õ…j~`ýn¹ $|ñ#–ylž›VpžñбM±-X½·TAqpu#0©È÷¬pnƒpøÌ4.§õ7„M² raŸ×V¬ÇØÓ»½éL»7µC:{ û±Ù°’)d> zm1uΦfAfa,ÕÎÎ,ÿ\« endstream endobj 8 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀhà"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?Ó„é% ëT’I ¥$žIJ„¡$é)d“ÂI)P’Iá%,’t’RÉ'I%,œ¤’JRIBP’• 'I%,³³úî5—z¶Žkgo‰U¾³u[0¨n='m·‚KÇ!£M>+“u€Ö\~›¹ù!#Iˆ¿'¡wÖœ«^YK¤º]ï ±úÅÔA“iŸ€}Ë›¬c]´Á"R.6;ÛÊa‘dg¡ÆúÅž\ÐðÇ´þó`éýU§‹ÖèµþàTîÎX¹r•=Ì`ðŸŠØ£¶µ>ÝNR{Q>J×5ÍiiÔd¹:ÂÅ˳ÐÇkKΠyþp[¾cPxRFBBÃàbh©$’NZ¤“¦IJI:H)d“ÂI)d“ÂH©d“¦IJI:I)d“¤’”’I ¥$’I)I$’JRIBI)dé$’”’IÒRÉ$žRé$Š”’IÒRÉ'I%)(I:JRI$’”’I$¥'L%,’t’R’I$”¤’I%)$’¤§ˆúÍi·ªÛ¬Šá€|«*=%[랣“&JïÊ«îS$udˆÐ$¨RZ™”õRýþßÎ!F°…¡‹L–¸-2!G#VËÚ*iºKv˜0Ä-þ•M¶TÊà–$l:ê}Î}­k›d9¤i¯çZ¸ØLƵûÌžÚêyÎÃb0¥—ÓúÅ¿Dh~p·ŒÇWKkw-‘ø«—ÞﲒК·Áú«SýJÃûž~=Ôœ±6Gƒ2=?Vi$’´ÔRP”'IK$4$¥$$”²IÒIK% ÒIK$$”²IÒIJM ÒIJI$é)d’I%- á$’R’„’IJ„“¦IJI$’J$’NŠ’I$¥'I$”¤’N’–N’I)A$’IJI$’R’I:JY$ð’JY$éBJY?%_77_ É ¢I'Á%<WoQÉkŽ¢×ƒ÷ ¢®uçc]Ô“‹`²¼€Gk¸s\ÁU ÑE-Ù 4X+ØWCN¥‹\ ¦£,M¨À°È<­V\{¬L,ŠÙH{ŒÅhâõ>{…n·k»HÑW-˜Èulå_ö Aéõ1Kü^‚7PÇm˜–Ü vèB£™…ChȰ1îq1É“äùy“lYñÊ`pjë$‚$pu +¤’I%)(N’JY$é$¥¡$“¤¥& ÒIK$$”²t’IK'I(IJI$’R’I$”¤’I%)2t’R’I$’¤’II$’ržI%)$’IK¤’I)I$’JRI'IK'I$¤’„’R’I$”¤“¦IJY¿Xq•Ò­c5}qkGŽÎ¦™$ƒFû>j.ˆãº)Ð+g¤ÙÓòÜ@"‹ 4¿´~éó «Bˆ‚ ígÖògpI08w”xÔy:Dí½gNéMÍè7KŒ–¸s¦°'Ådáô2rvä¿"¢î¹tVz†(Àô,¦ðàÖ“Ä”ln¾Ñ—fSG©[‹g±ð*)  DÖ—MŠè5bsq´m!¯ÒŽÛ¡a`tášêí¹¼<½ÎñhÓoÞº3mBÐðÃc Fžz¤âÒâàg];§a&ÎËseã >b4ðcø'I%mÎRI“¤¥$’I)I$’JRI%1¯))@&žÊ¶fmXì;Á“£CHÝògž¶(Öy>mh/û¸KmRµð £PÆû@©Ö{Iqlêé²ß_ëF;] ¢ç»]^ö¶GŒjµ+ëøUÒðÇÉvè#þŠŽY)|qÞà¢Çµ¯o´¹Í˜né'æuG…ltžœÃsÈtÙIØà|ÀÑ/ÌHuŽßQÐ[à—ýéG(&މ–=4û$†rqÃö¼ö‘(ŠF%$’I)I'I)2I$¥$’I%I$’JRIÓ$ ‰:I'!IBI$¥ÒI$”¤’NRRÉ'I%,2t¤’I%)$’IJI:I)dé$’”’I$¥œÖ¸mxiìDÅr¿Zq½<ÖÜ ˜;ÓüV°¾¶úc —úAaØ0pIw’ÀÅ´ƒ wÓ =” Ð.¾6Me·ãXZöòØñòî¶ñoº»ØÙ=º÷ƒØªyd£~Ex×Ñ{„7vÇcÚý5òU:¦q°Mlãõpz6OÙCCðòFê\Á’u`-XÝ®Ü {¼tåëF!ÈÃõÍi3ÁöŸà³:MŽÚê¿3kl«Y†¸––Ïx-V±LF¶XŠwótJR0¬’tÈ©IÒL‚”’IÒJÉ$’JRI$’‘¤’IÈRI$’—I$’R’I$”ºI“ ¥$’I)P’I$¥'L%)$’IJI$’R’Pºê¨¬Ûs…lo.<*mêô\#¥Äý8@û¹@Èet`dj"Ógu \ M¹Ý`úN>AqW©_ÔrMÖ{Z4®±Ã[à¶:¯FêÎQ°ä¼òØ‚òG°Ÿk×´´ŽÄAüS=ÈËbËìÊ:È!k‹L˜VªÙn¢g¸î‚(yìº?« ¶¿í9lšuxüŽg„[6!jé7túžÖ½ŽÜ{‰™]lÛXÐÚ€yƒâ¢þœÜ'=§‚®¾’á#žÞj¦[]`­‰ÍZúÑÒî£+í4¢íD ~!G" ¸K4"xl¦éÙ8™L—ë _s©Ât‰i JÆèfûU•Øó•d)ÒWMÔ1f˜â‹e…Ýœ5¡ZHÝk¥¤ÄÈgQè»$ÛSë³ÇsÙøðVC%ͱΙnÖIò—;ò¡ôLì\gR ÚZáÎ 7NªšÚáQõ¤ØËD·Û£Iw†½•Œ$qàÕÉŽC5 .¢dÍhh†ðL×]2I$¥$’I)I$’JRI% )I$I(ÒL9j’I$”¤é“¤¥$’I)IÓ'AJI$’R’I$”¤’”’R’I$”ºd’IO1õ¯,»"¬V+œ?”î?ýë +¨\rº…ÖÎŽy€0÷A§kƒ9Ñ·ËŠzz[[«  ’À.¬>8'‘ð#Tô¸ü_x˜U6-—.Ÿ«ý5ÜjÝäç[T×[ÐÖˆh‡_»Ub¶‰Õ'r£¢­¨\ÂÃÂN`Å•‰Ð¡ÜÒ;#LbZÓXÒÂ#QÁîPKH<+$ƒì "xDd”N…t $5Õ ´Á +6Wce¢üв¹Ž|Q¶ŽXpÊ—H¦Nž±I$’ RA$‘R¥`ýna8ØÏ6Ò̱o*}_¹=:úÈÔ4½‡ÁÍ÷¡t H‰¬4ÔC{8 ½i“ª±S\*y–ˆ—F€™€U{¸OGàØ­“œqr7ƃ]x1ªèº‡\½˜ØÙn¡Õ2òæÙSà‚AW#KŽààÂèÔ@[y}s +¥;!†«™­n0}ô¡d¶HdKz~‘oNº—]T¸hÐ" °÷85Ñà"ã¾­eXÛ s¢é²s>–Æçí$èÞ ˜©S4M‹rú‹…šÀ*céµ EŒÞÒï¢èâ‹Ñ¨³§ïp-.vÁËŽºiØ#WÔ1²ZkȯôøÐ÷µ/$Â90Q«ÎÁsG¥kHàVߥðÙô•Œ;‘³_™È88Fò:ýRLÒKAv‡¸N§i©(I$”¤‚I$¥%)$’”’I$•$’I)tÉ'-]$’I* Ó$’I2t”¤’I%)$’IJO)’IK¤’H%Z¤™$”ºe†¬K¬²·ñ„eSªº:nIÿƒrJxšµ´|W_Ò\…"lÍv](H|lÍÜ!¸él¬ê:›lÈ{æ[;[ðÕΨóWMÈxÑÛv‹Žß⹬uotPÂ7lÒ•=æ&C_¼<.W§æÐIÓ¼®‡ #{ì|R"uÞ` k“†áξ MÚæ’>• –FïÊ,Z›=šïi&8YoÉm¬{Xé}N!À|a¬õfPÇ6‡s´©o™\µÙ/ Úâ×ãºpÅÅvì¸æá#«Ñã9Î.“1Â2Îè·>ìp÷òá2´Tܸ¨‘â׿~`|2Jf$’I)IÓ$’—Læ‡4µÀDx ¤’JiftÌwôûq±ëmSîhhxáp×0Ì Ñ—'õ‹¦ýŸ#íÿ5yŸƒûâ™1׳.)oÕæ½2 ñz}ùW2ª˜IqcA=ÑÚâ= À<ˆ‘ø­þ‰æ2 ¸ >à™)P¶hã‰5«“Ó®ÄÍ}NÔ6pà­þ£Uléî²ÍÄ0´ìo$ð>éQsª­ÀŸ¥¤üU’EÔíx–žAUâL²Fû³d¨À×@çtl+±©.È\ý`òÀΕ¥%0Ž¿•%yÎ]$É ¥Ó$$©$’I 'L%)$Ò’J]$ÉÒJ)I2IËWJRL’WN™$”¼¤'IK¦I$ºb’\¤•$’I!t“%))t“Jt”¢¨õ·méY'ù1÷®¬ß¬nŽ“o™hüPHèòø5ï´»œÂK•é@o ±éâCB©”êßÄ4k}b~ÜT9µâ~ Õs§#•½õ–挺jw a$Xÿ±gŒPñ¾§ià›@¾bÖÄÜ}®IÓÞÐÖ´3@t»)iíª‚ÌdèË@Š=Z¦Aƒ¢evÊ`‘¡ñTÞ݆ Ô2Æ^«“£¨Ô,’I”¬>k¤’I)IJI’Ré$™%.’d’Jé&”é) tÒ’+WL’\¤•$‰Ôr>)Ô‡¸v lÒSH(ï¢é&I%.’d¥%.’iN’”2I!t“JI%t“$’—Y?YŒt²#±Y}U€6·[õ£ ymïú7ÿßJåú“7bÝ„à­B\Q¶¬Ç þ€öý‘n°ªæ¾®^MA³Âé%,ÌxÚy‘¤%àºI“©šÊI$ ¼Ì|:¹ÚÞûƒBJg‘‘N5.¾çmc9ñ>CÍqÝO©ßŸvçµ·ùºÇz~«Õîê~å-úÿâVy*9K g„+SºäÊh2p›k˜zbS†)€‹[N¨’ †¸˜ñZ½*›+»Ü>j5R-j)ËJe„:¶è¢^AѤ­Ì\FÒÙŸe5ÐZU¶\áèc¢eçÌð5{}J,¯÷šBïs0±sX’Íàið+‹ÎÅv&]”8cˆl÷ob¦Ã!\,9bwj}Wy9&³À]x2'ï\_Dw¥˜ïñ]ƒ}-“î0>hÆ\9«÷“(ñྱÔ%J—×(Á;m"ë–¶¨™.?‘s¹Ýg;6Cß²£ÅLÑ¿?9 Q^ƒ¨ýaÄÄ”‘}ðúù»û—/—›‘™i¶÷—¸ñà€•rRºŽR%–1d˜”j12²Xû)¬ºªµ¶Ó£&=Î:Ñt¯©­½Ó—{^èSQ™þ³§D+©4¸È<¸e› ¡„ÖÒç '€J#u ¶êÝ-¬é¹8m¬WUM.ikHhÙîù®!’RQÑMØd¦ÇöQ<&‚’êv1Ó E»CD,|Gh› 2 ÑÙ±Uºè´±žt2¹æäEÑ=Ö¾ÄÁ”Ò]ºÞvê~*1輎v’ƒë{Bo´IƒÁM)ݹ˜ÃÕg¨ÝAÔ-*ײÏè÷Tãe@ÈkÜÖü*þi}8·XÈce¥Ü|Ñ©ÇÌ"zÆCÀ¨óì™dcåõ«nk}b2¼gÁñ‡—´+=c*ì}™³^cšÆíÞÝxÀ¯XÚÜÚ'fãì nã$h $É¥/²ÐÆ4Kœààñ:*xvÕw¥VF[«ÉsO­ †¶Í}£†oÖ‡äãa2§EÂßç¶ËyZñH¹Ýs®eý¥ÔÖ}:£ôdîiáúx¥Ñú…î|o;È%¤2 ðaíð*Ĭ¬/³Q–êé~$ï¶uòVÿhâ ¾Îç]1鹤 :ýêHNâ Ñd±KˆˆŽ*=Éð-ÿª H†ÖYau‘´†9îU«¨²—â¸7ßìÕßGS¦©qÆêÖpžÎ…}OŠ*}·ºÝ¬i8ëÄýÚ•[®uŽ™E-6µ·X5©psµþ¡ãâWêPÑÀ'°i?ÁY§Øï{l‹e¿š6‰Y¶I>I¾ÌˆŸ£8ÚQ:ãÄŒl¾­’hm8ί ç›Ì±ÀO¸¶m<zuq]±æƒXmûœ …¼IÜwv…“•š2°q±šç½¸í-Ùm{&5o´ýÒ³YöšmmÍ~×0·Ó³Rà"ˆÂ&cˆÅE€Ë„×n¯zqÿW>žâÒÍï2;’Ð]­WNȩߡ{ìcõÜvÉó/ÜJæ:?QËÁË7Tâ*xÛkKíÚÏÒÐ…¯gÖ‹à쩳Øóÿ~ ¾Î@tÕ>à­Q}bêùý3¨W¾ÛPTôšÜ›vîNݺvkú“몒Áe\\KˆëÄpròp:½Bþ¡UÌÊc6²½Ÿ£ä'ñUÚhnT²€Ëj~æd vÑóG2DÆ 2õÑǽÌê·(ÎÆ¸AHÿ¨Q¹µã8E¾áÒůwQ½´äw¦ÚÎá'pÎhÜë·¡>Ú·ÜðwXöVÉÔîqŸ¹MµÖÓï;Ä÷ìžÊ1^}ͧAÀ3äS­ýŽd鈿ò£z¿K-g\Ö‘¥¶@òÅS«çt«›^3/}ì½àäY¯±­ãÚæê~K7#Ó.8ïÜ;ˆ$yu›Úý¾>ÓÊšñËXȵNIÄٷ͇Hp#ù$~(n´ ´´xnÿÈ¥³!ò}›|y½ À'së“Á Zk¬×Òßiyp>?ߢ™íö—GŒÊ¢[“v9à@ûÔÃÀ îÏæœ"¦ ÆÑëà˜Ø÷:Ò@à?اfMLÑÞÙâu”3cl »Ù@ÿ¿­L^ïIÒúì-=çòšúÝ 6xi˜”ï³n½›ïIþ!*Ýu~ç8:{lsZ´ç ¦-¦»kšóÇRu`™°IŽ’nIþyvu€üBß‘÷…Åô³úeÚâÁ£Ê4Y™·u0|¯ÍG„^D¡½»nx¼*(l…'V0tgI‚¯ÒàVke¦UÌ{?ˆZ ¥K ÂÖð…À4!hâ¿H¨ä"]°Ú¬nçjîÆR{†ÂªSi”]Û‚Œ…Ïõ³¼rÜïuÖ;ÛØ“ø®}ƒqÚ5+°úçŽ]U›K¶Ø@#¶œ•Ìc°6œZÀ[[/Îiµ_I%{\,‘îAžªÆMN ôëøµÍk |ž+È Hî'ý„+!ØîvÍ„Ú?ò:+˜ÀáÖ™uÜ;?‚‹1ôýY0üßD2˜•)J¬ÙdÞBÖÃ%¬Ýä²[‰ZtXÑZlö] ÒPöÛyžål7XX4Û¦{®—í²¸åG6le&+€nØÕ`}p¶nƧÀ}çý‹¡!µ>G%r?Y/7u]¿èÚñþ(cÖ~K²éã¢N’Y ¨êNŽšï´iñ\‡M³nHó]WUs[ÑÚ÷AnæÌðžëaæïõsò?“Íæä«’Ý\bHTìêÕœf{*#ÞbK™Dê"§ãú•–èA†Î€ø¬¥o&²×èÑ i×vãŸ[KÖ¸c_š¿MvÞ÷G†=­—ÖýZDv#Éc5î4‰xZ]5Ôú’ÇíK›ˆQKdÓŒ¡SbØd¥¤kåÝ5‚êÞHM €qâwq÷«¸m ²Ñ¹³:ê>5xx ÞêIí4ÉF§Û÷p™kªÛ´e‹%¶Ångç¨õŠZÑ.'X”+©öèÚ$’"V ùN¾ÍÏ4®(D¢HMFcmc¨kµã®®ölx5¼¶Àc_‚ÉéOœw´Ä0ò| ¾×îw@hš}2Ó¢c¬QµøÏ;ƾEmÕ¯-hÖd~¨=sXÛ{— I¶eo8ÍÄ‚Ñk1{iqÖ±ƒ±hûèFšÛ^ÝöØ9Iü‹r\éícÇí¿†ÔJÛ– ˆ|]¹Çý‰%®Ø†6 ˜A¹•·QŽâOrá#îV-sì;[n£– ûÊmµ<9Ͳ;H”¤…ª¦6Vÿ/õ-”—~‘€°v$¹ßp”GÌö—Ïîú‡ø*Ç+0ÃXpn'æw¤RÚmÔY[\Ò>- uÙSœ³_¯ß:ªtädIÝC÷` ú ¤üŠ÷Pìò;‡ã¸~D”Ý}xùÁñoðaL+¤4Ã6G!¾ßö*ƒ&¦VYØ;o÷JƒrÚàC^ÍÓË »D‘I/i&a€óøÁD¡Ö½¡…µ‘ÙÀ“ýê»z…ípÚÚüåœÿje;ú ’àÆÁ¯_Ê’[oc.ÌnöüÏðLàækš[ÜD‘þk•uö:}`käö»þVYk\ÒÆÙ rgS?Õ„§ÙXÐ4½ÞÄßÔê{,0+{tÖaÄ~(…$4½Þ!®0¸á’a$ðÒµSjÊZD …ƒÉ¢ê•{1›é¼úE²Ô7Ãâ„útÛ{Yü“¸|¹Mèãndû¼œKG§»n@ñ]Æ Ý@Ä5ž–yh2´ Î…v}-û«…›œQt¹sqxÛZ>Óh$‚ïÊUÞV5„ ¬,.pdÈ‚&yQÎÅÌW!´1Ï yt5» weg#©×g¦ü`ö°€æXÐÇ~‰òáXƒ[†¬¥(È‹êWý.Ø×ÖýÍsÃ,;[Ïb4TÒúƒd¶£`f²¡ù¦V• ¯ÕeçÖ\×n}OãÛ±Òßš£™~- kë¶ö°{Ûx-öŸ8Vû…•^½Z[[Û¼Ò?(W±®ià…Nž¡cYm»Ñwµá¢}ðLÀq‰™*În} ²ÀÊöí&ÆÉù4¸O¸x¦œV¼f#£©AsôkI'°«‚³\zÇÒ;yqüV~W³5ε][¸‘îÚ=Úî¬ÔáfCÞÐZçn u¾âmiðMö«uça£[ëõºKëþm€´ÁòŸ¼™\#]/DÍéíêTY[,nó¶Ún³¸šÐ’â3º{±òà Kdìï¸r±PX¶Sbîe"áqÓÞcæŽ]{ˆuEÛwÚ‡¹¥¢²Â8§mT>ÒêÚ`jfgþˆ•f"€ 26InµÙ`>Óâ?Ú†öZ㹮ܒÍßÀªŽÍqÜdÿ-¯„; \ÒC[´ó±ð'áþÄmMÇWs¥ï½çĶ|¡Ë:üÜV8û^ç ÄHó îº^ðÏpo;æ>K>±ê ÷4{Dr£œÈÙ1߯ÉmŽ®çWÉ`Ö?^Ý»Èn£²jšêš]<è<‰PȳcUJRãÙ Jc+0UšÞí‘âª)¶Ç5¡£j—å¯ÓòSÀ<,œ/qÕhúd6Bdû3c½Ý×]YnâxJâ2î99öÞx{‰oÃ…±‘Ô½<7°ÒØ60|t•™™H¥Ô´>˜ŸŒ£Š%/ Vl–c©[;Öls+³ÈΊZHÝ¡cPW„g!¿Óæäú[¶è`'“à”NaP™y.œ—Ðö@p#]dé¬ÊÀx" @+[#2Ê«Üû‹Ë§k Žç9Ä’yåY”„µ (SSªë)x}n-pîMS¯Ó2¬}úc´q{%¬Èk½ï—xÇ ‚W/q¢ÐýHïOU¾¥l°¹¥¯ ’~ )Š]=…ض Ü`gEÍκ®§Ò.k«-žÚñòXyý=ô~kQ0p| 8ÈÙ2$éY´ÐÛs #I”AÕYêmµ“ÓùVLÁHè~)Æ’JÑ"=e•b~s«´ÿ(€" +Ç.Û[ŸXè²ÀßîEØëcÄžÎü%/S¥V74Ï ?õ*ДOV*!k*½ÌÌÎ;lŸëT®kÚl&¯g[£ðAËÏÁx4còáðY•XÅ•@~æž7;¹ð*<™„MÑ"ÊÏÄ¥Ðæ8‡£fø)×~M'c.uƒˆs ÇÞ%#§e±†ÜWnnÝÎg$®Ž„.¦âó^@ÝÒ×{Hÿr`Î{ÜÐiµÀ¼µ€ø–¸þA´Ù`;­†óé‚Óù\V¯ÈõE„y›“o§¡ p3»“óÕ8æ=,z%Æ×àê"3ˆ´ÚçÎpýÚ¬ú³.5~À—³M~H¿´ò€nç€A04ð”Øóè±'b•Þ³m‡×SüÒ`þUpac ¥¡ÎìL–ÅH¹¯î`qìxŸº³­²¦íuB#Fkª–9bV˜H7½v4‡Wû%q¬Ñ»›Õ˜Üóc‡µ :HÙ,#ü×~U¥NE;¯%Ï#´ëð3#ðJ9"zý¨1!LÆô°í ±µ07†’;‰Gír$±Óâ8ÿ©…”5nóøèím£54¿ù™w†¿ÅIÔ€e°ÑßÜÑrytGòdÁ”W}Ä€cùe+UµÜHö½Àpïq|(mªbÍìžI-?0UÏ´QA‹-xŽÄÿäAQwPln ÏÞOåZœëXÑ–ÂÐZ®éó•×t© ¹\܇¾Ê¬{ |{÷ñ+£é¹lu-s|£ÌS¡ÊC[­1ØÝI·Vvú­ï1íVþÙk2¨­Þû"ðxvø¨}c¡×cÑscôVC¦b8Óà©:Œšò)°¼ëXugqÒd‰‘اa7Œ_M¹YŽ®ÿ¥MÛM,fúN×´·RÓ§*–u4[é\Â=›}=ć5ÇG4™ˆÖB±‰^~Òð\ço<¸ñkðPëuÛoOfCÙ¶ìwÍ#iÚáÛw˜OØîÀiÀêÝ!ØŒaµó[=G:D@0í±Àò¨tæõ,Ûꇫc}αÐKDöiåt}'>Ûš*¹Ž°m-hs`íF½ ¦8µã‹?F^j%£n„žÑ¯tðjû¡ØÃÆ0T,7í´Ò¸B±]5°m NÛÆ+w±§‘¸Iøî…m‰¦7ì>­®Ãoñ…FÜ»×L\Öð\ÞÞ*]NÜFd ˜\Øß¯Š¤Ûâ·V×nÜH'¼‡&Ct:/ŒEYUÆ=€3Ô.i½õïòUf¨ii3ÞTðÜúîkÀ>Â&<ŠW†Œ‹C .0×E›«]IÌúmJ3lãâ§¡Ôp”Á–PG B&ÔÅ©‹˜¤N+®Ñ¤O™ÊéÙMt9±ç?íJüS¯fÏN«qžËR÷×C¬³€8ñ> ®†Ë¹Tzžhȳc?›gg¹QW¼D¸câÖuù žçîJ×ÑùUw4  wRé·flÖÛ1»¯ÁjõÛÝONnÝ žÈj©ôZw;qù'úÔý­Æ¤)çò(ιbd‘ø)TË^ zf>_õA/d]«ŒÓVºŸk£ÂOà§v)µžá$pUÓN`ú"òvÿ‘na†›>ïüŠpÆEæ7§ÚH5sñE«#wÑ{ˆäµ®ïòV.{Î?"‘ƶßdxn1ùQ‘~,«¯$DZÄå¢gâ`¢”´·st´B®qüӻęRn5Í ‡;´êˆ¾Ê,Ëì¬mA¤hIüžäÃ!ά–Ù§ç‚Ò>õaµÜG¾âáà#ð È â‰¼ó„i bú¬ö†Ô,Hx‰NÒê[/ ñGõ)îÖü0£Òæ1¾nÒ~ä©nm¬f×5Áæt™ñWð:»El©•ûûï£T,üx¤9Ðá»À\ ÚCÐòU^`jÙåË¿‹“YûA{Z5hy¿*ÛüQkÇ7Ð1Þ6ÝD†Ÿ×oÀöDéy€cEg61ì¯(i»Øï=4Pc™®…›<8£}b·LÚÝØ—¶gþk‡yZT2»Ûf&@Þ["©…KÊo.ÐÔ‚8*ýÔ›/¨íµ‚g÷‚ýWžv0ú¡«l~é“$!2ª)ÈysMõ kªiЖò@þõs9£¨c3%€;#ËØ9s;§˜æ;1ÃÔ sÈswŸN¾Z©"o}éŽCów0¬s±Æçú èýèÏàp¨t—¹­5XÝ®-djצ®¾È“áÙDF¬2à~K7ë è÷íŽö;¸vႾ2ñ‚„ÓÖú¤HÈÇJ ô}‚+,­úPÖ”µ¬ùò*éúmA•Ä.:ã~e×KÞãø¨±kžÌÙ ;” Jd•†›& ƒ)9ÅÆ{÷Qo L$¥ÚK\4#YZm±–µ§Aµº¤²ÃÈàè‰VA­Ç÷]£š ªJç– É’‡¼Ï(eÂ}ºÄ¢Øï‚oQÝŠ„¦”­OGö ßð“>ü¨À.p$¸·¿¿û‘\Ûôk?'ŸÁ©WŽ^Nꌎî%ß”©è,µjZ 4·ÄÉþ*'L6#ĺïªo ="ãÄ™K,ÑÕì”Uª1ŠAì>ý‰7 é iÄ“üB?¡CG´ð XÇ}|f>éJ¨¨è?Gò’?‚ŽIÚ¸=œøªËª¬¸1­ó0 ðÀwmkψ#O½R¼Æú„ù²?#”šË©yï”Asš"[ÁíŸîSõê™t5½Ý¼­LJº~$Ÿà«ÙŸkLT>•a×ôà5s òF¿–a¥òqìiŽÃÛ?‘+U5>Þà}ö0O¦Þ§„?œÈýÀèVÚD»ÓhšØâ¥Ž0Ñ[¼Nïá(ZPý·æÃMŒžÛ\?"‡¥Œ5—O‰W[[¸˜É? u…¤÷?E Pê¦ ¬#˺+SøÜGƒä#1…̆¿ö„ýíHcÉ—‚O“çþ¨¤„m¬4{߉ÿrõ q©þ+?f ‰¶ŸÆS;°Þàqù¿Ü•¥£Ô!Ô‘¨×² -kjª]ôŒ|!\ÊìRò×À $€˜×°Xïpq¨q°~R«æG“>WæôÝ9ŒÍ8ö‚ØêG/+¸6ÒÝÌñ–û¡rÖ죨b^ÃÚÚ\<Á-+n‡ úÅ¢a¹ '7URZG›p &=ìùqvÝAö’ÙtΟrèñìÊ×n­oˆHãÚy\ßJ´ ªÙ$1ÆòátX÷>›…O:8Hqîdò¦'À4ŒhîÖºŠr\l v=ÝÝ[ˆü 3ÔlÈûnïð»‹jŸI·c­©Ú8è~r¼üŠØwoC8Ð"O‚«Å5X{Ëì°¸r#_ú²|V×¹MC¦Ðón@{]m€KZ0ÝÇŸ’Õ«=¶ŸIÖ×8Ah.o‡¹Ð õ«ìßµ¬û0ÛWô£æ€²uèš ØÇêzè'ǰGfa°‡7hê`ÄŽËš­Å¦Geo×—¶±<þ3¤ A‚:‡~Ê1-s·V5üᣇÆ4U¬é›LÖC›ÄF‰UÔñªÆõ,>óÄi>cðAg^«v­#òÊt2KìQˆAm¾Ý’<•pÍ€èA>> iÖÓ™Xû_¬¤üeä‡6¡O98¢¨Æ‹ Xlphîv1aØñ ÷ìPñŒZ%t1®`'Qæ¡”ø[Aäïcªtí:´ˆ8ƒ¯‘Ä…Ñu^›@Æ6W Ìò÷ µÑÜpê¥Ç“ˆy0äÆ`|Ý@άêÈõ²}ŒìiÜ6>[4wU2/˽¤_{ì¼µðýèñšçÇ´–·ç¤ømñ*$´h!î#¿½Î¾!K£Å­n§ÜN¢àiªÑè8uäõLzïR÷€áÌø*uWç}#à´:U…Gõ¬ÿª 9ÏCZ/„,‹vþºWN..%T7eu½Áò5™X-“p'·uµõÃ5¹Ã¸p ËÝü³Ûäú^ ZÐH׺­u w-®r èt½vS‡kÉ€ÊÜgä¼úu]wÖWœ~šÆ7ü;öŸƒD®HÂvèeÜþL|ÔµŒ{ ûVI$¡LÖP)ÊP™%)(N™%)-SIK$žNæ@žÉ)ßêB÷5øÓ\èæ»‚|D&®¼Ëy½`2$ ~¨ÑpdÙ/ÝùÎ ŸÊŠÛ©sç{Ú?:@0~Â*î“V[ÖãÝêúlôÌH’â?¬é™µÙê]‘êQûìx|TêXHõe®tçËïA̹ޛ cÌûA†îA î‡#Qºx@IN¯%ÁÁÚÎã¡ã^;+Õ3&°XáN§S©  ÑQéýF§n¥ìôì#ôqHkôŽªÐ{‹‹ÉÕÚ'^8M2®”šñU94ØÿÒ’Ðt‘§xÉ—D±¡íÂá1ýe“cÍn¬êwˆ<%Oûk{Àw0AäAò*Hd ë¨(1gSÕ l[-ñ%S{èk̶ÒÞ@þ÷qn\–»x˜kG÷§ ±Íüÿ9hüª}öc@Ëú}¤5õ¾·ä>õu¸Õ4Mo|xH×þŠ¡f>^ÿnØóé&,ÌLÇp8@_Pšño’øÞñ´ý퀓0ê±Û¶A?‚UåvðçvlG⛞%Ï­¡£÷Œß“Ùu  º;Ïå„'e–{KîíÕ!âÛk¤ã±²y‚èü©¾Ûs]úV ³È |w8Çup”¿n­¦EDùN¿vä¾ÒטuD´ðæ>ðäÇ*—@Ýâ7¿BˆÜ–ÉÚGb iûœU!-Ã\\†âêGñNú* :·9ßDïÉõ 2Æä?¢µÕ¹›\Æ— @˜"R´QGU"Æ–;Ü„nëçµbåãý’çT]¹Í"”JÝ6^"6Ö8ƒ¨5‡ÔIvKÉpyýæñÂlÀ=GUY›u®¥ï*ZÅkáu&euz®{C«¥¬aocþUÏëÙitÊÜ8»…\ã Ã,ª»½'QÂûW©N”¸ï®?6uÚVÕ6 ªk´ wq 6¼’AÆÈ÷Í»Ž°´ºk=6 ÈÜ êSN‹wmã—1»u.@x#æ+õŠç´ZAƸŠéîµ”‡Ù©´¼mÕÑä¸n·ÔNOW¶æÁ¡ÀëÑ¢Qý—F¯´Š Õú®?¢Þy$©ôƒÌòsFëž!ÂÁ¦§¶<•jóšlÆk× Ú¦’IÔÐÓ±ïfá%°[â;|Ñ"’)‘ÐÛ Á{ZÒ`{O·ÝÁç…æ½RÑeíq™'æez/P±­ÇÉtC˜Ë ÷'n‹Ìó‰ûKüØr8ö)ÉÐ".9£‡*lÙféˆ!“ø¤I?$ic'=Ï2ïì‚IT™v±­h?Dè{ü§Úm>¡2]ªÎ•r¹ôÛðM!|©«t|WCÖ2vÖÚG.ÕßÂÈÇÅnKœl­ð1ªv~ÕœÉéÙ¢ÒxŸ’=u†ëÜ¥eM®÷±³ :J˜R“­0Æ=YôÜê®eúL!Â|Fª%B}Ú v_Ûu[fFoªó¹ö?sωq’ºœ6Ã`=б~Ñ’í Ì­Ü,Ç9¯~ßc¬ô™æI€T{vgĤ÷h}q3‡ˆg¿òÉ•ÕýdhÉeœFÇØØ°!³ø,„ÎCžŠl#Ð9Ÿç€ 4ÊÐÃi:8ýÊ.ÄxãTú,("9Ñ6Ç|’CÊb·žB·¥ELRH‚ á®=’RÉARØî!H65#O¨©+ƒ«0Ò u=¿Ô¡>ç8“Ç~úp­\̲6º¯hà PÙö†ŸuzTr\'²m&6|7e•‹ŸùŽv±òÿjºqÝ‘C®0\ââÐ Ú&Vsfí[" 'î…&d>¶ñîIˆ?íM1ëE6ʆ9¹ ZÒÇ$8V×µ»‹]'†µ¼|ÐiÍmŒ\ÀíÑΣxãø+mÀ¤ÐX&LµÐ¡ÓªF î ºhå:Û›`²±S¡FÀnMf}69»vñØùø…oÑ“¼Hžß‚“v8ìx8$)cŒ#ˆ³sÍŽ.õ@ÝËk €~% ä2·m{‹bé1÷0)`æ âð¡XöÙíkœÇÎ 4)@Ò–’”Ùg5¹’?{OȦfN\þ‘¬Út\Oß0©¹Öã³Õuްåi÷*ú½îx`kvÿ+_Ê›)ˆî -Õ·RZÒq°ˆû‰XïêN·(É ¤8í;w¬YžYônåÛˆÓŽÈ-n ßšky:꣞A!¢DM¯GQ¸Øé0ôZ4µÛ{ âC£ÝÃò¬‘Ò¬‰¡û€2æ5«”z‚ ÃY6îpÑá­sL@¬Êf»…Þi ¨vÛ|OÒoÇM¤y¨mÝÚOÒkÎÃóUíÈ{-Øú½"Ò`>\`ÿ*©7&÷8–Tâ‚dÇäOÞÑLòa¯i­¾ˆåÓÓÛt{TO­[ZíHÔ=Çp™ýÓ‹ÃßÁ î`ŸdãÜ×MnpdøG[°¥Sv«`fû9‘ù4Tr…­[mnïgi.?îU\ó¸¹Ýõ”âI U[KŠÖƽ˜8YÔ=›µû–ïI™Ö´µàû-hž{92Iи™­Áº‘Ï+g×4€@¼ ž||–8Ǻ«©©à½µ—ûÀ0G!jbXöz›šX×pmìáðQ\î¿V·ìÝ3.í\öÖ÷í5ø/;m¥í.qÏ%Î$÷+Ðﺌ¦YQ`,µ¥¯t{uð+Î2±lÃɳÑï©Å¤øøš#Ò ‹¥€ú=v5Ö1ž%ÎOÞ»Jj­õ6ʬmMoä%yÍ4:ç·OŠÞéÝ"Š›ë>]cuK@û“'’™aËñ:½K&çã]]lÞ]!„1æk—9ýÜâWS•Õ.§$¦ÍŽçéj4‚±E$¯€ÕKÅvêÃ!Ã".ëFƒižADm Ÿs xê®úkgcÇÈŸà§Q° à~!ÝÑÇk'ÄÀþ)ŽÁˆ‘i–¹ÞâÙ#Q}ézv¸Ého™Ô¤1žéâoØŸí w‰%hh –‹j3Üï! …ßÎ;HÔè„ãÂìfʪð·°Œ2N5XXâl Fì¯B‚ÆŸ{Ä|‚bômc Yhf\n¹öçO‚>k)èç{¤ñù'ç;˜Z£ 1û`G'ò)ñ†¶YYós3[‘»³„ó*:‡TXM¢Þ@ŽÊ¸Mž’] —%ó´SO]OsÀkwÙÃwO¦ä}š»í;v°÷ÜUª2ÛV6;ZwËÍ®h:€ßt,³¶ëž*¯µžgÅLã1ŒÚÑÿ¯’Ä'fôµóÌqЭH¿µÎËȶׂý9>&JªmtÆ¢;­WRƃ 9=ÿ*©¬aØ@øêü SPÌ’IÔ—<½Üî#DûAis¬#Oh‚w$wVÒ'þm½hâ•Zo€ø¦~ÁôLŸ$cW2uPÙîÔŸ’ThÉsµ.‰æQ¶†\O”›døˆI…nq€ Žt”ûKHÜÉñÍnÒ@ˆ<‘mS¡ÓËDiMwW&ZòðLOÉã#úvÖóôb|&S Ê+dC¾:ÔRÜÐHÒ9hø…¢0ê`;<ê‚ìZƒ‰ÚK¼KŠVTÓhnî<%²¢is‰ Ÿ›L~EkìµI-vÃßS=¤%¶áômoÜB6UMfÖúôpû.þ mk´Û´x’¹Zý8n¯gÂHQ6ØD4Ò×ïZPcÙ3Ý®„ß³íxŸQßd…côŽÐ9ÃáñÑ1YñŸÈ—Ñ A…en“a‘òþ MutÀ2uö´ŸÇ@mV=ß{†¾AØÎÙÃÜãàwOÆ\ˆ(^ÊÝkµ¤8r „GùÅ3zu@˃Z|ãñO[3ÚG€-ç" rرŸÚÿ“Kt£³‡3i°‘äAQgOÆ=óäH?‘Yn 54|È)9·ZÆ´âïîK€vâFʽ C/~º¡ƒó FÃa‡Ø×8s´ ?SE»}ï­ž2áýáJš™?ÎUñ¿Þ€ìk>‡Økƒa-Ý#ø'8¯v®sN›F€845g4rX&Æ>“F›FÐyùþD ¬¨9ìaîãÀ!Ñ÷îPÉ¿(môêõ{’ ݉Aãüç÷Ib»=ΨxL“÷€#Æ”‘Žõj'i¬¼Ít‰í¡Ô*¶`Ù²+ÔˆÓŸÅ1Õêniiä#æ¥ëíÑ®ž€}Ú¦€FæÔçl4Xl4‘¤ÂÕĪ»XC¬i×Bþ+'©—»ßÊ«SOªðÞäö߃kœëØF²ÐïPÇ„ X¸'µîs=GGçj>åÓki°TÖ²H'6´8åt$ƒW©ýdôk ÁkƒÜ EÏlhþ+˜}±åö8½î2ç8É$ø’®õ7XëA¤?"¢àŸ-Öcn`>ºŒ"Ió\·N`6jcÁuX@6¨ïãâ ÈXNŽe› ŽÝ¨ƒ[~ˆø¢:—ºH$ó ¨ºº?Â'°:+‘ª|¬ÈŸ.têà; 0 tLÉ‚~ A¸ãFíÌ™DmP=¯|èQ[«[ÑdÉ$ƒÛF~Hcú“½Å½û•fÌV8î}†|d¨:Ú+_tÇhÔ|ÑÑZ°8Ï’,%0~ð³rFÛžßV·Û±"M„w‚²rœ×ä=í×E”ŠÝ— ñìÆ§ìváÙIï/%Î2J:©¢‰”³¤MÍ3·n³Ïy¹&5÷Ï}ÍòO¡k éû±üU¿I­lm$ùÇðSã– ŸRǾÊõl?-~eS í¢£Sa˜ö‘تA3(Õ“Ц¢“kÃf<×GÓ1ª Æû»»ºÁÀþt.ŸCdªÙIÙ³„ ´Mäaé©.,bãÌ8Ç=‡âµ:‹‹ë­qSBU¶ºIþQ?Þ¬rºcó$µù³y<€iÙl"'çù% ÚHˆ,Õ•nò{6A=„þE]ìcIo„Ö×@®¤Ÿ3ê^NŽGÉXôé:WT÷£ö[5$„4N­Mk$|a 8öŸË LoøÄ~)„ ºždJBº+UŽÈÖ$v0ôÈùIFØñíêÇâû+Ú%§wˆ&?ALC ‰&SÛ†Ÿ€„ƒ¶ÎéÌè™îÜ=¡Ñäà*FFâ$ÇÄ$æh#ß>ˆûÒÔc‘ U:ºÁu{ðn©Öé›ryh¿?*gß”æík@'‡?r_ÒÙ>2QwÚýÒ#€B BÌ|·Î:÷;[÷bö‡Ñ‚ÒÝwºG™ÓT…O-Öéó'ñ)Û]ˆ·Oçæ›Jk}“#éHŽÒ%ªÚ>‘Þ.$(¨>}M¶ó<©7í:‚æ= ~p$ŸÈœì†/Çyq%íòÇß)†;¹$÷Ý(¡Ö=69ØH?оÐpø”½=‘¯u ª \Â{ƒ§ù®”ÎÇ{¸¸Þ`Sv@]TŸ—åSµÍÕéçèªD1.0}AÁ?Ùò[%¯ò~Ÿ‘?¯H3è÷ù†AÒà| ò¥¢µDjÊqÕ­*õÄoløêu ˲œ?Á:~?Ü„3-3¹…€q+ ¤6a ô˜4ÒTƒ‘:µ„x'ñ(§2ɤíïR™HhŸ™þ% Yv醃gò¸¢Œg†–Á3©@¢2²ŒûÂ_Ô2Út¨mI0–“«7c ;hŸÁC쀉p>Ÿà¢z•ÜV™?Á Ì»ÏÓµ x7ýeBµlú5¥#w Ȥ1Üà¦UÝc ½Óâ\@F6fí·0ü ŸÈ‡‚©ÍêQö·´pÓ·îCÃpm ”Ö’ëçjâLŸ5:(Þw¡‘gÆ5UÓ­ig<變Ck{‡p"Éé:ÈZ·ÛéâÜÿÝiŒ*Ò <[ úI=žOª‚lc‹CAiäU%^Ìõ_X/ví‡Oš§ Ì÷óiãù[}:§=ÇoeÑ`±î!§EÏô»Ew‰à®§Æ;VT98Ü»žÑcÀްï9ynoõuA}õï%Ìt’JBæ<€}@Š´Í n|×ßY;FŽüQ@¯‡¹àžc…ìæñq?Þˆ8´ü’´)´Ôœ #’ ÆœÂýi,·´Ÿ¿²°E.l=¡ÍòjfµŒXÙù(ñE5F>DóY·û–M¦^ãæ~ ~ý¢—<´†ž>€ñ)“:Ë‹©bS;)ÑS¬°3‰î¬fá³`ß½ÎÔ飱³' 6{2éÅ­.'’@@ü°¯¼I¥m-ñ‘ýê¦ ²·…ÛŽ‘ä­ƒ¸ÕÀ1 XÈ€$,”7ÕV®kÚL &8ð±û®†ç5µ=¥²vž G’ç\›Ý/Ä(ïN#ÖvµÓò\Nö\Ò»>ÇÔ9Uò†Ö&S!™ kœCF‡S$ª‡ v7wž¿Ü¯õ†WöŠ÷ \ÍÀ•žêéˆÑ§ûGòk¼Q£Z5sÿ;+Tc„m ð€«Û[Ü}ÅóØ‘þÅbªÀtÀŽÆüTžâµ³ñÃ}XïÁ¢ÖØÎ÷h¦^â=Û¿*)a"NÐO:Ê •°KŸ>PáW%Íà¸ö#•\ºÙÃø©–3Hqør ZIÔß)V»lkDÄ)úû¾ˆŸŠ‹Æ‘Hù¢û¢Gà†ªCk¬2ðB³Ûí±ÑZ‡¨!Ó 8ìJt[Q¸eÞçÚ#ïM­¥œÚ Oä•e¡çB ‡€DѱùR×¢”í£ó ÿŠÚv»ó˜<6€[ö–wìñÛþäö[–f°xíÜ—]^-Ÿµ·÷Èñ†¨»9£I'Ì…U·Úó@Ç#j™ËgçT'ý|‘âE6FC©0|Ô"1ï&ö™T†UgWT#îþ MÌcN•´O™Gˆ*›€ÚÁôÄ'mŽ>熟‚¬2l mhžýÔÙ’é×lÿ'D óU-uŒÝ­¾{Ї¬Ñ©h?¬úõ I>p*‹¯ÂoÒ#À„‡uQì…—5ÚlÝÞ‚k.cGàÓþÄMø–pùøÈü‰›^+xsè#V»òôчO40çXïunÄê¬=–æÓç2€ês}ö†Ø ªëjYÔ8»èË|ĽZ¯æÁcZÃØíüBm¥­÷Úןþò®«pý!'ź®º*’º¼€Ø²Èòö¥['é=¶Øè~ô†sG´ò }µ¥ßGžçýÈqQcci.; ïîÅ@PðuÔx’Ÿr1È!Ó[6Žî¸”Æ÷A$ù¥aL8q†¾› (Ycu€à?Áí.>Ðý~ªM·7î‘ "DŽ|Œ k²œ7rJ³„øtxªÝÖ‡MÄ6X áA#A±Œj)ØÆ†Á Qêùo³†ã¹çÈp­zmª²ïÝ÷,Këm6=îÆCx÷¨ñŽ)_flÓà‡ï~Mw‹molwîU‡‚Ô,ö“:á಄̩d*­¯ˆîØÅau‚(…̤7Ô²7wÒGhÂw_ˆ¸ÃÛã ü²(±.dÓ@ò =õYq#¹Ý˜}‰Í. ¹ 3§Šm¸ž‘±ƒi°ê~ä8«ER¬±¾‹¢Ç<5tþ¨­^`lc¸A®¿Qᩲ•³cy¦Å-gé"_cò¯ß<”òب~o?±éµÀØÁ h„E”ÎT)´ËȬV+0@”2m€ØŽaª/}ÌíÝ ÞypÞ$%Öä°39W¹¥»LD…AáY7N£Ûu2…h—I‰=M‘ñ%~3­wZ†ËÇeÒôWÀ:…ÌZé]E·Ú%E“ålâù©±õœöWl.0áí;{ŠÄ®ÇµÛ½7üŸþŽõ…ÛhÆq«†¿²¼¶CÀÿ¥Á~Ø×»4+)ò «Ë‘±Íó:Á'];^Ð;éýècÕi&\Í9iÓî(.¾Þa.ù7òB—‹£ 'ÚGҴƃO¼&k)qúd;ûP‚Ëmq kÏïâ­FÀ=W¸Ÿ–ŸÈãj†…snàÑ÷„ÎÅcfY¸)½øñíyo€|r‡ªñ§0GûS‚þŒÁ¿îS;ZɧŸàÛfއyþåÊÚb6ÿYBuX<{÷‚˜^椊‘sôª/þS`½ª²®vìøÉJ¾ˆN̶9ÛO´ø£úÕÄhãØÎЇ®À4°|çý©6ú ‡¼“ðÿ`KN¥Mˆe~Ñ©ò*/±£»§Â¹pi'h—¿e…Ä{tñáMì£t¼‚| ^z’J{×SE‡G´ùnRf5 Ô‘çªàKEjú4ÎÑ û’u5s:ö0Oä^x’>j{DZ²¬‰ãXQv=zíq:ó:®$Ex#_¸mFfÄp¤0«&\ã>¤†–—¾”°î$„ ÜjάÝñÝ?‘yúHh­^öÆÒuen?“[Yoº§·ã+€I-÷„P s¼qf;Ll>|® $Ѻ_B¨Ð=À|?ß(ŽôœÓ©ø}%ç)$nÕ£èF­>›ƒ|…S3Ón;ƒZd‘+ˆI)lP7zV} º.“O^p’­—fæ ·×2›·ÓàÂtø.|dTÝ×ùƒýÛ—’\·J»£›«“Ûß’ÍŽØ}¤DiÝg4h¹”“çw«.¯c€í·]–¿@>¯IWËÑ·‹g´ºÛuçl—$ÇtP±¥´±Û€`2Z6N’W’œU iKæ/fÂÍŽ}€€`€çå»Aª•–5ô¶ '»œ#_ÅqI"‡°5´5»‡ºt#IžA=”ØO¸jÑ,h#t%ÄC—’ zÇ>ÇÁ°É<‡‚·ÓëçÚÊâM–ÅŸP{ ¾Ç;Ä«c%Ø{éfí¾íÕ’]ðs{.$EéÂÇ=ͽ·£ºÓSrϪ4sN ˆŽê/ÅÎh 7´÷:.aù7’@¬€“ø®-%/-~ßÔ±sUÆ;Ö¯gê]¡k Ç GëaÏ€Os©…Å$¥Ó«\ÛÙºš™ôíŸ&„ÂÂÓ¡1ØÀþ IÅú*Ó«ÙïÜÙ ÐrAþ 9­pÔ8•Æ$›ëêÖª€üÓ÷è§èG{G>K‡IO…©ïMu·w©²t’TœáÐóØ‘üW’ZôVtql2aôAûæ=+¡¦GŒâÕÄ$‘CÿÙ endstream endobj 9 0 obj<> endobj 10 0 obj<> endobj 11 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀhà"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?蓤’ÙsÔ’t‘R’I: ZÂI$¥$žIJ„Ð$¤’„é)d“¤’–N’I)I$”$•BIÒIK,ž§õ—¦t÷:·<Ý{y®½cúDz¥õÇ­ÛÓñ™‹ŽâÛòA%àÁkš|WûZh/qý#¹ù*ùó˜úc¿v\8„µ‘¡ù½[¾ºfdZkÅÇc\ét¨Uõ¯ªK®3û­ùÏãdÛ[_°Áp“æR/7<*¤³Ldiµ0ý׬ÄúÕÔÜö‡†=®ýæÁÓÍ«_ë5Ïô²@¥ýž ,?Ä.*‹ÊÚ9R~+—6·Ÿl7’'{++Ž]8|CÖ±Í{C˜CšíCG‘ ×7‡gM¹µ¾N;Ýîhìç5Ò @#Pu^ØePÒ͆XåGèT’xIJƤÉÒIK'I$”¤Å<$’”’D$’• $’JRP’I)I¡:t”· Bt’RÉ'L’”’t’RÉ'JRÉ'JRÉ'I$© ’xAMté'NZ²t“¢•“¦N‚ $%,$’R’I$”¤é$’”I$¤’I$)$“¤¥’I!ÊI|ßëÆîµ~²Úvֆѯâ±vS ´Óò«ßX =W.LÍÏÿªTÛ^ñ½ÜvK7,ón⇤y' cÉÝ2~äôcX-5ß BMh1Ùk`ã‚Zöº H";¶a8ø÷î,-0@xº~‹u”WT8°pcªŸçÜÖ¹¶Ãšà#_Î-œNžÌ@[I}dö3%¿ ‘,â9ùÝ%ÖT,k~€~{@Wq+uXí­Ü²Gâ¯äd;ìn,¾Ò |;…N‹µ‹;»é|{«|>á8Zœðôj:†i'J£š¤Ä'„’R“'Ñ(AJI$’R’I$”²xI$”¤’I%)$é’R’N™%)(O $¥“¤’JY$é$¥’N’IZ¤”$¥“¤’ B’IBzÕÒI$”¤“¤’”’I$¥'I$¤’I%)$“¤¥’N’JRdé$¥$’I)P—%[¨õ^›öœ¢C$4‰$žÀh *ìù‡_gVËcŒ¹·¼ó¥¿@{ë3°ò:³³0­Õ”„Acþ‹šàx:J¦Ö ,¼Ÿ1®îŽéÙf’§NÈsH–Y,iÔ«8·5® ˆ—´é–:A­ªï=ø\ïOÊ©˜âÇ84F…jauŽ—áS¯ i „†q!Õ¹›“¶™i?4‡o«†ë9Ýc¿‚7SÅm˜Všœ vÈ-Yý7?§ôÌvãeZ+±Î.¤dÆÐTüžHã™35£7†Yb1fݤ“‚‘¨:ƒä’Ø·Š$)2t’B’„’IJI$’R¡(I$”¤‚I$¥$’I)I$’JRIÓBJRIÒA+$$”¤ÉÒIK$$”²IÒI+'I$'I$õŠO $Š”’I ¥ÒI$”¤’„ð’–N’I)I$’JRIá$”²IÒIJI$R–GÖ¼çtKë`—Õ4xìä}Ë]/Ž¡ (˜ž¡tdc!!ú&ßixlqÝY#há^ëýÞ—žòÖ8º‹9lÍ>aSp;u|V\ `H!ÓâŒød:¹÷ãÞ÷n¥KÈ÷n*Øk{¨ Ò šl¼G[sÒº33þ¬ÉºK\ºF°'Åa`}XœÝ¹våÔàxØà~ZG⺟ªS ½,cÛ`®ÀðÖÄ™V0þ³3íÖàf4 jyh'‡Ä|”WDÓ`QétÚ§Ñ‚qMæàC,° ÑnŽW7ÓzSzƒª¿!ŸEæÇ;‰hÓoùË«uÔ‹CÅfÖ«[O}|8´¼¸46L˜ïñSr¸%9‰è±‹˜æFJ1?¬ÓÂÖZ’Ik¸ªI$’R’„é ¥’N™%)$é‰b|RRàk ;µ…S?¨ÓŒÂ,ÇkZÇ7|ù²ÏÖŒÑ뼞ÒÖ‡?î%Guñ/Cêû–nOSÄûH¡ÖþŒ4—«÷FÉo‚«‹õï†cßc¤ëcÚÙ1ªØ«ë/M¶˜º‡Šì’òèpŸìÿr¯>kµ3C—ýá#䋿=‡as›º_$ü ÕX…q½ õë­€: m ìp>aº¹ 7Ü/u¯õ): ¸ƒü¿ïNÇÌÙá–—ÕÁ¥Ä“àwB’ ËÅzfæo?›"Q•‹`¢¤’I)$’AJI$’R’I$’¤’I%)$’I! I$ž±t’I%.’A$”¤’N’”’I$¥$’I)I$%)$’AJI$’R’I$”¤“¤’˜¹­sv¼4þk„¸®/ëž!¯¨6öˆ°;æÏiü!v«›úòjoOÇq Z-;Ü´ðPó¾Öl1É‹y†…Së·JÌ–˜#¿Ü¬4µíò(C£p±Àéô¶˜'à²ÇW_zìôWºÎ/Jw¯v=–5¼¼´{OUn©Õ™Õºµyø4YK_ Üðçâ<•¾™N»j¤8‡ˆvýHž~”…Õ~ÏÄv5UVÀI°;‘ Ô,£zŒ¶í³.œ×Š0÷«I˜ÐƆŽu«‡·Ž1í¿›‡Ÿ'¹’Sï·ÙxL%#ÉÒI%,$’R’I$”²g½¬asŒ5 — ¤ªõ ã{Y˘G†‡Cø vHñ=S©Y‘c¯lï¶F8'ùº§Ÿí,Ú‹·{ÜN²IGÈQäpÒ߃D*Ýågä“nŒ!QÖ+)½»¥[˜¸pIqðþåËá\AÚMÓ¯w´Ü(&à]¬NŸ•YnF-¥g-. è0òMoªÐ ­‘`#Û¯x=ŠÎÁÊo§(ääÕ‹‘’á ßéØAkô÷yªlMuÝ!Ä ­F¶àõÀzgØÃCð2Ûº‡;Љ>á§ rµk-5´µÛÄpï§(ß\0ŽV¨Øœg‡´™áÒ×j>K#¢Øí¯£üÖÛN³ qsKIï´µ^å².Ù¥Ì@ ƒruótÒ„¡%mª¤’I%)"”$’”’I$¥$’I)I$$„ Ó$œµt’I%.’I”¤ò™$•K¤’I)I$’H]$É$•'L%)$’IJI$R’C¿"œjuïÖϤçp¨³®cä1Zç=®x?S'–0#KñâžCQŸ©õ\>™ŽnÉ|~åcé¼ø4ço¬dõl³‘oµ­j¨pÖøzè:çÕþ©“9¦Ó–óô˜[´àÁÄy.nÜ+«;^Â×ÄAüU<¼ÀɤNÌ|¬±ë!gòj²Ç0Èù…~ƒ]ðDÈúMªÃÃÙu¿S~®6Û>×^êŠÁîï€UgéÕ¹ˆ]ßEúGL¡íkë~ãÉ2ºº«ÙS`î÷î@>*éLÀy¶±ì< WìÇsÄŽ{yÂ<´ÀÍ=G3,2Œ:þ-T“–`ˆLµÁPãA¢)t“$’—H&N’”’dé)I%)h’”«u†`dXt ©îû‚°²¾²Üké-2£ee­ÝËî·Ì¡#Q'Á0 <^¯ßHwjP=fn‰Õ* dD˜ŽñÙT¶ÛÏíoœ,Â5t˜æ:á¸è¶êêØXÖ€ùŽðgÔüW1®¹¡ÍlKOš»õË£dãf ¼a·ø"v´ñÈñQÈܨèÍ“ÉëúV^cdzXú.ЪÿY^ê:s¤KIï>+êÅGôo¦Ú­ùÚI ‘ü™‘+®êxC?¦[ŠkÜÙawg D¨ä5ÑtoiuI…”ΩÐ7Iº›*°®æ ³ñà®wêés…¯tînÚäö‰s‡â…õ{¨a`â—e7kCõv¤ms6N°Qú]4V× HÈ7¸Úˆæûa¬%Ƕ¿š®rÒ ïM,ø§2$!«°’fµ¬Ñ”ëA ¤’I%)$’IJI$’R’I$’¤’I¡I$“–.’I"•'L$)$’AJN™:*RI$’”’I ¥$”¤’”2R’—L’I)ã¾»gåS„Óí©»Þ?”î>à§õd8†“¬,>©yÌê™L‡ØvüøÔ}[ÇÛXÓ…™Ìψ—S” G“×ã¶§T@*·QèøYu†ßKl¢ãô‡ÀT±Þþ¶d Û*›l[GÕŽ“]›;¿’ç:>å¿EuÖÖ± kD5 @¿qY©­S…”K@«jÖXx)9€<¹ Ã+¡C½„vÑ?‡«gf­¨h­ÁÀ‰#P{•Yô=¤w‚­’Bƒìk\'襳ôÈ…ÓÅTDšnkš`ˆL­eÙU–ˆsOÇEUj`ËîC‹®ÅËϋۢŨ$’JV$’I)IÓ$’”¹Ÿ¯LqÃİpÛˆwö›þÅÓ*w™}+"§ ZÃc ìæ{‚fXñBCÁ“ „rF^?›ç´µ‡µ¼5ÅU²¶4î:žÊå x¦Â\ÆÀsã@LÀ'ÅS¸þOR³Ž”:Ðø[¡u#…•¾4û†„WUÔþ±äׇ‰œüwÓ^Isn¦Í¥¤‡6 …ÂãXwŠœø‚ ~UÑg}déÙÝ;)¦œ†Cªq‡ ô·‰ ’…žëãÑìz%ý/"‡dQî4‚­Ø÷;oü‹ú¡›klu3í]†^Ùp,¾79£Ú<\thûÔ2Þ™GSw}Ü~«]˜A€RÇÑs@‹+õ_ô^Gä^n-/<9®s¶7—v; Å]S)Ž«*¿Öqv¾ÆVÓa. ‡8mäÁÔõ>›c¡sØTß§ý_OéOÉ\ä±.3 O2ÔçsÇÚöÅ\ÈâòŽÍ¡0'”ê,.-ÂÜx'Z.bé&I%.’d¥%/)Jd’Ré&I$®’d*B2tåªN™:JÑI$’J]$ÉÒR’I$”¸L’I)t¥2I!t’I$©$ÉJ ]:ÓNE£–V÷ˆò¨õ§mégþ ߊØù( @|ò7‰ñ]çD¯m"<Œ µ¿»þŠ¢> '.®ÆÞq-’^?Xe¹6?t°Œø7¿Í^ë6:Ž“•cL?fÖü\CŠá¨µõ¥àþé•Þt¦´¸¾†ñæ»Î˜$4y,œ‡Wg¨µ>µÙ³§2‘ÍÖ ø7_ʸóK‰‘Êé¾¶ÞÁ›E.áµ—ýcþÅ”0Å€YK´ðQêù Ø;Ì5òëze kйÌFà,ÚWA‡Ž˜ÿ÷"w@Ùè)²Ï 3¯æ;§Ø!öÐGnêÎ;œÂ$Ê¥õ­»úq{4‡û¿Š|¢Øä*ë¨x§=Û‰$™ÖJ£Ôî>ŽÞÄÁ\:ƒâWV¶+©£’âOÈ+:´u“Ùý\pvD~ïä[ 긳i#ÀÊØSr_ÍËûÅž¬÷é$’´Ô]2I$¥Ó&P¿"œjuïÖÞ\ã%%” ü—Õþ¸Üù«¦I¼žqþ¨à.zÞ¯Õ·œ»·xïw÷¨eÌ@³Ç–™·›êÁ­.q£RN€2¹/­]s*ƒŠáikƒßhú ŽÍ=ù\®_XꙌääÙsÃ\ãrƒl.C—˜â‰nÉ‹—á‘:„›À2t+C§u²¼84¼öì'ĬâF’µ01¨È©Á ·UL–åêô¸M¾ÛÛm¶oݨðÕtÍ  [Ï!r½>×VÆ5ÃèWa‰eVÐ×4Κ¨ã#‰Ñ_ %m- L‚ tÒ´-Çe­‘£¼U³a‚GÞµ1s0˜£é“›—•œ5ª+$’e86ÁU¸]$Ò’H])L’J]$É$•ÒL’J]$É @’iI=béÓJGQ‘%(8n-VÄŠyCi>£›Ø5 ÒD@]k¿‚H¦Ë¤™$P¼§QO))t“JR’—”“’J]$ÉJJ]$É ¥åb}pttbaçúý/†«¿é° . êûI³æ»ì6í¬%”Ñv±HyŸ¬îõ{0kk>éþ+;÷ÑfÒtRëïêÙNð°ótQ 6Á¨×ÅdNö;Yhr¯PM|X¸®}z4­ZKA)¡ÛÄ±Ï ¹ZÌ¢¼¬gÒÿ¢öí+? ãŽV¥zµ¶Oœæb[‡•f=¿I†>#±ù¬^»X ¥ã÷ˆ?0»Ÿ®[MY­ïú'þV•ÆõšËðîõï— ÌO ZC†aéþ¬Xß°TÆê[R¹ªY$Ð<.µIÈç#؃ö­çƘåܺI¥%y ºI•|ìü\ ù/Øß͹ÇÁ£ºD€,¨NžVU˜ïȽÛk`×Äù2¸.±Ör:•ûÞvÔÓú*‡ ßæŸ­uÛú¥£ü þn âVYqTsçâ5—óoàÁÀ8¥ó~K’”£:§«‚ÌB3H”â²Z>ôz«i:‰D•Õmo$¹Ðñí«"9î8)QŽ×D…±„ßN$|Ôr,‘‹s:5Ç•Ñaá2†ËlÝ<²1­cˆ-jll<&ƒl‡颯êU=¿¤i%nè[ºgÅPêudøJ$"súuÂ×zNлªuOÚx<,Š‹«¼=ºj¶-·Õ­Ž<…c•ÊFAÒZ0óx„±™V±ÖÑ$šR•¤ä¯)’I%)$Ò2•„®’iI%.œ!¼os” ”))Õ—mL±”Y4= ´ðD¡í¹„¶ælxüÝxñ÷5¨‰Äè £€ôd”üüÂŽö ‚§Ôz•}>Æð4¬“¸ùù|JF@é¦íÏð§Í£ð'ûÔãIŸ;èªt«îêT¿&ªœ]n–í%„ËNÖØðV.«/ÔmT±ÂÇèuÒ}òg½k¡_í¬øJU›zP©õ©¹ÎÚÇcfu÷7Ó¹V°‰mƒaƒ¡û‘†hËKÕd¢b :ÝIåßPåà)5íx–áâ5R[É$‘f’dÅÀ}"¤4Is$¥W£6Œ‹]UD¹íæc]F¼kÙ`ê9ãNÜ!Å颼¤"u1æP¬Ð^ݺL·OŒîðUŸÖ0ÍÌ& G¡d:˜ÔM”ÀÝ1&›É!tüÞŸ—ê_“örÁ6zÌ5‘¨ìÿŠk31+¿Ð7Öç—m`kÚíÞCI&~ °&¯Tûr«¤Úž;õÖÆý‚–H$Û$'F­ÌœzrX*¾ ƒË@Ù'kä.këŽ>6>6(Ǧºƒžù5±­˜»@žPÊ}N-g4?V1Ëœ滢ÏN¦‘à¸Ïª6À®Û9ÑH< ¤ýÁcäÜ»P>˜¾g}Þ¦fCû:ÇŸúE%Œv×ðVmOÜçOÞQF†Rˆ¢™ëz*ÝY!Í<­*žC ™cFº­†d'0êa[¨·qœ\ k¢æñ@Ò ÝÁq Ôê€T†Ž×l‡³ã¢fÃæ~ˆ\–K=l[jîæ¥çtü> À̺÷†™ið!yÿRÂ~u¸î8†ÏvžܧÅ!³XÜÿ©6—dšŽ€.ödOÞ¼÷êÛ…9ïíîˆù®õ®>‰s`i>ã|OÉ.^~Þzé=fÇîr×Ö –R•Ô~±ãtÓ²âÛí"XÚb?´Kù)Ô¾°u¡"Ë=:O×£~}ÏÍ_Éžñ.|0JZ짪ýjÁ¯Œœ¤4û”îÿ¸ÜŸq»"Â÷žŽÊ£Œ¤äªYsJ{íÙ¹ a¶§»-S…™–Ë,¢²êiZãí­’`oyÐ.¯¢}AfCç;!¶:n=Aþ»çA÷&ˆk°îWK,c¾ç xÐË}7^çTÂç€v‚x¢×î¯Dë}Œéx ¨UM,sšZÒ=?pwÍyÝ@€ŽLbblŒY îÅQf‰[à€†bAL¶Jz '4ÂÕfÐÐBÁÀx€¶k°A:¨äË›4ÝÑkbØí ®Y™[oÛ:ÊÝÁ¼˜3ªm.Ýè*°í‚~!.  jOÜë£T¾Õ$4ðJDŠTbnÜŒQë3Õn ‰ I€Šuì³:ô¼ÛH †Xö·àaiu? ûkÚ[ š_«AóG¬>!EÂqðXóì”®?ë ·¶°Ñy?™N%›OŽÛ ïWºîmý=ßdlÕžæ‡ÖÝ»Øg€\hZÃ,u×èã³~Ë[[w:H!¢I'AMΡŒu–ÜÚë`—9Ípx“ ?ê¯ô)ÊÎ}YŽaõÃY mºû[ÃNÂÉúçn^N®—-þu®Û¹£XÕ¼éªl³ ÒÇeÐÇÄjÇ‹“õ—ë6ksEGÒ¦?DàAÜÃÅžßÞRú¿Õ2,~ßP—¸ÂÒf[ûø+¼±U40í<¶G»_7j¶ºNsŸs ,d–ËšeψÐ*SÈM‹s+ *€{>œÜÜP ¯iÛc|þÕh€pñ³ŸUhòZwwÛ:ñ§Ä«ßµ0†GÙ\ò̉Iís\4#@e]ØJ2е§ËOŽQ€â£ú=/£bÓú9ð-?ô‚Ÿu[+!¬,¤²Âëcik[ÏsòWr1ì¡å¯ {ƒ=þÍ]ôçºëÝvUl|­¶têêÝ7—Û{lu¥µ´‚íx] J§õ‹®ôŒjnkr-æ–5ÁÎ×ÉŽãâBóßW‚ €ù¡Ž:}ÊÖ>&%˜¶XÛ¿HÃ,?DmÈ5–É'´(F(Ò›c•æ%éŒk¯vòw±3ºæ[±Ùˆúºuîk]’é­Á¥Þç6otÀViv=½Vü'ì°ãº Üîxº w÷ưó3Û›Ó±1Xë,f3KMwU±â@Ô= 5ÃO Y5ý¯öÞÛ6:²ßNÝ\à¤üÇ’×¶vË{ˆ=<¡ ˜‰2•Hébˆó¶rb"b 8â=G‹Môázì.«õo ëžì¶~³´¿@>;[xn0¡“õ‹ Õ{²è ÈÎ ŠIqík[çÝr¶bãncîöΗ\{þå{ ìļd²ºî,CÛê´´þëyŸ5!åâ.‰$t¶’Z^Í^ rp˜ì—;××c¯iskcmpõêݧ——Š7VÉËêWmè8L¿ímn9µÇpÚÑ!¬.;tÌùª]s }¶ÊÝêˆÜpð'ŸtÈ>D+ýåô<˯¢ð[{ZÇTá­-Õª?nSQÖ=/ø2ºú½>íÚÒ;¢u°1V'Ù.¢æ›«àñú:Û!ÅÆGŦ}^êLÝêRêÇ;{ØâƤîôì3ÜÇÉk»ë^Y®,¦½ÃP÷ÎÍÀÈ!§YðY ¨çáVKnÈ´¹æ×îcI&Nç»oåC Îîooø½’$8„8EÆ5|Gµ¶ó:£^Sk`Ê¥®µ–Xòê Lhk¬|ES®èî¹?­aõ׊Ãc^ØqkYcÁÇ ¨ÕÒu^µÔúŽ%Ø~·Øêxuwzlt =Åüù.O®á¶œ K# 1å­pÞ †žãɨÔÜœ[)wѵ…§æº×±@¿WÉq_èuGëÇtùV—WúÜß²» ¡ûÛ²Ë\$Aä4‡Öè¼´èíXOõL,æÉ2¥‰ÔÁÄ™=ÑC¤ …g'(ŸE²Öý'“ 4b%#@ZÙdÐF`-®‡ÐéÉhËÎ/u wôjë\w~ãQ:wJ®’-uh°¦^ÐÀ|›¯â´ñr݆rUL Éi­î:ý.ãU˜ròH€OcÑ€óä%dCÿWrŒž‰v(鸶º†9„ \Æ81Ñí†mý!•cì×ýWÁ£:ìŠk¹ím±–Z4—ÀҸƣ…Ë:§Ú×6Ha‚vkØÏ! 1™ùõUE¹÷äWLì=¢|ÄóRK±GN¶Ã÷I½}[/®d¾ŒœÝ3Òu¶ÖÊÍms+1»ÔÔöܸ‘[2,mRk; çléø.›ìL,\ªsžëY}e€1¢¢bt%Ìe7eîh;£ó¼|Õl¸å2´(îXN;ã¸Ü´ª,I;Lr¢Òc^Sʉ*vö%¥¼˜[xvna3Û…ÌVýºx­Î›cý"ÑÝ6KâOFٹ΢º ±°Ï_K•¨ƒ:­\JÝ[@(I|7zŠ/mŒ‰òY¿XsŸÓºmÙ 0óì¯úÎÒQ0)wèì{É{yÛ£OÉeý~¶:n=}ßtýÃýª1© ÍQ=ƒOê¥ö7'i&«¸Ïcoé÷1ÁÄ>²¦@öIÎÛ–>K·ê=½&÷4ïLí Á”àGzZ+Rv¹ù^¦C1ëŦÊ>ÏY­ä\»€àÍwÊÍÊésevå\Êêi—UÁÄyîþõAÂëu¶ÇÚ;e‘øYôâ ÎÚ`;ß¹ðÑü yø+²Á(Ü¥ ·Å1ˆŒX±¯í$·~±kMB‡zU4aÎÍv½šÏÅǯ3&š­Ë¾Ö´†ÖǰpŒú0_ŽÚÚèÝ©“µÎF¦¬¤¤{È0Z6øÁÿ¾è˜ÙcapáÇà‰veÈ|2xgðA6²â ÿG8ßûñJÔÅî4»sé´±ÃR¸}Ív‰6ÊŸZOÑi’'ïOm»L3&°ãÙòg䔪~MR÷¼>7cØÓý§?ø ®ŒA ÞæXtÓ÷ð“êºÖØ$û €*˜ÍcœCªsü—n)€£öêœá[i³pïìËóˆJ–a¥®-¡î3ôÚKO è&CmÜ9ƒùaY®¦Xeís»êíè˜LûjÕŒh®;îÉhÚÜ; ÙS®p2ë·Î …q–5ŒØ°>=¯‡LjÞè¸5ðÇOÒ"I r=nÆp™$ó«Œþ(;(“ÝwßHgµ› }6€$üà¡UXÒÇÉ>˜~å&ú$’m¨7±qÜïüù‚g:Š€c &K†ÝÇï:#h\uî#Ee­°»WW$ò,ÑäßMGªS‡§GA-$Ty5„‡_IÄø‡3 ÿHù¯A©»ðœßÞax^{ÐÌd|×¢a€qü£E‹—wwÊù•bG…bd!=¥¹ûîü¥­%¿êÕeúRc˜+OଆK]=–†%¡®iÔÇn¶;áÀ-¼ ÕaV„-\;4¡L!x/@M­Üé.Oc†Â©Qq”]Ûó@ì—Ͼ½tºq‹2Úã»"ç{;DŸÅr• î n¤®ÿüaáú½.‹6m¸€à`6G'˲ã°ékTØãqÁ’^£MÊúl±®m¥Â\Ó¦ÓÂ•Ž’Üli†0·Ä’@û„§&×sZï&#Àé?r®Úr[u%¤=’HðU*¶¶;mló´÷hRµR]Ŏا |ôX½U»s¤—Ä­qè&ûœÁ©/tœ_Sþ’aÛ„:È«óGõuâØåë>ˆÓDÅС$p˜¨: u w§’Ú÷y,Èó[x¶°UòMšaºLg¶ü“=ÊÞnÖ\Ö3ƒr&cY ®éÏeµ2™&h¸n»HÔ.[ëõÓ‘…G„¸‰ÿbëmOÜ5'²à¾¸d›úëYþ‰ GÊŠÖK²iã£c¡ÖÇÉv=]ûzCç‡m>+…è÷e·Ív½mígA> CÛ3“ýl<ÃÏêòv_“Èu ¯B™-çm#‰ðY÷õ†º£…YÒD<‘¸¼óî<ðEêþ¸ž­E§k-dèš‚¹ó"gŸw>³×¶Žf#ÃO]ÝGÙE~Œ¬®÷‡ÁâV­5_“cÓímv5³e6jÂ#³štÓÉs5Ýc iÏ»BQ\w³Øëwë;ø*g7¨´šÍmp~'Ô@è–ë21€5Ô×° 5hü°‹U´0~–ßqîØ0|äOà³ñò²>¦=cwzÚàGýPR³.­ãÖ;?’wÇ{"@ª-m€7ùÑñoðaL)Ç ;YéÇ-g´|û*nǬȤ×ÈkË?%A™õ¼–W¸šà7îö£h¤¹,q2Em Ôayí(¸îºÆ†9”‘Èpq'øªŒê¹-pØÚg¼×ý­Ò¤þ­{I6 ë'ƒW»ò‰BÓMë+®øÝ[7³À@øè™áíÇ´²5A#æ×ÊÍnFM®Ÿ´4Ôu ?c§ûa\eõ¹¥Œ¶@äΦ© Z©VYHÐ1Ö;À8·_ûsO¹›+´À¥íÓ]Ðò?é~*¯ÙqœHk¬|òò@üT™ˆÚ¤Wkœãðþ2*Z©¹m @´Of‰û÷*Öá³Ò°š\Éih–´Æž ªöb¹¯ü–³¾Òß—Ò”ßgÂõ†_¼öx®Š9ý%Û2Àó^Ó¿G‚ó¦V(ê…2Ðí2 ëÊôŒýÕ|6xÔˆìîrÒâ€/ŸÜÀ3/i%®mü¥hôšq- _i¬¹á…¥’ ‰Ý ¡õ,>¢:ÞSq˜÷†Ø] itî¼®¯]¾•˜{k-e¬ pqÓÀƒ§uf0 Öá¥<’Œ¤/©eû ·€ìLš¬ÜÇXùc¶¶7rÐPoFêl’ÚM­hšˆ~„H>Ó<«ŽÊÍÕäœ[œÇ—¾‹&=»-ðÔ,ìü¬ZÙewdÖXÁú;$íõ[í1ÇäKÛ =ù$£í5{n©ìÞk‡å K!®à‚³±ú§Pµ•ߒﳿÛ`cf3´<ÄÌžÊçOÏêXíºÑ][KK­d»ÃF—‰÷=›ê¿ï$tvqËŸ£ZçØ"¼+5ÇÚ¤"vòò<š?ŠËÁë–u¼Y}¯ À—ÔÇ{Éo»`÷HÜ«t¼[•cÚ íÁŽ»ÜàÈà5§Á€ Ñ.fGA£SëPûGD²£ú*Ái‚uÒ~òey³ê}C¦7ªãY]v·ÔqmÔ_n›€üÀF€|—žu.–ì\æ×°°:wÖyÜÞZ>*Cº,Ç-Mëz§Ã/®†Út/:E‚·GÏMU‚ü—ú\ý§ó=‡ñ‘([˜æŠÍe¤ ÷tí£\¡ö×TÐÑXk[©’IŸƒ ¹#;5§.)è5ùÀ] ?¼ßî(vW{½Žh$Ö^Vsº“^÷n$“þ‘–m?.Èv9–4¸6½‡ŸNÂÑ>mÐþ™hµÐuY%ïɰö-. Ÿ(|,œ®¥ƒ[ˆÚ÷XÙclŽÅÍ”ùÑÆ¶Æ×ïkfM›£û+&€/-a>ö·ØÒ5têT²€&8ƒ»­…˜Ûž ÛŸQÕÕ·] ˆªÞY¼†jÙÑFŠßCé>íæ<·Aû•lÞ§Ó,œlXÜñµÖAfÙóS£ ÕL 70Ä“Á/lAòŸàŽzÎcC Þ}= Z Ó¢l9 J:x&\¶ž“ö³ÚY|YM.iüÒvŸú¥ :~!œv‡<}GÄlTæX®­®=ˆgî‰P¿ë58¬ ²‘¥zÉûÿ½Ogëö±K ãÑÓøµ°µõDq±Ž?”!îôÃ7¶Ôž"ƯªzÏƆ>HôɬñkâÆ>U°êrßaƒµø;và~äès™ kÏDOâ/%«ÄäZvÐЂ°Êk >Ö¹ÀhFæ»ð•ÜÖâ|Gõ0 sZ~•;üÀþ>Ð¥°ÇhÝC ŸÑ÷:8—~W);­2ͬ¯½€»U²°l|89¤Ù¹®ü+l£;ìpkZˆü²…ÚšqoèÅ–8ïsÎ!Cn8t[êÖ.-yiù´•|åcc·\ñh*/ê¬ØÇw—;ð! Õʲ¶·:²Æ–µÑ»|ù‚»Î‹-­£´Dv\GP˲ËiºÊ[™§»IïÄ•×tœÚߎÇ7]ËæÇë ³ÉÄXüN®Ëê;}v‚ü 6+ßoº¼ÌjŸïµÀŒ€N/†ë?­˜ÏÈÅÆÈd~†Øt̼q§˜YÎÆË¯*‹M‡ZÃë;Ì Ü[;àÇܤÀo×müÔk)ÓæÕé}/Øêkg©AØö9º¹¦G?5C©côì{½ŠÈžÏKq!ì{´{I˜#Ý!Z«©msÚç9Þ£¸,x3â kX*ºî˜Ì§³mø¯;˜FÒXáØ;Bš»5I^c®t'àÖ-éìxuUúŽt€ :·l8v<ð²ú@êýF×>¦úÖ7ÞûŸ³^Í<®»¢u+²)¾·Z6–´9°v@–ëÚ gaÕ‹êHØêIkvûH =£X‚œ<næ ƬS꜇00\ÒßL:Z%À2;«}6º*`Ú 'eƒ“©l:>‘‚¨Ôr_±õÒýZ¸¤÷ "ÕOUc¶0¾Hq ÑÆc¹ ¤x„ƒ®Å¶ñèWX°†î"N›·¹_®tãÙ“‹”ÇknçnId7ÉtötƸ×eÇFÀ-f²|w;îáTëøã¥:ÚG§uO_£œdíp;¼BP G]U"hÖš§{rXÂÜvŠõÖgwñWö0-Ü’¬Ÿûn_kKENýO#p“ñÝ[`²ÐÏL‹®xwq°‘þvÕ‘›ml±Æ‘’Ö 7³XŽGo½?X¿§Õ–Ú^Èõ þ÷âÔ¬öeKé®ÏP<–’ ˜"‚ªæÍ xcÓv|xÅ\˜ãd…hm~»žÂÎúòtðTZì}¬unp'Gy©ô·ÝNKlh1Y€º{¥’ÚÛ™“]NkXëÐ5Ðë§Þ ²M]öú²Ð­¼ÛºŠX9ÓáÝ ‚¡]ìlWaÛ½¢>„HÔá ±–¬ø¤ Et@Z–ÔmD±FËlFœê”…k ù0‰ó1ùS7¤f±ðæ¬LÌþ(+èÞèôì¶²¬§ÖÚ}­7¹=‚¥ÒñŽ3eñ>+/­u•o§Wó5è<Ïr£®)2‰pŤü¬Ö’ytù¯sŸcwa¼·…k¤âו–áú!SÊëwc>70´iÞ4üTb±dâróoÚéiÐÿzEŽ–%’HæDu6D@à¢ãš-65¡Î- Ϙä©È=A«zÚ·Y4ŸJÍvƒÁòTÉʱØÏfCK\ÏÍ<˱˜7‚@ß:WÁÌ<[twé#HûÒŽ ï ^rGg¦dV%‡BLoãB{­»7ÒKä£aûiª »•¸ÖáÆã¯Ýª·mph/sÚ85ˆûãT¥ËH›ÑQËr[[A$65˜=Ñ[\ÀѽícÈ=ˆñ 7Ãisœ|<š/Ùê踓À2>í©êUïÇ y̺›Fsá¾Ç‰sF€ÚT à:šÛ´ˆÉïÃñ]!­Ãù½Op'ø$:{šÿ†ŸÞ¤¯r°æðq°/°V=Ol†´‰2¬ÞÿP"xñó![¶šëÑ„ü¢Hü%,ºÁÑ xiÿTû¬AW¾kf•4Y Øò<7;%,¬´×·vÙƒ1÷-#ÔÐÐ'dÒ õC]m€|ˆüž0Ätµ§)>#:5ÒÓŒH#±vŠÍYaäm±îoÒ-k»ù¼ì\‡:]cÏöˆüŠGè-õ-#Ã{£þ©ˆÑQ™îʪóôÜ@Ò\Á3ñ _ò«½®föþá`…Wì ¢wx“:üåM¸™ p!ÁŽN©ÂÆ•_U¤Ô}ŒÍ—R×:ê\5¬'ò ßra”çÔMf¦iþþr¶Ê² I\ßÝ øˆkxÆÜç¼Çá;‡è¶Ú†ÚmZʱ© ³óRi~;fÑ[[ûͲ?†ªÁ¶ŽígÈ8ÇÍF¥ÌcG‹ OÝ)WŠ~¥‘U;ç5ÂÃ>ÙÜ#Æ{-^—×Ùè×Mu~ýãÏÁ’_ªbC\ý¯ÃM B±Óƒ1Û[˜ÐÐbHPæÅI¿ÊKÓõz|<\¾£QûQ{Z5`yŸ*›üJ-XÇ#bØ6ß!„öv|dn•¸ Ö4Vú€n5µå7{禒¢Ã2%GbËÌÊ7Ö:†$5»°²[ ³‚5ã‚ ÖÆey ³ (o,‘Ô¡‡mún¥¤pV–F;­ È¤íº±2?8x+¡ZìòïÁ¯¬:¢ØŸ¢u’ÄIDΣŒ« Üê[ê’×RÓ£‹y ~:«ýE£©âW•XÊÄt½ƒ—2dÇÕC9Õ»=ÃÕ {Ès=Cܰ;Ýåª|Oä²Cjîô}>×»n¬Ó ÷£X;Àãý«7¢Xæ5ÔÚÝ®-aµÀi Žêûì “û£„ÊÕEŒŠÜ~WÖ‚ÖôÁvÇŽíÂÜ´†MvÓ0Z{GŸÉb}i¼œ:ék´}ž÷|!::TuÑàìªûiÊÈ|£ñ*¶fQ cò¬²×èÆ„Û˜Nœ¸wOÈ©åчg·!€=¿EÛ\OùÛT÷#*+8LM‘£ÆäzÍÉ%÷ç™õAŸš™q#ÕÒ׿ŠÔÍè¥×1ÐÙâG …½,·—F¾P«3]YDãÓFŸ¯q#ÜwxŽT±ÉvCI&fI:ð§öwá£ôìG7 ØñícI¢&&ëdQ«ÝEç‡ß–œƒÁáN»@½º{ÿqØì´Éx0bG‚©n=•¸´±î`÷ᯩïsL’XN›wkÊiÀ ÐÒñ˜Ž–èUë0îl­,_c½ÂGÜ©ãetàâÑes!൮ØD ÙÝÉžž1éieYL¹ÌiÜ]S˜]¸µçˆL—+#µ/1ŵÕ2Û]?egó‡ù×y~êÃp’„ûòm;‰{œA.½¾‘çÅB§XûXÀòm&Æl$’`ýÒ,FäO˜P6{7ã~Êú™uÛC¯¿cÜÙá²5?È2ÏU­v¦gS:ýú­®¸ÿO¡Ñ†Êím¶Í—Ú\Zvîw´^Ùù…Ó}\H?Ü[íÕo ¹1Œd€o©+±ÌÌÄ‘Z°ú¿Ž[SH\Ç׬Ãg[u ûqØÖëqü«ºé4ŠééUå}[)Ù]K+ ™õ,s¾S¢ƒ³'³>sÆ¿x€ÖÞJbò¡)µV é±í;ÚaÄk-}Ž.à÷*ßš™poÏTP»\ú¬mƒÚA™] .ªúØék$¤;± ›nC›;I 1÷#ãuEî$MâƘBiÕ#Fõ–9ƒ`qq’|áÖ2$ÇÅT²ö“ú3µ¾¦u„ÀävN‚Š{/³RNÑä‘ɳ–¸ªÅþÙQÞG)Z)î?g†-™ðtòÕ1Îps‹Ë{Pÿß@Guw;èÔáðpiÿ¢Ðš¼RòwÒAœç~R®ˆŽÌ6{®q(hÚ[âdÿß”,èØéÿ¾"<1°=ãÄ I˜õÚH}^˜ð2Q(ÕÃ-<†ÏÿÌS7¦ã‡npq¸“ùB³ö\fh#à+­Ú5ä“䔬*Šœ ~Šü’HþV{³NàÚx:Cšøø‚Z®>Š‹ƒ[X|H‡`¬8;kleRè·Ýu/ö¹ÚÇçwü‹B̪˜wú€8™m|‘./pø¶(鯲Âûl.ˆÔ“ÉÖÂtÕs_^þ²tÌj‡Iǰە½®ºÆ‰kZÝÐÝÇ“¯e¹ORmÇÑ}…­{†×07°÷:à¼ËëÙÅrϲ7e´ûÀÃãËrl‰ ê¼G†‹¡‰ÖA8´»ÂZ¯8ÚC›´5Æ ÄŽÞEqö9®ÜÑ r´ðr-u­¥³83¬éµDLÆÅxá;‡©·÷?}M×óÆŽgnн0² ˆ>Ò«­aS†.¹Þ÷qLw•jþµcÁcš<ù'ãÏ/±Ç½øÅžßNDvȪ²¿M®KI=ü>K¢}¸ùõT¶Ã0¶~‚±sæÚZùºyRK(œ ±ã©†õ^9*ÆF®k°nk‡=Œ¡`º.i+ª¢¶¾¶’åU31n Ì¥ØÏ"?Fã--†ö‚8ðUö«I×V½±Ä·ý«´ëaºÚäÀòþp\ak«²Ž@Ó0t­aËÆ<šÙ±î6ž¾ê\Noè«zl!àVøuUû\$8ùh³³2z†KÜœ«nm,³k@?͵Ú÷ piØ÷1´$¶L‚ #’!@–kKnynÙÁÒ’{µOq«:}XX5ž÷‚òul§ºî¶¾«tê²úÆ-yL DzÀÞC¿v;…Gg½ðl:iá¢×è–šú®#†‘uõAA“.‡‡O\x¬úž‡üa×F8Ì,ª«ÚÚÐÒn³+˜è•Íà»XA™]I½6 1œMŽþYì>¢ôæ5ΞU2H‰'r[¼ ÌW@®ìŠñú}ö¸íÔ÷OÁ¥xó$Ÿèß].8}•·þÕY±ßÕhÜBó£´™<“°GC.ì|ܾXöÕ†©é£U3Q•n‚Γªm‘¬¦„­Sm*zæ£çø$•¶¹<»¿e' ¤ NÉ~¤¦2yž;&$yE cµ#îR³ÓÍx!Ý»üÒ¤[ÙõlÁöY‰5—×ÄxˆQªž¡l=ÙU6°e¥®sF½½± 7$V ³ix>÷†OóÄy#דŒû'Ô±€A|†’Œi‰˜Š²i& ©Ñ»$Ûé}¿Ò1"KÜߎ§ï@Fêu[êäåú˜ñüåvˆí£Ï÷¦±øõÓt±Ñ˜te¾Zêªõ,‡úº«-°îö4Ã}FƒDÏÁ–RÆûQWƒç¢|n{˞ׇë!ÎIL¶4+JŠó*ðL“©  €>“uÕÇP´EŽ/6eú h˜'ÃÒŠãë£2ñíéœZ!¶HÓIÚä¬ý²Æ 0×±Îldžâ°mµÔÙC[[ëIÜÐAf“Ù§å][íÜÁiäAïRâæ%ê<@­–1!¦„;>»Zظ9£¸gïЪYŽË ¶âÎZïü“œ¬ ³äµâÐ 1ƒûÔÚÛ\ÞlžòÑùa\ßf ­Úµäô«œú¬©ÄÆç5®x A˜•0MO²<%°~Õ›n.w¨vlÛ<–ßô“uÃf@îxMõ® t4è–9ÏRÁD®6í 3§Ñk·šà·’#òîC¦¬Òó`{¹ Û"@ nwRû*``ýã÷äáââÜv3ÀX×?og6,œköº»?w`þ­ Û'¶IÔØMûBö»ôõ’G¨A øï’"µ«O¶oºoÚU1Ò)qñ¯ù»Óý±–}%Í?EÕ’>ðõ›Žàèï~…¹u–’í¤vp%§îxþ)×âŠðk¹¸Ë‹ýÐçúüS¿’ªsÝðtGå*ve‹HmvÖàä(¬uO¯cëaxÔa¿"Q°ª(è \Ó[åàˆ#p'_=«ÎÆû ï¡ÎÞæ‘x+¥7d6vÔ§P>k›êÎ/Ìys›a‘.g(³F$YjèHƒ¡þA{z–Eî¢×†Åk@ÐDΫw§uvfõÚo{CªÇeu–þk£ŸÊ¹@\FÓÂÙè´¹£Ú ¿…Pâm±žTG}Þ»ª`~ÎÌõ(Ò‡‘eQù“®Ò·¨µ¹”Wpè‚8…•V[ˆ8™>àY·q2G†«[¤³Ò`¨‚ðgRŸTÂunã9Õ³n¥Àè|Âã>´ä8õòÇcG†áþÅ×ßuxáöêæÖÂñ·WDOx^uõ‡ªœ®»uí˜sX׃¬Ñ픺´ý¬cè 7¼þ‡Ô<Æ’~ } åWÔœsÆëÞ6¸Z426.Ê­]IŽ· µ¹¯ml ÓBI:‚ ;|šãÁŽÈnÑÕrkc?Íw÷ù«Qù".&KÄ®{t|{-¬yû=_Õ ²4eÄ}Mš]åu˜n¤|%Iý ]GOþlönc¶óÁ‰i°Ö´îà¼ë¨¶îGvóžþ+¯úÁ™²¦ã´ÃŸ«þ…ÓêÎ{ÍÁÅŒà´Æ©ü¸7§V>jB¨ôqë$ÃY!Ç‚%°f{r¯ÑCîˆqå5¸ì£.ÊØkN“ª3xRÎfë³ *ÏVd§£%Ô_]ÌúU¸8OÓ*è‚O¼ªi:2@jèãÝv_Qõ¬;¬µåÏ>.q’»\C )õc íY‚NÒÓº~ ¦éùïsao±Öú,ó$À* ™ñÄê|\oñîéØv¶Í8üÖ¯>" ô?®57:œacÜßMö¶ÙÐÐuø.Pôj#KýªÆú‹W›?¬®À8Ò Ptzœ}¶‘=ˆBIµ³°îü„„ˆJ$J´îhäñ(gáÚGŠfýH (ÈG™ῈHaß< ø§p”XCùRÕIÕØÓi)6‹¦Óù£ÙL5áH?53v€¶'ͺË}Ïd ßâL¥ÂUa¶ýô<1Ž‚AtéÁÓÍS»1ö5µLîtú"|––M}Aà±øóX {µ?z#1ý%všÛÿ‘CÛÜñŽé°:ԷѾ‘‘hú>à#Áº~UªìGfbº÷—¼¼°·ÀLü3¬´<íafæ€\Æ>:D§2Ú˜e²àd»l;˜ç¿Á4Ç­Iwö_§×°×`;œÒíÈxò·/Êc7»q:5¬ãæ«ãu&][hÈ`yx:¶#Q¤Dþ û:]«Z$  v‡Ï»îG€ÁUšîáºü–Ü-¨mpihiÜàù£ô¦fÒdÕ[Û³Ó"Áf|B¾(Û\Ï£"{˜So¦ó²Æ€[Ü&TðÁ÷XrŒßc­q¯·qÕ•@?„rª©Û,qqì]&>ãù1ë $m4þH"P.±¶û÷Öæþy£îVb4­¤uNm·éTꥼo60üŽ¡F¼ÌýÓs*ØtnÒçó&¾ü:Íϵö´ø¸þiUñþ°äÙh¨VÒÞûŒŸÅ2yD>eFì]Öä¶ sZƤçZD|šJç×]Ps]µ˜ÁÇc¶î08>$•~î¨êÈu˜Ívî_¸&;*ͯ¥d™Øj±ÄÃZ'㪯—8˜¨–Hc ê¾/XÈ}¯0×ý7A?ŠßnC `9ÎÛî (+t [îÄ´=¡ÓeoÓQà@rÑÆõÅ›ª.¸½ÂEŒsLmØ3=ôQŽ!¨^h蘻úìÓSô™Ï06¸y¡»ýÛ}1c\G½¶„øJ©~]•ßéÙA °˜KµÚ}(nå&fd½î,¡Ä;F“¹ÛcîRŒ›ßØpöI™ ±†¦ý˜.’¤ýÑíù(Ÿ´RƼ[Zã¸=ÚD…-ßÎ%®3ã  ³q2ù¥îÌpà>äínÀÝZU[£M­ub¿RçŽwÈbn[msX4Žèõ6öoýâKÜ?¼*O±ÛÜ÷~v³ñN‘$´ÑT°½ÑL-îŸ }mÜL,œk»XøÒôA…žÑ‹s lýÌlÄöt(È+tîqÝSƒu"·°Ý{KAhin­<ø„1¯¦üzlí¨¼ú€#ܶp­}bÝÌ5†ºàÛ×ä›G²¬w_­Ýö>‘›%ïeOy.ÒHãOŠò¦\ë\òû sÜOrdžWªdÝ™U´:°êïieŽn¢8à¯$ͳ§æ]‡xý%.-'Äv?0„É…Øâ2;;=2Ìo´V×Û]~%ÏLøÊô )ªÊm6‹v€Kª{\ž •äøØÎÈxk y•Ôtž…‹K}{%ö·PA-îÕDy‚:3ŽLK©×VʾÌ;꪿P¾ZÂ’<^S]~U–wsÉšï3zÍøùn–W±À‚=Þá—šçF;‹DW¯05Ÿšœ’ ü½ZÒåºÑÇf'ÜÒ|¡˜5O¾£·¹µ5lúv€qþ”:ÖæÞ òˆù„Ó€~ñHÉà¡ÒëyÛSI>$?¢î”ö¸ þ qÌu€<²HÔ@Û÷Êq]ï3°3ÌêOÜB1Áâ“vpGGt?`ox’GÊ Ñ[[Xá¢n»h3ïÞÿ G÷,¬.xˆ‚tðMÍ‚#IJròâ‘ò^úPº~ž@`'H®kh ['0ccÚI`€=ÕY ѹ®_PÉ7äYiîL|;+=<²¼`y.’4×䳜 œ9&>õ¸Ü}µÙ°º'à­`‰ÔŽš4ù‰Þýuqz…e¹[»<3>H`è­u_ØéɾíØÇwÞ|•Ü|æÓ‰ŠÆR^n{A‚dk>% ¿«9_emùÔ8§ü!ŸÁá×[60mNyü‰Ø°{·"} ׎ŠÍÌûU.D_†®Nv]÷ØÓd€&þó·á©*‹²$w…¸ìv4c`rîåAu-­„V@1ÞVý° ) rJDÊZ’å_Îç4G1‘>Ö–9ï´l´A;ÌñåñV_S\Ù?“ùº4³ƒ±»@î5Má\E­¶¿ñMg¤±À‘ØL+ŽI:¡z~íK€òK„+ˆ¡/{õkñ‘ €ÜàÞ'étV¶ ^OòHGÒCIâ[Ù!]Õe®*sݰí¼Ãe?¦æ8oª|Aî­1›ZÝ¡®ä¢9”̃¤vÒS€E´ŸD™`s|´0™¬'Owy#ÅYíÃÂ5 ÛM¤±>©Ö¯ªà×÷÷iÿP5H½€–€àæý&gñ T`SX;Ï:ê€ì*Zâí®.ñ.%;Ô·Fƒ@±»Æ‘Ä·t¨w¼’ ù°ÿR®ýŽ€K˜íŽä™$|ö›f@ú73ÏGüR³Ô&‡F£*}Z8<ÚïàŸk]íÛ°rI.ãî*ä䆙±‡ÊHüª&ë‹H$@Ò×ï!:µN!h&{µÑ÷@•ÙW[ÛWý¨ò<¡¡Ü_š|‘[…Œúö:Ò@ýׇWIÂkªË$wi þEu˜"ÒÐ~$tžÌ†‚ÚØÐ‹ÿ¸„½¸öãíhkÇ8á¼›=ÐCL8å"GÉÚëLYk\áÎÐÝÄøTM·ô–SXˇ÷…,zX–ш-þô†8ƒ° 3>+?ËMPëI`>è€[J?g¢á°|5óì‘Çèž2¸u•Ö{¸™‡G‡ÒÜ…™“œÝ†ª=ruq@nJw`mÖ» ~û€ÓËs‡à„*µ‚úDhÙ’~ð‘.”‚jÝëÐNÃQ°ì|¶{huj¥wL´×¶Ÿq kÇŸ ÃYe^çd0´òÜ>hŸi,öµà— †»TÐÒ6öä Ýhmð×í˜ o𮬇ÚÃ'B#‚°ºÓœë«úA¿”ªX¸ÂûCD܆y I³,0‰oRún5tßWnÓ¼z„ö‰>ä÷dtìkžçd0ˆ;˜ê˜ðÚ7,™Ð°V÷Wê¾5.Ô}Ü-?I­Çµ´µµ†±Ä‚ˆó&À«8äEdtÑë_[~ÏKYÓXáckr,·ùL`þ+‹²Û-±ÖZócÞeÏq$’{’VŸYu¯¶±a†È€?”ñf$λ+—ˆ»¥Ò¬ ³UÚtòŽtä.+£Ög¸Ç‚íúx ¢4Ÿ ƒoÑÆ´Ön~èäÇŠƒMMú-ã”gÐæÚèkH.<’â ê±£ô¥Â{§Þ´¢ˆòr&I‘=É`÷îÔ=ÍÚ#U[ .Ô̤Àí A˜Íö°0ÒL¢¶‚¶À'ÀNŸ$@‰[rjz’KœâmAùBÄ>´ú,x'ò+—a1ĺËLø‚PÝv5#m™£‡0{‡”÷ù§hQ»Áq"×:³ÃIƒ÷ˆXùÙ“c|yÕo~ÑÁhúFÒ;í+9ì³*Ë6±Æ@Uù“vÏ)Ä&o³-ô߸jB%–:Â\ã$ªí"Q ÑUµ&Xà›ÚwmÛîÝÄ|V£3]·Qêß{Aû ‡@½Îâ}ŸÅ^1ŒŽqóùÜ<Ý£œÜë²£e–Óîi<é¯Ì¬ð´®^ÓYÝÒÌ賃˜ |±ôضqqÍÖÌ×ô|:1š m÷÷qårý,ƒp]ža€•W!;6ñv“¬<Œ 5%Íá`9ǘyŽ{÷ÂÙêÏ/®ºÚ⮆È&4Ym`h÷—ü¢b>e]äìbnIhóÆòïòÄ…·íi‘Ç&Í”#qsb mþ¬ÿ ‘ôY ™ö¶"«eað-is?t‡4+µ€>m`Ñ0\O›  äãX]!Á `h­ú8çJhÚb$ÏñpCû º’G‘ïùS='{]¯ƒGÓ°8k$|a®w ÛP¦j-%¢Óçø¦l4ÃoyÜ7‡KV«Nà7ÀÂaèÝ~d£Œ{ž#ÔaÕÛøˆHaXÆË¼òCv„ m,En1$íoÑÐió:¨–]´×iÈlkæœ;a;·æí>\(Øýíö5Äy8B „np’ï¸àõè6RyÚ"?¬œÁõªyó‘2¥Cé¨T×~ëuŸàž=PìúùcV´üü©­ÈÌ{v±­ðã&~Y`l4°8øÉF6\ýÒØà§àP¿4ýzñsœw<<û»­øÀVòX,oèif€;ݸy˜~I6› 5Ú×O:“ø”íªÆw·÷OŸšhÐý©?F™ÂËúrÐÙÒD«ÔÑôˆ/ñq#î¡n=ÂáfËy.çâ¦Á—«K™cZ4/“ñãðOº´ƒÝ‹ñ¬.%Ö6;&>ùQÌ™$ðwI”vºá¡©„©­Å§î*MÈÚ#Ópø™þ(ŽÈ£ÝBšH¹õ8÷i‘þkåEø¶¸ûokš9ßXDvSZu2ï0?)D-s}R<Ô}=ÑE p²Õ<+Ÿì¹m’×µÞOÀÿi ôc‚äSnI‘ p>àƒùR¸ø¦¤„Ó˜â%ŒÏúè†ü Þ[ê2|u0G‡*Ûó8¥ÓñŸÈF}ÆwÖXÑǼ”…ÝT|ÖôíÂEµÃM'Qæ Î›—&[Yo’ŒìûdOqþõ6çåÈ`Ÿ‰3ó’q*Ô0gL¿tÅm“ÿTâŽ1, ,‚gR2 33Lû¡FΧœÃ¥ Û’vŸâ‘1ìUG¸fìC´€ì!¢¡ö D¼žàr"êÙ]@ù’" ¹ÙÅ—±­ìÿÒcØ”.í¿³Ô” ÜA!§ò)·ÏzM`AVk2-s¡¹.Ÿ8€¬:Þ¡°_Yø?‘1®…<>.7YƒcG ;~ä>œö²ðJåϹî~®$’|Ñqq}G4ñÈU2¶æ!Uàöý*æ:¾yÐù…¡övŠžáÝ®Óä±:µ ;¶².ô°¯³÷XèøÄ\î‹tÂIÓG…뀛jyhh- Gx+1À´ú¯m!Ïpp¬ÈñÕgBŸ7ÎOv¦ 0®Å¿Ñè};N¡u½:»C]¤.W¢\ÚrD˜v˜vÖé-n¾ )6bãßcE¶44Àsµ-wÜ…68h ›á·_ÅV³&¯QÎun$¸~i6ö<‰õZûá-œ© O™dl¨ƒGÌy£Õ¨{ìi<Çà†ÍƒÞÂÙýçýèÂÃùÅ®ù½+!j›KCœ sy!ÄUßS¬C« íì'O>B¶Ef×´9¾M%3[]cml“)ÜF•M‹•$ƒQótþ ó6¼ø¸ñÂê²66‡¼5!¤éÏÊÚÝÅCœŠ±Ër%‹BDc±SÅ¡öÚ+Ous¨ôêðý1êz|’" vUìlØ1&ÏF}$µ…Î<’ýä-;ZK‡©SKç6Æ×8ýÐ@\üêºËÞÆQcvÉÚã¤$y.Eò\̯…›–%ôtúC‡®%wØt‡ãŽÚ/8é¶zy +кVUo 4}"«L7q¹½d¶¼¦µï¡ƒB$É%R9@“±»Œrgû–Ÿ_ª¯µU¸I}z{à²VÇkØeg72£«©á1ü›sëi1Só2zŸ±\%¼ ÕƒìoĽI¶<û¬kLwT–¬l÷Ò*%ynCgù:ziñUä¶EµîNÓÌî?• í n®`?“¯Þ®}¢“ís ‰æ@?•AÙ==°6Ý ~:"%wW ì—±ÚlÝÞ4ü[ÆÁŽÿb&ü¦,ŸŒÉ -« ³µõüûJ’Ø­×±kYŸ§¶³¼¡ºç{êpo‰÷+VWqþŒÆ;ÎeV~?Qq›/ ³F‰µ]m#_.Æqx’Ñâ!¿xÑ]« !°êØÆÇh|üÂ,¡­÷ÞÛ‰ÿyRkéÞª\|Z r\@^Š£Ý3ªÊkbËcÈ•*jé=¶´v"ù¦E ís£ÄÊSŒö—Ÿo=Éþ%Çêá,,f9qôÞ àà~P†1ìÜI¼âÓ§È+%ÁÁÕ3hîá·ÿ"â˜ä¸É“çª µaöPó ² à#ËD+0í`˜kÀyÁYû[ˆÚ¯„N¨Ywä7Ç’ 4Â[Μ@Õ.÷y§òJ¹Ó,‡mñì©JÕèÝ<Û`qãÁS‘ê߯5A‰ ‡4A<…½›cqëÅ­Ð÷öŽ?sÒm$ü—9kßuεö<9æCxœ™Ž&RºÙ“˜ÉÁ²üš¶ îihµ‘Ý  ûág7C²Ýs=¤îÐ7»|úR¤Ë*Ø9iY•70ª/¹¥¾+½èô‘Pqç²âz8›À]þŠ„x($[ ›‘pºÊÞçÖâ3ÏÅTTL:ÇÛM­Ÿ¹×ݱà°Xæî '™ðT .ÍÈ{žt ÐOÆcEp˜ ÛšAŠ­Y’ü™¶ËcÏÒ{¥ÇM5LÝ­ëð™”G>¬pßZèßÁ€àHí£„ïÊÀïöØÂ'v€|Â1”HÚ¼ÐDƒæ?XßkxüS>Ê€–d8ÉÝòLMsKÛXv’CL˜æa-˜&“kÇ¥[„¸êòÈF‚•Wݶ·ìïÛk¬$F¯ŸÂÌ.*öK zb w µ4z¶†ù¨rÊȾ¬¨ŸÙÁ,«ôÏÝG&ë3rM„jíß8EÌ6Ò8`÷|SbãÜàm­²ˆc Ë>Gò¶íyµ6‘Ph`=þèUíË´ÈŽa¿“•Ù‘_æ€F“„rˆ÷8 ïƒùUƒ"4&CèÓ¡¾ŒÎvKš[´íˆ2ÓÁù¬«¬+§&d·Û`™” Û/ÜvÉä*,¤ “]Ù°$PÇ“`ƒ»«öC€&BâÚç1àðºÏ«×Kò¡žÖÛÆ=TÙúâ@ûý7<íx–»iG‘ñ\íVXÇïô¬ò‹?¼.ŸëS¶ãâ8€up×̃X±ÍÜ+¬þ%ZåÉö†½ôjs€ ÇN±V{K#Ó{‹„Á'ß;,k[Þ÷¡Y¤º]^‡V™ð:*îɸËl´—xgýL)}ËЃõkpÖÍ’Â>•ä¦Óïj‹YŽ÷G¨àï¾'ò*ìº÷¹µ±ï™ýóÏöŒ+ÑéëØò﹆~A²‡¸6¢¢è¾ËTísH.à‚èûÇ …S$š÷ID±ø±í±ÍðG÷!úÀ7NaÃý©ák_ôDÀ÷Z?ØŠv±’&“?pEmŒ´mt;ɧýÊ&ºZí»vù»OÅ4˜”êÀXç™=áÅ8É{ÒG<ð¤çVÏ¥A³Á͇½¨N²¥·ÓøË’1ê *ÛLέÎÚïiñVFEQ{Ñeý¦°!¶·_þ2•y8ÐE–8»ú¿ìØØªÕ´Eu{G¸ó¡þð£e¬iåÓá?ܼý$ã]úwìÓÄ?„[kÆÝºÂÒy‚W›¤’ŸBuÖ,i?»¹=xxÍÔ–éÈ‘üWž$ˆáðW©ôh¢çíÿjOǦ&uìCIx^l’>h> Y[7ºÐÙàNÙûÔ‹T½®'S$~epI$8|oÅîÙI™‡|Z$)ŽQ!Ï{‰=ƒcï$®$=6_Bn=gsœæù5û”Ãpê2kß<Îâ$/:I#Ãz(quü_Aµ´5ÒóäI©Í—Òö9ÿbóÄ4‘o ŒEaÎwpÞS¶ìV¸„xò¼ù$Áºz>IÆÕÀqÇ?–Q\(sI“¯iܼÍ$MؤiO£šFÙÞàÏ!Rê“qÃ$€`~ …I ìk²¡ó7¡gÓ×t:>‹¡y‚JŽK§G[í ĹÑ;Xãà¹q—Kt±–y‚äܼý$þWŽ¥ÃÝáâö{¬œºý'úfæÄ{t‘÷•ŽÑ¢çRG7ú‘ËU{.”òÛÄ/@ÀêãNܯ IW›rk}öÙ‘’ïNK‹·8ÇÑ’c_% ˜æc±æÆ¶¶ºKOæî:Ƥ¬ ¡N|¾cæöµ9ž›ì´Ó8ƒû¡Â¹JëYf;%ν⠞|~õÄ$Šßä^ÄÔÖµ›‡¾}¥ºnŸ¤ à)°»ÞÝCXÙ­pÝ ²âw+‹I4õ´‡«u—Y¸Ë DpÔ’¿Òªl¹îàk?¤£ŸVÖ?–/c{ýK\ÿÞ2®Œ,·`z”W»hݾ¢K¿ªöö\ Ið¿Ñ»ðaÉ_¥ÝíþϾóK:õ›£ë0CHí¹»N‡I… 0z›@µ·zŒ=Áã÷šî’³‹Ý±Å·õšù8(ðþYnGP­±c›"O¦ÞÞuUšËO¦j¸ýü¥s‰'eáá–ÈÅÅÅ7£€H=—WÐ6·Eæ),ùìéÃæÑö¬tŸÙBÍ»ÍNŽ‹~fIqkiy7qüeqI+\§·áe«Î׸?{…í=kô,­ÒF£lj¦ì<‹€}€IÔÂâS¿‹TßOÁí]MÎ\àР-,$5ÎÚ8$ù’Rãý¯×ñ{]ûÛ¹­ÐrA?‘'5¯n¡¼p$Ÿ‡Å$›úÏÒºVÞŠ@ƒ±ß~ˆŸfŽ,{> endobj 13 0 obj<> endobj 14 0 obj<> endobj 15 0 obj<>stream Microsoft Word - icctrans.matlab.dociconejo endstream endobj 16 0 obj<> endobj xref 0 17 0000000000 65535 f 0000009496 00000 n 0000009622 00000 n 0000009817 00000 n 0000012452 00000 n 0000038975 00000 n 0000039101 00000 n 0000039296 00000 n 0000041607 00000 n 0000064388 00000 n 0000064642 00000 n 0000064845 00000 n 0000092175 00000 n 0000092210 00000 n 0000092234 00000 n 0000092298 00000 n 0000095712 00000 n trailer <> startxref 116 %%EOF lcms-1.19/missing0000777000175300010010000002453311272606371013264 0ustar MartiNinguno#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2004-09-07.08 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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, 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. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit 0 ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit 0 ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lcms-1.19/mkinstalldirs0000777000175300010010000000653511272606371014475 0ustar MartiNinguno#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2004-02-15.20 # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit 0 ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lcms-1.19/NEWS0000777000175300010010000000042411272606371012360 0ustar MartiNinguno New in ver 1.19 =============== Fixed copyright notice in some files Changes in API ---------------------- *none* Implementation ---------------------- fixed minor vulnerabilities removed cosmetic comparation with zero in floating point Utilities ---------- lcms-1.19/Projects/0000777000175300010010000000000011230104762013436 5ustar MartiNingunolcms-1.19/Projects/BorlandC_5.5/0000777000175300010010000000000011277221027015516 5ustar MartiNingunolcms-1.19/Projects/BorlandC_5.5/lcms.rc0000777000175300010010000000327011230105204016772 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // 1 VERSIONINFO FILEVERSION 1, 0, 18, 0 PRODUCTVERSION 1, 0, 18, 0 FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_DLL { BLOCK "StringFileInfo" { BLOCK "040904E4" { VALUE "CompanyName", "Marti Maria\000\000" VALUE "FileDescription", "lcms color engine\000" VALUE "FileVersion", "1.19\000\000" VALUE "InternalName", "lcms\000" VALUE "LegalCopyright", "Copyright © Marti Maria 2008\000\000" VALUE "OriginalFilename", "lcms.dll\000" } } BLOCK "VarFileInfo" { VALUE "Translation", 0x409, 1252 } } lcms-1.19/Projects/BorlandC_5.5/lcmsdll.lk0000777000175300010010000000060110255554724017510 0ustar MartiNinguno/x/aa/c/Tpd C0D32.OBJ+ cmscam97.obj+ cmscnvrt.obj+ cmserr.obj+ cmsgamma.obj+ cmsgmt.obj+ cmsintrp.obj+ cmsio0.obj+ cmsio1.obj+ cmslut.obj+ cmsmatsh.obj+ cmsmtrx.obj+ cmspack.obj+ cmspcs.obj+ cmssamp.obj+ cmswtpnt.obj+ cmsxform.obj+ cmsps2.obj+ cmsnamed.obj+ cmsvirt.obj+ cmscam02.obj+ cmscgats.obj ..\..\bin\lcms.dll cw32mt.lib import32.lib ..\..\src\lcms.deflcms-1.19/Projects/BorlandC_5.5/lcmsdll.lst0000777000175300010010000000112510255555126017703 0ustar MartiNinguno-5 -C -DLCMS_DLL -DLCMS_DLL_BUILD -I..\..\include -K -O2 -a8 -d -ff -w -wucp -wsig -wdef -wnod -wamb -OS -RT- -R- -tWM -tWD -w- -x- -c ..\..\src\cmscam97.c ..\..\src\cmscnvrt.c ..\..\src\cmserr.c ..\..\src\cmsgamma.c ..\..\src\cmsgmt.c ..\..\src\cmsintrp.c ..\..\src\cmsio0.c ..\..\src\cmsio1.c ..\..\src\cmslut.c ..\..\src\cmsmatsh.c ..\..\src\cmsmtrx.c ..\..\src\cmspack.c ..\..\src\cmspcs.c ..\..\src\cmssamp.c ..\..\src\cmswtpnt.c ..\..\src\cmsxform.c ..\..\src\cmsps2.c ..\..\src\cmsnamed.c ..\..\src\cmscam02.c ..\..\src\cmsvirt.c ..\..\src\cmscgats.c lcms-1.19/Projects/BorlandC_5.5/mklcmsdll.bat0000777000175300010010000000045010255555764020207 0ustar MartiNinguno@echo off echo. echo This will build the littlecms DLL using Borland C 5.5 compiler. echo. echo Press Ctrl-C to abort, or pause bcc32 @lcmsdll.lst if errorlevel 0 ilink32 @lcmsdll.lk if errorlevel 0 brc32 -fe ..\..\bin\lcms.dll lcms.rc del *.obj del *.res echo Done! lcms-1.19/Projects/VC2005/0000777000175300010010000000000011272606372014267 5ustar MartiNingunolcms-1.19/Projects/VC2005/icc2ps.vcproj0000777000175300010010000001140410366721766016712 0ustar MartiNinguno lcms-1.19/Projects/VC2005/icclink.vcproj0000777000175300010010000001143010366721766017142 0ustar MartiNinguno lcms-1.19/Projects/VC2005/icctrans.vcproj0000777000175300010010000001156210366721766017342 0ustar MartiNinguno lcms-1.19/Projects/VC2005/jpegicc.vcproj0000777000175300010010000001210410366721766017131 0ustar MartiNinguno lcms-1.19/Projects/VC2005/lcms.rc0000777000175300010010000000526011230105350015541 0ustar MartiNinguno//Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #define APSTUDIO_HIDDEN_SYMBOLS #include "windows.h" #undef APSTUDIO_HIDDEN_SYMBOLS ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Spanish (Modern) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESN) #ifdef _WIN32 LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN #pragma code_page(1252) #endif //_WIN32 #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version // 1 VERSIONINFO FILEVERSION 1,0,19,0 PRODUCTVERSION 1,0,19,0 FILEFLAGSMASK 0x0L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "Marti Maria\0" VALUE "FileDescription", "lcms color engine\0" VALUE "FileVersion", "1.19\0" VALUE "InternalName", "lcms\0" VALUE "LegalCopyright", "Copyright © Marti Maria 2009\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "lcms.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "LittleCMS color engine\0" VALUE "ProductVersion", "1, 0, 19, 0\0" VALUE "SpecialBuild", "\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END #endif // !_MAC #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""windows.h""\r\n" "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // Spanish (Modern) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED lcms-1.19/Projects/VC2005/lcms.sln0000777000175300010010000001402610467121561015746 0ustar MartiNingunoMicrosoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Python", "Python.vcproj", "{4B1BD179-E07A-4503-AFE7-80887FD2325B}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Testbed", "Testbed.vcproj", "{9B33344A-BC90-46BC-8C5E-486486939058}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icc2ps", "icc2ps.vcproj", "{F531CA31-233E-4BEB-AF11-75537F42AC5D}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icclink", "icclink.vcproj", "{ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icctrans", "icctrans.vcproj", "{653AB287-0DF9-43C5-ADC8-42AD29A65E29}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpegicc", "jpegicc.vcproj", "{05DB644D-C93A-467A-8EA7-A7D126A5DBD7}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lcms", "lcms.vcproj", "{0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lcmsdll", "lcmsdll.vcproj", "{7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tifficc", "tifficc.vcproj", "{80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiffdiff", "tiffdiff.vcproj", "{3867AE1B-D562-48AE-89AC-5905A18418E4}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Debug|Win32.ActiveCfg = Debug|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Debug|Win32.Build.0 = Debug|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Release|Win32.ActiveCfg = Release|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Release|Win32.Build.0 = Release|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Debug|Win32.ActiveCfg = Debug|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Debug|Win32.Build.0 = Debug|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Release|Win32.ActiveCfg = Release|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Release|Win32.Build.0 = Release|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Debug|Win32.ActiveCfg = Debug|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Debug|Win32.Build.0 = Debug|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Release|Win32.ActiveCfg = Release|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Release|Win32.Build.0 = Release|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Debug|Win32.ActiveCfg = Debug|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Debug|Win32.Build.0 = Debug|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Release|Win32.ActiveCfg = Release|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Release|Win32.Build.0 = Release|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Debug|Win32.ActiveCfg = Debug|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Debug|Win32.Build.0 = Debug|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Release|Win32.ActiveCfg = Release|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Release|Win32.Build.0 = Release|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Debug|Win32.ActiveCfg = Debug|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Debug|Win32.Build.0 = Debug|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Release|Win32.ActiveCfg = Release|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Release|Win32.Build.0 = Release|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Debug|Win32.ActiveCfg = Debug|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Debug|Win32.Build.0 = Debug|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Release|Win32.ActiveCfg = Release|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Release|Win32.Build.0 = Release|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Debug|Win32.ActiveCfg = Debug|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Debug|Win32.Build.0 = Debug|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Release|Win32.ActiveCfg = Release|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Release|Win32.Build.0 = Release|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Debug|Win32.ActiveCfg = Debug|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Debug|Win32.Build.0 = Debug|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Release|Win32.ActiveCfg = Release|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Release|Win32.Build.0 = Release|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Debug|Win32.ActiveCfg = Debug|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Debug|Win32.Build.0 = Debug|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Release|Win32.ActiveCfg = Release|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal lcms-1.19/Projects/VC2005/lcms.vcproj0000777000175300010010000001362710614323563016463 0ustar MartiNinguno lcms-1.19/Projects/VC2005/lcmsdll.vcproj0000777000175300010010000001617011013250766017151 0ustar MartiNinguno lcms-1.19/Projects/VC2005/Python.vcproj0000777000175300010010000001320310475570707017005 0ustar MartiNinguno lcms-1.19/Projects/VC2005/resource.h0000777000175300010010000000066311272606371016276 0ustar MartiNinguno//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by lcms.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif lcms-1.19/Projects/VC2005/Testbed.vcproj0000777000175300010010000001214710625516637017123 0ustar MartiNinguno lcms-1.19/Projects/VC2005/tiffdiff.vcproj0000777000175300010010000001073210466357316017310 0ustar MartiNinguno lcms-1.19/Projects/VC2005/tifficc.vcproj0000777000175300010010000001206310475570717017137 0ustar MartiNinguno lcms-1.19/Projects/VC2008/0000777000175300010010000000000011277272161014272 5ustar MartiNingunolcms-1.19/Projects/VC2008/icc2ps.vcproj0000777000175300010010000001150411140536202016672 0ustar MartiNinguno lcms-1.19/Projects/VC2008/icclink.vcproj0000777000175300010010000001153011140536202017122 0ustar MartiNinguno lcms-1.19/Projects/VC2008/icctrans.vcproj0000777000175300010010000001166211140536203017323 0ustar MartiNinguno lcms-1.19/Projects/VC2008/jpegicc.vcproj0000777000175300010010000001220411140536203017112 0ustar MartiNinguno lcms-1.19/Projects/VC2008/lcms.rc0000777000175300010010000000526011230105376015554 0ustar MartiNinguno//Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #define APSTUDIO_HIDDEN_SYMBOLS #include "windows.h" #undef APSTUDIO_HIDDEN_SYMBOLS ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Spanish (Modern) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESN) #ifdef _WIN32 LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN #pragma code_page(1252) #endif //_WIN32 #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version // 1 VERSIONINFO FILEVERSION 1,0,19,0 PRODUCTVERSION 1,0,19,0 FILEFLAGSMASK 0x0L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "Marti Maria\0" VALUE "FileDescription", "lcms color engine\0" VALUE "FileVersion", "1.19\0" VALUE "InternalName", "lcms\0" VALUE "LegalCopyright", "Copyright © Marti Maria 2009\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "lcms.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "LittleCMS color engine\0" VALUE "ProductVersion", "1, 0, 19, 0\0" VALUE "SpecialBuild", "\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END #endif // !_MAC #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""windows.h""\r\n" "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // Spanish (Modern) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED lcms-1.19/Projects/VC2008/lcms.sln0000777000175300010010000001402711140536206015745 0ustar MartiNingunoMicrosoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Python", "Python.vcproj", "{4B1BD179-E07A-4503-AFE7-80887FD2325B}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Testbed", "Testbed.vcproj", "{9B33344A-BC90-46BC-8C5E-486486939058}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icc2ps", "icc2ps.vcproj", "{F531CA31-233E-4BEB-AF11-75537F42AC5D}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icclink", "icclink.vcproj", "{ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icctrans", "icctrans.vcproj", "{653AB287-0DF9-43C5-ADC8-42AD29A65E29}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpegicc", "jpegicc.vcproj", "{05DB644D-C93A-467A-8EA7-A7D126A5DBD7}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lcms", "lcms.vcproj", "{0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lcmsdll", "lcmsdll.vcproj", "{7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tifficc", "tifficc.vcproj", "{80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiffdiff", "tiffdiff.vcproj", "{3867AE1B-D562-48AE-89AC-5905A18418E4}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Debug|Win32.ActiveCfg = Debug|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Debug|Win32.Build.0 = Debug|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Release|Win32.ActiveCfg = Release|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Release|Win32.Build.0 = Release|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Debug|Win32.ActiveCfg = Debug|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Debug|Win32.Build.0 = Debug|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Release|Win32.ActiveCfg = Release|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Release|Win32.Build.0 = Release|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Debug|Win32.ActiveCfg = Debug|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Debug|Win32.Build.0 = Debug|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Release|Win32.ActiveCfg = Release|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Release|Win32.Build.0 = Release|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Debug|Win32.ActiveCfg = Debug|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Debug|Win32.Build.0 = Debug|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Release|Win32.ActiveCfg = Release|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Release|Win32.Build.0 = Release|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Debug|Win32.ActiveCfg = Debug|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Debug|Win32.Build.0 = Debug|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Release|Win32.ActiveCfg = Release|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Release|Win32.Build.0 = Release|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Debug|Win32.ActiveCfg = Debug|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Debug|Win32.Build.0 = Debug|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Release|Win32.ActiveCfg = Release|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Release|Win32.Build.0 = Release|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Debug|Win32.ActiveCfg = Debug|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Debug|Win32.Build.0 = Debug|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Release|Win32.ActiveCfg = Release|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Release|Win32.Build.0 = Release|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Debug|Win32.ActiveCfg = Debug|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Debug|Win32.Build.0 = Debug|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Release|Win32.ActiveCfg = Release|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Release|Win32.Build.0 = Release|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Debug|Win32.ActiveCfg = Debug|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Debug|Win32.Build.0 = Debug|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Release|Win32.ActiveCfg = Release|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Release|Win32.Build.0 = Release|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Debug|Win32.ActiveCfg = Debug|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Debug|Win32.Build.0 = Debug|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Release|Win32.ActiveCfg = Release|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal lcms-1.19/Projects/VC2008/lcms.vcproj0000777000175300010010000001367111277220165016465 0ustar MartiNinguno lcms-1.19/Projects/VC2008/lcmsdll.vcproj0000777000175300010010000001627011140536203017147 0ustar MartiNinguno lcms-1.19/Projects/VC2008/Python.vcproj0000777000175300010010000001330311140536202016767 0ustar MartiNinguno lcms-1.19/Projects/VC2008/resource.h0000777000175300010010000000066311272606371016301 0ustar MartiNinguno//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by lcms.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif lcms-1.19/Projects/VC2008/Testbed.vcproj0000777000175300010010000001224711140536202017106 0ustar MartiNinguno lcms-1.19/Projects/VC2008/tiffdiff.vcproj0000777000175300010010000001103211140536203017265 0ustar MartiNinguno lcms-1.19/Projects/VC2008/tifficc.vcproj0000777000175300010010000001216311140536203017121 0ustar MartiNinguno lcms-1.19/Projects/VC6/0000777000175300010010000000000011272606372014046 5ustar MartiNingunolcms-1.19/Projects/VC6/icc2ps.dsp0000777000175300010010000000767110135511336015747 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="icc2ps" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=icc2ps - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "icc2ps.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "icc2ps.mak" CFG="icc2ps - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "icc2ps - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "icc2ps - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "icc2ps - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "icc2psRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\bin\icc2ps.exe" !ELSEIF "$(CFG)" == "icc2ps - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "icc2psDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\bin\icc2ps.exe" /pdbtype:sept !ENDIF # Begin Target # Name "icc2ps - Win32 Release" # Name "icc2ps - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\samples\icc2ps.c # End Source File # Begin Source File SOURCE=..\..\samples\xgetopt.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC6/icclink.dsp0000777000175300010010000001001110135511336016156 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="icclink" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=icclink - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "icclink.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "icclink.mak" CFG="icclink - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "icclink - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "icclink - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "icclink - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "icclink___Win32_Release" # PROP BASE Intermediate_Dir "icclink___Win32_Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "icclinkRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\bin\icclink.exe" !ELSEIF "$(CFG)" == "icclink - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "icclink___Win32_Debug" # PROP BASE Intermediate_Dir "icclink___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "icclinkDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\bin\icclink.exe" /pdbtype:sept !ENDIF # Begin Target # Name "icclink - Win32 Release" # Name "icclink - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\samples\icclink.c # End Source File # Begin Source File SOURCE=..\..\samples\xgetopt.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC6/icctrans.dsp0000777000175300010010000001004010154037240016350 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="icctrans" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=icctrans - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "icctrans.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "icctrans.mak" CFG="icctrans - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "icctrans - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "icctrans - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "icctrans - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "IccTransRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\bin\icctrans.exe" !ELSEIF "$(CFG)" == "icctrans - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "IccTransDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\bin\icctrans.exe" /pdbtype:sept !ENDIF # Begin Target # Name "icctrans - Win32 Release" # Name "icctrans - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\samples\icctrans.c # End Source File # Begin Source File SOURCE=..\..\samples\vprf.c # End Source File # Begin Source File SOURCE=..\..\samples\xgetopt.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC6/jpegicc.dsp0000777000175300010010000001033410154037240016154 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="jpegicc" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=jpegicc - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "jpegicc.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "jpegicc.mak" CFG="jpegicc - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "jpegicc - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "jpegicc - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "jpegicc - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "JPEGIccRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib libjpeg.lib /nologo /subsystem:console /machine:I386 /out:"..\..\bin\jpegicc.exe" !ELSEIF "$(CFG)" == "jpegicc - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "jpegicc___Win32_Debug" # PROP BASE Intermediate_Dir "jpegicc___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "JPEGIccDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib libjpeg.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\bin\jpegicc.exe" /pdbtype:sept !ENDIF # Begin Target # Name "jpegicc - Win32 Release" # Name "jpegicc - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\jpegicc\iccjpeg.c # End Source File # Begin Source File SOURCE=..\..\jpegicc\jpegicc.c # End Source File # Begin Source File SOURCE=..\..\samples\vprf.c # End Source File # Begin Source File SOURCE=..\..\samples\xgetopt.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\..\jpegicc\iccjpeg.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC6/lcms.dsp0000777000175300010010000001112410315216522015505 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="lcms" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Static Library" 0x0104 CFG=lcms - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "lcms.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "lcms.mak" CFG="lcms - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "lcms - Win32 Release" (based on "Win32 (x86) Static Library") !MESSAGE "lcms - Win32 Debug" (based on "Win32 (x86) Static Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "lcms - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "LibRelease" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c # ADD CPP /nologo /MT /W4 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo # ADD LIB32 /nologo /out:"..\..\lib\MS\lcms.lib" !ELSEIF "$(CFG)" == "lcms - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "LibDebug" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo # ADD LIB32 /nologo /out:"..\..\lib\MS\lcmsd.lib" !ENDIF # Begin Target # Name "lcms - Win32 Release" # Name "lcms - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\src\cmscam02.c # End Source File # Begin Source File SOURCE=..\..\src\cmscam97.c # End Source File # Begin Source File SOURCE=..\..\src\cmscgats.c # End Source File # Begin Source File SOURCE=..\..\src\cmscnvrt.c # End Source File # Begin Source File SOURCE=..\..\src\cmserr.c # End Source File # Begin Source File SOURCE=..\..\src\cmsgamma.c # End Source File # Begin Source File SOURCE=..\..\src\cmsgmt.c # End Source File # Begin Source File SOURCE=..\..\src\cmsintrp.c # End Source File # Begin Source File SOURCE=..\..\src\cmsio0.c # End Source File # Begin Source File SOURCE=..\..\src\cmsio1.c # End Source File # Begin Source File SOURCE=..\..\src\cmslut.c # End Source File # Begin Source File SOURCE=..\..\src\cmsmatsh.c # End Source File # Begin Source File SOURCE=..\..\src\cmsmtrx.c # End Source File # Begin Source File SOURCE=..\..\src\cmsnamed.c # End Source File # Begin Source File SOURCE=..\..\src\cmspack.c # End Source File # Begin Source File SOURCE=..\..\src\cmspcs.c # End Source File # Begin Source File SOURCE=..\..\src\cmsps2.c # End Source File # Begin Source File SOURCE=..\..\src\cmssamp.c # End Source File # Begin Source File SOURCE=..\..\src\cmsvirt.c # End Source File # Begin Source File SOURCE=..\..\src\cmswtpnt.c # End Source File # Begin Source File SOURCE=..\..\src\cmsxform.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\..\include\icc34.h # End Source File # Begin Source File SOURCE=..\..\include\lcms.h # End Source File # End Group # Begin Group "Documentation" # PROP Default_Filter ".txt" # Begin Source File SOURCE=..\..\doc\LCMSAPI.TXT # End Source File # Begin Source File SOURCE=..\..\doc\TUTORIAL.TXT # End Source File # End Group # End Target # End Project lcms-1.19/Projects/VC6/lcms.dsw0000777000175300010010000000513610315216412015520 0ustar MartiNingunoMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! ############################################################################### Project: "Python"=".\Python.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Project: "Testbed"=".\Testbed.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Project: "icc2ps"=".\icc2ps.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Project: "icclink"=".\icclink.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Project: "icctrans"=".\icctrans.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Project: "jpegicc"=".\jpegicc.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Project: "lcms"=".\lcms.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "lcmsdll"=".\lcmsdll.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Project: "tifficc"=".\tifficc.dsp" - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ Begin Project Dependency Project_Dep_Name lcms End Project Dependency }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### lcms-1.19/Projects/VC6/lcms.opt0000777000175300010010000026200010730526766015541 0ustar MartiNingunoÐÏࡱá>þÿ þÿÿÿþÿÿÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿ  þÿÿÿ þÿÿÿþÿÿÿI"#$%&'()*þÿÿÿ,-./01234þÿÿÿ6789:;<=>þÿÿÿ@ABCDEFGHþÿÿÿrKLMNOPQRSþÿÿÿUVWXYZ[\]þÿÿÿ_`abcdefgþÿÿÿijklmnopqþÿÿÿœtuvwxyz{|þÿÿÿýÿÿÿ€Root Entryÿÿÿÿÿÿÿÿ°¶­¢m>ÈþÿÿÿWorkspace State ÿÿÿÿBrowser ÿÿÿÿ Editorÿÿÿÿÿÿÿÿ lcmsdll7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\lcmsdll.dsptestbed7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\Testbed.dsppython6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\Python.dsptifficc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\tifficc.dsplcms4E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\lcms.dspjpegicc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRl7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\lcmsdll.dsptestbed7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\Testbed.dsppython6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\Python.dsptifficc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\tifficc.dsplcms4E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\lcms.dspjpegicc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRMLJLl7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\lcmsdll.dsptestbed7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\Testbed.dsppython6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\Python.dsptifficc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\tifficc.dsplcms4E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\lcms.dspjpegicc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRWorkspace Window"ÿÿÿÿÿÿÿÿ!IPI_Pythonÿÿÿÿ+IPI_Testbed ÿÿÿÿ5IPI_icc2psÿÿÿÿÿÿÿÿ?Python ClassView lcms classes lcms classes lcms classes lcms classes ResourceViewlcms resourceslcms resourcesFileViewWorkspace 'lcms': 9 project(s) lcms files Header Fileslcms.hlcms.hWorkspace 'lcms': 9 project(s)FileViewjpegicc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êPython - Win32 Debug Python.dspCProjectPython - Win32 DebugPython - Win32 ReleasePython - Win32 DebugêSSBR CTargetItemPython - Win32 DebugSSBR Source Files CProjGroupSSBRDJW SWIG Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJW>FileViewjpegicc7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êTestbed - Win32 Debug Testbed.dspCProjectTestbed - Win32 DebugTestbed - Win32 ReleaseTestbed - Win32 DebugSSBR CTargetItemTestbed - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWgwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êicc2ps - Win32 Debug icc2ps.dspCProjecticc2ps - Win32 Debugicc2ps - Win32 Releaseicc2ps - Win32 DebugSSBR CTargetItemicc2ps - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWgwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRIPI_icclinkÿÿÿÿÿÿÿÿÿÿÿÿJIPI_icctrans ÿÿÿÿÿÿÿÿTIPI_jpegicc ÿÿÿÿ^IPI_lcmsÿÿÿÿh`êicclink - Win32 Debug icclink.dspCProjecticclink - Win32 Debugicclink - Win32 Releaseicclink - Win32 DebugSSBR CTargetItemicclink - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWgwin\home\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êicctrans - Win32 Debug icctrans.dspCProjecticctrans - Win32 Debugicctrans - Win32 Releaseicctrans - Win32 DebugSSBR CTargetItemicctrans - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êjpegicc - Win32 Debug jpegicc.dspCProjectjpegicc - Win32 Debugjpegicc - Win32 Releasejpegicc - Win32 DebugSSBR CTargetItemjpegicc - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êlcms - Win32 Debuglcms.dspCProjectlcms - Win32 Debuglcms - Win32 Releaselcms - Win32 DebugSSBR CTargetItemlcms - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJW Documentation CProjGroupSSBRDJWDJWDJWRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRIPI_lcmsdllÿÿÿÿÿÿÿÿÿÿÿÿsIPI_tifficcÿÿÿÿÿÿÿÿÿÿÿÿ~IPI_ ÿÿÿÿÿÿÿÿÿÿÿÿˆClassView Window"ÿÿÿÿÿÿÿÿÿÿÿÿ’`êlcmsdll - Win32 Debug lcmsdll.dspCProjectlcmsdll - Win32 Debuglcmsdll - Win32 Releaselcmsdll - Win32 DebugSSBR CTargetItemlcmsdll - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWDJWDJWojectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR‚ƒ„…†‡þÿÿÿ‰Š‹ŒŽ‘þÿÿÿ“”•–—˜™š›þÿÿÿþÿÿÿžŸ ¡¢£¤¥¦þÿÿÿ¨©ª«¬­®¯°þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`êtifficc - Win32 Debug tifficc.dspCProjecttifficc - Win32 Debugtifficc - Win32 Releasetifficc - Win32 DebugSSBR CTargetItemtifficc - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR`êÿÿÿÿÿÿficc.dspCProjecttifficc - Win32 Debugtifficc - Win32 Releasetifficc - Win32 DebugSSBR CTargetItemtifficc - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR ÿÿ CClsFldSlobPython€Testbed€icc2ps€icclink€icctrans€jpegicc€lcms€lcmsdll€tifficcrgetItemtifficc - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRDebuggerÿÿÿÿÿÿÿÿÿÿÿÿDocumentsÿÿÿÿÿÿÿÿÿÿÿÿ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿWatch1Watch2Watch3Watch4clink€icctrans€jpegicc€lcms€lcmsdll€tifficcrgetItemtifficc - Win32 DebugSSBR Source Files CProjGroupSSBRDJW Header Files CProjGroupSSBRDJWResource Files CProjGroupSSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TR˜C/C++}ðÈç…¹ÍçÙ‰ Óç,/ÀçO|?Ãç_…Àç¥|–Îç¶Š cÎ烊 <Á!22-E:\cygwin\home\Marti\lcms-1.17\include\lcms.h&{2AE27A3D-17F5-11D0-AF1B-00A0C90F9DE6},ÿÿÿÿÿÿÿÿüÿÿÿâÿÿÿn´SSBRDJWlcmsCProjectDependencySSBRDJWDJWDJWome\Marti\lcms-1.17\Projects\VC6\jpegicc.dspicctrans8E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icctrans.dspicclink7E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icclink.dspicc2ps6E:\cygwin\home\Marti\lcms-1.17\Projects\VC6\icc2ps.dspClass) COM_INTERFACE_ENTRY (baseClass) END_COM_MAP() public: virtual ULONG STDMETHODCALLTYPE AddRef(); virtual ULONG STDMETHODCALLTYPE Release(); virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void * * ppvObj); #define BEGIN_CONNECTION_PART(theClass, localClass) class X##localClass : public CConnectionPoint { public: X##localClass() { m_nOffset = offsetof(theClass, m_x##localClass); } #define CONNECTION_IID(iid) REFIID GetIID() { return iid; } #define DECLARE_AGGREGATABLE(x) #define DECLARE_CLASSFACTORY_EX(cf) #define DECLARE_CLASSFACTORY() #define DECLARE_CLASSFACTORY2(lic) #define DECLARE_CLASSFACTORY_AUTO_THREAD() #define DECLARE_CLASSFACTORY_SINGLETON(obj) #define DECLARE_CONNECTION_MAP() #define DECLARE_DISPATCH_MAP() #define DECLARE_DUAL_ERRORINFO() #define DECLARE_DYNAMIC(class_name) #define DECLARE_DYNCREATE(class_name) #define DECLARE_EMPTY_MSG_MAP() #define DECLARE_EVENT_MAP() #define DECLARE_EVENTSINK_MAP() #define DECLARE_GET_CONTROLLING_UNKNOWN() #define DECLARE_HANDLE(x) #define DECLARE_HANDLE32(x) #define DECLARE_INTERFACE(iface) interface iface #define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface #define DECLARE_INTERFACE_MAP() #define DECLARE_MESSAGE_MAP() #define DECLARE_NO_REGISTRY() #define DECLARE_NOT_AGGREGATABLE(x) #define DECLARE_OBJECT_DESCRIPTION(x) #define DECLARE_OLECMD_MAP() #define DECLARE_OLECREATE(class_name) #define DECLARE_OLECREAT¸W}éE_EX(class_name) #define DECLARE_OLECTLTYPE(class_name) #define DECLARE_OLETYPELIB(class_name) #define DECLARE_ONLY_AGGREGATABLE(x) #define DECLARE_OPAQUE32(x) #define DECLARE_PARSE_MAP() #define DECLARE_POLY_AGGREGATABLE(x) #define DECLARE_PROPERTY_SUPPORT(class) #define DECLARE_PROPPAGEIDS(class_name) #define DECLARE_PROTECT_FINAL_CONSTRUCT() #define DECLARE_REGISTRY(class, pid, vpid, nid, flags) #define DECLARE_REGISTRY_RESOURCE(x) #define DECLARE_REGISTRY_RESOURCEID(x) #define DECLARE_SERIAL(class_name) #define DECLARE_STATIC_REGISTRY_RESOURCE(x) #define DECLARE_STATIC_REGISTRY_RESOURCEID(x) #define DECLARE_VIEW_STATUS(statusFlags) #define DECLARE_WND_CLASS(WndClassName) #define DECLARE_WND_SUPERCLASS(WndClassName, OrigWndClassName) #define DEFINE_COMMAND(x, szCommand) #define DELEGATE_DUAL_INTERFACE(objectClass, dualClass) #define END_CONNECTION_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_DUAL_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define END_INTERFACE_PART(localClass) } m_x##localClass; friend class X##localClass; #define EXTERN_PROCESS_LOCAL(class_name, ident_name) extern AFX_DATA PROCESS_LOCAL(class_name, ident_name) #define EXT_SNAPINMENUID(id) #define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) #define IMPLEMENT_DYNAMIC(class_name, base_class_name) #define IMPLEMENT_DYNCREATE(class_name, base_class_name) #define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECREATE_EX(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) #define IMPLEMENT_OLECTLTYPE(class_name, idsUserTypeName, dwOleMisc) #define IMPLEMENT_OLETYPELIB(class_name, tlid, wVerMajor, wVerMinor) #define IMPLEMENT_SERIAL(class_name, base_class_name, wSchema) #define INIT_INTERFACE_PART(theClass, localClass) #define PROCESS_LOCAL(class_name, ident_name) AFX_DATADEF CProcessLocal ident_name; #define PURE = 0 #define SNAPINMENUID(id) #define THIS void #define THIS_ #define TRlcms-1.19/Projects/VC6/lcms.rc0000777000175300010010000000526010560077673015345 0ustar MartiNinguno//Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #define APSTUDIO_HIDDEN_SYMBOLS #include "windows.h" #undef APSTUDIO_HIDDEN_SYMBOLS ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Spanish (Modern) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESN) #ifdef _WIN32 LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN #pragma code_page(1252) #endif //_WIN32 #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version // 1 VERSIONINFO FILEVERSION 1,0,17,0 PRODUCTVERSION 1,0,17,0 FILEFLAGSMASK 0x0L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "Marti Maria\0" VALUE "FileDescription", "lcms color engine\0" VALUE "FileVersion", "1.17\0" VALUE "InternalName", "lcms\0" VALUE "LegalCopyright", "Copyright © Marti Maria 2007\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "lcms.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "LittleCMS color engine\0" VALUE "ProductVersion", "1, 0, 17, 0\0" VALUE "SpecialBuild", "\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END #endif // !_MAC #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""windows.h""\r\n" "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // Spanish (Modern) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED lcms-1.19/Projects/VC6/lcmsdll.dsp0000777000175300010010000001342210305362222016202 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="lcmsdll" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=lcmsdll - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "lcmsdll.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "lcmsdll.mak" CFG="lcmsdll - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "lcmsdll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "lcmsdll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "lcmsdll - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "lcmsdll___Win32_Release" # PROP BASE Intermediate_Dir "lcmsdll___Win32_Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "DllRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LCMSDLL_EXPORTS" /YX /FD /c # ADD CPP /nologo /Zp1 /MT /W3 /O2 /I "..\include" /I "..\..\include" /D "NDEBUG" /D "LCMS_DLL" /D "LCMS_DLL_BUILD" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fo"Release/" /Fd"Release/" /FD /c # SUBTRACT CPP /YX # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib uuid.lib /nologo /dll /pdb:none /machine:I386 /out:"..\..\bin\lcms.dll" /implib:"Release/lcms.lib" !ELSEIF "$(CFG)" == "lcmsdll - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "lcmsdll___Win32_Debug" # PROP BASE Intermediate_Dir "lcmsdll___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "DllDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LCMSDLL_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LCMSDLL_EXPORTS" /D "LCMS_DLL" /D "LCMS_DLL_BUILD" /FD /GZ /c # SUBTRACT CPP /YX # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib libc.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\lcmsd.dll" /pdbtype:sept !ENDIF # Begin Target # Name "lcmsdll - Win32 Release" # Name "lcmsdll - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\src\cmscam02.c # End Source File # Begin Source File SOURCE=..\..\src\cmscam97.c # End Source File # Begin Source File SOURCE=..\..\src\cmscgats.c # End Source File # Begin Source File SOURCE=..\..\src\cmscnvrt.c # End Source File # Begin Source File SOURCE=..\..\src\cmserr.c # End Source File # Begin Source File SOURCE=..\..\src\cmsgamma.c # End Source File # Begin Source File SOURCE=..\..\src\cmsgmt.c # End Source File # Begin Source File SOURCE=..\..\src\cmsintrp.c # End Source File # Begin Source File SOURCE=..\..\src\cmsio0.c # End Source File # Begin Source File SOURCE=..\..\src\cmsio1.c # End Source File # Begin Source File SOURCE=..\..\src\cmslut.c # End Source File # Begin Source File SOURCE=..\..\src\cmsmatsh.c # End Source File # Begin Source File SOURCE=..\..\src\cmsmtrx.c # End Source File # Begin Source File SOURCE=..\..\src\cmsnamed.c # End Source File # Begin Source File SOURCE=..\..\src\cmspack.c # End Source File # Begin Source File SOURCE=..\..\src\cmspcs.c # End Source File # Begin Source File SOURCE=..\..\src\cmsps2.c # End Source File # Begin Source File SOURCE=..\..\src\cmssamp.c # End Source File # Begin Source File SOURCE=..\..\src\cmsvirt.c # End Source File # Begin Source File SOURCE=..\..\src\cmswtpnt.c # End Source File # Begin Source File SOURCE=..\..\src\cmsxform.c # End Source File # Begin Source File SOURCE=..\..\src\lcms.def # End Source File # Begin Source File SOURCE=.\lcms.rc # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\..\include\icc34.h # End Source File # Begin Source File SOURCE=..\..\include\lcms.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC6/Python.dsp0000777000175300010010000001116610467122376016051 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="Python" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 CFG=Python - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "Python.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "Python.mak" CFG="Python - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "Python - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "Python - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "Python - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Python___Win32_Release" # PROP BASE Intermediate_Dir "Python___Win32_Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "PythonRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PYTHON_EXPORTS" /YX /FD /c # ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PYTHON_EXPORTS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /dll /machine:I386 /out:"..\..\python\_lcms.pyd" !ELSEIF "$(CFG)" == "Python - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "PythonDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PYTHON_EXPORTS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PYTHON_EXPORTS" /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\lcmsd.pyd" /pdbtype:sept !ENDIF # Begin Target # Name "Python - Win32 Release" # Name "Python - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\python\lcms_wrap.cxx # End Source File # End Group # Begin Group "SWIG Files" # PROP Default_Filter ".i" # Begin Source File SOURCE=..\..\python\lcms.i !IF "$(CFG)" == "Python - Win32 Release" # PROP Ignore_Default_Tool 1 # Begin Custom Build InputDir=..\..\python InputPath=..\..\python\lcms.i InputName=lcms "$(InputDir)\$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" cd ..\..\python swig -c++ -python -DLCMS_APIONLY -I..\include -o $(InputDir)\$(InputName)_wrap.cxx $(InputPath) # End Custom Build !ELSEIF "$(CFG)" == "Python - Win32 Debug" # Begin Custom Build InputDir=..\..\python InputPath=..\..\python\lcms.i InputName=lcms "$(InputDir)\$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" cd ..\..\python swig -c++ -python -DLCMS_APIONLY -I..\include -o $(InputDir)\$(InputName)_wrap.cxx $(InputPath) # End Custom Build !ENDIF # End Source File # End Group # End Target # End Project lcms-1.19/Projects/VC6/Python.plg0000777000175300010010000000757310652334670016052 0ustar MartiNinguno

Build Log

--------------------Configuration: lcms - Win32 Debug--------------------

Command Lines

Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2C.tmp" with contents [ /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fo"LibDebug/" /Fd"LibDebug/" /FD /GZ /c "E:\cygwin\home\Marti\lcms-1.17\src\cmscam02.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmscam97.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmscgats.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmscnvrt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmserr.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsgamma.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsgmt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsintrp.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsio0.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsio1.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmslut.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsmatsh.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsmtrx.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsnamed.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmspack.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmspcs.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsps2.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmssamp.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsvirt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmswtpnt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsxform.c" ] Creating command line "cl.exe @C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2C.tmp" Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2D.tmp" with contents [ /nologo /out:"..\..\lib\MS\lcmsd.lib" ".\LibDebug\cmscam02.obj" ".\LibDebug\cmscam97.obj" ".\LibDebug\cmscgats.obj" ".\LibDebug\cmscnvrt.obj" ".\LibDebug\cmserr.obj" ".\LibDebug\cmsgamma.obj" ".\LibDebug\cmsgmt.obj" ".\LibDebug\cmsintrp.obj" ".\LibDebug\cmsio0.obj" ".\LibDebug\cmsio1.obj" ".\LibDebug\cmslut.obj" ".\LibDebug\cmsmatsh.obj" ".\LibDebug\cmsmtrx.obj" ".\LibDebug\cmsnamed.obj" ".\LibDebug\cmspack.obj" ".\LibDebug\cmspcs.obj" ".\LibDebug\cmsps2.obj" ".\LibDebug\cmssamp.obj" ".\LibDebug\cmsvirt.obj" ".\LibDebug\cmswtpnt.obj" ".\LibDebug\cmsxform.obj" ] Creating command line "link.exe -lib @C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2D.tmp"

Output Window

Compiling... cmscam02.c cmscam97.c cmscgats.c cmscnvrt.c cmserr.c cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c cmsio1.c cmslut.c cmsmatsh.c cmsmtrx.c cmsnamed.c cmspack.c cmspcs.c cmsps2.c cmssamp.c e:\cygwin\home\marti\lcms-1.17\src\cmssamp.c(462) : warning C4550: expression evaluates to a function which is missing an argument list e:\cygwin\home\marti\lcms-1.17\src\cmssamp.c(463) : warning C4550: expression evaluates to a function which is missing an argument list cmsvirt.c cmswtpnt.c Generating Code... Compiling... cmsxform.c Generating Code... Creating library...

--------------------Configuration: Python - Win32 Debug--------------------

Command Lines

Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2E.bat" with contents [ @echo off cd ..\..\python swig -c++ -python -DLCMS_APIONLY -I..\include -o \cygwin\home\Marti\lcms-1.17\python\lcms_wrap.cxx ..\..\python\lcms.i ] Creating command line "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2E.bat" Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2F.tmp" with contents [ /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PYTHON_EXPORTS" /Fp"PythonDebug/Python.pch" /YX /Fo"PythonDebug/" /Fd"PythonDebug/" /FD /GZ /c "E:\cygwin\home\Marti\lcms-1.17\python\lcms_wrap.cxx" ] Creating command line "cl.exe @C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP2F.tmp" Performing Custom Build Step on ..\..\python\lcms.i Error executing c:\windows\system32\cmd.exe.

Output Window

Results

lcmsd.pyd - 1 error(s), 2 warning(s)
lcms-1.19/Projects/VC6/PythonDebug/0000777000175300010010000000000011230104762016264 5ustar MartiNingunolcms-1.19/Projects/VC6/resource.h0000777000175300010010000000066311272606371016055 0ustar MartiNinguno//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by lcms.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif lcms-1.19/Projects/VC6/Testbed.dsp0000777000175300010010000001021610135511336016143 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="Testbed" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=Testbed - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "Testbed.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "Testbed.mak" CFG="Testbed - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "Testbed - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "Testbed - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "Testbed - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Testbed___Win32_Release" # PROP BASE Intermediate_Dir "Testbed___Win32_Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "TestBedRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /MT /W3 /O2 /Ob1 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "CHECK_PERFORMANCE" /FD /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib mscms.lib /nologo /subsystem:console /machine:I386 /out:"..\..\testbed\testcms.exe" !ELSEIF "$(CFG)" == "Testbed - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Testbed___Win32_Debug" # PROP BASE Intermediate_Dir "Testbed___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "TestBedDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c # SUBTRACT CPP /YX # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib mscms.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\testbed\testcms.exe" /pdbtype:sept !ENDIF # Begin Target # Name "Testbed - Win32 Release" # Name "Testbed - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\testbed\testcms.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # Begin Source File SOURCE=..\..\include\icc34.h # End Source File # Begin Source File SOURCE=..\..\include\lcms.h # End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC6/Testbed.plg0000777000175300010010000000667110652336654016165 0ustar MartiNinguno

Build Log

--------------------Configuration: lcms - Win32 Debug--------------------

Command Lines

Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP9F.tmp" with contents [ /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fo"LibDebug/" /Fd"LibDebug/" /FD /GZ /c "E:\cygwin\home\Marti\lcms-1.17\src\cmscam02.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmscam97.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmscgats.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmscnvrt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmserr.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsgamma.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsgmt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsintrp.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsio0.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsio1.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmslut.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsmatsh.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsmtrx.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsnamed.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmspack.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmspcs.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsps2.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmssamp.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsvirt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmswtpnt.c" "E:\cygwin\home\Marti\lcms-1.17\src\cmsxform.c" ] Creating command line "cl.exe @C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSP9F.tmp" Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSPA0.tmp" with contents [ /nologo /out:"..\..\lib\MS\lcmsd.lib" ".\LibDebug\cmscam02.obj" ".\LibDebug\cmscam97.obj" ".\LibDebug\cmscgats.obj" ".\LibDebug\cmscnvrt.obj" ".\LibDebug\cmserr.obj" ".\LibDebug\cmsgamma.obj" ".\LibDebug\cmsgmt.obj" ".\LibDebug\cmsintrp.obj" ".\LibDebug\cmsio0.obj" ".\LibDebug\cmsio1.obj" ".\LibDebug\cmslut.obj" ".\LibDebug\cmsmatsh.obj" ".\LibDebug\cmsmtrx.obj" ".\LibDebug\cmsnamed.obj" ".\LibDebug\cmspack.obj" ".\LibDebug\cmspcs.obj" ".\LibDebug\cmsps2.obj" ".\LibDebug\cmssamp.obj" ".\LibDebug\cmsvirt.obj" ".\LibDebug\cmswtpnt.obj" ".\LibDebug\cmsxform.obj" ] Creating command line "link.exe -lib @C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSPA0.tmp"

Output Window

Compiling... cmscam02.c cmscam97.c cmscgats.c cmscnvrt.c cmserr.c cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c cmsio1.c cmslut.c cmsmatsh.c cmsmtrx.c cmsnamed.c cmspack.c cmspcs.c cmsps2.c cmssamp.c cmsvirt.c cmswtpnt.c Generating Code... Compiling... cmsxform.c Generating Code... Creating library...

--------------------Configuration: Testbed - Win32 Debug--------------------

Command Lines

Creating temporary file "C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSPA1.tmp" with contents [ /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"TestBedDebug/" /Fd"TestBedDebug/" /FD /GZ /c "E:\cygwin\home\Marti\lcms-1.17\testbed\testcms.c" ] Creating command line "cl.exe @C:\DOCUME~1\Marti.SOL\CONFIG~1\Temp\RSPA1.tmp" Creating command line "link.exe kernel32.lib user32.lib mscms.lib /nologo /subsystem:console /incremental:yes /pdb:"testcms.pdb" /debug /machine:I386 /out:"..\..\testbed\testcms.exe" /pdbtype:sept ".\TestBedDebug\testcms.obj" "\cygwin\home\Marti\lcms-1.17\lib\MS\lcmsd.lib" "

Output Window

Compiling... testcms.c Linking...

Results

testcms.exe - 0 error(s), 0 warning(s)
lcms-1.19/Projects/VC6/tifficc.dsp0000777000175300010010000001020510154037240016154 0ustar MartiNinguno# Microsoft Developer Studio Project File - Name="tifficc" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Console Application" 0x0103 CFG=tifficc - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "tifficc.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "tifficc.mak" CFG="tifficc - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "tifficc - Win32 Release" (based on "Win32 (x86) Console Application") !MESSAGE "tifficc - Win32 Debug" (based on "Win32 (x86) Console Application") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "tifficc - Win32 Release" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir "" # PROP Intermediate_Dir "tifficcRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0xc0a /d "NDEBUG" # ADD RSC /l 0x417 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 # ADD LINK32 kernel32.lib user32.lib gdi32.lib libtiff.lib zlib.lib libjpeg.lib libc.lib /nologo /subsystem:console /machine:I386 /nodefaultlib /out:"..\..\bin\tifficc.exe" !ELSEIF "$(CFG)" == "tifficc - Win32 Debug" # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "tifficc___Win32_Debug" # PROP BASE Intermediate_Dir "tifficc___Win32_Debug" # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir "" # PROP Intermediate_Dir "tifficcDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0xc0a /d "_DEBUG" # ADD RSC /l 0x417 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept # ADD LINK32 kernel32.lib user32.lib gdi32.lib libtiff.lib zlib.lib libjpeg.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\bin\tifficc.exe" /pdbtype:sept !ENDIF # Begin Target # Name "tifficc - Win32 Release" # Name "tifficc - Win32 Debug" # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File SOURCE=..\..\tifficc\tifficc.c # End Source File # Begin Source File SOURCE=..\..\samples\vprf.c # End Source File # Begin Source File SOURCE=..\..\samples\xgetopt.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project lcms-1.19/Projects/VC7/0000777000175300010010000000000011272606372014047 5ustar MartiNingunolcms-1.19/Projects/VC7/icc2ps.vcproj0000777000175300010010000000777410237154770016501 0ustar MartiNinguno lcms-1.19/Projects/VC7/icclink.vcproj0000777000175300010010000001002010237154770016704 0ustar MartiNinguno lcms-1.19/Projects/VC7/icctrans.vcproj0000777000175300010010000001014410237154770017105 0ustar MartiNinguno lcms-1.19/Projects/VC7/jpegicc.vcproj0000777000175300010010000001045210237154770016705 0ustar MartiNinguno lcms-1.19/Projects/VC7/lcms.rc0000777000175300010010000000526010560077651015342 0ustar MartiNinguno//Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #define APSTUDIO_HIDDEN_SYMBOLS #include "windows.h" #undef APSTUDIO_HIDDEN_SYMBOLS ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Spanish (Modern) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ESN) #ifdef _WIN32 LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MODERN #pragma code_page(1252) #endif //_WIN32 #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version // 1 VERSIONINFO FILEVERSION 1,0,17,0 PRODUCTVERSION 1,0,17,0 FILEFLAGSMASK 0x0L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "Marti Maria\0" VALUE "FileDescription", "lcms color engine\0" VALUE "FileVersion", "1.17\0" VALUE "InternalName", "lcms\0" VALUE "LegalCopyright", "Copyright © Marti Maria 2007\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "lcms.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "LittleCMS color engine\0" VALUE "ProductVersion", "1, 0, 17, 0\0" VALUE "SpecialBuild", "\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END #endif // !_MAC #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#include ""windows.h""\r\n" "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // Spanish (Modern) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED lcms-1.19/Projects/VC7/lcms.sln0000777000175300010010000001364410315217026015525 0ustar MartiNingunoMicrosoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Python", "Python.vcproj", "{4B1BD179-E07A-4503-AFE7-80887FD2325B}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Testbed", "Testbed.vcproj", "{9B33344A-BC90-46BC-8C5E-486486939058}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icc2ps", "icc2ps.vcproj", "{F531CA31-233E-4BEB-AF11-75537F42AC5D}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icclink", "icclink.vcproj", "{ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icctrans", "icctrans.vcproj", "{653AB287-0DF9-43C5-ADC8-42AD29A65E29}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jpegicc", "jpegicc.vcproj", "{05DB644D-C93A-467A-8EA7-A7D126A5DBD7}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lcms", "lcms.vcproj", "{0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lcmsdll", "lcmsdll.vcproj", "{7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tifficc", "tifficc.vcproj", "{80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiffdiff", "tiffdiff.vcproj", "{3867AE1B-D562-48AE-89AC-5905A18418E4}" ProjectSection(ProjectDependencies) = postProject {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} = {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854} EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Debug.ActiveCfg = Debug|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Debug.Build.0 = Debug|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Release.ActiveCfg = Release|Win32 {4B1BD179-E07A-4503-AFE7-80887FD2325B}.Release.Build.0 = Release|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Debug.ActiveCfg = Debug|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Debug.Build.0 = Debug|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Release.ActiveCfg = Release|Win32 {9B33344A-BC90-46BC-8C5E-486486939058}.Release.Build.0 = Release|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Debug.ActiveCfg = Debug|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Debug.Build.0 = Debug|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Release.ActiveCfg = Release|Win32 {F531CA31-233E-4BEB-AF11-75537F42AC5D}.Release.Build.0 = Release|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Debug.ActiveCfg = Debug|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Debug.Build.0 = Debug|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Release.ActiveCfg = Release|Win32 {ED798BF3-A6B6-461E-BA73-FB3DB6A405E7}.Release.Build.0 = Release|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Debug.ActiveCfg = Debug|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Debug.Build.0 = Debug|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Release.ActiveCfg = Release|Win32 {653AB287-0DF9-43C5-ADC8-42AD29A65E29}.Release.Build.0 = Release|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Debug.ActiveCfg = Debug|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Debug.Build.0 = Debug|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Release.ActiveCfg = Release|Win32 {05DB644D-C93A-467A-8EA7-A7D126A5DBD7}.Release.Build.0 = Release|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Debug.ActiveCfg = Debug|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Debug.Build.0 = Debug|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Release.ActiveCfg = Release|Win32 {0F1D6674-D802-4AC0-A4C3-14FCB8EE8854}.Release.Build.0 = Release|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Debug.ActiveCfg = Debug|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Debug.Build.0 = Debug|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Release.ActiveCfg = Release|Win32 {7F0F763A-BFD2-4AB1-B392-5F3DEAED6A0B}.Release.Build.0 = Release|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Debug.ActiveCfg = Debug|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Debug.Build.0 = Debug|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Release.ActiveCfg = Release|Win32 {80BDA079-63BA-4B6A-ACA7-74EFB9FB5A17}.Release.Build.0 = Release|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Debug.ActiveCfg = Debug|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Debug.Build.0 = Debug|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Release.ActiveCfg = Release|Win32 {3867AE1B-D562-48AE-89AC-5905A18418E4}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal lcms-1.19/Projects/VC7/lcms.vcproj0000777000175300010010000001231410315226766016240 0ustar MartiNinguno lcms-1.19/Projects/VC7/lcmsdll.vcproj0000777000175300010010000001412610315226766016737 0ustar MartiNinguno lcms-1.19/Projects/VC7/Python.vcproj0000777000175300010010000001147410471030676016565 0ustar MartiNinguno lcms-1.19/Projects/VC7/resource.h0000777000175300010010000000066311272606371016056 0ustar MartiNinguno//{{NO_DEPENDENCIES}} // Microsoft Developer Studio generated include file. // Used by lcms.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif lcms-1.19/Projects/VC7/Testbed.vcproj0000777000175300010010000001064610272747202016675 0ustar MartiNinguno lcms-1.19/Projects/VC7/tiffdiff.vcproj0000777000175300010010000000723210332400710017044 0ustar MartiNinguno lcms-1.19/Projects/VC7/tifficc.vcproj0000777000175300010010000001036510243137410016700 0ustar MartiNinguno lcms-1.19/python/0000777000175300010010000000000011272606372013200 5ustar MartiNingunolcms-1.19/python/lcms.i0000777000175300010010000004260411152216034014306 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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. // // THIS SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, // EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY // WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. // // IN NO EVENT SHALL MARTI MARIA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, // INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, // OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, // WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF // LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE // OF THIS SOFTWARE. // // Version 1.17 /* File lcms.i */ %module lcms %{ #include "lcms.h" %} #define register %varargs(char* args) cmsSignalError; %ignore USE_FLOAT; %ignore USE_C; %ignore USE_ASSEMBLER; %ignore USE_INLINE; %ignore LCMS_DLL; %ignore LCMS_DLL_BUILD; %ignore USE_BIG_ENDIAN; %ignore USE_INT64; %ignore USE_CUSTOM_SWAB; %ignore M_PI; %ignore LOGE; %ignore MAX_PATH; %ignore TRUE; %ignore FALSE; %ignore _cmsSAMPLER; %ignore SAMPLEDCURVE; %ignore LPSAMPLEDCURVE; %rename (cmsSaveProfile) _cmsSaveProfile; %{ static PyObject *lcmsError; static volatile int InErrorFlag; static int MyErrorHandler(int Severity, const char* Txt) { if (Severity == LCMS_ERRC_WARNING) PyErr_Warn(lcmsError, (char*) Txt); else PyErr_SetString(lcmsError, Txt); InErrorFlag = 1; return 1; } %} %init %{ lcmsError = PyErr_NewException("lcms.error", NULL, NULL); PyDict_SetItemString(d, "error", lcmsError); cmsSetErrorHandler(MyErrorHandler); %} %exception %{ InErrorFlag = 0; $function if (InErrorFlag) SWIG_fail; %} /* * Some typemaps */ /* * Gamma triple. Must be specified as tuple. */ %typemap(in) LPGAMMATABLE[3](LPGAMMATABLE gamma[3]) { PyObject* tmp[3]; if (PyTuple_Check($input)) { if (!PyArg_ParseTuple($input,"OOO",&tmp[0],&tmp[1],&tmp[2])) { PyErr_SetString(PyExc_TypeError,"gamma must have 3 elements"); return NULL; } if ((SWIG_ConvertPtr(tmp[0], (void **) &gamma[0], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; if ((SWIG_ConvertPtr(tmp[1], (void **) &gamma[1], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; if ((SWIG_ConvertPtr(tmp[2], (void **) &gamma[2], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; $1 = gamma; } else { PyErr_SetString(PyExc_TypeError,"expected a tuple."); return NULL; } } /* * 1-Color containers */ %inline %{ typedef struct { WORD w[MAXCHANNELS]; } COLORW; typedef COLORW* LPCOLORW; typedef struct { BYTE b[MAXCHANNELS]; } COLORB; typedef COLORB* LPCOLORB; typedef struct { LCMSHANDLE hIT8; } IT8; typedef IT8* LPIT8; %} %include "lcms.h" /* ** Extend our basic types */ %extend COLORB { COLORB() { LPCOLORB v; v = (LPCOLORB) _cmsMalloc(sizeof(COLORB)); ZeroMemory(v, sizeof(COLORB)); return v; } ~COLORB() { _cmsFree(self); } const char* __repr__() { return "Color 8 bps"; } WORD __getitem__(int key) { return self -> b[key]; } void __setitem__(int key, int val) { self -> b[key] = (BYTE) val; } }; %extend COLORW { COLORW() { LPCOLORW v; v = (LPCOLORW) _cmsMalloc(sizeof(COLORW)); ZeroMemory(v, sizeof(COLORW)); return v; } ~COLORB() { _cmsFree(self); } const char* __repr__() { return "Color 16 bps"; } WORD __getitem__(int key) { return self -> w[key]; } void __setitem__(int key, int val) { self -> w[key] = (WORD) val; } }; %extend cmsCIEXYZ { cmsCIEXYZ(double x=0, double y=0, double z=0) { LPcmsCIEXYZ v; v = (LPcmsCIEXYZ) _cmsMalloc(sizeof(cmsCIEXYZ)); v->X = x; v->Y = y; v->Z = z; return v; } ~cmsCIEXYZ() { _cmsFree(self); } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "XYZ [%g, %g, %g]", self->X,self->Y,self->Z); return Buffer; } }; %extend cmsCIExyY { cmsCIExyY(double x=0, double y=0, double Y=0) { LPcmsCIExyY v; v = (LPcmsCIExyY) _cmsMalloc(sizeof(cmsCIExyY)); v->x = x; v->y = y; v->Y = Y; return v; } ~cmsCIExyY() { _cmsFree(self); } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "xyY [%g, %g, %g]", self->x,self->y,self->Y); return Buffer; } }; %extend cmsCIELab { cmsCIELab(double L=0, double a=0, double b=0) { LPcmsCIELab v; v = (LPcmsCIELab) _cmsMalloc(sizeof(cmsCIELab)); v->L = L; v->a = a; v->b = b; return v; } ~cmsCIELab() { _cmsFree(self); } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "Lab [%g, %g, %g]", self->L,self->a,self->b); return Buffer; } int __cmp__(cmsCIELab* a) { return cmsDeltaE(self, a) > 0.0; } }; %extend cmsCIELCh { cmsCIELCh(double L=0, double C=0, double h=0) { LPcmsCIELCh v; v = (LPcmsCIELCh) _cmsMalloc(sizeof(cmsCIELCh)); v->L = L; v->C = C; v->h = h; return v; } ~cmsCIELCh() { _cmsFree(self); } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "LCh [%g, %g, %g]", self->L,self->C,self->h); return Buffer; } }; %extend cmsJCh { cmsJCh(double J=0, double C=0, double h=0) { LPcmsJCh v; v = (LPcmsJCh) _cmsMalloc(sizeof(cmsJCh)); v->J = J; v->C = C; v->h = h; return v; } ~cmsJCh() { _cmsFree(self); } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "CIECAM JCh [%g, %g, %g]", self->J,self->C,self->h); return Buffer; } }; %extend GAMMATABLE { GAMMATABLE(double Gamma, int nEntries=256) { return Gamma <= 0 ? cmsAllocGamma(nEntries) : cmsBuildGamma(nEntries, Gamma); } ~GAMMATABLE() { cmsFreeGamma(self); } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "Gamma Table of %d entries [estimated gamma %g]", self ->nEntries, cmsEstimateGamma(self)); return Buffer; } WORD __getitem__(int key) { return self -> GammaTable[key]; } void __setitem__(int key, WORD val) { self -> GammaTable[key] = val; } }; %extend cmsCIExyYTRIPLE { cmsCIExyYTRIPLE(cmsCIExyY* Red, cmsCIExyY* Green, cmsCIExyY* Blue) { LPcmsCIExyYTRIPLE v; v = (LPcmsCIExyYTRIPLE) _cmsMalloc(sizeof(cmsCIExyYTRIPLE)); CopyMemory(&v->Red, Red, sizeof(cmsCIExyY)); CopyMemory(&v->Green, Green, sizeof(cmsCIExyY)); CopyMemory(&v->Blue, Blue, sizeof(cmsCIExyY)); return v; } ~cmsCIExyYTRIPLE() { _cmsFree(self); } const char* __repr__() { return "xyY Triple"; } }; %extend cmsCIEXYZTRIPLE { cmsCIEXYZTRIPLE(cmsCIEXYZ* Red, cmsCIEXYZ* Green, cmsCIEXYZ* Blue) { LPcmsCIEXYZTRIPLE v; v = (LPcmsCIEXYZTRIPLE) _cmsMalloc(sizeof(cmsCIEXYZTRIPLE)); CopyMemory(&v->Red, Red, sizeof(cmsCIExyY)); CopyMemory(&v->Green, Green, sizeof(cmsCIExyY)); CopyMemory(&v->Blue, Blue, sizeof(cmsCIExyY)); return v; } ~cmsCIEXYZTRIPLE() { _cmsFree(self); } const char* __repr__() { return "xyY Triple"; } }; %extend cmsViewingConditions { cmsViewingConditions(cmsCIEXYZ* WhitePoint, double Yb, double La, int surround, double D_value) { LPcmsViewingConditions v; v = (LPcmsViewingConditions) _cmsMalloc(sizeof(cmsViewingConditions)); CopyMemory(&v -> whitePoint, WhitePoint, sizeof(cmsCIEXYZ)); v ->Yb = Yb; v ->La = La; v -> surround = surround; v -> D_value = D_value; return v; } ~cmsViewingConditions() { _cmsFree(self); } const char* __repr__() { return "CIECAM97s viewing conditions"; } }; %extend VEC3 { VEC3(double vx=0, double vy=0, double vz=0) { LPVEC3 v; v = (LPVEC3) _cmsMalloc(sizeof(VEC3)); v->n[VX] =vx; v->n[VY] =vy; v->n[VZ] =vz; return v; } ~VEC3() { _cmsFree(self); } double __getitem__(int key) { return self -> n[key]; } void __setitem__(int key, double val) { self -> n[key] = val; } const char* __repr__() { static char Buffer[256]; sprintf(Buffer, "VEC3 [%g, %g, %g]", self->n[VX],self->n[VY],self->n[VZ]); return Buffer; } }; class icTagSignature { }; %extend icTagSignature { icTagSignature(unsigned int n) { icTagSignature* v = (icTagSignature*) _cmsMalloc(sizeof(icTagSignature)); *v = (icTagSignature) n; return v; } ~icTagSignature() { _cmsFree(self); } }; %extend IT8 { IT8(const char* FileName) { LPIT8 it8; it8 = (LPIT8) _cmsMalloc(sizeof(IT8)); InErrorFlag = 0; it8 -> hIT8 = cmsIT8LoadFromFile(FileName); if (InErrorFlag) { _cmsFree(it8); return NULL; } return it8; } IT8() { LPIT8 it8; it8 = (LPIT8) _cmsMalloc(sizeof(IT8)); it8 -> hIT8 = cmsIT8Alloc(); return it8; } ~IT8() { cmsIT8Free(self -> hIT8); _cmsFree(self); } const char* __repr__() { return "CGATS.13/IT8 parser"; } int saveToFile(const char* Filename) { return cmsIT8SaveToFile(self -> hIT8, Filename); } int tableCount() { return cmsIT8TableCount(self -> hIT8); } int setTable(int n) { return cmsIT8SetTable(self -> hIT8, n); } const char* getSheetType() { return cmsIT8GetSheetType(self -> hIT8); } int setSheetType(const char* Type) { return cmsIT8SetSheetType(self -> hIT8, Type); } int addComment(const char* txt) { return cmsIT8SetComment(self -> hIT8, txt); } int setProperty(const char* Prop, const char* Str) { return cmsIT8SetPropertyStr(self -> hIT8, Prop, Str); } int setProperty(const char* Prop, double dbl) { return cmsIT8SetPropertyDbl(self -> hIT8, Prop, dbl); } int setPropertyAsHex(const char* Prop, int Val) { return cmsIT8SetPropertyHex(self -> hIT8, Prop, Val); } int setPropertyUncooked(const char* Prop, const char* Str) { return cmsIT8SetPropertyUncooked(self -> hIT8, Prop, Str); } const char* getProperty(const char* Prop) { return cmsIT8GetProperty(self -> hIT8, Prop); } double getPropertyAsDbl(const char* Prop) { return cmsIT8GetPropertyDbl(self -> hIT8, Prop); } const char* getData(int row, int col) { return cmsIT8GetDataRowCol(self -> hIT8, row, col); } const char* getData(const char* Patch, const char* Sample) { return cmsIT8GetData(self -> hIT8, Patch, Sample); } double getDataAsDbl(int row, int col) { return cmsIT8GetDataRowColDbl(self -> hIT8, row, col); } double getDataAsDbl(const char* Patch, const char* Sample) { return cmsIT8GetDataDbl(self -> hIT8, Patch, Sample); } int setData(int row, int col, const char* Val) { return cmsIT8SetDataRowCol(self ->hIT8, row, col, Val); } int setData(int row, int col, double dbl) { return cmsIT8SetDataRowColDbl(self ->hIT8, row, col, dbl); } int setData(const char* Patch, const char* Sample, const char* Val) { return cmsIT8SetData(self ->hIT8, Patch, Sample, Val); } int setData(const char* Patch, const char* Sample, double dbl) { return cmsIT8SetDataDbl(self ->hIT8, Patch, Sample, dbl); } int setDataFormat(int nSample, const char* Sample) { return cmsIT8SetDataFormat(self -> hIT8, nSample, Sample); } const char* getPatchName(int nPatch) { return cmsIT8GetPatchName(self -> hIT8, nPatch, NULL); } int getDataFormat(const char* Patch) { return cmsIT8GetDataFormat(self -> hIT8, Patch); } PyObject* enumDataFormat() { char** DataFormat; PyObject* TheList; PyObject* OneDataFormat; int i, n; n = cmsIT8EnumDataFormat(self -> hIT8, &DataFormat); TheList = PyList_New(n); if (!TheList) return NULL; for (i = 0; i < n; i++) { OneDataFormat = PyString_FromString(DataFormat[i]); PyList_SET_ITEM(TheList, i, OneDataFormat); } return TheList; } PyObject* enumProperties() { const char** Props; PyObject* TheList; PyObject* OneProp; int i, n; n = cmsIT8EnumProperties(self -> hIT8, &Props); TheList = PyList_New(n); if (!TheList) return NULL; for (i = 0; i < n; i++) { OneProp = PyString_FromString(Props[i]); PyList_SET_ITEM(TheList, i, OneProp); } return TheList; } int setTableByLabel(const char* cSet, const char *cFld = NULL, const char* ExpectedType = NULL) { return cmsIT8SetTableByLabel(self -> hIT8, cSet, cFld, ExpectedType); } PyObject* getRow(int n) { PyObject* TheList; PyObject* OneProp; int i; int nf = (int) cmsIT8GetPropertyDbl(self -> hIT8, "NUMBER_OF_FIELDS"); if (nf <= 0) return NULL; TheList = PyList_New(nf); if (!TheList) return NULL; for (i = 0; i < nf; i++) { OneProp = PyString_FromString(cmsIT8GetDataRowCol(self ->hIT8, n, i)); PyList_SET_ITEM(TheList, i, OneProp); } return TheList; } PyObject* getCol(const char *Patch) { PyObject* TheList; PyObject* OneProp; int i; int n = cmsIT8GetDataFormat(self -> hIT8, Patch); if (n < 0) return NULL; int ns = (int) cmsIT8GetPropertyDbl(self -> hIT8, "NUMBER_OF_SETS"); if (ns <= 0) return NULL; TheList = PyList_New(ns); if (!TheList) return NULL; for (i = 0; i < ns; i++) { OneProp = PyString_FromString(cmsIT8GetDataRowCol(self ->hIT8, i, n)); PyList_SET_ITEM(TheList, i, OneProp); } return TheList; } }; // ----------------------------------------------------------------------- TODO %inline %{ class StrPointer { }; %} %extend StrPointer { StrPointer(char* s) { return (StrPointer*) s; } }; lcms-1.19/python/lcms.py0000777000175300010010000027331411161176131014515 0ustar MartiNinguno# This file was automatically generated by SWIG (http://www.swig.org). # Version 1.3.36 # # Don't modify this file, modify the SWIG interface instead. # This file is compatible with both classic and new-style classes. import _lcms import new new_instancemethod = new.instancemethod try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic(self,class_type,name,value,static=1): if (name == "thisown"): return self.this.own(value) if (name == "this"): if type(value).__name__ == 'PySwigObject': self.__dict__[name] = value return method = class_type.__swig_setmethods__.get(name,None) if method: return method(self,value) if (not static) or hasattr(self,name): self.__dict__[name] = value else: raise AttributeError("You cannot add attributes to %s" % self) def _swig_setattr(self,class_type,name,value): return _swig_setattr_nondynamic(self,class_type,name,value,0) def _swig_getattr(self,class_type,name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name,None) if method: return method(self) raise AttributeError,name def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() except: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) import types try: _object = types.ObjectType _newclass = 1 except AttributeError: class _object : pass _newclass = 0 del types class COLORW(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, COLORW, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, COLORW, name) __swig_setmethods__["w"] = _lcms.COLORW_w_set __swig_getmethods__["w"] = _lcms.COLORW_w_get if _newclass:w = _swig_property(_lcms.COLORW_w_get, _lcms.COLORW_w_set) def __init__(self, *args): this = _lcms.new_COLORW(*args) try: self.this.append(this) except: self.this = this def __repr__(*args): return _lcms.COLORW___repr__(*args) def __getitem__(*args): return _lcms.COLORW___getitem__(*args) def __setitem__(*args): return _lcms.COLORW___setitem__(*args) __swig_destroy__ = _lcms.delete_COLORW __del__ = lambda self : None; COLORW_swigregister = _lcms.COLORW_swigregister COLORW_swigregister(COLORW) class COLORB(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, COLORB, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, COLORB, name) __swig_setmethods__["b"] = _lcms.COLORB_b_set __swig_getmethods__["b"] = _lcms.COLORB_b_get if _newclass:b = _swig_property(_lcms.COLORB_b_get, _lcms.COLORB_b_set) def __init__(self, *args): this = _lcms.new_COLORB(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_COLORB __del__ = lambda self : None; def __repr__(*args): return _lcms.COLORB___repr__(*args) def __getitem__(*args): return _lcms.COLORB___getitem__(*args) def __setitem__(*args): return _lcms.COLORB___setitem__(*args) COLORB_swigregister = _lcms.COLORB_swigregister COLORB_swigregister(COLORB) class IT8(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, IT8, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, IT8, name) __swig_setmethods__["hIT8"] = _lcms.IT8_hIT8_set __swig_getmethods__["hIT8"] = _lcms.IT8_hIT8_get if _newclass:hIT8 = _swig_property(_lcms.IT8_hIT8_get, _lcms.IT8_hIT8_set) def __init__(self, *args): this = _lcms.new_IT8(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_IT8 __del__ = lambda self : None; def __repr__(*args): return _lcms.IT8___repr__(*args) def saveToFile(*args): return _lcms.IT8_saveToFile(*args) def tableCount(*args): return _lcms.IT8_tableCount(*args) def setTable(*args): return _lcms.IT8_setTable(*args) def getSheetType(*args): return _lcms.IT8_getSheetType(*args) def setSheetType(*args): return _lcms.IT8_setSheetType(*args) def addComment(*args): return _lcms.IT8_addComment(*args) def setProperty(*args): return _lcms.IT8_setProperty(*args) def setPropertyAsHex(*args): return _lcms.IT8_setPropertyAsHex(*args) def setPropertyUncooked(*args): return _lcms.IT8_setPropertyUncooked(*args) def getProperty(*args): return _lcms.IT8_getProperty(*args) def getPropertyAsDbl(*args): return _lcms.IT8_getPropertyAsDbl(*args) def getData(*args): return _lcms.IT8_getData(*args) def getDataAsDbl(*args): return _lcms.IT8_getDataAsDbl(*args) def setData(*args): return _lcms.IT8_setData(*args) def setDataFormat(*args): return _lcms.IT8_setDataFormat(*args) def getPatchName(*args): return _lcms.IT8_getPatchName(*args) def getDataFormat(*args): return _lcms.IT8_getDataFormat(*args) def enumDataFormat(*args): return _lcms.IT8_enumDataFormat(*args) def enumProperties(*args): return _lcms.IT8_enumProperties(*args) def setTableByLabel(*args): return _lcms.IT8_setTableByLabel(*args) def getRow(*args): return _lcms.IT8_getRow(*args) def getCol(*args): return _lcms.IT8_getCol(*args) IT8_swigregister = _lcms.IT8_swigregister IT8_swigregister(IT8) NON_WINDOWS = _lcms.NON_WINDOWS LCMS_VERSION = _lcms.LCMS_VERSION class icCLutStruct(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, icCLutStruct, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, icCLutStruct, name) __repr__ = _swig_repr __swig_setmethods__["gridPoints"] = _lcms.icCLutStruct_gridPoints_set __swig_getmethods__["gridPoints"] = _lcms.icCLutStruct_gridPoints_get if _newclass:gridPoints = _swig_property(_lcms.icCLutStruct_gridPoints_get, _lcms.icCLutStruct_gridPoints_set) __swig_setmethods__["prec"] = _lcms.icCLutStruct_prec_set __swig_getmethods__["prec"] = _lcms.icCLutStruct_prec_get if _newclass:prec = _swig_property(_lcms.icCLutStruct_prec_get, _lcms.icCLutStruct_prec_set) __swig_setmethods__["pad1"] = _lcms.icCLutStruct_pad1_set __swig_getmethods__["pad1"] = _lcms.icCLutStruct_pad1_get if _newclass:pad1 = _swig_property(_lcms.icCLutStruct_pad1_get, _lcms.icCLutStruct_pad1_set) __swig_setmethods__["pad2"] = _lcms.icCLutStruct_pad2_set __swig_getmethods__["pad2"] = _lcms.icCLutStruct_pad2_get if _newclass:pad2 = _swig_property(_lcms.icCLutStruct_pad2_get, _lcms.icCLutStruct_pad2_set) __swig_setmethods__["pad3"] = _lcms.icCLutStruct_pad3_set __swig_getmethods__["pad3"] = _lcms.icCLutStruct_pad3_get if _newclass:pad3 = _swig_property(_lcms.icCLutStruct_pad3_get, _lcms.icCLutStruct_pad3_set) def __init__(self, *args): this = _lcms.new_icCLutStruct(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_icCLutStruct __del__ = lambda self : None; icCLutStruct_swigregister = _lcms.icCLutStruct_swigregister icCLutStruct_swigregister(icCLutStruct) class icLutAtoB(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, icLutAtoB, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, icLutAtoB, name) __repr__ = _swig_repr __swig_setmethods__["inputChan"] = _lcms.icLutAtoB_inputChan_set __swig_getmethods__["inputChan"] = _lcms.icLutAtoB_inputChan_get if _newclass:inputChan = _swig_property(_lcms.icLutAtoB_inputChan_get, _lcms.icLutAtoB_inputChan_set) __swig_setmethods__["outputChan"] = _lcms.icLutAtoB_outputChan_set __swig_getmethods__["outputChan"] = _lcms.icLutAtoB_outputChan_get if _newclass:outputChan = _swig_property(_lcms.icLutAtoB_outputChan_get, _lcms.icLutAtoB_outputChan_set) __swig_setmethods__["pad1"] = _lcms.icLutAtoB_pad1_set __swig_getmethods__["pad1"] = _lcms.icLutAtoB_pad1_get if _newclass:pad1 = _swig_property(_lcms.icLutAtoB_pad1_get, _lcms.icLutAtoB_pad1_set) __swig_setmethods__["pad2"] = _lcms.icLutAtoB_pad2_set __swig_getmethods__["pad2"] = _lcms.icLutAtoB_pad2_get if _newclass:pad2 = _swig_property(_lcms.icLutAtoB_pad2_get, _lcms.icLutAtoB_pad2_set) __swig_setmethods__["offsetB"] = _lcms.icLutAtoB_offsetB_set __swig_getmethods__["offsetB"] = _lcms.icLutAtoB_offsetB_get if _newclass:offsetB = _swig_property(_lcms.icLutAtoB_offsetB_get, _lcms.icLutAtoB_offsetB_set) __swig_setmethods__["offsetMat"] = _lcms.icLutAtoB_offsetMat_set __swig_getmethods__["offsetMat"] = _lcms.icLutAtoB_offsetMat_get if _newclass:offsetMat = _swig_property(_lcms.icLutAtoB_offsetMat_get, _lcms.icLutAtoB_offsetMat_set) __swig_setmethods__["offsetM"] = _lcms.icLutAtoB_offsetM_set __swig_getmethods__["offsetM"] = _lcms.icLutAtoB_offsetM_get if _newclass:offsetM = _swig_property(_lcms.icLutAtoB_offsetM_get, _lcms.icLutAtoB_offsetM_set) __swig_setmethods__["offsetC"] = _lcms.icLutAtoB_offsetC_set __swig_getmethods__["offsetC"] = _lcms.icLutAtoB_offsetC_get if _newclass:offsetC = _swig_property(_lcms.icLutAtoB_offsetC_get, _lcms.icLutAtoB_offsetC_set) __swig_setmethods__["offsetA"] = _lcms.icLutAtoB_offsetA_set __swig_getmethods__["offsetA"] = _lcms.icLutAtoB_offsetA_get if _newclass:offsetA = _swig_property(_lcms.icLutAtoB_offsetA_get, _lcms.icLutAtoB_offsetA_set) def __init__(self, *args): this = _lcms.new_icLutAtoB(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_icLutAtoB __del__ = lambda self : None; icLutAtoB_swigregister = _lcms.icLutAtoB_swigregister icLutAtoB_swigregister(icLutAtoB) class icLutBtoA(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, icLutBtoA, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, icLutBtoA, name) __repr__ = _swig_repr __swig_setmethods__["inputChan"] = _lcms.icLutBtoA_inputChan_set __swig_getmethods__["inputChan"] = _lcms.icLutBtoA_inputChan_get if _newclass:inputChan = _swig_property(_lcms.icLutBtoA_inputChan_get, _lcms.icLutBtoA_inputChan_set) __swig_setmethods__["outputChan"] = _lcms.icLutBtoA_outputChan_set __swig_getmethods__["outputChan"] = _lcms.icLutBtoA_outputChan_get if _newclass:outputChan = _swig_property(_lcms.icLutBtoA_outputChan_get, _lcms.icLutBtoA_outputChan_set) __swig_setmethods__["pad1"] = _lcms.icLutBtoA_pad1_set __swig_getmethods__["pad1"] = _lcms.icLutBtoA_pad1_get if _newclass:pad1 = _swig_property(_lcms.icLutBtoA_pad1_get, _lcms.icLutBtoA_pad1_set) __swig_setmethods__["pad2"] = _lcms.icLutBtoA_pad2_set __swig_getmethods__["pad2"] = _lcms.icLutBtoA_pad2_get if _newclass:pad2 = _swig_property(_lcms.icLutBtoA_pad2_get, _lcms.icLutBtoA_pad2_set) __swig_setmethods__["offsetB"] = _lcms.icLutBtoA_offsetB_set __swig_getmethods__["offsetB"] = _lcms.icLutBtoA_offsetB_get if _newclass:offsetB = _swig_property(_lcms.icLutBtoA_offsetB_get, _lcms.icLutBtoA_offsetB_set) __swig_setmethods__["offsetMat"] = _lcms.icLutBtoA_offsetMat_set __swig_getmethods__["offsetMat"] = _lcms.icLutBtoA_offsetMat_get if _newclass:offsetMat = _swig_property(_lcms.icLutBtoA_offsetMat_get, _lcms.icLutBtoA_offsetMat_set) __swig_setmethods__["offsetM"] = _lcms.icLutBtoA_offsetM_set __swig_getmethods__["offsetM"] = _lcms.icLutBtoA_offsetM_get if _newclass:offsetM = _swig_property(_lcms.icLutBtoA_offsetM_get, _lcms.icLutBtoA_offsetM_set) __swig_setmethods__["offsetC"] = _lcms.icLutBtoA_offsetC_set __swig_getmethods__["offsetC"] = _lcms.icLutBtoA_offsetC_get if _newclass:offsetC = _swig_property(_lcms.icLutBtoA_offsetC_get, _lcms.icLutBtoA_offsetC_set) __swig_setmethods__["offsetA"] = _lcms.icLutBtoA_offsetA_set __swig_getmethods__["offsetA"] = _lcms.icLutBtoA_offsetA_get if _newclass:offsetA = _swig_property(_lcms.icLutBtoA_offsetA_get, _lcms.icLutBtoA_offsetA_set) def __init__(self, *args): this = _lcms.new_icLutBtoA(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_icLutBtoA __del__ = lambda self : None; icLutBtoA_swigregister = _lcms.icLutBtoA_swigregister icLutBtoA_swigregister(icLutBtoA) MAXCHANNELS = _lcms.MAXCHANNELS PT_ANY = _lcms.PT_ANY PT_GRAY = _lcms.PT_GRAY PT_RGB = _lcms.PT_RGB PT_CMY = _lcms.PT_CMY PT_CMYK = _lcms.PT_CMYK PT_YCbCr = _lcms.PT_YCbCr PT_YUV = _lcms.PT_YUV PT_XYZ = _lcms.PT_XYZ PT_Lab = _lcms.PT_Lab PT_YUVK = _lcms.PT_YUVK PT_HSV = _lcms.PT_HSV PT_HLS = _lcms.PT_HLS PT_Yxy = _lcms.PT_Yxy PT_HiFi = _lcms.PT_HiFi PT_HiFi7 = _lcms.PT_HiFi7 PT_HiFi8 = _lcms.PT_HiFi8 PT_HiFi9 = _lcms.PT_HiFi9 PT_HiFi10 = _lcms.PT_HiFi10 PT_HiFi11 = _lcms.PT_HiFi11 PT_HiFi12 = _lcms.PT_HiFi12 PT_HiFi13 = _lcms.PT_HiFi13 PT_HiFi14 = _lcms.PT_HiFi14 PT_HiFi15 = _lcms.PT_HiFi15 TYPE_GRAY_8 = _lcms.TYPE_GRAY_8 TYPE_GRAY_8_REV = _lcms.TYPE_GRAY_8_REV TYPE_GRAY_16 = _lcms.TYPE_GRAY_16 TYPE_GRAY_16_REV = _lcms.TYPE_GRAY_16_REV TYPE_GRAY_16_SE = _lcms.TYPE_GRAY_16_SE TYPE_GRAYA_8 = _lcms.TYPE_GRAYA_8 TYPE_GRAYA_16 = _lcms.TYPE_GRAYA_16 TYPE_GRAYA_16_SE = _lcms.TYPE_GRAYA_16_SE TYPE_GRAYA_8_PLANAR = _lcms.TYPE_GRAYA_8_PLANAR TYPE_GRAYA_16_PLANAR = _lcms.TYPE_GRAYA_16_PLANAR TYPE_RGB_8 = _lcms.TYPE_RGB_8 TYPE_RGB_8_PLANAR = _lcms.TYPE_RGB_8_PLANAR TYPE_BGR_8 = _lcms.TYPE_BGR_8 TYPE_BGR_8_PLANAR = _lcms.TYPE_BGR_8_PLANAR TYPE_RGB_16 = _lcms.TYPE_RGB_16 TYPE_RGB_16_PLANAR = _lcms.TYPE_RGB_16_PLANAR TYPE_RGB_16_SE = _lcms.TYPE_RGB_16_SE TYPE_BGR_16 = _lcms.TYPE_BGR_16 TYPE_BGR_16_PLANAR = _lcms.TYPE_BGR_16_PLANAR TYPE_BGR_16_SE = _lcms.TYPE_BGR_16_SE TYPE_RGBA_8 = _lcms.TYPE_RGBA_8 TYPE_RGBA_8_PLANAR = _lcms.TYPE_RGBA_8_PLANAR TYPE_RGBA_16 = _lcms.TYPE_RGBA_16 TYPE_RGBA_16_PLANAR = _lcms.TYPE_RGBA_16_PLANAR TYPE_RGBA_16_SE = _lcms.TYPE_RGBA_16_SE TYPE_ARGB_8 = _lcms.TYPE_ARGB_8 TYPE_ARGB_16 = _lcms.TYPE_ARGB_16 TYPE_ABGR_8 = _lcms.TYPE_ABGR_8 TYPE_ABGR_16 = _lcms.TYPE_ABGR_16 TYPE_ABGR_16_PLANAR = _lcms.TYPE_ABGR_16_PLANAR TYPE_ABGR_16_SE = _lcms.TYPE_ABGR_16_SE TYPE_BGRA_8 = _lcms.TYPE_BGRA_8 TYPE_BGRA_16 = _lcms.TYPE_BGRA_16 TYPE_BGRA_16_SE = _lcms.TYPE_BGRA_16_SE TYPE_CMY_8 = _lcms.TYPE_CMY_8 TYPE_CMY_8_PLANAR = _lcms.TYPE_CMY_8_PLANAR TYPE_CMY_16 = _lcms.TYPE_CMY_16 TYPE_CMY_16_PLANAR = _lcms.TYPE_CMY_16_PLANAR TYPE_CMY_16_SE = _lcms.TYPE_CMY_16_SE TYPE_CMYK_8 = _lcms.TYPE_CMYK_8 TYPE_CMYKA_8 = _lcms.TYPE_CMYKA_8 TYPE_CMYK_8_REV = _lcms.TYPE_CMYK_8_REV TYPE_YUVK_8 = _lcms.TYPE_YUVK_8 TYPE_CMYK_8_PLANAR = _lcms.TYPE_CMYK_8_PLANAR TYPE_CMYK_16 = _lcms.TYPE_CMYK_16 TYPE_CMYK_16_REV = _lcms.TYPE_CMYK_16_REV TYPE_YUVK_16 = _lcms.TYPE_YUVK_16 TYPE_CMYK_16_PLANAR = _lcms.TYPE_CMYK_16_PLANAR TYPE_CMYK_16_SE = _lcms.TYPE_CMYK_16_SE TYPE_KYMC_8 = _lcms.TYPE_KYMC_8 TYPE_KYMC_16 = _lcms.TYPE_KYMC_16 TYPE_KYMC_16_SE = _lcms.TYPE_KYMC_16_SE TYPE_KCMY_8 = _lcms.TYPE_KCMY_8 TYPE_KCMY_8_REV = _lcms.TYPE_KCMY_8_REV TYPE_KCMY_16 = _lcms.TYPE_KCMY_16 TYPE_KCMY_16_REV = _lcms.TYPE_KCMY_16_REV TYPE_KCMY_16_SE = _lcms.TYPE_KCMY_16_SE TYPE_CMYK5_8 = _lcms.TYPE_CMYK5_8 TYPE_CMYK5_16 = _lcms.TYPE_CMYK5_16 TYPE_CMYK5_16_SE = _lcms.TYPE_CMYK5_16_SE TYPE_KYMC5_8 = _lcms.TYPE_KYMC5_8 TYPE_KYMC5_16 = _lcms.TYPE_KYMC5_16 TYPE_KYMC5_16_SE = _lcms.TYPE_KYMC5_16_SE TYPE_CMYKcm_8 = _lcms.TYPE_CMYKcm_8 TYPE_CMYKcm_8_PLANAR = _lcms.TYPE_CMYKcm_8_PLANAR TYPE_CMYKcm_16 = _lcms.TYPE_CMYKcm_16 TYPE_CMYKcm_16_PLANAR = _lcms.TYPE_CMYKcm_16_PLANAR TYPE_CMYKcm_16_SE = _lcms.TYPE_CMYKcm_16_SE TYPE_CMYK7_8 = _lcms.TYPE_CMYK7_8 TYPE_CMYK7_16 = _lcms.TYPE_CMYK7_16 TYPE_CMYK7_16_SE = _lcms.TYPE_CMYK7_16_SE TYPE_KYMC7_8 = _lcms.TYPE_KYMC7_8 TYPE_KYMC7_16 = _lcms.TYPE_KYMC7_16 TYPE_KYMC7_16_SE = _lcms.TYPE_KYMC7_16_SE TYPE_CMYK8_8 = _lcms.TYPE_CMYK8_8 TYPE_CMYK8_16 = _lcms.TYPE_CMYK8_16 TYPE_CMYK8_16_SE = _lcms.TYPE_CMYK8_16_SE TYPE_KYMC8_8 = _lcms.TYPE_KYMC8_8 TYPE_KYMC8_16 = _lcms.TYPE_KYMC8_16 TYPE_KYMC8_16_SE = _lcms.TYPE_KYMC8_16_SE TYPE_CMYK9_8 = _lcms.TYPE_CMYK9_8 TYPE_CMYK9_16 = _lcms.TYPE_CMYK9_16 TYPE_CMYK9_16_SE = _lcms.TYPE_CMYK9_16_SE TYPE_KYMC9_8 = _lcms.TYPE_KYMC9_8 TYPE_KYMC9_16 = _lcms.TYPE_KYMC9_16 TYPE_KYMC9_16_SE = _lcms.TYPE_KYMC9_16_SE TYPE_CMYK10_8 = _lcms.TYPE_CMYK10_8 TYPE_CMYK10_16 = _lcms.TYPE_CMYK10_16 TYPE_CMYK10_16_SE = _lcms.TYPE_CMYK10_16_SE TYPE_KYMC10_8 = _lcms.TYPE_KYMC10_8 TYPE_KYMC10_16 = _lcms.TYPE_KYMC10_16 TYPE_KYMC10_16_SE = _lcms.TYPE_KYMC10_16_SE TYPE_CMYK11_8 = _lcms.TYPE_CMYK11_8 TYPE_CMYK11_16 = _lcms.TYPE_CMYK11_16 TYPE_CMYK11_16_SE = _lcms.TYPE_CMYK11_16_SE TYPE_KYMC11_8 = _lcms.TYPE_KYMC11_8 TYPE_KYMC11_16 = _lcms.TYPE_KYMC11_16 TYPE_KYMC11_16_SE = _lcms.TYPE_KYMC11_16_SE TYPE_CMYK12_8 = _lcms.TYPE_CMYK12_8 TYPE_CMYK12_16 = _lcms.TYPE_CMYK12_16 TYPE_CMYK12_16_SE = _lcms.TYPE_CMYK12_16_SE TYPE_KYMC12_8 = _lcms.TYPE_KYMC12_8 TYPE_KYMC12_16 = _lcms.TYPE_KYMC12_16 TYPE_KYMC12_16_SE = _lcms.TYPE_KYMC12_16_SE TYPE_XYZ_16 = _lcms.TYPE_XYZ_16 TYPE_Lab_8 = _lcms.TYPE_Lab_8 TYPE_ALab_8 = _lcms.TYPE_ALab_8 TYPE_Lab_16 = _lcms.TYPE_Lab_16 TYPE_Yxy_16 = _lcms.TYPE_Yxy_16 TYPE_YCbCr_8 = _lcms.TYPE_YCbCr_8 TYPE_YCbCr_8_PLANAR = _lcms.TYPE_YCbCr_8_PLANAR TYPE_YCbCr_16 = _lcms.TYPE_YCbCr_16 TYPE_YCbCr_16_PLANAR = _lcms.TYPE_YCbCr_16_PLANAR TYPE_YCbCr_16_SE = _lcms.TYPE_YCbCr_16_SE TYPE_YUV_8 = _lcms.TYPE_YUV_8 TYPE_YUV_8_PLANAR = _lcms.TYPE_YUV_8_PLANAR TYPE_YUV_16 = _lcms.TYPE_YUV_16 TYPE_YUV_16_PLANAR = _lcms.TYPE_YUV_16_PLANAR TYPE_YUV_16_SE = _lcms.TYPE_YUV_16_SE TYPE_HLS_8 = _lcms.TYPE_HLS_8 TYPE_HLS_8_PLANAR = _lcms.TYPE_HLS_8_PLANAR TYPE_HLS_16 = _lcms.TYPE_HLS_16 TYPE_HLS_16_PLANAR = _lcms.TYPE_HLS_16_PLANAR TYPE_HLS_16_SE = _lcms.TYPE_HLS_16_SE TYPE_HSV_8 = _lcms.TYPE_HSV_8 TYPE_HSV_8_PLANAR = _lcms.TYPE_HSV_8_PLANAR TYPE_HSV_16 = _lcms.TYPE_HSV_16 TYPE_HSV_16_PLANAR = _lcms.TYPE_HSV_16_PLANAR TYPE_HSV_16_SE = _lcms.TYPE_HSV_16_SE TYPE_NAMED_COLOR_INDEX = _lcms.TYPE_NAMED_COLOR_INDEX TYPE_XYZ_DBL = _lcms.TYPE_XYZ_DBL TYPE_Lab_DBL = _lcms.TYPE_Lab_DBL TYPE_GRAY_DBL = _lcms.TYPE_GRAY_DBL TYPE_RGB_DBL = _lcms.TYPE_RGB_DBL TYPE_CMYK_DBL = _lcms.TYPE_CMYK_DBL class LCMSGAMMAPARAMS(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, LCMSGAMMAPARAMS, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, LCMSGAMMAPARAMS, name) __repr__ = _swig_repr __swig_setmethods__["Crc32"] = _lcms.LCMSGAMMAPARAMS_Crc32_set __swig_getmethods__["Crc32"] = _lcms.LCMSGAMMAPARAMS_Crc32_get if _newclass:Crc32 = _swig_property(_lcms.LCMSGAMMAPARAMS_Crc32_get, _lcms.LCMSGAMMAPARAMS_Crc32_set) __swig_setmethods__["Type"] = _lcms.LCMSGAMMAPARAMS_Type_set __swig_getmethods__["Type"] = _lcms.LCMSGAMMAPARAMS_Type_get if _newclass:Type = _swig_property(_lcms.LCMSGAMMAPARAMS_Type_get, _lcms.LCMSGAMMAPARAMS_Type_set) __swig_setmethods__["Params"] = _lcms.LCMSGAMMAPARAMS_Params_set __swig_getmethods__["Params"] = _lcms.LCMSGAMMAPARAMS_Params_get if _newclass:Params = _swig_property(_lcms.LCMSGAMMAPARAMS_Params_get, _lcms.LCMSGAMMAPARAMS_Params_set) def __init__(self, *args): this = _lcms.new_LCMSGAMMAPARAMS(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_LCMSGAMMAPARAMS __del__ = lambda self : None; LCMSGAMMAPARAMS_swigregister = _lcms.LCMSGAMMAPARAMS_swigregister LCMSGAMMAPARAMS_swigregister(LCMSGAMMAPARAMS) class GAMMATABLE(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, GAMMATABLE, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, GAMMATABLE, name) __swig_setmethods__["Seed"] = _lcms.GAMMATABLE_Seed_set __swig_getmethods__["Seed"] = _lcms.GAMMATABLE_Seed_get if _newclass:Seed = _swig_property(_lcms.GAMMATABLE_Seed_get, _lcms.GAMMATABLE_Seed_set) __swig_setmethods__["nEntries"] = _lcms.GAMMATABLE_nEntries_set __swig_getmethods__["nEntries"] = _lcms.GAMMATABLE_nEntries_get if _newclass:nEntries = _swig_property(_lcms.GAMMATABLE_nEntries_get, _lcms.GAMMATABLE_nEntries_set) __swig_setmethods__["GammaTable"] = _lcms.GAMMATABLE_GammaTable_set __swig_getmethods__["GammaTable"] = _lcms.GAMMATABLE_GammaTable_get if _newclass:GammaTable = _swig_property(_lcms.GAMMATABLE_GammaTable_get, _lcms.GAMMATABLE_GammaTable_set) def __init__(self, *args): this = _lcms.new_GAMMATABLE(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_GAMMATABLE __del__ = lambda self : None; def __repr__(*args): return _lcms.GAMMATABLE___repr__(*args) def __getitem__(*args): return _lcms.GAMMATABLE___getitem__(*args) def __setitem__(*args): return _lcms.GAMMATABLE___setitem__(*args) GAMMATABLE_swigregister = _lcms.GAMMATABLE_swigregister GAMMATABLE_swigregister(GAMMATABLE) class VEC3(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, VEC3, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, VEC3, name) __swig_setmethods__["n"] = _lcms.VEC3_n_set __swig_getmethods__["n"] = _lcms.VEC3_n_get if _newclass:n = _swig_property(_lcms.VEC3_n_get, _lcms.VEC3_n_set) def __init__(self, *args): this = _lcms.new_VEC3(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_VEC3 __del__ = lambda self : None; def __getitem__(*args): return _lcms.VEC3___getitem__(*args) def __setitem__(*args): return _lcms.VEC3___setitem__(*args) def __repr__(*args): return _lcms.VEC3___repr__(*args) VEC3_swigregister = _lcms.VEC3_swigregister VEC3_swigregister(VEC3) class MAT3(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, MAT3, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, MAT3, name) __repr__ = _swig_repr __swig_setmethods__["v"] = _lcms.MAT3_v_set __swig_getmethods__["v"] = _lcms.MAT3_v_get if _newclass:v = _swig_property(_lcms.MAT3_v_get, _lcms.MAT3_v_set) def __init__(self, *args): this = _lcms.new_MAT3(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_MAT3 __del__ = lambda self : None; MAT3_swigregister = _lcms.MAT3_swigregister MAT3_swigregister(MAT3) class cmsCIEXYZ(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsCIEXYZ, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsCIEXYZ, name) __swig_setmethods__["X"] = _lcms.cmsCIEXYZ_X_set __swig_getmethods__["X"] = _lcms.cmsCIEXYZ_X_get if _newclass:X = _swig_property(_lcms.cmsCIEXYZ_X_get, _lcms.cmsCIEXYZ_X_set) __swig_setmethods__["Y"] = _lcms.cmsCIEXYZ_Y_set __swig_getmethods__["Y"] = _lcms.cmsCIEXYZ_Y_get if _newclass:Y = _swig_property(_lcms.cmsCIEXYZ_Y_get, _lcms.cmsCIEXYZ_Y_set) __swig_setmethods__["Z"] = _lcms.cmsCIEXYZ_Z_set __swig_getmethods__["Z"] = _lcms.cmsCIEXYZ_Z_get if _newclass:Z = _swig_property(_lcms.cmsCIEXYZ_Z_get, _lcms.cmsCIEXYZ_Z_set) def __init__(self, *args): this = _lcms.new_cmsCIEXYZ(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsCIEXYZ __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsCIEXYZ___repr__(*args) cmsCIEXYZ_swigregister = _lcms.cmsCIEXYZ_swigregister cmsCIEXYZ_swigregister(cmsCIEXYZ) class cmsCIExyY(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsCIExyY, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsCIExyY, name) __swig_setmethods__["x"] = _lcms.cmsCIExyY_x_set __swig_getmethods__["x"] = _lcms.cmsCIExyY_x_get if _newclass:x = _swig_property(_lcms.cmsCIExyY_x_get, _lcms.cmsCIExyY_x_set) __swig_setmethods__["y"] = _lcms.cmsCIExyY_y_set __swig_getmethods__["y"] = _lcms.cmsCIExyY_y_get if _newclass:y = _swig_property(_lcms.cmsCIExyY_y_get, _lcms.cmsCIExyY_y_set) __swig_setmethods__["Y"] = _lcms.cmsCIExyY_Y_set __swig_getmethods__["Y"] = _lcms.cmsCIExyY_Y_get if _newclass:Y = _swig_property(_lcms.cmsCIExyY_Y_get, _lcms.cmsCIExyY_Y_set) def __init__(self, *args): this = _lcms.new_cmsCIExyY(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsCIExyY __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsCIExyY___repr__(*args) cmsCIExyY_swigregister = _lcms.cmsCIExyY_swigregister cmsCIExyY_swigregister(cmsCIExyY) class cmsCIELab(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsCIELab, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsCIELab, name) __swig_setmethods__["L"] = _lcms.cmsCIELab_L_set __swig_getmethods__["L"] = _lcms.cmsCIELab_L_get if _newclass:L = _swig_property(_lcms.cmsCIELab_L_get, _lcms.cmsCIELab_L_set) __swig_setmethods__["a"] = _lcms.cmsCIELab_a_set __swig_getmethods__["a"] = _lcms.cmsCIELab_a_get if _newclass:a = _swig_property(_lcms.cmsCIELab_a_get, _lcms.cmsCIELab_a_set) __swig_setmethods__["b"] = _lcms.cmsCIELab_b_set __swig_getmethods__["b"] = _lcms.cmsCIELab_b_get if _newclass:b = _swig_property(_lcms.cmsCIELab_b_get, _lcms.cmsCIELab_b_set) def __init__(self, *args): this = _lcms.new_cmsCIELab(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsCIELab __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsCIELab___repr__(*args) def __cmp__(*args): return _lcms.cmsCIELab___cmp__(*args) cmsCIELab_swigregister = _lcms.cmsCIELab_swigregister cmsCIELab_swigregister(cmsCIELab) class cmsCIELCh(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsCIELCh, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsCIELCh, name) __swig_setmethods__["L"] = _lcms.cmsCIELCh_L_set __swig_getmethods__["L"] = _lcms.cmsCIELCh_L_get if _newclass:L = _swig_property(_lcms.cmsCIELCh_L_get, _lcms.cmsCIELCh_L_set) __swig_setmethods__["C"] = _lcms.cmsCIELCh_C_set __swig_getmethods__["C"] = _lcms.cmsCIELCh_C_get if _newclass:C = _swig_property(_lcms.cmsCIELCh_C_get, _lcms.cmsCIELCh_C_set) __swig_setmethods__["h"] = _lcms.cmsCIELCh_h_set __swig_getmethods__["h"] = _lcms.cmsCIELCh_h_get if _newclass:h = _swig_property(_lcms.cmsCIELCh_h_get, _lcms.cmsCIELCh_h_set) def __init__(self, *args): this = _lcms.new_cmsCIELCh(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsCIELCh __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsCIELCh___repr__(*args) cmsCIELCh_swigregister = _lcms.cmsCIELCh_swigregister cmsCIELCh_swigregister(cmsCIELCh) class cmsJCh(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsJCh, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsJCh, name) __swig_setmethods__["J"] = _lcms.cmsJCh_J_set __swig_getmethods__["J"] = _lcms.cmsJCh_J_get if _newclass:J = _swig_property(_lcms.cmsJCh_J_get, _lcms.cmsJCh_J_set) __swig_setmethods__["C"] = _lcms.cmsJCh_C_set __swig_getmethods__["C"] = _lcms.cmsJCh_C_get if _newclass:C = _swig_property(_lcms.cmsJCh_C_get, _lcms.cmsJCh_C_set) __swig_setmethods__["h"] = _lcms.cmsJCh_h_set __swig_getmethods__["h"] = _lcms.cmsJCh_h_get if _newclass:h = _swig_property(_lcms.cmsJCh_h_get, _lcms.cmsJCh_h_set) def __init__(self, *args): this = _lcms.new_cmsJCh(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsJCh __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsJCh___repr__(*args) cmsJCh_swigregister = _lcms.cmsJCh_swigregister cmsJCh_swigregister(cmsJCh) class cmsCIEXYZTRIPLE(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsCIEXYZTRIPLE, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsCIEXYZTRIPLE, name) __swig_setmethods__["Red"] = _lcms.cmsCIEXYZTRIPLE_Red_set __swig_getmethods__["Red"] = _lcms.cmsCIEXYZTRIPLE_Red_get if _newclass:Red = _swig_property(_lcms.cmsCIEXYZTRIPLE_Red_get, _lcms.cmsCIEXYZTRIPLE_Red_set) __swig_setmethods__["Green"] = _lcms.cmsCIEXYZTRIPLE_Green_set __swig_getmethods__["Green"] = _lcms.cmsCIEXYZTRIPLE_Green_get if _newclass:Green = _swig_property(_lcms.cmsCIEXYZTRIPLE_Green_get, _lcms.cmsCIEXYZTRIPLE_Green_set) __swig_setmethods__["Blue"] = _lcms.cmsCIEXYZTRIPLE_Blue_set __swig_getmethods__["Blue"] = _lcms.cmsCIEXYZTRIPLE_Blue_get if _newclass:Blue = _swig_property(_lcms.cmsCIEXYZTRIPLE_Blue_get, _lcms.cmsCIEXYZTRIPLE_Blue_set) def __init__(self, *args): this = _lcms.new_cmsCIEXYZTRIPLE(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsCIEXYZTRIPLE __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsCIEXYZTRIPLE___repr__(*args) cmsCIEXYZTRIPLE_swigregister = _lcms.cmsCIEXYZTRIPLE_swigregister cmsCIEXYZTRIPLE_swigregister(cmsCIEXYZTRIPLE) class cmsCIExyYTRIPLE(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsCIExyYTRIPLE, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsCIExyYTRIPLE, name) __swig_setmethods__["Red"] = _lcms.cmsCIExyYTRIPLE_Red_set __swig_getmethods__["Red"] = _lcms.cmsCIExyYTRIPLE_Red_get if _newclass:Red = _swig_property(_lcms.cmsCIExyYTRIPLE_Red_get, _lcms.cmsCIExyYTRIPLE_Red_set) __swig_setmethods__["Green"] = _lcms.cmsCIExyYTRIPLE_Green_set __swig_getmethods__["Green"] = _lcms.cmsCIExyYTRIPLE_Green_get if _newclass:Green = _swig_property(_lcms.cmsCIExyYTRIPLE_Green_get, _lcms.cmsCIExyYTRIPLE_Green_set) __swig_setmethods__["Blue"] = _lcms.cmsCIExyYTRIPLE_Blue_set __swig_getmethods__["Blue"] = _lcms.cmsCIExyYTRIPLE_Blue_get if _newclass:Blue = _swig_property(_lcms.cmsCIExyYTRIPLE_Blue_get, _lcms.cmsCIExyYTRIPLE_Blue_set) def __init__(self, *args): this = _lcms.new_cmsCIExyYTRIPLE(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsCIExyYTRIPLE __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsCIExyYTRIPLE___repr__(*args) cmsCIExyYTRIPLE_swigregister = _lcms.cmsCIExyYTRIPLE_swigregister cmsCIExyYTRIPLE_swigregister(cmsCIExyYTRIPLE) D50X = _lcms.D50X D50Y = _lcms.D50Y D50Z = _lcms.D50Z PERCEPTUAL_BLACK_X = _lcms.PERCEPTUAL_BLACK_X PERCEPTUAL_BLACK_Y = _lcms.PERCEPTUAL_BLACK_Y PERCEPTUAL_BLACK_Z = _lcms.PERCEPTUAL_BLACK_Z cmsD50_XYZ = _lcms.cmsD50_XYZ cmsD50_xyY = _lcms.cmsD50_xyY cmsOpenProfileFromFile = _lcms.cmsOpenProfileFromFile cmsOpenProfileFromMem = _lcms.cmsOpenProfileFromMem cmsCloseProfile = _lcms.cmsCloseProfile cmsCreateRGBProfile = _lcms.cmsCreateRGBProfile cmsCreateGrayProfile = _lcms.cmsCreateGrayProfile cmsCreateLinearizationDeviceLink = _lcms.cmsCreateLinearizationDeviceLink cmsCreateInkLimitingDeviceLink = _lcms.cmsCreateInkLimitingDeviceLink cmsCreateLabProfile = _lcms.cmsCreateLabProfile cmsCreateLab4Profile = _lcms.cmsCreateLab4Profile cmsCreateXYZProfile = _lcms.cmsCreateXYZProfile cmsCreate_sRGBProfile = _lcms.cmsCreate_sRGBProfile cmsCreateBCHSWabstractProfile = _lcms.cmsCreateBCHSWabstractProfile cmsCreateNULLProfile = _lcms.cmsCreateNULLProfile cmsXYZ2xyY = _lcms.cmsXYZ2xyY cmsxyY2XYZ = _lcms.cmsxyY2XYZ cmsXYZ2Lab = _lcms.cmsXYZ2Lab cmsLab2XYZ = _lcms.cmsLab2XYZ cmsLab2LCh = _lcms.cmsLab2LCh cmsLCh2Lab = _lcms.cmsLCh2Lab cmsDeltaE = _lcms.cmsDeltaE cmsCIE94DeltaE = _lcms.cmsCIE94DeltaE cmsBFDdeltaE = _lcms.cmsBFDdeltaE cmsCMCdeltaE = _lcms.cmsCMCdeltaE cmsCIE2000DeltaE = _lcms.cmsCIE2000DeltaE cmsClampLab = _lcms.cmsClampLab cmsWhitePointFromTemp = _lcms.cmsWhitePointFromTemp cmsAdaptToIlluminant = _lcms.cmsAdaptToIlluminant cmsBuildRGB2XYZtransferMatrix = _lcms.cmsBuildRGB2XYZtransferMatrix AVG_SURROUND_4 = _lcms.AVG_SURROUND_4 AVG_SURROUND = _lcms.AVG_SURROUND DIM_SURROUND = _lcms.DIM_SURROUND DARK_SURROUND = _lcms.DARK_SURROUND CUTSHEET_SURROUND = _lcms.CUTSHEET_SURROUND D_CALCULATE = _lcms.D_CALCULATE D_CALCULATE_DISCOUNT = _lcms.D_CALCULATE_DISCOUNT class cmsViewingConditions(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsViewingConditions, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsViewingConditions, name) __swig_setmethods__["whitePoint"] = _lcms.cmsViewingConditions_whitePoint_set __swig_getmethods__["whitePoint"] = _lcms.cmsViewingConditions_whitePoint_get if _newclass:whitePoint = _swig_property(_lcms.cmsViewingConditions_whitePoint_get, _lcms.cmsViewingConditions_whitePoint_set) __swig_setmethods__["Yb"] = _lcms.cmsViewingConditions_Yb_set __swig_getmethods__["Yb"] = _lcms.cmsViewingConditions_Yb_get if _newclass:Yb = _swig_property(_lcms.cmsViewingConditions_Yb_get, _lcms.cmsViewingConditions_Yb_set) __swig_setmethods__["La"] = _lcms.cmsViewingConditions_La_set __swig_getmethods__["La"] = _lcms.cmsViewingConditions_La_get if _newclass:La = _swig_property(_lcms.cmsViewingConditions_La_get, _lcms.cmsViewingConditions_La_set) __swig_setmethods__["surround"] = _lcms.cmsViewingConditions_surround_set __swig_getmethods__["surround"] = _lcms.cmsViewingConditions_surround_get if _newclass:surround = _swig_property(_lcms.cmsViewingConditions_surround_get, _lcms.cmsViewingConditions_surround_set) __swig_setmethods__["D_value"] = _lcms.cmsViewingConditions_D_value_set __swig_getmethods__["D_value"] = _lcms.cmsViewingConditions_D_value_get if _newclass:D_value = _swig_property(_lcms.cmsViewingConditions_D_value_get, _lcms.cmsViewingConditions_D_value_set) def __init__(self, *args): this = _lcms.new_cmsViewingConditions(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsViewingConditions __del__ = lambda self : None; def __repr__(*args): return _lcms.cmsViewingConditions___repr__(*args) cmsViewingConditions_swigregister = _lcms.cmsViewingConditions_swigregister cmsViewingConditions_swigregister(cmsViewingConditions) cmsCIECAM97sInit = _lcms.cmsCIECAM97sInit cmsCIECAM97sDone = _lcms.cmsCIECAM97sDone cmsCIECAM97sForward = _lcms.cmsCIECAM97sForward cmsCIECAM97sReverse = _lcms.cmsCIECAM97sReverse cmsCIECAM02Init = _lcms.cmsCIECAM02Init cmsCIECAM02Done = _lcms.cmsCIECAM02Done cmsCIECAM02Forward = _lcms.cmsCIECAM02Forward cmsCIECAM02Reverse = _lcms.cmsCIECAM02Reverse cmsBuildGamma = _lcms.cmsBuildGamma cmsBuildParametricGamma = _lcms.cmsBuildParametricGamma cmsAllocGamma = _lcms.cmsAllocGamma cmsFreeGamma = _lcms.cmsFreeGamma cmsFreeGammaTriple = _lcms.cmsFreeGammaTriple cmsDupGamma = _lcms.cmsDupGamma cmsReverseGamma = _lcms.cmsReverseGamma cmsJoinGamma = _lcms.cmsJoinGamma cmsJoinGammaEx = _lcms.cmsJoinGammaEx cmsSmoothGamma = _lcms.cmsSmoothGamma cmsEstimateGamma = _lcms.cmsEstimateGamma cmsEstimateGammaEx = _lcms.cmsEstimateGammaEx cmsReadICCGamma = _lcms.cmsReadICCGamma cmsReadICCGammaReversed = _lcms.cmsReadICCGammaReversed cmsTakeMediaWhitePoint = _lcms.cmsTakeMediaWhitePoint cmsTakeMediaBlackPoint = _lcms.cmsTakeMediaBlackPoint cmsTakeIluminant = _lcms.cmsTakeIluminant cmsTakeColorants = _lcms.cmsTakeColorants cmsTakeHeaderFlags = _lcms.cmsTakeHeaderFlags cmsTakeHeaderAttributes = _lcms.cmsTakeHeaderAttributes cmsSetLanguage = _lcms.cmsSetLanguage cmsTakeProductName = _lcms.cmsTakeProductName cmsTakeProductDesc = _lcms.cmsTakeProductDesc cmsTakeProductInfo = _lcms.cmsTakeProductInfo cmsTakeManufacturer = _lcms.cmsTakeManufacturer cmsTakeModel = _lcms.cmsTakeModel cmsTakeCopyright = _lcms.cmsTakeCopyright cmsTakeProfileID = _lcms.cmsTakeProfileID cmsTakeCreationDateTime = _lcms.cmsTakeCreationDateTime cmsTakeCalibrationDateTime = _lcms.cmsTakeCalibrationDateTime cmsIsTag = _lcms.cmsIsTag cmsTakeRenderingIntent = _lcms.cmsTakeRenderingIntent cmsTakeCharTargetData = _lcms.cmsTakeCharTargetData cmsReadICCTextEx = _lcms.cmsReadICCTextEx cmsReadICCText = _lcms.cmsReadICCText LCMS_DESC_MAX = _lcms.LCMS_DESC_MAX class cmsPSEQDESC(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsPSEQDESC, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsPSEQDESC, name) __repr__ = _swig_repr __swig_setmethods__["deviceMfg"] = _lcms.cmsPSEQDESC_deviceMfg_set __swig_getmethods__["deviceMfg"] = _lcms.cmsPSEQDESC_deviceMfg_get if _newclass:deviceMfg = _swig_property(_lcms.cmsPSEQDESC_deviceMfg_get, _lcms.cmsPSEQDESC_deviceMfg_set) __swig_setmethods__["deviceModel"] = _lcms.cmsPSEQDESC_deviceModel_set __swig_getmethods__["deviceModel"] = _lcms.cmsPSEQDESC_deviceModel_get if _newclass:deviceModel = _swig_property(_lcms.cmsPSEQDESC_deviceModel_get, _lcms.cmsPSEQDESC_deviceModel_set) __swig_setmethods__["attributes"] = _lcms.cmsPSEQDESC_attributes_set __swig_getmethods__["attributes"] = _lcms.cmsPSEQDESC_attributes_get if _newclass:attributes = _swig_property(_lcms.cmsPSEQDESC_attributes_get, _lcms.cmsPSEQDESC_attributes_set) __swig_setmethods__["technology"] = _lcms.cmsPSEQDESC_technology_set __swig_getmethods__["technology"] = _lcms.cmsPSEQDESC_technology_get if _newclass:technology = _swig_property(_lcms.cmsPSEQDESC_technology_get, _lcms.cmsPSEQDESC_technology_set) __swig_setmethods__["Manufacturer"] = _lcms.cmsPSEQDESC_Manufacturer_set __swig_getmethods__["Manufacturer"] = _lcms.cmsPSEQDESC_Manufacturer_get if _newclass:Manufacturer = _swig_property(_lcms.cmsPSEQDESC_Manufacturer_get, _lcms.cmsPSEQDESC_Manufacturer_set) __swig_setmethods__["Model"] = _lcms.cmsPSEQDESC_Model_set __swig_getmethods__["Model"] = _lcms.cmsPSEQDESC_Model_get if _newclass:Model = _swig_property(_lcms.cmsPSEQDESC_Model_get, _lcms.cmsPSEQDESC_Model_set) def __init__(self, *args): this = _lcms.new_cmsPSEQDESC(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsPSEQDESC __del__ = lambda self : None; cmsPSEQDESC_swigregister = _lcms.cmsPSEQDESC_swigregister cmsPSEQDESC_swigregister(cmsPSEQDESC) class cmsSEQ(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsSEQ, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsSEQ, name) __repr__ = _swig_repr __swig_setmethods__["n"] = _lcms.cmsSEQ_n_set __swig_getmethods__["n"] = _lcms.cmsSEQ_n_get if _newclass:n = _swig_property(_lcms.cmsSEQ_n_get, _lcms.cmsSEQ_n_set) __swig_setmethods__["seq"] = _lcms.cmsSEQ_seq_set __swig_getmethods__["seq"] = _lcms.cmsSEQ_seq_get if _newclass:seq = _swig_property(_lcms.cmsSEQ_seq_get, _lcms.cmsSEQ_seq_set) def __init__(self, *args): this = _lcms.new_cmsSEQ(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsSEQ __del__ = lambda self : None; cmsSEQ_swigregister = _lcms.cmsSEQ_swigregister cmsSEQ_swigregister(cmsSEQ) cmsReadProfileSequenceDescription = _lcms.cmsReadProfileSequenceDescription cmsFreeProfileSequenceDescription = _lcms.cmsFreeProfileSequenceDescription _cmsICCcolorSpace = _lcms._cmsICCcolorSpace _cmsLCMScolorSpace = _lcms._cmsLCMScolorSpace _cmsChannelsOf = _lcms._cmsChannelsOf _cmsIsMatrixShaper = _lcms._cmsIsMatrixShaper LCMS_USED_AS_INPUT = _lcms.LCMS_USED_AS_INPUT LCMS_USED_AS_OUTPUT = _lcms.LCMS_USED_AS_OUTPUT LCMS_USED_AS_PROOF = _lcms.LCMS_USED_AS_PROOF cmsIsIntentSupported = _lcms.cmsIsIntentSupported cmsGetPCS = _lcms.cmsGetPCS cmsGetColorSpace = _lcms.cmsGetColorSpace cmsGetDeviceClass = _lcms.cmsGetDeviceClass cmsGetProfileICCversion = _lcms.cmsGetProfileICCversion cmsSetProfileICCversion = _lcms.cmsSetProfileICCversion cmsGetTagCount = _lcms.cmsGetTagCount cmsGetTagSignature = _lcms.cmsGetTagSignature cmsSetDeviceClass = _lcms.cmsSetDeviceClass cmsSetColorSpace = _lcms.cmsSetColorSpace cmsSetPCS = _lcms.cmsSetPCS cmsSetRenderingIntent = _lcms.cmsSetRenderingIntent cmsSetHeaderFlags = _lcms.cmsSetHeaderFlags cmsSetHeaderAttributes = _lcms.cmsSetHeaderAttributes cmsSetProfileID = _lcms.cmsSetProfileID INTENT_PERCEPTUAL = _lcms.INTENT_PERCEPTUAL INTENT_RELATIVE_COLORIMETRIC = _lcms.INTENT_RELATIVE_COLORIMETRIC INTENT_SATURATION = _lcms.INTENT_SATURATION INTENT_ABSOLUTE_COLORIMETRIC = _lcms.INTENT_ABSOLUTE_COLORIMETRIC cmsFLAGS_MATRIXINPUT = _lcms.cmsFLAGS_MATRIXINPUT cmsFLAGS_MATRIXOUTPUT = _lcms.cmsFLAGS_MATRIXOUTPUT cmsFLAGS_MATRIXONLY = _lcms.cmsFLAGS_MATRIXONLY cmsFLAGS_NOWHITEONWHITEFIXUP = _lcms.cmsFLAGS_NOWHITEONWHITEFIXUP cmsFLAGS_NOPRELINEARIZATION = _lcms.cmsFLAGS_NOPRELINEARIZATION cmsFLAGS_GUESSDEVICECLASS = _lcms.cmsFLAGS_GUESSDEVICECLASS cmsFLAGS_NOTCACHE = _lcms.cmsFLAGS_NOTCACHE cmsFLAGS_NOTPRECALC = _lcms.cmsFLAGS_NOTPRECALC cmsFLAGS_NULLTRANSFORM = _lcms.cmsFLAGS_NULLTRANSFORM cmsFLAGS_HIGHRESPRECALC = _lcms.cmsFLAGS_HIGHRESPRECALC cmsFLAGS_LOWRESPRECALC = _lcms.cmsFLAGS_LOWRESPRECALC cmsFLAGS_WHITEBLACKCOMPENSATION = _lcms.cmsFLAGS_WHITEBLACKCOMPENSATION cmsFLAGS_BLACKPOINTCOMPENSATION = _lcms.cmsFLAGS_BLACKPOINTCOMPENSATION cmsFLAGS_GAMUTCHECK = _lcms.cmsFLAGS_GAMUTCHECK cmsFLAGS_SOFTPROOFING = _lcms.cmsFLAGS_SOFTPROOFING cmsFLAGS_PRESERVEBLACK = _lcms.cmsFLAGS_PRESERVEBLACK cmsFLAGS_NODEFAULTRESOURCEDEF = _lcms.cmsFLAGS_NODEFAULTRESOURCEDEF cmsCreateTransform = _lcms.cmsCreateTransform cmsCreateProofingTransform = _lcms.cmsCreateProofingTransform cmsCreateMultiprofileTransform = _lcms.cmsCreateMultiprofileTransform cmsDeleteTransform = _lcms.cmsDeleteTransform cmsDoTransform = _lcms.cmsDoTransform cmsChangeBuffersFormat = _lcms.cmsChangeBuffersFormat cmsSetAlarmCodes = _lcms.cmsSetAlarmCodes cmsGetAlarmCodes = _lcms.cmsGetAlarmCodes cmsSetAdaptationState = _lcms.cmsSetAdaptationState LCMS_PRESERVE_PURE_K = _lcms.LCMS_PRESERVE_PURE_K LCMS_PRESERVE_K_PLANE = _lcms.LCMS_PRESERVE_K_PLANE cmsSetCMYKPreservationStrategy = _lcms.cmsSetCMYKPreservationStrategy class cmsNAMEDCOLOR(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsNAMEDCOLOR, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsNAMEDCOLOR, name) __repr__ = _swig_repr __swig_setmethods__["Name"] = _lcms.cmsNAMEDCOLOR_Name_set __swig_getmethods__["Name"] = _lcms.cmsNAMEDCOLOR_Name_get if _newclass:Name = _swig_property(_lcms.cmsNAMEDCOLOR_Name_get, _lcms.cmsNAMEDCOLOR_Name_set) __swig_setmethods__["PCS"] = _lcms.cmsNAMEDCOLOR_PCS_set __swig_getmethods__["PCS"] = _lcms.cmsNAMEDCOLOR_PCS_get if _newclass:PCS = _swig_property(_lcms.cmsNAMEDCOLOR_PCS_get, _lcms.cmsNAMEDCOLOR_PCS_set) __swig_setmethods__["DeviceColorant"] = _lcms.cmsNAMEDCOLOR_DeviceColorant_set __swig_getmethods__["DeviceColorant"] = _lcms.cmsNAMEDCOLOR_DeviceColorant_get if _newclass:DeviceColorant = _swig_property(_lcms.cmsNAMEDCOLOR_DeviceColorant_get, _lcms.cmsNAMEDCOLOR_DeviceColorant_set) def __init__(self, *args): this = _lcms.new_cmsNAMEDCOLOR(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsNAMEDCOLOR __del__ = lambda self : None; cmsNAMEDCOLOR_swigregister = _lcms.cmsNAMEDCOLOR_swigregister cmsNAMEDCOLOR_swigregister(cmsNAMEDCOLOR) class cmsNAMEDCOLORLIST(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, cmsNAMEDCOLORLIST, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, cmsNAMEDCOLORLIST, name) __repr__ = _swig_repr __swig_setmethods__["nColors"] = _lcms.cmsNAMEDCOLORLIST_nColors_set __swig_getmethods__["nColors"] = _lcms.cmsNAMEDCOLORLIST_nColors_get if _newclass:nColors = _swig_property(_lcms.cmsNAMEDCOLORLIST_nColors_get, _lcms.cmsNAMEDCOLORLIST_nColors_set) __swig_setmethods__["Allocated"] = _lcms.cmsNAMEDCOLORLIST_Allocated_set __swig_getmethods__["Allocated"] = _lcms.cmsNAMEDCOLORLIST_Allocated_get if _newclass:Allocated = _swig_property(_lcms.cmsNAMEDCOLORLIST_Allocated_get, _lcms.cmsNAMEDCOLORLIST_Allocated_set) __swig_setmethods__["ColorantCount"] = _lcms.cmsNAMEDCOLORLIST_ColorantCount_set __swig_getmethods__["ColorantCount"] = _lcms.cmsNAMEDCOLORLIST_ColorantCount_get if _newclass:ColorantCount = _swig_property(_lcms.cmsNAMEDCOLORLIST_ColorantCount_get, _lcms.cmsNAMEDCOLORLIST_ColorantCount_set) __swig_setmethods__["Prefix"] = _lcms.cmsNAMEDCOLORLIST_Prefix_set __swig_getmethods__["Prefix"] = _lcms.cmsNAMEDCOLORLIST_Prefix_get if _newclass:Prefix = _swig_property(_lcms.cmsNAMEDCOLORLIST_Prefix_get, _lcms.cmsNAMEDCOLORLIST_Prefix_set) __swig_setmethods__["Suffix"] = _lcms.cmsNAMEDCOLORLIST_Suffix_set __swig_getmethods__["Suffix"] = _lcms.cmsNAMEDCOLORLIST_Suffix_get if _newclass:Suffix = _swig_property(_lcms.cmsNAMEDCOLORLIST_Suffix_get, _lcms.cmsNAMEDCOLORLIST_Suffix_set) __swig_setmethods__["List"] = _lcms.cmsNAMEDCOLORLIST_List_set __swig_getmethods__["List"] = _lcms.cmsNAMEDCOLORLIST_List_get if _newclass:List = _swig_property(_lcms.cmsNAMEDCOLORLIST_List_get, _lcms.cmsNAMEDCOLORLIST_List_set) def __init__(self, *args): this = _lcms.new_cmsNAMEDCOLORLIST(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_cmsNAMEDCOLORLIST __del__ = lambda self : None; cmsNAMEDCOLORLIST_swigregister = _lcms.cmsNAMEDCOLORLIST_swigregister cmsNAMEDCOLORLIST_swigregister(cmsNAMEDCOLORLIST) cmsNamedColorCount = _lcms.cmsNamedColorCount cmsNamedColorInfo = _lcms.cmsNamedColorInfo cmsNamedColorIndex = _lcms.cmsNamedColorIndex cmsReadColorantTable = _lcms.cmsReadColorantTable cmsAddTag = _lcms.cmsAddTag cmsTransform2DeviceLink = _lcms.cmsTransform2DeviceLink _cmsSetLUTdepth = _lcms._cmsSetLUTdepth cmsSaveProfile = _lcms.cmsSaveProfile _cmsSaveProfileToMem = _lcms._cmsSaveProfileToMem cmsGetPostScriptCSA = _lcms.cmsGetPostScriptCSA cmsGetPostScriptCRD = _lcms.cmsGetPostScriptCRD cmsGetPostScriptCRDEx = _lcms.cmsGetPostScriptCRDEx LCMS_ERROR_ABORT = _lcms.LCMS_ERROR_ABORT LCMS_ERROR_SHOW = _lcms.LCMS_ERROR_SHOW LCMS_ERROR_IGNORE = _lcms.LCMS_ERROR_IGNORE cmsErrorAction = _lcms.cmsErrorAction LCMS_ERRC_WARNING = _lcms.LCMS_ERRC_WARNING LCMS_ERRC_RECOVERABLE = _lcms.LCMS_ERRC_RECOVERABLE LCMS_ERRC_ABORTED = _lcms.LCMS_ERRC_ABORTED cmsSetErrorHandler = _lcms.cmsSetErrorHandler cmsAllocLUT = _lcms.cmsAllocLUT cmsAllocLinearTable = _lcms.cmsAllocLinearTable cmsAlloc3DGrid = _lcms.cmsAlloc3DGrid cmsSetMatrixLUT = _lcms.cmsSetMatrixLUT cmsSetMatrixLUT4 = _lcms.cmsSetMatrixLUT4 cmsFreeLUT = _lcms.cmsFreeLUT cmsEvalLUT = _lcms.cmsEvalLUT cmsEvalLUTreverse = _lcms.cmsEvalLUTreverse cmsReadICCLut = _lcms.cmsReadICCLut cmsDupLUT = _lcms.cmsDupLUT SAMPLER_INSPECT = _lcms.SAMPLER_INSPECT cmsSample3DGrid = _lcms.cmsSample3DGrid cmsSetUserFormatters = _lcms.cmsSetUserFormatters cmsGetUserFormatters = _lcms.cmsGetUserFormatters cmsIT8Alloc = _lcms.cmsIT8Alloc cmsIT8Free = _lcms.cmsIT8Free cmsIT8TableCount = _lcms.cmsIT8TableCount cmsIT8SetTable = _lcms.cmsIT8SetTable cmsIT8LoadFromFile = _lcms.cmsIT8LoadFromFile cmsIT8LoadFromMem = _lcms.cmsIT8LoadFromMem cmsIT8SaveToFile = _lcms.cmsIT8SaveToFile cmsIT8SaveToMem = _lcms.cmsIT8SaveToMem cmsIT8GetSheetType = _lcms.cmsIT8GetSheetType cmsIT8SetSheetType = _lcms.cmsIT8SetSheetType cmsIT8SetComment = _lcms.cmsIT8SetComment cmsIT8SetPropertyStr = _lcms.cmsIT8SetPropertyStr cmsIT8SetPropertyDbl = _lcms.cmsIT8SetPropertyDbl cmsIT8SetPropertyHex = _lcms.cmsIT8SetPropertyHex cmsIT8SetPropertyMulti = _lcms.cmsIT8SetPropertyMulti cmsIT8SetPropertyUncooked = _lcms.cmsIT8SetPropertyUncooked cmsIT8GetProperty = _lcms.cmsIT8GetProperty cmsIT8GetPropertyDbl = _lcms.cmsIT8GetPropertyDbl cmsIT8GetPropertyMulti = _lcms.cmsIT8GetPropertyMulti cmsIT8EnumProperties = _lcms.cmsIT8EnumProperties cmsIT8EnumPropertyMulti = _lcms.cmsIT8EnumPropertyMulti cmsIT8GetDataRowCol = _lcms.cmsIT8GetDataRowCol cmsIT8GetDataRowColDbl = _lcms.cmsIT8GetDataRowColDbl cmsIT8SetDataRowCol = _lcms.cmsIT8SetDataRowCol cmsIT8SetDataRowColDbl = _lcms.cmsIT8SetDataRowColDbl cmsIT8GetData = _lcms.cmsIT8GetData cmsIT8GetDataDbl = _lcms.cmsIT8GetDataDbl cmsIT8SetData = _lcms.cmsIT8SetData cmsIT8SetDataDbl = _lcms.cmsIT8SetDataDbl cmsIT8GetDataFormat = _lcms.cmsIT8GetDataFormat cmsIT8SetDataFormat = _lcms.cmsIT8SetDataFormat cmsIT8EnumDataFormat = _lcms.cmsIT8EnumDataFormat cmsIT8GetPatchName = _lcms.cmsIT8GetPatchName cmsIT8GetPatchByName = _lcms.cmsIT8GetPatchByName cmsIT8SetTableByLabel = _lcms.cmsIT8SetTableByLabel cmsIT8SetIndexColumn = _lcms.cmsIT8SetIndexColumn cmsIT8DefineDblFormat = _lcms.cmsIT8DefineDblFormat cmsLabEncoded2Float = _lcms.cmsLabEncoded2Float cmsLabEncoded2Float4 = _lcms.cmsLabEncoded2Float4 cmsFloat2LabEncoded = _lcms.cmsFloat2LabEncoded cmsFloat2LabEncoded4 = _lcms.cmsFloat2LabEncoded4 cmsXYZEncoded2Float = _lcms.cmsXYZEncoded2Float cmsFloat2XYZEncoded = _lcms.cmsFloat2XYZEncoded _cmsAddTextTag = _lcms._cmsAddTextTag _cmsAddXYZTag = _lcms._cmsAddXYZTag _cmsAddLUTTag = _lcms._cmsAddLUTTag _cmsAddGammaTag = _lcms._cmsAddGammaTag _cmsAddChromaticityTag = _lcms._cmsAddChromaticityTag _cmsAddSequenceDescriptionTag = _lcms._cmsAddSequenceDescriptionTag _cmsAddNamedColorTag = _lcms._cmsAddNamedColorTag _cmsAddDateTimeTag = _lcms._cmsAddDateTimeTag _cmsAddColorantTableTag = _lcms._cmsAddColorantTableTag _cmsAddChromaticAdaptationTag = _lcms._cmsAddChromaticAdaptationTag _cmsQuickFloor = _lcms._cmsQuickFloor _cmsClampWord = _lcms._cmsClampWord _cmsMalloc = _lcms._cmsMalloc _cmsCalloc = _lcms._cmsCalloc _cmsFree = _lcms._cmsFree cmsSignalError = _lcms.cmsSignalError class _cmsTestAlign16(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _cmsTestAlign16, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _cmsTestAlign16, name) __repr__ = _swig_repr __swig_setmethods__["a"] = _lcms._cmsTestAlign16_a_set __swig_getmethods__["a"] = _lcms._cmsTestAlign16_a_get if _newclass:a = _swig_property(_lcms._cmsTestAlign16_a_get, _lcms._cmsTestAlign16_a_set) __swig_setmethods__["b"] = _lcms._cmsTestAlign16_b_set __swig_getmethods__["b"] = _lcms._cmsTestAlign16_b_get if _newclass:b = _swig_property(_lcms._cmsTestAlign16_b_get, _lcms._cmsTestAlign16_b_set) def __init__(self, *args): this = _lcms.new__cmsTestAlign16(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete__cmsTestAlign16 __del__ = lambda self : None; _cmsTestAlign16_swigregister = _lcms._cmsTestAlign16_swigregister _cmsTestAlign16_swigregister(_cmsTestAlign16) class _cmsTestAlign8(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _cmsTestAlign8, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _cmsTestAlign8, name) __repr__ = _swig_repr __swig_setmethods__["a"] = _lcms._cmsTestAlign8_a_set __swig_getmethods__["a"] = _lcms._cmsTestAlign8_a_get if _newclass:a = _swig_property(_lcms._cmsTestAlign8_a_get, _lcms._cmsTestAlign8_a_set) __swig_setmethods__["b"] = _lcms._cmsTestAlign8_b_set __swig_getmethods__["b"] = _lcms._cmsTestAlign8_b_get if _newclass:b = _swig_property(_lcms._cmsTestAlign8_b_get, _lcms._cmsTestAlign8_b_set) def __init__(self, *args): this = _lcms.new__cmsTestAlign8(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete__cmsTestAlign8 __del__ = lambda self : None; _cmsTestAlign8_swigregister = _lcms._cmsTestAlign8_swigregister _cmsTestAlign8_swigregister(_cmsTestAlign8) FixedMul = _lcms.FixedMul FixedSquare = _lcms.FixedSquare ToFixedDomain = _lcms.ToFixedDomain FromFixedDomain = _lcms.FromFixedDomain FixedLERP = _lcms.FixedLERP FixedScale = _lcms.FixedScale VX = _lcms.VX VY = _lcms.VY VZ = _lcms.VZ class WVEC3(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, WVEC3, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, WVEC3, name) __repr__ = _swig_repr __swig_setmethods__["n"] = _lcms.WVEC3_n_set __swig_getmethods__["n"] = _lcms.WVEC3_n_get if _newclass:n = _swig_property(_lcms.WVEC3_n_get, _lcms.WVEC3_n_set) def __init__(self, *args): this = _lcms.new_WVEC3(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_WVEC3 __del__ = lambda self : None; WVEC3_swigregister = _lcms.WVEC3_swigregister WVEC3_swigregister(WVEC3) class WMAT3(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, WMAT3, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, WMAT3, name) __repr__ = _swig_repr __swig_setmethods__["v"] = _lcms.WMAT3_v_set __swig_getmethods__["v"] = _lcms.WMAT3_v_get if _newclass:v = _swig_property(_lcms.WMAT3_v_get, _lcms.WMAT3_v_set) def __init__(self, *args): this = _lcms.new_WMAT3(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_WMAT3 __del__ = lambda self : None; WMAT3_swigregister = _lcms.WMAT3_swigregister WMAT3_swigregister(WMAT3) VEC3init = _lcms.VEC3init VEC3initF = _lcms.VEC3initF VEC3toFix = _lcms.VEC3toFix VEC3fromFix = _lcms.VEC3fromFix VEC3scaleFix = _lcms.VEC3scaleFix VEC3swap = _lcms.VEC3swap VEC3divK = _lcms.VEC3divK VEC3perK = _lcms.VEC3perK VEC3minus = _lcms.VEC3minus VEC3perComp = _lcms.VEC3perComp VEC3equal = _lcms.VEC3equal VEC3equalF = _lcms.VEC3equalF VEC3scaleAndCut = _lcms.VEC3scaleAndCut VEC3cross = _lcms.VEC3cross VEC3saturate = _lcms.VEC3saturate VEC3distance = _lcms.VEC3distance VEC3length = _lcms.VEC3length MAT3identity = _lcms.MAT3identity MAT3per = _lcms.MAT3per MAT3perK = _lcms.MAT3perK MAT3inverse = _lcms.MAT3inverse MAT3solve = _lcms.MAT3solve MAT3det = _lcms.MAT3det MAT3eval = _lcms.MAT3eval MAT3toFix = _lcms.MAT3toFix MAT3fromFix = _lcms.MAT3fromFix MAT3evalW = _lcms.MAT3evalW MAT3isIdentity = _lcms.MAT3isIdentity MAT3scaleAndCut = _lcms.MAT3scaleAndCut cmsIsLinear = _lcms.cmsIsLinear class L8PARAMS(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, L8PARAMS, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, L8PARAMS, name) __repr__ = _swig_repr __swig_setmethods__["X0"] = _lcms.L8PARAMS_X0_set __swig_getmethods__["X0"] = _lcms.L8PARAMS_X0_get if _newclass:X0 = _swig_property(_lcms.L8PARAMS_X0_get, _lcms.L8PARAMS_X0_set) __swig_setmethods__["Y0"] = _lcms.L8PARAMS_Y0_set __swig_getmethods__["Y0"] = _lcms.L8PARAMS_Y0_get if _newclass:Y0 = _swig_property(_lcms.L8PARAMS_Y0_get, _lcms.L8PARAMS_Y0_set) __swig_setmethods__["Z0"] = _lcms.L8PARAMS_Z0_set __swig_getmethods__["Z0"] = _lcms.L8PARAMS_Z0_get if _newclass:Z0 = _swig_property(_lcms.L8PARAMS_Z0_get, _lcms.L8PARAMS_Z0_set) __swig_setmethods__["rx"] = _lcms.L8PARAMS_rx_set __swig_getmethods__["rx"] = _lcms.L8PARAMS_rx_get if _newclass:rx = _swig_property(_lcms.L8PARAMS_rx_get, _lcms.L8PARAMS_rx_set) __swig_setmethods__["ry"] = _lcms.L8PARAMS_ry_set __swig_getmethods__["ry"] = _lcms.L8PARAMS_ry_get if _newclass:ry = _swig_property(_lcms.L8PARAMS_ry_get, _lcms.L8PARAMS_ry_set) __swig_setmethods__["rz"] = _lcms.L8PARAMS_rz_set __swig_getmethods__["rz"] = _lcms.L8PARAMS_rz_get if _newclass:rz = _swig_property(_lcms.L8PARAMS_rz_get, _lcms.L8PARAMS_rz_set) def __init__(self, *args): this = _lcms.new_L8PARAMS(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_L8PARAMS __del__ = lambda self : None; L8PARAMS_swigregister = _lcms.L8PARAMS_swigregister L8PARAMS_swigregister(L8PARAMS) class L16PARAMS(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, L16PARAMS, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, L16PARAMS, name) __repr__ = _swig_repr __swig_setmethods__["nSamples"] = _lcms.L16PARAMS_nSamples_set __swig_getmethods__["nSamples"] = _lcms.L16PARAMS_nSamples_get if _newclass:nSamples = _swig_property(_lcms.L16PARAMS_nSamples_get, _lcms.L16PARAMS_nSamples_set) __swig_setmethods__["nInputs"] = _lcms.L16PARAMS_nInputs_set __swig_getmethods__["nInputs"] = _lcms.L16PARAMS_nInputs_get if _newclass:nInputs = _swig_property(_lcms.L16PARAMS_nInputs_get, _lcms.L16PARAMS_nInputs_set) __swig_setmethods__["nOutputs"] = _lcms.L16PARAMS_nOutputs_set __swig_getmethods__["nOutputs"] = _lcms.L16PARAMS_nOutputs_get if _newclass:nOutputs = _swig_property(_lcms.L16PARAMS_nOutputs_get, _lcms.L16PARAMS_nOutputs_set) __swig_setmethods__["Domain"] = _lcms.L16PARAMS_Domain_set __swig_getmethods__["Domain"] = _lcms.L16PARAMS_Domain_get if _newclass:Domain = _swig_property(_lcms.L16PARAMS_Domain_get, _lcms.L16PARAMS_Domain_set) __swig_setmethods__["opta1"] = _lcms.L16PARAMS_opta1_set __swig_getmethods__["opta1"] = _lcms.L16PARAMS_opta1_get if _newclass:opta1 = _swig_property(_lcms.L16PARAMS_opta1_get, _lcms.L16PARAMS_opta1_set) __swig_setmethods__["opta2"] = _lcms.L16PARAMS_opta2_set __swig_getmethods__["opta2"] = _lcms.L16PARAMS_opta2_get if _newclass:opta2 = _swig_property(_lcms.L16PARAMS_opta2_get, _lcms.L16PARAMS_opta2_set) __swig_setmethods__["opta3"] = _lcms.L16PARAMS_opta3_set __swig_getmethods__["opta3"] = _lcms.L16PARAMS_opta3_get if _newclass:opta3 = _swig_property(_lcms.L16PARAMS_opta3_get, _lcms.L16PARAMS_opta3_set) __swig_setmethods__["opta4"] = _lcms.L16PARAMS_opta4_set __swig_getmethods__["opta4"] = _lcms.L16PARAMS_opta4_get if _newclass:opta4 = _swig_property(_lcms.L16PARAMS_opta4_get, _lcms.L16PARAMS_opta4_set) __swig_setmethods__["opta5"] = _lcms.L16PARAMS_opta5_set __swig_getmethods__["opta5"] = _lcms.L16PARAMS_opta5_get if _newclass:opta5 = _swig_property(_lcms.L16PARAMS_opta5_get, _lcms.L16PARAMS_opta5_set) __swig_setmethods__["opta6"] = _lcms.L16PARAMS_opta6_set __swig_getmethods__["opta6"] = _lcms.L16PARAMS_opta6_get if _newclass:opta6 = _swig_property(_lcms.L16PARAMS_opta6_get, _lcms.L16PARAMS_opta6_set) __swig_setmethods__["opta7"] = _lcms.L16PARAMS_opta7_set __swig_getmethods__["opta7"] = _lcms.L16PARAMS_opta7_get if _newclass:opta7 = _swig_property(_lcms.L16PARAMS_opta7_get, _lcms.L16PARAMS_opta7_set) __swig_setmethods__["opta8"] = _lcms.L16PARAMS_opta8_set __swig_getmethods__["opta8"] = _lcms.L16PARAMS_opta8_get if _newclass:opta8 = _swig_property(_lcms.L16PARAMS_opta8_get, _lcms.L16PARAMS_opta8_set) __swig_setmethods__["Interp3D"] = _lcms.L16PARAMS_Interp3D_set __swig_getmethods__["Interp3D"] = _lcms.L16PARAMS_Interp3D_get if _newclass:Interp3D = _swig_property(_lcms.L16PARAMS_Interp3D_get, _lcms.L16PARAMS_Interp3D_set) __swig_setmethods__["p8"] = _lcms.L16PARAMS_p8_set __swig_getmethods__["p8"] = _lcms.L16PARAMS_p8_get if _newclass:p8 = _swig_property(_lcms.L16PARAMS_p8_get, _lcms.L16PARAMS_p8_set) def __init__(self, *args): this = _lcms.new_L16PARAMS(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_L16PARAMS __del__ = lambda self : None; L16PARAMS_swigregister = _lcms.L16PARAMS_swigregister L16PARAMS_swigregister(L16PARAMS) cmsCalcL16Params = _lcms.cmsCalcL16Params cmsCalcCLUT16Params = _lcms.cmsCalcCLUT16Params cmsCalcCLUT16ParamsEx = _lcms.cmsCalcCLUT16ParamsEx cmsLinearInterpLUT16 = _lcms.cmsLinearInterpLUT16 cmsLinearInterpFixed = _lcms.cmsLinearInterpFixed cmsReverseLinearInterpLUT16 = _lcms.cmsReverseLinearInterpLUT16 cmsTrilinearInterp16 = _lcms.cmsTrilinearInterp16 cmsTetrahedralInterp16 = _lcms.cmsTetrahedralInterp16 cmsTetrahedralInterp8 = _lcms.cmsTetrahedralInterp8 LUT_HASMATRIX = _lcms.LUT_HASMATRIX LUT_HASTL1 = _lcms.LUT_HASTL1 LUT_HASTL2 = _lcms.LUT_HASTL2 LUT_HAS3DGRID = _lcms.LUT_HAS3DGRID LUT_HASMATRIX3 = _lcms.LUT_HASMATRIX3 LUT_HASMATRIX4 = _lcms.LUT_HASMATRIX4 LUT_HASTL3 = _lcms.LUT_HASTL3 LUT_HASTL4 = _lcms.LUT_HASTL4 LUT_V4_OUTPUT_EMULATE_V2 = _lcms.LUT_V4_OUTPUT_EMULATE_V2 LUT_V4_INPUT_EMULATE_V2 = _lcms.LUT_V4_INPUT_EMULATE_V2 LUT_V2_OUTPUT_EMULATE_V4 = _lcms.LUT_V2_OUTPUT_EMULATE_V4 LUT_V2_INPUT_EMULATE_V4 = _lcms.LUT_V2_INPUT_EMULATE_V4 class _lcms_LUT_struc(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _lcms_LUT_struc, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _lcms_LUT_struc, name) __repr__ = _swig_repr __swig_setmethods__["wFlags"] = _lcms._lcms_LUT_struc_wFlags_set __swig_getmethods__["wFlags"] = _lcms._lcms_LUT_struc_wFlags_get if _newclass:wFlags = _swig_property(_lcms._lcms_LUT_struc_wFlags_get, _lcms._lcms_LUT_struc_wFlags_set) __swig_setmethods__["Matrix"] = _lcms._lcms_LUT_struc_Matrix_set __swig_getmethods__["Matrix"] = _lcms._lcms_LUT_struc_Matrix_get if _newclass:Matrix = _swig_property(_lcms._lcms_LUT_struc_Matrix_get, _lcms._lcms_LUT_struc_Matrix_set) __swig_setmethods__["InputChan"] = _lcms._lcms_LUT_struc_InputChan_set __swig_getmethods__["InputChan"] = _lcms._lcms_LUT_struc_InputChan_get if _newclass:InputChan = _swig_property(_lcms._lcms_LUT_struc_InputChan_get, _lcms._lcms_LUT_struc_InputChan_set) __swig_setmethods__["OutputChan"] = _lcms._lcms_LUT_struc_OutputChan_set __swig_getmethods__["OutputChan"] = _lcms._lcms_LUT_struc_OutputChan_get if _newclass:OutputChan = _swig_property(_lcms._lcms_LUT_struc_OutputChan_get, _lcms._lcms_LUT_struc_OutputChan_set) __swig_setmethods__["InputEntries"] = _lcms._lcms_LUT_struc_InputEntries_set __swig_getmethods__["InputEntries"] = _lcms._lcms_LUT_struc_InputEntries_get if _newclass:InputEntries = _swig_property(_lcms._lcms_LUT_struc_InputEntries_get, _lcms._lcms_LUT_struc_InputEntries_set) __swig_setmethods__["OutputEntries"] = _lcms._lcms_LUT_struc_OutputEntries_set __swig_getmethods__["OutputEntries"] = _lcms._lcms_LUT_struc_OutputEntries_get if _newclass:OutputEntries = _swig_property(_lcms._lcms_LUT_struc_OutputEntries_get, _lcms._lcms_LUT_struc_OutputEntries_set) __swig_setmethods__["cLutPoints"] = _lcms._lcms_LUT_struc_cLutPoints_set __swig_getmethods__["cLutPoints"] = _lcms._lcms_LUT_struc_cLutPoints_get if _newclass:cLutPoints = _swig_property(_lcms._lcms_LUT_struc_cLutPoints_get, _lcms._lcms_LUT_struc_cLutPoints_set) __swig_setmethods__["L1"] = _lcms._lcms_LUT_struc_L1_set __swig_getmethods__["L1"] = _lcms._lcms_LUT_struc_L1_get if _newclass:L1 = _swig_property(_lcms._lcms_LUT_struc_L1_get, _lcms._lcms_LUT_struc_L1_set) __swig_setmethods__["L2"] = _lcms._lcms_LUT_struc_L2_set __swig_getmethods__["L2"] = _lcms._lcms_LUT_struc_L2_get if _newclass:L2 = _swig_property(_lcms._lcms_LUT_struc_L2_get, _lcms._lcms_LUT_struc_L2_set) __swig_setmethods__["T"] = _lcms._lcms_LUT_struc_T_set __swig_getmethods__["T"] = _lcms._lcms_LUT_struc_T_get if _newclass:T = _swig_property(_lcms._lcms_LUT_struc_T_get, _lcms._lcms_LUT_struc_T_set) __swig_setmethods__["Tsize"] = _lcms._lcms_LUT_struc_Tsize_set __swig_getmethods__["Tsize"] = _lcms._lcms_LUT_struc_Tsize_get if _newclass:Tsize = _swig_property(_lcms._lcms_LUT_struc_Tsize_get, _lcms._lcms_LUT_struc_Tsize_set) __swig_setmethods__["In16params"] = _lcms._lcms_LUT_struc_In16params_set __swig_getmethods__["In16params"] = _lcms._lcms_LUT_struc_In16params_get if _newclass:In16params = _swig_property(_lcms._lcms_LUT_struc_In16params_get, _lcms._lcms_LUT_struc_In16params_set) __swig_setmethods__["Out16params"] = _lcms._lcms_LUT_struc_Out16params_set __swig_getmethods__["Out16params"] = _lcms._lcms_LUT_struc_Out16params_get if _newclass:Out16params = _swig_property(_lcms._lcms_LUT_struc_Out16params_get, _lcms._lcms_LUT_struc_Out16params_set) __swig_setmethods__["CLut16params"] = _lcms._lcms_LUT_struc_CLut16params_set __swig_getmethods__["CLut16params"] = _lcms._lcms_LUT_struc_CLut16params_get if _newclass:CLut16params = _swig_property(_lcms._lcms_LUT_struc_CLut16params_get, _lcms._lcms_LUT_struc_CLut16params_set) __swig_setmethods__["Intent"] = _lcms._lcms_LUT_struc_Intent_set __swig_getmethods__["Intent"] = _lcms._lcms_LUT_struc_Intent_get if _newclass:Intent = _swig_property(_lcms._lcms_LUT_struc_Intent_get, _lcms._lcms_LUT_struc_Intent_set) __swig_setmethods__["Mat3"] = _lcms._lcms_LUT_struc_Mat3_set __swig_getmethods__["Mat3"] = _lcms._lcms_LUT_struc_Mat3_get if _newclass:Mat3 = _swig_property(_lcms._lcms_LUT_struc_Mat3_get, _lcms._lcms_LUT_struc_Mat3_set) __swig_setmethods__["Ofs3"] = _lcms._lcms_LUT_struc_Ofs3_set __swig_getmethods__["Ofs3"] = _lcms._lcms_LUT_struc_Ofs3_get if _newclass:Ofs3 = _swig_property(_lcms._lcms_LUT_struc_Ofs3_get, _lcms._lcms_LUT_struc_Ofs3_set) __swig_setmethods__["L3"] = _lcms._lcms_LUT_struc_L3_set __swig_getmethods__["L3"] = _lcms._lcms_LUT_struc_L3_get if _newclass:L3 = _swig_property(_lcms._lcms_LUT_struc_L3_get, _lcms._lcms_LUT_struc_L3_set) __swig_setmethods__["L3params"] = _lcms._lcms_LUT_struc_L3params_set __swig_getmethods__["L3params"] = _lcms._lcms_LUT_struc_L3params_get if _newclass:L3params = _swig_property(_lcms._lcms_LUT_struc_L3params_get, _lcms._lcms_LUT_struc_L3params_set) __swig_setmethods__["L3Entries"] = _lcms._lcms_LUT_struc_L3Entries_set __swig_getmethods__["L3Entries"] = _lcms._lcms_LUT_struc_L3Entries_get if _newclass:L3Entries = _swig_property(_lcms._lcms_LUT_struc_L3Entries_get, _lcms._lcms_LUT_struc_L3Entries_set) __swig_setmethods__["Mat4"] = _lcms._lcms_LUT_struc_Mat4_set __swig_getmethods__["Mat4"] = _lcms._lcms_LUT_struc_Mat4_get if _newclass:Mat4 = _swig_property(_lcms._lcms_LUT_struc_Mat4_get, _lcms._lcms_LUT_struc_Mat4_set) __swig_setmethods__["Ofs4"] = _lcms._lcms_LUT_struc_Ofs4_set __swig_getmethods__["Ofs4"] = _lcms._lcms_LUT_struc_Ofs4_get if _newclass:Ofs4 = _swig_property(_lcms._lcms_LUT_struc_Ofs4_get, _lcms._lcms_LUT_struc_Ofs4_set) __swig_setmethods__["L4"] = _lcms._lcms_LUT_struc_L4_set __swig_getmethods__["L4"] = _lcms._lcms_LUT_struc_L4_get if _newclass:L4 = _swig_property(_lcms._lcms_LUT_struc_L4_get, _lcms._lcms_LUT_struc_L4_set) __swig_setmethods__["L4params"] = _lcms._lcms_LUT_struc_L4params_set __swig_getmethods__["L4params"] = _lcms._lcms_LUT_struc_L4params_get if _newclass:L4params = _swig_property(_lcms._lcms_LUT_struc_L4params_get, _lcms._lcms_LUT_struc_L4params_set) __swig_setmethods__["L4Entries"] = _lcms._lcms_LUT_struc_L4Entries_set __swig_getmethods__["L4Entries"] = _lcms._lcms_LUT_struc_L4Entries_get if _newclass:L4Entries = _swig_property(_lcms._lcms_LUT_struc_L4Entries_get, _lcms._lcms_LUT_struc_L4Entries_set) __swig_setmethods__["FixGrayAxes"] = _lcms._lcms_LUT_struc_FixGrayAxes_set __swig_getmethods__["FixGrayAxes"] = _lcms._lcms_LUT_struc_FixGrayAxes_get if _newclass:FixGrayAxes = _swig_property(_lcms._lcms_LUT_struc_FixGrayAxes_get, _lcms._lcms_LUT_struc_FixGrayAxes_set) __swig_setmethods__["LCurvesSeed"] = _lcms._lcms_LUT_struc_LCurvesSeed_set __swig_getmethods__["LCurvesSeed"] = _lcms._lcms_LUT_struc_LCurvesSeed_get if _newclass:LCurvesSeed = _swig_property(_lcms._lcms_LUT_struc_LCurvesSeed_get, _lcms._lcms_LUT_struc_LCurvesSeed_set) def __init__(self, *args): this = _lcms.new__lcms_LUT_struc(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete__lcms_LUT_struc __del__ = lambda self : None; _lcms_LUT_struc_swigregister = _lcms._lcms_LUT_struc_swigregister _lcms_LUT_struc_swigregister(_lcms_LUT_struc) _cmsSmoothEndpoints = _lcms._cmsSmoothEndpoints _cmsCrc32OfGammaTable = _lcms._cmsCrc32OfGammaTable cmsAllocSampledCurve = _lcms.cmsAllocSampledCurve cmsFreeSampledCurve = _lcms.cmsFreeSampledCurve cmsDupSampledCurve = _lcms.cmsDupSampledCurve cmsConvertGammaToSampledCurve = _lcms.cmsConvertGammaToSampledCurve cmsConvertSampledCurveToGamma = _lcms.cmsConvertSampledCurveToGamma cmsEndpointsOfSampledCurve = _lcms.cmsEndpointsOfSampledCurve cmsClampSampledCurve = _lcms.cmsClampSampledCurve cmsSmoothSampledCurve = _lcms.cmsSmoothSampledCurve cmsRescaleSampledCurve = _lcms.cmsRescaleSampledCurve cmsJoinSampledCurves = _lcms.cmsJoinSampledCurves MATSHAPER_HASMATRIX = _lcms.MATSHAPER_HASMATRIX MATSHAPER_HASSHAPER = _lcms.MATSHAPER_HASSHAPER MATSHAPER_INPUT = _lcms.MATSHAPER_INPUT MATSHAPER_OUTPUT = _lcms.MATSHAPER_OUTPUT MATSHAPER_HASINPSHAPER = _lcms.MATSHAPER_HASINPSHAPER MATSHAPER_ALLSMELTED = _lcms.MATSHAPER_ALLSMELTED class MATSHAPER(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, MATSHAPER, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, MATSHAPER, name) __repr__ = _swig_repr __swig_setmethods__["dwFlags"] = _lcms.MATSHAPER_dwFlags_set __swig_getmethods__["dwFlags"] = _lcms.MATSHAPER_dwFlags_get if _newclass:dwFlags = _swig_property(_lcms.MATSHAPER_dwFlags_get, _lcms.MATSHAPER_dwFlags_set) __swig_setmethods__["Matrix"] = _lcms.MATSHAPER_Matrix_set __swig_getmethods__["Matrix"] = _lcms.MATSHAPER_Matrix_get if _newclass:Matrix = _swig_property(_lcms.MATSHAPER_Matrix_get, _lcms.MATSHAPER_Matrix_set) __swig_setmethods__["p16"] = _lcms.MATSHAPER_p16_set __swig_getmethods__["p16"] = _lcms.MATSHAPER_p16_get if _newclass:p16 = _swig_property(_lcms.MATSHAPER_p16_get, _lcms.MATSHAPER_p16_set) __swig_setmethods__["L"] = _lcms.MATSHAPER_L_set __swig_getmethods__["L"] = _lcms.MATSHAPER_L_get if _newclass:L = _swig_property(_lcms.MATSHAPER_L_get, _lcms.MATSHAPER_L_set) __swig_setmethods__["p2_16"] = _lcms.MATSHAPER_p2_16_set __swig_getmethods__["p2_16"] = _lcms.MATSHAPER_p2_16_get if _newclass:p2_16 = _swig_property(_lcms.MATSHAPER_p2_16_get, _lcms.MATSHAPER_p2_16_set) __swig_setmethods__["L2"] = _lcms.MATSHAPER_L2_set __swig_getmethods__["L2"] = _lcms.MATSHAPER_L2_get if _newclass:L2 = _swig_property(_lcms.MATSHAPER_L2_get, _lcms.MATSHAPER_L2_set) def __init__(self, *args): this = _lcms.new_MATSHAPER(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_MATSHAPER __del__ = lambda self : None; MATSHAPER_swigregister = _lcms.MATSHAPER_swigregister MATSHAPER_swigregister(MATSHAPER) cmsAllocMatShaper = _lcms.cmsAllocMatShaper cmsAllocMatShaper2 = _lcms.cmsAllocMatShaper2 cmsFreeMatShaper = _lcms.cmsFreeMatShaper cmsEvalMatShaper = _lcms.cmsEvalMatShaper cmsReadICCMatrixRGB2XYZ = _lcms.cmsReadICCMatrixRGB2XYZ cmsBuildInputMatrixShaper = _lcms.cmsBuildInputMatrixShaper cmsBuildOutputMatrixShaper = _lcms.cmsBuildOutputMatrixShaper cmsAdaptationMatrix = _lcms.cmsAdaptationMatrix cmsAdaptMatrixToD50 = _lcms.cmsAdaptMatrixToD50 cmsAdaptMatrixFromD50 = _lcms.cmsAdaptMatrixFromD50 cmsReadChromaticAdaptationMatrix = _lcms.cmsReadChromaticAdaptationMatrix cmsXYZ2LabEncoded = _lcms.cmsXYZ2LabEncoded cmsLab2XYZEncoded = _lcms.cmsLab2XYZEncoded _cmsIdentifyWhitePoint = _lcms._cmsIdentifyWhitePoint _cmsQuantizeVal = _lcms._cmsQuantizeVal cmsAllocNamedColorList = _lcms.cmsAllocNamedColorList cmsReadICCnamedColorList = _lcms.cmsReadICCnamedColorList cmsFreeNamedColorList = _lcms.cmsFreeNamedColorList cmsAppendNamedColor = _lcms.cmsAppendNamedColor MAX_TABLE_TAG = _lcms.MAX_TABLE_TAG class LCMSICCPROFILE(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, LCMSICCPROFILE, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, LCMSICCPROFILE, name) __repr__ = _swig_repr __swig_setmethods__["stream"] = _lcms.LCMSICCPROFILE_stream_set __swig_getmethods__["stream"] = _lcms.LCMSICCPROFILE_stream_get if _newclass:stream = _swig_property(_lcms.LCMSICCPROFILE_stream_get, _lcms.LCMSICCPROFILE_stream_set) __swig_setmethods__["DeviceClass"] = _lcms.LCMSICCPROFILE_DeviceClass_set __swig_getmethods__["DeviceClass"] = _lcms.LCMSICCPROFILE_DeviceClass_get if _newclass:DeviceClass = _swig_property(_lcms.LCMSICCPROFILE_DeviceClass_get, _lcms.LCMSICCPROFILE_DeviceClass_set) __swig_setmethods__["ColorSpace"] = _lcms.LCMSICCPROFILE_ColorSpace_set __swig_getmethods__["ColorSpace"] = _lcms.LCMSICCPROFILE_ColorSpace_get if _newclass:ColorSpace = _swig_property(_lcms.LCMSICCPROFILE_ColorSpace_get, _lcms.LCMSICCPROFILE_ColorSpace_set) __swig_setmethods__["PCS"] = _lcms.LCMSICCPROFILE_PCS_set __swig_getmethods__["PCS"] = _lcms.LCMSICCPROFILE_PCS_get if _newclass:PCS = _swig_property(_lcms.LCMSICCPROFILE_PCS_get, _lcms.LCMSICCPROFILE_PCS_set) __swig_setmethods__["RenderingIntent"] = _lcms.LCMSICCPROFILE_RenderingIntent_set __swig_getmethods__["RenderingIntent"] = _lcms.LCMSICCPROFILE_RenderingIntent_get if _newclass:RenderingIntent = _swig_property(_lcms.LCMSICCPROFILE_RenderingIntent_get, _lcms.LCMSICCPROFILE_RenderingIntent_set) __swig_setmethods__["flags"] = _lcms.LCMSICCPROFILE_flags_set __swig_getmethods__["flags"] = _lcms.LCMSICCPROFILE_flags_get if _newclass:flags = _swig_property(_lcms.LCMSICCPROFILE_flags_get, _lcms.LCMSICCPROFILE_flags_set) __swig_setmethods__["attributes"] = _lcms.LCMSICCPROFILE_attributes_set __swig_getmethods__["attributes"] = _lcms.LCMSICCPROFILE_attributes_get if _newclass:attributes = _swig_property(_lcms.LCMSICCPROFILE_attributes_get, _lcms.LCMSICCPROFILE_attributes_set) __swig_setmethods__["Illuminant"] = _lcms.LCMSICCPROFILE_Illuminant_set __swig_getmethods__["Illuminant"] = _lcms.LCMSICCPROFILE_Illuminant_get if _newclass:Illuminant = _swig_property(_lcms.LCMSICCPROFILE_Illuminant_get, _lcms.LCMSICCPROFILE_Illuminant_set) __swig_setmethods__["Version"] = _lcms.LCMSICCPROFILE_Version_set __swig_getmethods__["Version"] = _lcms.LCMSICCPROFILE_Version_get if _newclass:Version = _swig_property(_lcms.LCMSICCPROFILE_Version_get, _lcms.LCMSICCPROFILE_Version_set) __swig_setmethods__["ChromaticAdaptation"] = _lcms.LCMSICCPROFILE_ChromaticAdaptation_set __swig_getmethods__["ChromaticAdaptation"] = _lcms.LCMSICCPROFILE_ChromaticAdaptation_get if _newclass:ChromaticAdaptation = _swig_property(_lcms.LCMSICCPROFILE_ChromaticAdaptation_get, _lcms.LCMSICCPROFILE_ChromaticAdaptation_set) __swig_setmethods__["MediaWhitePoint"] = _lcms.LCMSICCPROFILE_MediaWhitePoint_set __swig_getmethods__["MediaWhitePoint"] = _lcms.LCMSICCPROFILE_MediaWhitePoint_get if _newclass:MediaWhitePoint = _swig_property(_lcms.LCMSICCPROFILE_MediaWhitePoint_get, _lcms.LCMSICCPROFILE_MediaWhitePoint_set) __swig_setmethods__["MediaBlackPoint"] = _lcms.LCMSICCPROFILE_MediaBlackPoint_set __swig_getmethods__["MediaBlackPoint"] = _lcms.LCMSICCPROFILE_MediaBlackPoint_get if _newclass:MediaBlackPoint = _swig_property(_lcms.LCMSICCPROFILE_MediaBlackPoint_get, _lcms.LCMSICCPROFILE_MediaBlackPoint_set) __swig_setmethods__["ProfileID"] = _lcms.LCMSICCPROFILE_ProfileID_set __swig_getmethods__["ProfileID"] = _lcms.LCMSICCPROFILE_ProfileID_get if _newclass:ProfileID = _swig_property(_lcms.LCMSICCPROFILE_ProfileID_get, _lcms.LCMSICCPROFILE_ProfileID_set) __swig_setmethods__["TagCount"] = _lcms.LCMSICCPROFILE_TagCount_set __swig_getmethods__["TagCount"] = _lcms.LCMSICCPROFILE_TagCount_get if _newclass:TagCount = _swig_property(_lcms.LCMSICCPROFILE_TagCount_get, _lcms.LCMSICCPROFILE_TagCount_set) __swig_setmethods__["TagNames"] = _lcms.LCMSICCPROFILE_TagNames_set __swig_getmethods__["TagNames"] = _lcms.LCMSICCPROFILE_TagNames_get if _newclass:TagNames = _swig_property(_lcms.LCMSICCPROFILE_TagNames_get, _lcms.LCMSICCPROFILE_TagNames_set) __swig_setmethods__["TagSizes"] = _lcms.LCMSICCPROFILE_TagSizes_set __swig_getmethods__["TagSizes"] = _lcms.LCMSICCPROFILE_TagSizes_get if _newclass:TagSizes = _swig_property(_lcms.LCMSICCPROFILE_TagSizes_get, _lcms.LCMSICCPROFILE_TagSizes_set) __swig_setmethods__["TagOffsets"] = _lcms.LCMSICCPROFILE_TagOffsets_set __swig_getmethods__["TagOffsets"] = _lcms.LCMSICCPROFILE_TagOffsets_get if _newclass:TagOffsets = _swig_property(_lcms.LCMSICCPROFILE_TagOffsets_get, _lcms.LCMSICCPROFILE_TagOffsets_set) __swig_setmethods__["TagPtrs"] = _lcms.LCMSICCPROFILE_TagPtrs_set __swig_getmethods__["TagPtrs"] = _lcms.LCMSICCPROFILE_TagPtrs_get if _newclass:TagPtrs = _swig_property(_lcms.LCMSICCPROFILE_TagPtrs_get, _lcms.LCMSICCPROFILE_TagPtrs_set) __swig_setmethods__["PhysicalFile"] = _lcms.LCMSICCPROFILE_PhysicalFile_set __swig_getmethods__["PhysicalFile"] = _lcms.LCMSICCPROFILE_PhysicalFile_get if _newclass:PhysicalFile = _swig_property(_lcms.LCMSICCPROFILE_PhysicalFile_get, _lcms.LCMSICCPROFILE_PhysicalFile_set) __swig_setmethods__["IsWrite"] = _lcms.LCMSICCPROFILE_IsWrite_set __swig_getmethods__["IsWrite"] = _lcms.LCMSICCPROFILE_IsWrite_get if _newclass:IsWrite = _swig_property(_lcms.LCMSICCPROFILE_IsWrite_get, _lcms.LCMSICCPROFILE_IsWrite_set) __swig_setmethods__["SaveAs8Bits"] = _lcms.LCMSICCPROFILE_SaveAs8Bits_set __swig_getmethods__["SaveAs8Bits"] = _lcms.LCMSICCPROFILE_SaveAs8Bits_get if _newclass:SaveAs8Bits = _swig_property(_lcms.LCMSICCPROFILE_SaveAs8Bits_get, _lcms.LCMSICCPROFILE_SaveAs8Bits_set) __swig_setmethods__["Created"] = _lcms.LCMSICCPROFILE_Created_set __swig_getmethods__["Created"] = _lcms.LCMSICCPROFILE_Created_get if _newclass:Created = _swig_property(_lcms.LCMSICCPROFILE_Created_get, _lcms.LCMSICCPROFILE_Created_set) __swig_setmethods__["Read"] = _lcms.LCMSICCPROFILE_Read_set __swig_getmethods__["Read"] = _lcms.LCMSICCPROFILE_Read_get if _newclass:Read = _swig_property(_lcms.LCMSICCPROFILE_Read_get, _lcms.LCMSICCPROFILE_Read_set) __swig_setmethods__["Seek"] = _lcms.LCMSICCPROFILE_Seek_set __swig_getmethods__["Seek"] = _lcms.LCMSICCPROFILE_Seek_get if _newclass:Seek = _swig_property(_lcms.LCMSICCPROFILE_Seek_get, _lcms.LCMSICCPROFILE_Seek_set) __swig_setmethods__["Close"] = _lcms.LCMSICCPROFILE_Close_set __swig_getmethods__["Close"] = _lcms.LCMSICCPROFILE_Close_get if _newclass:Close = _swig_property(_lcms.LCMSICCPROFILE_Close_get, _lcms.LCMSICCPROFILE_Close_set) __swig_setmethods__["Tell"] = _lcms.LCMSICCPROFILE_Tell_set __swig_getmethods__["Tell"] = _lcms.LCMSICCPROFILE_Tell_get if _newclass:Tell = _swig_property(_lcms.LCMSICCPROFILE_Tell_get, _lcms.LCMSICCPROFILE_Tell_set) __swig_setmethods__["Write"] = _lcms.LCMSICCPROFILE_Write_set __swig_getmethods__["Write"] = _lcms.LCMSICCPROFILE_Write_get if _newclass:Write = _swig_property(_lcms.LCMSICCPROFILE_Write_get, _lcms.LCMSICCPROFILE_Write_set) __swig_setmethods__["UsedSpace"] = _lcms.LCMSICCPROFILE_UsedSpace_set __swig_getmethods__["UsedSpace"] = _lcms.LCMSICCPROFILE_UsedSpace_get if _newclass:UsedSpace = _swig_property(_lcms.LCMSICCPROFILE_UsedSpace_get, _lcms.LCMSICCPROFILE_UsedSpace_set) def __init__(self, *args): this = _lcms.new_LCMSICCPROFILE(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_LCMSICCPROFILE __del__ = lambda self : None; LCMSICCPROFILE_swigregister = _lcms.LCMSICCPROFILE_swigregister LCMSICCPROFILE_swigregister(LCMSICCPROFILE) _cmsCreateProfilePlaceholder = _lcms._cmsCreateProfilePlaceholder _cmsSearchTag = _lcms._cmsSearchTag _cmsInitTag = _lcms._cmsInitTag _cmsCreateProfileFromFilePlaceholder = _lcms._cmsCreateProfileFromFilePlaceholder _cmsCreateProfileFromMemPlaceholder = _lcms._cmsCreateProfileFromMemPlaceholder _cmsSetSaveToDisk = _lcms._cmsSetSaveToDisk _cmsSetSaveToMemory = _lcms._cmsSetSaveToMemory class _cmsTRANSFORM(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, _cmsTRANSFORM, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, _cmsTRANSFORM, name) __repr__ = _swig_repr __swig_setmethods__["InputFormat"] = _lcms._cmsTRANSFORM_InputFormat_set __swig_getmethods__["InputFormat"] = _lcms._cmsTRANSFORM_InputFormat_get if _newclass:InputFormat = _swig_property(_lcms._cmsTRANSFORM_InputFormat_get, _lcms._cmsTRANSFORM_InputFormat_set) __swig_setmethods__["OutputFormat"] = _lcms._cmsTRANSFORM_OutputFormat_set __swig_getmethods__["OutputFormat"] = _lcms._cmsTRANSFORM_OutputFormat_get if _newclass:OutputFormat = _swig_property(_lcms._cmsTRANSFORM_OutputFormat_get, _lcms._cmsTRANSFORM_OutputFormat_set) __swig_setmethods__["StrideIn"] = _lcms._cmsTRANSFORM_StrideIn_set __swig_getmethods__["StrideIn"] = _lcms._cmsTRANSFORM_StrideIn_get if _newclass:StrideIn = _swig_property(_lcms._cmsTRANSFORM_StrideIn_get, _lcms._cmsTRANSFORM_StrideIn_set) __swig_setmethods__["StrideOut"] = _lcms._cmsTRANSFORM_StrideOut_set __swig_getmethods__["StrideOut"] = _lcms._cmsTRANSFORM_StrideOut_get if _newclass:StrideOut = _swig_property(_lcms._cmsTRANSFORM_StrideOut_get, _lcms._cmsTRANSFORM_StrideOut_set) __swig_setmethods__["Intent"] = _lcms._cmsTRANSFORM_Intent_set __swig_getmethods__["Intent"] = _lcms._cmsTRANSFORM_Intent_get if _newclass:Intent = _swig_property(_lcms._cmsTRANSFORM_Intent_get, _lcms._cmsTRANSFORM_Intent_set) __swig_setmethods__["ProofIntent"] = _lcms._cmsTRANSFORM_ProofIntent_set __swig_getmethods__["ProofIntent"] = _lcms._cmsTRANSFORM_ProofIntent_get if _newclass:ProofIntent = _swig_property(_lcms._cmsTRANSFORM_ProofIntent_get, _lcms._cmsTRANSFORM_ProofIntent_set) __swig_setmethods__["DoGamutCheck"] = _lcms._cmsTRANSFORM_DoGamutCheck_set __swig_getmethods__["DoGamutCheck"] = _lcms._cmsTRANSFORM_DoGamutCheck_get if _newclass:DoGamutCheck = _swig_property(_lcms._cmsTRANSFORM_DoGamutCheck_get, _lcms._cmsTRANSFORM_DoGamutCheck_set) __swig_setmethods__["InputProfile"] = _lcms._cmsTRANSFORM_InputProfile_set __swig_getmethods__["InputProfile"] = _lcms._cmsTRANSFORM_InputProfile_get if _newclass:InputProfile = _swig_property(_lcms._cmsTRANSFORM_InputProfile_get, _lcms._cmsTRANSFORM_InputProfile_set) __swig_setmethods__["OutputProfile"] = _lcms._cmsTRANSFORM_OutputProfile_set __swig_getmethods__["OutputProfile"] = _lcms._cmsTRANSFORM_OutputProfile_get if _newclass:OutputProfile = _swig_property(_lcms._cmsTRANSFORM_OutputProfile_get, _lcms._cmsTRANSFORM_OutputProfile_set) __swig_setmethods__["PreviewProfile"] = _lcms._cmsTRANSFORM_PreviewProfile_set __swig_getmethods__["PreviewProfile"] = _lcms._cmsTRANSFORM_PreviewProfile_get if _newclass:PreviewProfile = _swig_property(_lcms._cmsTRANSFORM_PreviewProfile_get, _lcms._cmsTRANSFORM_PreviewProfile_set) __swig_setmethods__["EntryColorSpace"] = _lcms._cmsTRANSFORM_EntryColorSpace_set __swig_getmethods__["EntryColorSpace"] = _lcms._cmsTRANSFORM_EntryColorSpace_get if _newclass:EntryColorSpace = _swig_property(_lcms._cmsTRANSFORM_EntryColorSpace_get, _lcms._cmsTRANSFORM_EntryColorSpace_set) __swig_setmethods__["ExitColorSpace"] = _lcms._cmsTRANSFORM_ExitColorSpace_set __swig_getmethods__["ExitColorSpace"] = _lcms._cmsTRANSFORM_ExitColorSpace_get if _newclass:ExitColorSpace = _swig_property(_lcms._cmsTRANSFORM_ExitColorSpace_get, _lcms._cmsTRANSFORM_ExitColorSpace_set) __swig_setmethods__["dwOriginalFlags"] = _lcms._cmsTRANSFORM_dwOriginalFlags_set __swig_getmethods__["dwOriginalFlags"] = _lcms._cmsTRANSFORM_dwOriginalFlags_get if _newclass:dwOriginalFlags = _swig_property(_lcms._cmsTRANSFORM_dwOriginalFlags_get, _lcms._cmsTRANSFORM_dwOriginalFlags_set) __swig_setmethods__["m1"] = _lcms._cmsTRANSFORM_m1_set __swig_getmethods__["m1"] = _lcms._cmsTRANSFORM_m1_get if _newclass:m1 = _swig_property(_lcms._cmsTRANSFORM_m1_get, _lcms._cmsTRANSFORM_m1_set) __swig_setmethods__["m2"] = _lcms._cmsTRANSFORM_m2_set __swig_getmethods__["m2"] = _lcms._cmsTRANSFORM_m2_get if _newclass:m2 = _swig_property(_lcms._cmsTRANSFORM_m2_get, _lcms._cmsTRANSFORM_m2_set) __swig_setmethods__["of1"] = _lcms._cmsTRANSFORM_of1_set __swig_getmethods__["of1"] = _lcms._cmsTRANSFORM_of1_get if _newclass:of1 = _swig_property(_lcms._cmsTRANSFORM_of1_get, _lcms._cmsTRANSFORM_of1_set) __swig_setmethods__["of2"] = _lcms._cmsTRANSFORM_of2_set __swig_getmethods__["of2"] = _lcms._cmsTRANSFORM_of2_get if _newclass:of2 = _swig_property(_lcms._cmsTRANSFORM_of2_get, _lcms._cmsTRANSFORM_of2_set) __swig_setmethods__["xform"] = _lcms._cmsTRANSFORM_xform_set __swig_getmethods__["xform"] = _lcms._cmsTRANSFORM_xform_get if _newclass:xform = _swig_property(_lcms._cmsTRANSFORM_xform_get, _lcms._cmsTRANSFORM_xform_set) __swig_setmethods__["FromInput"] = _lcms._cmsTRANSFORM_FromInput_set __swig_getmethods__["FromInput"] = _lcms._cmsTRANSFORM_FromInput_get if _newclass:FromInput = _swig_property(_lcms._cmsTRANSFORM_FromInput_get, _lcms._cmsTRANSFORM_FromInput_set) __swig_setmethods__["FromDevice"] = _lcms._cmsTRANSFORM_FromDevice_set __swig_getmethods__["FromDevice"] = _lcms._cmsTRANSFORM_FromDevice_get if _newclass:FromDevice = _swig_property(_lcms._cmsTRANSFORM_FromDevice_get, _lcms._cmsTRANSFORM_FromDevice_set) __swig_setmethods__["Stage1"] = _lcms._cmsTRANSFORM_Stage1_set __swig_getmethods__["Stage1"] = _lcms._cmsTRANSFORM_Stage1_get if _newclass:Stage1 = _swig_property(_lcms._cmsTRANSFORM_Stage1_get, _lcms._cmsTRANSFORM_Stage1_set) __swig_setmethods__["Stage2"] = _lcms._cmsTRANSFORM_Stage2_set __swig_getmethods__["Stage2"] = _lcms._cmsTRANSFORM_Stage2_get if _newclass:Stage2 = _swig_property(_lcms._cmsTRANSFORM_Stage2_get, _lcms._cmsTRANSFORM_Stage2_set) __swig_setmethods__["ToDevice"] = _lcms._cmsTRANSFORM_ToDevice_set __swig_getmethods__["ToDevice"] = _lcms._cmsTRANSFORM_ToDevice_get if _newclass:ToDevice = _swig_property(_lcms._cmsTRANSFORM_ToDevice_get, _lcms._cmsTRANSFORM_ToDevice_set) __swig_setmethods__["ToOutput"] = _lcms._cmsTRANSFORM_ToOutput_set __swig_getmethods__["ToOutput"] = _lcms._cmsTRANSFORM_ToOutput_get if _newclass:ToOutput = _swig_property(_lcms._cmsTRANSFORM_ToOutput_get, _lcms._cmsTRANSFORM_ToOutput_set) __swig_setmethods__["Device2PCS"] = _lcms._cmsTRANSFORM_Device2PCS_set __swig_getmethods__["Device2PCS"] = _lcms._cmsTRANSFORM_Device2PCS_get if _newclass:Device2PCS = _swig_property(_lcms._cmsTRANSFORM_Device2PCS_get, _lcms._cmsTRANSFORM_Device2PCS_set) __swig_setmethods__["PCS2Device"] = _lcms._cmsTRANSFORM_PCS2Device_set __swig_getmethods__["PCS2Device"] = _lcms._cmsTRANSFORM_PCS2Device_get if _newclass:PCS2Device = _swig_property(_lcms._cmsTRANSFORM_PCS2Device_get, _lcms._cmsTRANSFORM_PCS2Device_set) __swig_setmethods__["Gamut"] = _lcms._cmsTRANSFORM_Gamut_set __swig_getmethods__["Gamut"] = _lcms._cmsTRANSFORM_Gamut_get if _newclass:Gamut = _swig_property(_lcms._cmsTRANSFORM_Gamut_get, _lcms._cmsTRANSFORM_Gamut_set) __swig_setmethods__["Preview"] = _lcms._cmsTRANSFORM_Preview_set __swig_getmethods__["Preview"] = _lcms._cmsTRANSFORM_Preview_get if _newclass:Preview = _swig_property(_lcms._cmsTRANSFORM_Preview_get, _lcms._cmsTRANSFORM_Preview_set) __swig_setmethods__["DeviceLink"] = _lcms._cmsTRANSFORM_DeviceLink_set __swig_getmethods__["DeviceLink"] = _lcms._cmsTRANSFORM_DeviceLink_get if _newclass:DeviceLink = _swig_property(_lcms._cmsTRANSFORM_DeviceLink_get, _lcms._cmsTRANSFORM_DeviceLink_set) __swig_setmethods__["GamutCheck"] = _lcms._cmsTRANSFORM_GamutCheck_set __swig_getmethods__["GamutCheck"] = _lcms._cmsTRANSFORM_GamutCheck_get if _newclass:GamutCheck = _swig_property(_lcms._cmsTRANSFORM_GamutCheck_get, _lcms._cmsTRANSFORM_GamutCheck_set) __swig_setmethods__["InMatShaper"] = _lcms._cmsTRANSFORM_InMatShaper_set __swig_getmethods__["InMatShaper"] = _lcms._cmsTRANSFORM_InMatShaper_get if _newclass:InMatShaper = _swig_property(_lcms._cmsTRANSFORM_InMatShaper_get, _lcms._cmsTRANSFORM_InMatShaper_set) __swig_setmethods__["OutMatShaper"] = _lcms._cmsTRANSFORM_OutMatShaper_set __swig_getmethods__["OutMatShaper"] = _lcms._cmsTRANSFORM_OutMatShaper_get if _newclass:OutMatShaper = _swig_property(_lcms._cmsTRANSFORM_OutMatShaper_get, _lcms._cmsTRANSFORM_OutMatShaper_set) __swig_setmethods__["SmeltMatShaper"] = _lcms._cmsTRANSFORM_SmeltMatShaper_set __swig_getmethods__["SmeltMatShaper"] = _lcms._cmsTRANSFORM_SmeltMatShaper_get if _newclass:SmeltMatShaper = _swig_property(_lcms._cmsTRANSFORM_SmeltMatShaper_get, _lcms._cmsTRANSFORM_SmeltMatShaper_set) __swig_setmethods__["Phase1"] = _lcms._cmsTRANSFORM_Phase1_set __swig_getmethods__["Phase1"] = _lcms._cmsTRANSFORM_Phase1_get if _newclass:Phase1 = _swig_property(_lcms._cmsTRANSFORM_Phase1_get, _lcms._cmsTRANSFORM_Phase1_set) __swig_setmethods__["Phase2"] = _lcms._cmsTRANSFORM_Phase2_set __swig_getmethods__["Phase2"] = _lcms._cmsTRANSFORM_Phase2_get if _newclass:Phase2 = _swig_property(_lcms._cmsTRANSFORM_Phase2_get, _lcms._cmsTRANSFORM_Phase2_set) __swig_setmethods__["Phase3"] = _lcms._cmsTRANSFORM_Phase3_set __swig_getmethods__["Phase3"] = _lcms._cmsTRANSFORM_Phase3_get if _newclass:Phase3 = _swig_property(_lcms._cmsTRANSFORM_Phase3_get, _lcms._cmsTRANSFORM_Phase3_set) __swig_setmethods__["NamedColorList"] = _lcms._cmsTRANSFORM_NamedColorList_set __swig_getmethods__["NamedColorList"] = _lcms._cmsTRANSFORM_NamedColorList_get if _newclass:NamedColorList = _swig_property(_lcms._cmsTRANSFORM_NamedColorList_get, _lcms._cmsTRANSFORM_NamedColorList_set) __swig_setmethods__["lInputV4Lab"] = _lcms._cmsTRANSFORM_lInputV4Lab_set __swig_getmethods__["lInputV4Lab"] = _lcms._cmsTRANSFORM_lInputV4Lab_get if _newclass:lInputV4Lab = _swig_property(_lcms._cmsTRANSFORM_lInputV4Lab_get, _lcms._cmsTRANSFORM_lInputV4Lab_set) __swig_setmethods__["lOutputV4Lab"] = _lcms._cmsTRANSFORM_lOutputV4Lab_set __swig_getmethods__["lOutputV4Lab"] = _lcms._cmsTRANSFORM_lOutputV4Lab_get if _newclass:lOutputV4Lab = _swig_property(_lcms._cmsTRANSFORM_lOutputV4Lab_get, _lcms._cmsTRANSFORM_lOutputV4Lab_set) __swig_setmethods__["CacheIn"] = _lcms._cmsTRANSFORM_CacheIn_set __swig_getmethods__["CacheIn"] = _lcms._cmsTRANSFORM_CacheIn_get if _newclass:CacheIn = _swig_property(_lcms._cmsTRANSFORM_CacheIn_get, _lcms._cmsTRANSFORM_CacheIn_set) __swig_setmethods__["CacheOut"] = _lcms._cmsTRANSFORM_CacheOut_set __swig_getmethods__["CacheOut"] = _lcms._cmsTRANSFORM_CacheOut_get if _newclass:CacheOut = _swig_property(_lcms._cmsTRANSFORM_CacheOut_get, _lcms._cmsTRANSFORM_CacheOut_set) __swig_setmethods__["AdaptationState"] = _lcms._cmsTRANSFORM_AdaptationState_set __swig_getmethods__["AdaptationState"] = _lcms._cmsTRANSFORM_AdaptationState_get if _newclass:AdaptationState = _swig_property(_lcms._cmsTRANSFORM_AdaptationState_get, _lcms._cmsTRANSFORM_AdaptationState_set) __swig_setmethods__["rwlock"] = _lcms._cmsTRANSFORM_rwlock_set __swig_getmethods__["rwlock"] = _lcms._cmsTRANSFORM_rwlock_get if _newclass:rwlock = _swig_property(_lcms._cmsTRANSFORM_rwlock_get, _lcms._cmsTRANSFORM_rwlock_set) def __init__(self, *args): this = _lcms.new__cmsTRANSFORM(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete__cmsTRANSFORM __del__ = lambda self : None; _cmsTRANSFORM_swigregister = _lcms._cmsTRANSFORM_swigregister _cmsTRANSFORM_swigregister(_cmsTRANSFORM) _cmsIdentifyInputFormat = _lcms._cmsIdentifyInputFormat _cmsIdentifyOutputFormat = _lcms._cmsIdentifyOutputFormat XYZRel = _lcms.XYZRel LabRel = _lcms.LabRel cmsChooseCnvrt = _lcms.cmsChooseCnvrt _cmsEndPointsBySpace = _lcms._cmsEndPointsBySpace _cmsWhiteBySpace = _lcms._cmsWhiteBySpace Clamp_L = _lcms.Clamp_L Clamp_ab = _lcms.Clamp_ab LCMS_BPFLAGS_D50_ADAPTED = _lcms.LCMS_BPFLAGS_D50_ADAPTED cmsDetectBlackPoint = _lcms.cmsDetectBlackPoint _cmsReasonableGridpointsByColorspace = _lcms._cmsReasonableGridpointsByColorspace _cmsPrecalculateDeviceLink = _lcms._cmsPrecalculateDeviceLink _cmsPrecalculateBlackPreservingDeviceLink = _lcms._cmsPrecalculateBlackPreservingDeviceLink _cmsPrecalculateGamutCheck = _lcms._cmsPrecalculateGamutCheck _cmsFixWhiteMisalignment = _lcms._cmsFixWhiteMisalignment _cmsBlessLUT8 = _lcms._cmsBlessLUT8 _cmsComputeGamutLUT = _lcms._cmsComputeGamutLUT _cmsComputeSoftProofLUT = _lcms._cmsComputeSoftProofLUT _cmsComputePrelinearizationTablesFromXFORM = _lcms._cmsComputePrelinearizationTablesFromXFORM _cmsBuildKToneCurve = _lcms._cmsBuildKToneCurve _cmsValidateLUT = _lcms._cmsValidateLUT class icTagSignature(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, icTagSignature, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, icTagSignature, name) __repr__ = _swig_repr def __init__(self, *args): this = _lcms.new_icTagSignature(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_icTagSignature __del__ = lambda self : None; icTagSignature_swigregister = _lcms.icTagSignature_swigregister icTagSignature_swigregister(icTagSignature) class StrPointer(_object): __swig_setmethods__ = {} __setattr__ = lambda self, name, value: _swig_setattr(self, StrPointer, name, value) __swig_getmethods__ = {} __getattr__ = lambda self, name: _swig_getattr(self, StrPointer, name) __repr__ = _swig_repr def __init__(self, *args): this = _lcms.new_StrPointer(*args) try: self.this.append(this) except: self.this = this __swig_destroy__ = _lcms.delete_StrPointer __del__ = lambda self : None; StrPointer_swigregister = _lcms.StrPointer_swigregister StrPointer_swigregister(StrPointer) lcms-1.19/python/lcms_wrap.cxx0000777000175300010010000451125311161176131015721 0ustar MartiNinguno/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.36 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make * changes to this file unless you know what you are doing--modify the SWIG * interface file instead. * ----------------------------------------------------------------------------- */ #define SWIGPYTHON #define SWIG_PYTHON_DIRECTOR_NO_VTABLE #ifdef __cplusplus template class SwigValueWrapper { T *tt; public: SwigValueWrapper() : tt(0) { } SwigValueWrapper(const SwigValueWrapper& rhs) : tt(new T(*rhs.tt)) { } SwigValueWrapper(const T& t) : tt(new T(t)) { } ~SwigValueWrapper() { delete tt; } SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; } operator T&() const { return *tt; } T *operator&() { return tt; } private: SwigValueWrapper& operator=(const SwigValueWrapper& rhs); }; template T SwigValueInit() { return T(); } #endif /* ----------------------------------------------------------------------------- * This section contains generic SWIG labels for method/variable * declarations/attributes, and other compiler dependent labels. * ----------------------------------------------------------------------------- */ /* template workaround for compilers that cannot correctly implement the C++ standard */ #ifndef SWIGTEMPLATEDISAMBIGUATOR # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560) # define SWIGTEMPLATEDISAMBIGUATOR template # elif defined(__HP_aCC) /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */ /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */ # define SWIGTEMPLATEDISAMBIGUATOR template # else # define SWIGTEMPLATEDISAMBIGUATOR # endif #endif /* inline attribute */ #ifndef SWIGINLINE # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) # define SWIGINLINE inline # else # define SWIGINLINE # endif #endif /* attribute recognised by some compilers to avoid 'unused' warnings */ #ifndef SWIGUNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif # elif defined(__ICC) # define SWIGUNUSED __attribute__ ((__unused__)) # else # define SWIGUNUSED # endif #endif #ifndef SWIG_MSC_UNSUPPRESS_4505 # if defined(_MSC_VER) # pragma warning(disable : 4505) /* unreferenced local function has been removed */ # endif #endif #ifndef SWIGUNUSEDPARM # ifdef __cplusplus # define SWIGUNUSEDPARM(p) # else # define SWIGUNUSEDPARM(p) p SWIGUNUSED # endif #endif /* internal SWIG method */ #ifndef SWIGINTERN # define SWIGINTERN static SWIGUNUSED #endif /* internal inline SWIG method */ #ifndef SWIGINTERNINLINE # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE #endif /* exporting methods */ #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # ifndef GCC_HASCLASSVISIBILITY # define GCC_HASCLASSVISIBILITY # endif #endif #ifndef SWIGEXPORT # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # if defined(STATIC_LINKED) # define SWIGEXPORT # else # define SWIGEXPORT __declspec(dllexport) # endif # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) # define SWIGEXPORT __attribute__ ((visibility("default"))) # else # define SWIGEXPORT # endif # endif #endif /* calling conventions for Windows */ #ifndef SWIGSTDCALL # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # define SWIGSTDCALL __stdcall # else # define SWIGSTDCALL # endif #endif /* Deal with Microsoft's attempt at deprecating C standard runtime functions */ #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) # define _CRT_SECURE_NO_DEPRECATE #endif /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) # define _SCL_SECURE_NO_DEPRECATE #endif /* Python.h has to appear first */ #include /* ----------------------------------------------------------------------------- * swigrun.swg * * This file contains generic CAPI SWIG runtime support for pointer * type checking. * ----------------------------------------------------------------------------- */ /* This should only be incremented when either the layout of swig_type_info changes, or for whatever reason, the runtime changes incompatibly */ #define SWIG_RUNTIME_VERSION "4" /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ #ifdef SWIG_TYPE_TABLE # define SWIG_QUOTE_STRING(x) #x # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x) # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE) #else # define SWIG_TYPE_TABLE_NAME #endif /* You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for creating a static or dynamic library from the swig runtime code. In 99.9% of the cases, swig just needs to declare them as 'static'. But only do this if is strictly necessary, ie, if you have problems with your compiler or so. */ #ifndef SWIGRUNTIME # define SWIGRUNTIME SWIGINTERN #endif #ifndef SWIGRUNTIMEINLINE # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE #endif /* Generic buffer size */ #ifndef SWIG_BUFFER_SIZE # define SWIG_BUFFER_SIZE 1024 #endif /* Flags for pointer conversions */ #define SWIG_POINTER_DISOWN 0x1 #define SWIG_CAST_NEW_MEMORY 0x2 /* Flags for new pointer objects */ #define SWIG_POINTER_OWN 0x1 /* Flags/methods for returning states. The swig conversion methods, as ConvertPtr, return and integer that tells if the conversion was successful or not. And if not, an error code can be returned (see swigerrors.swg for the codes). Use the following macros/flags to set or process the returning states. In old swig versions, you usually write code as: if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) { // success code } else { //fail code } Now you can be more explicit as: int res = SWIG_ConvertPtr(obj,vptr,ty.flags); if (SWIG_IsOK(res)) { // success code } else { // fail code } that seems to be the same, but now you can also do Type *ptr; int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags); if (SWIG_IsOK(res)) { // success code if (SWIG_IsNewObj(res) { ... delete *ptr; } else { ... } } else { // fail code } I.e., now SWIG_ConvertPtr can return new objects and you can identify the case and take care of the deallocation. Of course that requires also to SWIG_ConvertPtr to return new result values, as int SWIG_ConvertPtr(obj, ptr,...) { if () { if () { *ptr = ; return SWIG_NEWOBJ; } else { *ptr = ; return SWIG_OLDOBJ; } } else { return SWIG_BADOBJ; } } Of course, returning the plain '0(success)/-1(fail)' still works, but you can be more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the swig errors code. Finally, if the SWIG_CASTRANK_MODE is enabled, the result code allows to return the 'cast rank', for example, if you have this int food(double) int fooi(int); and you call food(1) // cast rank '1' (1 -> 1.0) fooi(1) // cast rank '0' just use the SWIG_AddCast()/SWIG_CheckState() */ #define SWIG_OK (0) #define SWIG_ERROR (-1) #define SWIG_IsOK(r) (r >= 0) #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError) /* The CastRankLimit says how many bits are used for the cast rank */ #define SWIG_CASTRANKLIMIT (1 << 8) /* The NewMask denotes the object was created (using new/malloc) */ #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1) /* The TmpMask is for in/out typemaps that use temporal objects */ #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1) /* Simple returning values */ #define SWIG_BADOBJ (SWIG_ERROR) #define SWIG_OLDOBJ (SWIG_OK) #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK) #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK) /* Check, add and del mask methods */ #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r) #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r) #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK)) #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r) #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r) #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK)) /* Cast-Rank Mode */ #if defined(SWIG_CASTRANK_MODE) # ifndef SWIG_TypeRank # define SWIG_TypeRank unsigned long # endif # ifndef SWIG_MAXCASTRANK /* Default cast allowed */ # define SWIG_MAXCASTRANK (2) # endif # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1) # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK) SWIGINTERNINLINE int SWIG_AddCast(int r) { return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r; } SWIGINTERNINLINE int SWIG_CheckState(int r) { return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; } #else /* no cast-rank mode */ # define SWIG_AddCast # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0) #endif #include #ifdef __cplusplus extern "C" { #endif typedef void *(*swig_converter_func)(void *, int *); typedef struct swig_type_info *(*swig_dycast_func)(void **); /* Structure to store information on one type */ typedef struct swig_type_info { const char *name; /* mangled name of this type */ const char *str; /* human readable name of this type */ swig_dycast_func dcast; /* dynamic cast function down a hierarchy */ struct swig_cast_info *cast; /* linked list of types that can cast into this type */ void *clientdata; /* language specific type data */ int owndata; /* flag if the structure owns the clientdata */ } swig_type_info; /* Structure to store a type and conversion function used for casting */ typedef struct swig_cast_info { swig_type_info *type; /* pointer to type that is equivalent to this type */ swig_converter_func converter; /* function to cast the void pointers */ struct swig_cast_info *next; /* pointer to next cast in linked list */ struct swig_cast_info *prev; /* pointer to the previous cast */ } swig_cast_info; /* Structure used to store module information * Each module generates one structure like this, and the runtime collects * all of these structures and stores them in a circularly linked list.*/ typedef struct swig_module_info { swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */ size_t size; /* Number of types in this module */ struct swig_module_info *next; /* Pointer to next element in circularly linked list */ swig_type_info **type_initial; /* Array of initially generated type structures */ swig_cast_info **cast_initial; /* Array of initially generated casting structures */ void *clientdata; /* Language specific module data */ } swig_module_info; /* Compare two type names skipping the space characters, therefore "char*" == "char *" and "Class" == "Class", etc. Return 0 when the two name types are equivalent, as in strncmp, but skipping ' '. */ SWIGRUNTIME int SWIG_TypeNameComp(const char *f1, const char *l1, const char *f2, const char *l2) { for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) { while ((*f1 == ' ') && (f1 != l1)) ++f1; while ((*f2 == ' ') && (f2 != l2)) ++f2; if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1; } return (int)((l1 - f1) - (l2 - f2)); } /* Check type equivalence in a name list like ||... Return 0 if not equal, 1 if equal */ SWIGRUNTIME int SWIG_TypeEquiv(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* Check type equivalence in a name list like ||... Return 0 if equal, -1 if nb < tb, 1 if nb > tb */ SWIGRUNTIME int SWIG_TypeCompare(const char *nb, const char *tb) { int equiv = 0; const char* te = tb + strlen(tb); const char* ne = nb; while (!equiv && *ne) { for (nb = ne; *ne; ++ne) { if (*ne == '|') break; } equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; if (*ne) ++ne; } return equiv; } /* think of this as a c++ template<> or a scheme macro */ #define SWIG_TypeCheck_Template(comparison, ty) \ if (ty) { \ swig_cast_info *iter = ty->cast; \ while (iter) { \ if (comparison) { \ if (iter == ty->cast) return iter; \ /* Move iter to the top of the linked list */ \ iter->prev->next = iter->next; \ if (iter->next) \ iter->next->prev = iter->prev; \ iter->next = ty->cast; \ iter->prev = 0; \ if (ty->cast) ty->cast->prev = iter; \ ty->cast = iter; \ return iter; \ } \ iter = iter->next; \ } \ } \ return 0 /* Check the typename */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheck(const char *c, swig_type_info *ty) { SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty); } /* Same as previous function, except strcmp is replaced with a pointer comparison */ SWIGRUNTIME swig_cast_info * SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) { SWIG_TypeCheck_Template(iter->type == from, into); } /* Cast a pointer up an inheritance hierarchy */ SWIGRUNTIMEINLINE void * SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) { return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory); } /* Dynamic pointer casting. Down an inheritance hierarchy */ SWIGRUNTIME swig_type_info * SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) { swig_type_info *lastty = ty; if (!ty || !ty->dcast) return ty; while (ty && (ty->dcast)) { ty = (*ty->dcast)(ptr); if (ty) lastty = ty; } return lastty; } /* Return the name associated with this type */ SWIGRUNTIMEINLINE const char * SWIG_TypeName(const swig_type_info *ty) { return ty->name; } /* Return the pretty name associated with this type, that is an unmangled type name in a form presentable to the user. */ SWIGRUNTIME const char * SWIG_TypePrettyName(const swig_type_info *type) { /* The "str" field contains the equivalent pretty names of the type, separated by vertical-bar characters. We choose to print the last name, as it is often (?) the most specific. */ if (!type) return NULL; if (type->str != NULL) { const char *last_name = type->str; const char *s; for (s = type->str; *s; s++) if (*s == '|') last_name = s+1; return last_name; } else return type->name; } /* Set the clientdata field for a type */ SWIGRUNTIME void SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { swig_cast_info *cast = ti->cast; /* if (ti->clientdata == clientdata) return; */ ti->clientdata = clientdata; while (cast) { if (!cast->converter) { swig_type_info *tc = cast->type; if (!tc->clientdata) { SWIG_TypeClientData(tc, clientdata); } } cast = cast->next; } } SWIGRUNTIME void SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) { SWIG_TypeClientData(ti, clientdata); ti->owndata = 1; } /* Search for a swig_type_info structure only by mangled name Search is a O(log #types) We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_MangledTypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { swig_module_info *iter = start; do { if (iter->size) { register size_t l = 0; register size_t r = iter->size - 1; do { /* since l+r >= 0, we can (>> 1) instead (/ 2) */ register size_t i = (l + r) >> 1; const char *iname = iter->types[i]->name; if (iname) { register int compare = strcmp(name, iname); if (compare == 0) { return iter->types[i]; } else if (compare < 0) { if (i) { r = i - 1; } else { break; } } else if (compare > 0) { l = i + 1; } } else { break; /* should never happen */ } } while (l <= r); } iter = iter->next; } while (iter != end); return 0; } /* Search for a swig_type_info structure for either a mangled name or a human readable name. It first searches the mangled names of the types, which is a O(log #types) If a type is not found it then searches the human readable names, which is O(#types). We start searching at module start, and finish searching when start == end. Note: if start == end at the beginning of the function, we go all the way around the circular list. */ SWIGRUNTIME swig_type_info * SWIG_TypeQueryModule(swig_module_info *start, swig_module_info *end, const char *name) { /* STEP 1: Search the name field using binary search */ swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); if (ret) { return ret; } else { /* STEP 2: If the type hasn't been found, do a complete search of the str field (the human readable name) */ swig_module_info *iter = start; do { register size_t i = 0; for (; i < iter->size; ++i) { if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name))) return iter->types[i]; } iter = iter->next; } while (iter != end); } /* neither found a match */ return 0; } /* Pack binary data into a string */ SWIGRUNTIME char * SWIG_PackData(char *c, void *ptr, size_t sz) { static const char hex[17] = "0123456789abcdef"; register const unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register unsigned char uu = *u; *(c++) = hex[(uu & 0xf0) >> 4]; *(c++) = hex[uu & 0xf]; } return c; } /* Unpack binary data from a string */ SWIGRUNTIME const char * SWIG_UnpackData(const char *c, void *ptr, size_t sz) { register unsigned char *u = (unsigned char *) ptr; register const unsigned char *eu = u + sz; for (; u != eu; ++u) { register char d = *(c++); register unsigned char uu; if ((d >= '0') && (d <= '9')) uu = ((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) uu = ((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) uu |= (d - '0'); else if ((d >= 'a') && (d <= 'f')) uu |= (d - ('a'-10)); else return (char *) 0; *u = uu; } return c; } /* Pack 'void *' into a string buffer. */ SWIGRUNTIME char * SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { char *r = buff; if ((2*sizeof(void *) + 2) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,&ptr,sizeof(void *)); if (strlen(name) + 1 > (bsz - (r - buff))) return 0; strcpy(r,name); return buff; } SWIGRUNTIME const char * SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { *ptr = (void *) 0; return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sizeof(void *)); } SWIGRUNTIME char * SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { char *r = buff; size_t lname = (name ? strlen(name) : 0); if ((2*sz + 2 + lname) > bsz) return 0; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); if (lname) { strncpy(r,name,lname+1); } else { *r = 0; } return buff; } SWIGRUNTIME const char * SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { if (*c != '_') { if (strcmp(c,"NULL") == 0) { memset(ptr,0,sz); return name; } else { return 0; } } return SWIG_UnpackData(++c,ptr,sz); } #ifdef __cplusplus } #endif /* Errors in SWIG */ #define SWIG_UnknownError -1 #define SWIG_IOError -2 #define SWIG_RuntimeError -3 #define SWIG_IndexError -4 #define SWIG_TypeError -5 #define SWIG_DivisionByZero -6 #define SWIG_OverflowError -7 #define SWIG_SyntaxError -8 #define SWIG_ValueError -9 #define SWIG_SystemError -10 #define SWIG_AttributeError -11 #define SWIG_MemoryError -12 #define SWIG_NullReferenceError -13 /* Add PyOS_snprintf for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM) # define PyOS_snprintf _snprintf # else # define PyOS_snprintf snprintf # endif #endif /* A crude PyString_FromFormat implementation for old Pythons */ #if PY_VERSION_HEX < 0x02020000 #ifndef SWIG_PYBUFFER_SIZE # define SWIG_PYBUFFER_SIZE 1024 #endif static PyObject * PyString_FromFormat(const char *fmt, ...) { va_list ap; char buf[SWIG_PYBUFFER_SIZE * 2]; int res; va_start(ap, fmt); res = vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf); } #endif /* Add PyObject_Del for old Pythons */ #if PY_VERSION_HEX < 0x01060000 # define PyObject_Del(op) PyMem_DEL((op)) #endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif /* A crude PyExc_StopIteration exception for old Pythons */ #if PY_VERSION_HEX < 0x02020000 # ifndef PyExc_StopIteration # define PyExc_StopIteration PyExc_RuntimeError # endif # ifndef PyObject_GenericGetAttr # define PyObject_GenericGetAttr 0 # endif #endif /* Py_NotImplemented is defined in 2.1 and up. */ #if PY_VERSION_HEX < 0x02010000 # ifndef Py_NotImplemented # define Py_NotImplemented PyExc_RuntimeError # endif #endif /* A crude PyString_AsStringAndSize implementation for old Pythons */ #if PY_VERSION_HEX < 0x02010000 # ifndef PyString_AsStringAndSize # define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;} # endif #endif /* PySequence_Size for old Pythons */ #if PY_VERSION_HEX < 0x02000000 # ifndef PySequence_Size # define PySequence_Size PySequence_Length # endif #endif /* PyBool_FromLong for old Pythons */ #if PY_VERSION_HEX < 0x02030000 static PyObject *PyBool_FromLong(long ok) { PyObject *result = ok ? Py_True : Py_False; Py_INCREF(result); return result; } #endif /* Py_ssize_t for old Pythons */ /* This code is as recommended by: */ /* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */ #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) typedef int Py_ssize_t; # define PY_SSIZE_T_MAX INT_MAX # define PY_SSIZE_T_MIN INT_MIN #endif /* ----------------------------------------------------------------------------- * error manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIME PyObject* SWIG_Python_ErrorType(int code) { PyObject* type = 0; switch(code) { case SWIG_MemoryError: type = PyExc_MemoryError; break; case SWIG_IOError: type = PyExc_IOError; break; case SWIG_RuntimeError: type = PyExc_RuntimeError; break; case SWIG_IndexError: type = PyExc_IndexError; break; case SWIG_TypeError: type = PyExc_TypeError; break; case SWIG_DivisionByZero: type = PyExc_ZeroDivisionError; break; case SWIG_OverflowError: type = PyExc_OverflowError; break; case SWIG_SyntaxError: type = PyExc_SyntaxError; break; case SWIG_ValueError: type = PyExc_ValueError; break; case SWIG_SystemError: type = PyExc_SystemError; break; case SWIG_AttributeError: type = PyExc_AttributeError; break; default: type = PyExc_RuntimeError; } return type; } SWIGRUNTIME void SWIG_Python_AddErrorMsg(const char* mesg) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback); if (value) { PyObject *old_str = PyObject_Str(value); PyErr_Clear(); Py_XINCREF(type); PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg); Py_DECREF(old_str); Py_DECREF(value); } else { PyErr_SetString(PyExc_RuntimeError, mesg); } } #if defined(SWIG_PYTHON_NO_THREADS) # if defined(SWIG_PYTHON_THREADS) # undef SWIG_PYTHON_THREADS # endif #endif #if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ # if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) # if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ # define SWIG_PYTHON_USE_GIL # endif # endif # if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ # ifndef SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() # endif # ifdef __cplusplus /* C++ code */ class SWIG_Python_Thread_Block { bool status; PyGILState_STATE state; public: void end() { if (status) { PyGILState_Release(state); status = false;} } SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} ~SWIG_Python_Thread_Block() { end(); } }; class SWIG_Python_Thread_Allow { bool status; PyThreadState *save; public: void end() { if (status) { PyEval_RestoreThread(save); status = false; }} SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} ~SWIG_Python_Thread_Allow() { end(); } }; # define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block # define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() # define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow # define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() # else /* C code */ # define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() # define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() # define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) # endif # else /* Old thread way, not implemented, user must provide it */ # if !defined(SWIG_PYTHON_INITIALIZE_THREADS) # define SWIG_PYTHON_INITIALIZE_THREADS # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_END_BLOCK) # define SWIG_PYTHON_THREAD_END_BLOCK # endif # if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # endif # if !defined(SWIG_PYTHON_THREAD_END_ALLOW) # define SWIG_PYTHON_THREAD_END_ALLOW # endif # endif #else /* No thread support */ # define SWIG_PYTHON_INITIALIZE_THREADS # define SWIG_PYTHON_THREAD_BEGIN_BLOCK # define SWIG_PYTHON_THREAD_END_BLOCK # define SWIG_PYTHON_THREAD_BEGIN_ALLOW # define SWIG_PYTHON_THREAD_END_ALLOW #endif /* ----------------------------------------------------------------------------- * Python API portion that goes into the runtime * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* ----------------------------------------------------------------------------- * Constant declarations * ----------------------------------------------------------------------------- */ /* Constant Types */ #define SWIG_PY_POINTER 4 #define SWIG_PY_BINARY 5 /* Constant information structure */ typedef struct swig_const_info { int type; char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_const_info; #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif /* ----------------------------------------------------------------------------- * See the LICENSE file for information on copyright, usage and redistribution * of SWIG, and the README file for authors - http://www.swig.org/release.html. * * pyrun.swg * * This file contains the runtime support for Python modules * and includes code for managing global variables and pointer * type checking. * * ----------------------------------------------------------------------------- */ /* Common SWIG API */ /* for raw pointers */ #define SWIG_Python_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0) #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Python_ConvertPtr(obj, pptr, type, flags) #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own) #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Python_NewPointerObj(ptr, type, flags) #define SWIG_CheckImplicit(ty) SWIG_Python_CheckImplicit(ty) #define SWIG_AcquirePtr(ptr, src) SWIG_Python_AcquirePtr(ptr, src) #define swig_owntype int /* for raw packed data */ #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_Python_ConvertFunctionPtr(obj, pptr, type) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_Python_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Python_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) #define SWIG_NewClientData(obj) PySwigClientData_New(obj) #define SWIG_SetErrorObj SWIG_Python_SetErrorObj #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code) #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Runtime API implementation */ /* Error manipulation */ SWIGINTERN void SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetObject(errtype, obj); Py_DECREF(obj); SWIG_PYTHON_THREAD_END_BLOCK; } SWIGINTERN void SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) { SWIG_PYTHON_THREAD_BEGIN_BLOCK; PyErr_SetString(errtype, (char *) msg); SWIG_PYTHON_THREAD_END_BLOCK; } #define SWIG_Python_Raise(obj, type, desc) SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj) /* Set a constant value */ SWIGINTERN void SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) { PyDict_SetItemString(d, (char*) name, obj); Py_DECREF(obj); } /* Append a value to the result obj */ SWIGINTERN PyObject* SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) { #if !defined(SWIG_PYTHON_OUTPUT_TUPLE) if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyList_Check(result)) { PyObject *o2 = result; result = PyList_New(1); PyList_SetItem(result, 0, o2); } PyList_Append(result,obj); Py_DECREF(obj); } return result; #else PyObject* o2; PyObject* o3; if (!result) { result = obj; } else if (result == Py_None) { Py_DECREF(result); result = obj; } else { if (!PyTuple_Check(result)) { o2 = result; result = PyTuple_New(1); PyTuple_SET_ITEM(result, 0, o2); } o3 = PyTuple_New(1); PyTuple_SET_ITEM(o3, 0, obj); o2 = result; result = PySequence_Concat(o2, o3); Py_DECREF(o2); Py_DECREF(o3); } return result; #endif } /* Unpack the argument tuple */ SWIGINTERN int SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs) { if (!args) { if (!min && !max) { return 1; } else { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", name, (min == max ? "" : "at least "), (int)min); return 0; } } if (!PyTuple_Check(args)) { PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple"); return 0; } else { register Py_ssize_t l = PyTuple_GET_SIZE(args); if (l < min) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at least "), (int)min, (int)l); return 0; } else if (l > max) { PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", name, (min == max ? "" : "at most "), (int)max, (int)l); return 0; } else { register int i; for (i = 0; i < l; ++i) { objs[i] = PyTuple_GET_ITEM(args, i); } for (; l < max; ++l) { objs[l] = 0; } return i + 1; } } } /* A functor is a function object with one single object argument */ #if PY_VERSION_HEX >= 0x02020000 #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunctionObjArgs(functor, obj, NULL); #else #define SWIG_Python_CallFunctor(functor, obj) PyObject_CallFunction(functor, "O", obj); #endif /* Helper for static pointer initialization for both C and C++ code, for example static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...); */ #ifdef __cplusplus #define SWIG_STATIC_POINTER(var) var #else #define SWIG_STATIC_POINTER(var) var = 0; if (!var) var #endif /* ----------------------------------------------------------------------------- * Pointer declarations * ----------------------------------------------------------------------------- */ /* Flags for new pointer objects */ #define SWIG_POINTER_NOSHADOW (SWIG_POINTER_OWN << 1) #define SWIG_POINTER_NEW (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN) #define SWIG_POINTER_IMPLICIT_CONV (SWIG_POINTER_DISOWN << 1) #ifdef __cplusplus extern "C" { #if 0 } /* cc-mode */ #endif #endif /* How to access Py_None */ #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) # ifndef SWIG_PYTHON_NO_BUILD_NONE # ifndef SWIG_PYTHON_BUILD_NONE # define SWIG_PYTHON_BUILD_NONE # endif # endif #endif #ifdef SWIG_PYTHON_BUILD_NONE # ifdef Py_None # undef Py_None # define Py_None SWIG_Py_None() # endif SWIGRUNTIMEINLINE PyObject * _SWIG_Py_None(void) { PyObject *none = Py_BuildValue((char*)""); Py_DECREF(none); return none; } SWIGRUNTIME PyObject * SWIG_Py_None(void) { static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None(); return none; } #endif /* The python void return value */ SWIGRUNTIMEINLINE PyObject * SWIG_Py_Void(void) { PyObject *none = Py_None; Py_INCREF(none); return none; } /* PySwigClientData */ typedef struct { PyObject *klass; PyObject *newraw; PyObject *newargs; PyObject *destroy; int delargs; int implicitconv; } PySwigClientData; SWIGRUNTIMEINLINE int SWIG_Python_CheckImplicit(swig_type_info *ty) { PySwigClientData *data = (PySwigClientData *)ty->clientdata; return data ? data->implicitconv : 0; } SWIGRUNTIMEINLINE PyObject * SWIG_Python_ExceptionType(swig_type_info *desc) { PySwigClientData *data = desc ? (PySwigClientData *) desc->clientdata : 0; PyObject *klass = data ? data->klass : 0; return (klass ? klass : PyExc_RuntimeError); } SWIGRUNTIME PySwigClientData * PySwigClientData_New(PyObject* obj) { if (!obj) { return 0; } else { PySwigClientData *data = (PySwigClientData *)malloc(sizeof(PySwigClientData)); /* the klass element */ data->klass = obj; Py_INCREF(data->klass); /* the newraw method and newargs arguments used to create a new raw instance */ if (PyClass_Check(obj)) { data->newraw = 0; data->newargs = obj; Py_INCREF(obj); } else { #if (PY_VERSION_HEX < 0x02020000) data->newraw = 0; #else data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__"); #endif if (data->newraw) { Py_INCREF(data->newraw); data->newargs = PyTuple_New(1); PyTuple_SetItem(data->newargs, 0, obj); } else { data->newargs = obj; } Py_INCREF(data->newargs); } /* the destroy method, aka as the C++ delete method */ data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__"); if (PyErr_Occurred()) { PyErr_Clear(); data->destroy = 0; } if (data->destroy) { int flags; Py_INCREF(data->destroy); flags = PyCFunction_GET_FLAGS(data->destroy); #ifdef METH_O data->delargs = !(flags & (METH_O)); #else data->delargs = 0; #endif } else { data->delargs = 0; } data->implicitconv = 0; return data; } } SWIGRUNTIME void PySwigClientData_Del(PySwigClientData* data) { Py_XDECREF(data->newraw); Py_XDECREF(data->newargs); Py_XDECREF(data->destroy); } /* =============== PySwigObject =====================*/ typedef struct { PyObject_HEAD void *ptr; swig_type_info *ty; int own; PyObject *next; } PySwigObject; SWIGRUNTIME PyObject * PySwigObject_long(PySwigObject *v) { return PyLong_FromVoidPtr(v->ptr); } SWIGRUNTIME PyObject * PySwigObject_format(const char* fmt, PySwigObject *v) { PyObject *res = NULL; PyObject *args = PyTuple_New(1); if (args) { if (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0) { PyObject *ofmt = PyString_FromString(fmt); if (ofmt) { res = PyString_Format(ofmt,args); Py_DECREF(ofmt); } Py_DECREF(args); } } return res; } SWIGRUNTIME PyObject * PySwigObject_oct(PySwigObject *v) { return PySwigObject_format("%o",v); } SWIGRUNTIME PyObject * PySwigObject_hex(PySwigObject *v) { return PySwigObject_format("%x",v); } SWIGRUNTIME PyObject * #ifdef METH_NOARGS PySwigObject_repr(PySwigObject *v) #else PySwigObject_repr(PySwigObject *v, PyObject *args) #endif { const char *name = SWIG_TypePrettyName(v->ty); PyObject *hex = PySwigObject_hex(v); PyObject *repr = PyString_FromFormat("", name, PyString_AsString(hex)); Py_DECREF(hex); if (v->next) { #ifdef METH_NOARGS PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next); #else PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next, args); #endif PyString_ConcatAndDel(&repr,nrep); } return repr; } SWIGRUNTIME int PySwigObject_print(PySwigObject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { #ifdef METH_NOARGS PyObject *repr = PySwigObject_repr(v); #else PyObject *repr = PySwigObject_repr(v, NULL); #endif if (repr) { fputs(PyString_AsString(repr), fp); Py_DECREF(repr); return 0; } else { return 1; } } SWIGRUNTIME PyObject * PySwigObject_str(PySwigObject *v) { char result[SWIG_BUFFER_SIZE]; return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ? PyString_FromString(result) : 0; } SWIGRUNTIME int PySwigObject_compare(PySwigObject *v, PySwigObject *w) { void *i = v->ptr; void *j = w->ptr; return (i < j) ? -1 : ((i > j) ? 1 : 0); } SWIGRUNTIME PyTypeObject* _PySwigObject_type(void); SWIGRUNTIME PyTypeObject* PySwigObject_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type(); return type; } SWIGRUNTIMEINLINE int PySwigObject_Check(PyObject *op) { return ((op)->ob_type == PySwigObject_type()) || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0); } SWIGRUNTIME PyObject * PySwigObject_New(void *ptr, swig_type_info *ty, int own); SWIGRUNTIME void PySwigObject_dealloc(PyObject *v) { PySwigObject *sobj = (PySwigObject *) v; PyObject *next = sobj->next; if (sobj->own == SWIG_POINTER_OWN) { swig_type_info *ty = sobj->ty; PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0; PyObject *destroy = data ? data->destroy : 0; if (destroy) { /* destroy is always a VARARGS method */ PyObject *res; if (data->delargs) { /* we need to create a temporal object to carry the destroy operation */ PyObject *tmp = PySwigObject_New(sobj->ptr, ty, 0); res = SWIG_Python_CallFunctor(destroy, tmp); Py_DECREF(tmp); } else { PyCFunction meth = PyCFunction_GET_FUNCTION(destroy); PyObject *mself = PyCFunction_GET_SELF(destroy); res = ((*meth)(mself, v)); } Py_XDECREF(res); } #if !defined(SWIG_PYTHON_SILENT_MEMLEAK) else { const char *name = SWIG_TypePrettyName(ty); printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown")); } #endif } Py_XDECREF(next); PyObject_DEL(v); } SWIGRUNTIME PyObject* PySwigObject_append(PyObject* v, PyObject* next) { PySwigObject *sobj = (PySwigObject *) v; #ifndef METH_O PyObject *tmp = 0; if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL; next = tmp; #endif if (!PySwigObject_Check(next)) { return NULL; } sobj->next = next; Py_INCREF(next); return SWIG_Py_Void(); } SWIGRUNTIME PyObject* #ifdef METH_NOARGS PySwigObject_next(PyObject* v) #else PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { PySwigObject *sobj = (PySwigObject *) v; if (sobj->next) { Py_INCREF(sobj->next); return sobj->next; } else { return SWIG_Py_Void(); } } SWIGINTERN PyObject* #ifdef METH_NOARGS PySwigObject_disown(PyObject *v) #else PySwigObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { PySwigObject *sobj = (PySwigObject *)v; sobj->own = 0; return SWIG_Py_Void(); } SWIGINTERN PyObject* #ifdef METH_NOARGS PySwigObject_acquire(PyObject *v) #else PySwigObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args)) #endif { PySwigObject *sobj = (PySwigObject *)v; sobj->own = SWIG_POINTER_OWN; return SWIG_Py_Void(); } SWIGINTERN PyObject* PySwigObject_own(PyObject *v, PyObject *args) { PyObject *val = 0; #if (PY_VERSION_HEX < 0x02020000) if (!PyArg_ParseTuple(args,(char *)"|O:own",&val)) #else if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) #endif { return NULL; } else { PySwigObject *sobj = (PySwigObject *)v; PyObject *obj = PyBool_FromLong(sobj->own); if (val) { #ifdef METH_NOARGS if (PyObject_IsTrue(val)) { PySwigObject_acquire(v); } else { PySwigObject_disown(v); } #else if (PyObject_IsTrue(val)) { PySwigObject_acquire(v,args); } else { PySwigObject_disown(v,args); } #endif } return obj; } } #ifdef METH_O static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)PySwigObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)PySwigObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)PySwigObject_append, METH_O, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)PySwigObject_next, METH_NOARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)PySwigObject_repr, METH_NOARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #else static PyMethodDef swigobject_methods[] = { {(char *)"disown", (PyCFunction)PySwigObject_disown, METH_VARARGS, (char *)"releases ownership of the pointer"}, {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_VARARGS, (char *)"aquires ownership of the pointer"}, {(char *)"own", (PyCFunction)PySwigObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"}, {(char *)"append", (PyCFunction)PySwigObject_append, METH_VARARGS, (char *)"appends another 'this' object"}, {(char *)"next", (PyCFunction)PySwigObject_next, METH_VARARGS, (char *)"returns the next 'this' object"}, {(char *)"__repr__",(PyCFunction)PySwigObject_repr, METH_VARARGS, (char *)"returns object representation"}, {0, 0, 0, 0} }; #endif #if PY_VERSION_HEX < 0x02020000 SWIGINTERN PyObject * PySwigObject_getattr(PySwigObject *sobj,char *name) { return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name); } #endif SWIGRUNTIME PyTypeObject* _PySwigObject_type(void) { static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer"; static PyNumberMethods PySwigObject_as_number = { (binaryfunc)0, /*nb_add*/ (binaryfunc)0, /*nb_subtract*/ (binaryfunc)0, /*nb_multiply*/ (binaryfunc)0, /*nb_divide*/ (binaryfunc)0, /*nb_remainder*/ (binaryfunc)0, /*nb_divmod*/ (ternaryfunc)0,/*nb_power*/ (unaryfunc)0, /*nb_negative*/ (unaryfunc)0, /*nb_positive*/ (unaryfunc)0, /*nb_absolute*/ (inquiry)0, /*nb_nonzero*/ 0, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ 0, /*nb_and*/ 0, /*nb_xor*/ 0, /*nb_or*/ (coercion)0, /*nb_coerce*/ (unaryfunc)PySwigObject_long, /*nb_int*/ (unaryfunc)PySwigObject_long, /*nb_long*/ (unaryfunc)0, /*nb_float*/ (unaryfunc)PySwigObject_oct, /*nb_oct*/ (unaryfunc)PySwigObject_hex, /*nb_hex*/ #if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */ #elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ #elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */ 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ #endif }; static PyTypeObject pyswigobject_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ (char *)"PySwigObject", /* tp_name */ sizeof(PySwigObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)PySwigObject_dealloc, /* tp_dealloc */ (printfunc)PySwigObject_print, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)PySwigObject_getattr, /* tp_getattr */ #else (getattrfunc)0, /* tp_getattr */ #endif (setattrfunc)0, /* tp_setattr */ (cmpfunc)PySwigObject_compare, /* tp_compare */ (reprfunc)PySwigObject_repr, /* tp_repr */ &PySwigObject_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)PySwigObject_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigobject_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ swigobject_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; pyswigobject_type = tmp; pyswigobject_type.ob_type = &PyType_Type; type_init = 1; } return &pyswigobject_type; } SWIGRUNTIME PyObject * PySwigObject_New(void *ptr, swig_type_info *ty, int own) { PySwigObject *sobj = PyObject_NEW(PySwigObject, PySwigObject_type()); if (sobj) { sobj->ptr = ptr; sobj->ty = ty; sobj->own = own; sobj->next = 0; } return (PyObject *)sobj; } /* ----------------------------------------------------------------------------- * Implements a simple Swig Packed type, and use it instead of string * ----------------------------------------------------------------------------- */ typedef struct { PyObject_HEAD void *pack; swig_type_info *ty; size_t size; } PySwigPacked; SWIGRUNTIME int PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { char result[SWIG_BUFFER_SIZE]; fputs("pack, v->size, 0, sizeof(result))) { fputs("at ", fp); fputs(result, fp); } fputs(v->ty->name,fp); fputs(">", fp); return 0; } SWIGRUNTIME PyObject * PySwigPacked_repr(PySwigPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { return PyString_FromFormat("", result, v->ty->name); } else { return PyString_FromFormat("", v->ty->name); } } SWIGRUNTIME PyObject * PySwigPacked_str(PySwigPacked *v) { char result[SWIG_BUFFER_SIZE]; if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){ return PyString_FromFormat("%s%s", result, v->ty->name); } else { return PyString_FromString(v->ty->name); } } SWIGRUNTIME int PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w) { size_t i = v->size; size_t j = w->size; int s = (i < j) ? -1 : ((i > j) ? 1 : 0); return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void); SWIGRUNTIME PyTypeObject* PySwigPacked_type(void) { static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type(); return type; } SWIGRUNTIMEINLINE int PySwigPacked_Check(PyObject *op) { return ((op)->ob_type == _PySwigPacked_type()) || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0); } SWIGRUNTIME void PySwigPacked_dealloc(PyObject *v) { if (PySwigPacked_Check(v)) { PySwigPacked *sobj = (PySwigPacked *) v; free(sobj->pack); } PyObject_DEL(v); } SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void) { static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer"; static PyTypeObject pyswigpacked_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ (char *)"PySwigPacked", /* tp_name */ sizeof(PySwigPacked), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)PySwigPacked_dealloc, /* tp_dealloc */ (printfunc)PySwigPacked_print, /* tp_print */ (getattrfunc)0, /* tp_getattr */ (setattrfunc)0, /* tp_setattr */ (cmpfunc)PySwigPacked_compare, /* tp_compare */ (reprfunc)PySwigPacked_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ (reprfunc)PySwigPacked_str, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT, /* tp_flags */ swigpacked_doc, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0, /* tp_iter */ 0, /* tp_iternext */ 0, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */ 0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ 0, /* tp_dictoffset */ 0, /* tp_init */ 0, /* tp_alloc */ 0, /* tp_new */ 0, /* tp_free */ 0, /* tp_is_gc */ 0, /* tp_bases */ 0, /* tp_mro */ 0, /* tp_cache */ 0, /* tp_subclasses */ 0, /* tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; pyswigpacked_type = tmp; pyswigpacked_type.ob_type = &PyType_Type; type_init = 1; } return &pyswigpacked_type; } SWIGRUNTIME PyObject * PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty) { PySwigPacked *sobj = PyObject_NEW(PySwigPacked, PySwigPacked_type()); if (sobj) { void *pack = malloc(size); if (pack) { memcpy(pack, ptr, size); sobj->pack = pack; sobj->ty = ty; sobj->size = size; } else { PyObject_DEL((PyObject *) sobj); sobj = 0; } } return (PyObject *) sobj; } SWIGRUNTIME swig_type_info * PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size) { if (PySwigPacked_Check(obj)) { PySwigPacked *sobj = (PySwigPacked *)obj; if (sobj->size != size) return 0; memcpy(ptr, sobj->pack, size); return sobj->ty; } else { return 0; } } /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ SWIGRUNTIMEINLINE PyObject * _SWIG_This(void) { return PyString_FromString("this"); } SWIGRUNTIME PyObject * SWIG_This(void) { static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This(); return swig_this; } /* #define SWIG_PYTHON_SLOW_GETSET_THIS */ SWIGRUNTIME PySwigObject * SWIG_Python_GetSwigThis(PyObject *pyobj) { if (PySwigObject_Check(pyobj)) { return (PySwigObject *) pyobj; } else { PyObject *obj = 0; #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000)) if (PyInstance_Check(pyobj)) { obj = _PyInstance_Lookup(pyobj, SWIG_This()); } else { PyObject **dictptr = _PyObject_GetDictPtr(pyobj); if (dictptr != NULL) { PyObject *dict = *dictptr; obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0; } else { #ifdef PyWeakref_CheckProxy if (PyWeakref_CheckProxy(pyobj)) { PyObject *wobj = PyWeakref_GET_OBJECT(pyobj); return wobj ? SWIG_Python_GetSwigThis(wobj) : 0; } #endif obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } } } #else obj = PyObject_GetAttr(pyobj,SWIG_This()); if (obj) { Py_DECREF(obj); } else { if (PyErr_Occurred()) PyErr_Clear(); return 0; } #endif if (obj && !PySwigObject_Check(obj)) { /* a PyObject is called 'this', try to get the 'real this' PySwigObject from it */ return SWIG_Python_GetSwigThis(obj); } return (PySwigObject *)obj; } } /* Acquire a pointer value */ SWIGRUNTIME int SWIG_Python_AcquirePtr(PyObject *obj, int own) { if (own == SWIG_POINTER_OWN) { PySwigObject *sobj = SWIG_Python_GetSwigThis(obj); if (sobj) { int oldown = sobj->own; sobj->own = own; return oldown; } } return 0; } /* Convert a pointer value */ SWIGRUNTIME int SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) { if (!obj) return SWIG_ERROR; if (obj == Py_None) { if (ptr) *ptr = 0; return SWIG_OK; } else { PySwigObject *sobj = SWIG_Python_GetSwigThis(obj); if (own) *own = 0; while (sobj) { void *vptr = sobj->ptr; if (ty) { swig_type_info *to = sobj->ty; if (to == ty) { /* no type cast needed */ if (ptr) *ptr = vptr; break; } else { swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) { sobj = (PySwigObject *)sobj->next; } else { if (ptr) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); if (newmemory == SWIG_CAST_NEW_MEMORY) { assert(own); if (own) *own = *own | SWIG_CAST_NEW_MEMORY; } } break; } } } else { if (ptr) *ptr = vptr; break; } } if (sobj) { if (own) *own = *own | sobj->own; if (flags & SWIG_POINTER_DISOWN) { sobj->own = 0; } return SWIG_OK; } else { int res = SWIG_ERROR; if (flags & SWIG_POINTER_IMPLICIT_CONV) { PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0; if (data && !data->implicitconv) { PyObject *klass = data->klass; if (klass) { PyObject *impconv; data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/ impconv = SWIG_Python_CallFunctor(klass, obj); data->implicitconv = 0; if (PyErr_Occurred()) { PyErr_Clear(); impconv = 0; } if (impconv) { PySwigObject *iobj = SWIG_Python_GetSwigThis(impconv); if (iobj) { void *vptr; res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0); if (SWIG_IsOK(res)) { if (ptr) { *ptr = vptr; /* transfer the ownership to 'ptr' */ iobj->own = 0; res = SWIG_AddCast(res); res = SWIG_AddNewMask(res); } else { res = SWIG_AddCast(res); } } } Py_DECREF(impconv); } } } } return res; } } } /* Convert a function ptr value */ SWIGRUNTIME int SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) { if (!PyCFunction_Check(obj)) { return SWIG_ConvertPtr(obj, ptr, ty, 0); } else { void *vptr = 0; /* here we get the method pointer for callbacks */ const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc); const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0; if (desc) { desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0; if (!desc) return SWIG_ERROR; } if (ty) { swig_cast_info *tc = SWIG_TypeCheck(desc,ty); if (tc) { int newmemory = 0; *ptr = SWIG_TypeCast(tc,vptr,&newmemory); assert(!newmemory); /* newmemory handling not yet implemented */ } else { return SWIG_ERROR; } } else { *ptr = vptr; } return SWIG_OK; } } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) { swig_type_info *to = PySwigPacked_UnpackData(obj, ptr, sz); if (!to) return SWIG_ERROR; if (ty) { if (to != ty) { /* check type cast? */ swig_cast_info *tc = SWIG_TypeCheck(to->name,ty); if (!tc) return SWIG_ERROR; } } return SWIG_OK; } /* ----------------------------------------------------------------------------- * Create a new pointer object * ----------------------------------------------------------------------------- */ /* Create a new instance object, whitout calling __init__, and set the 'this' attribute. */ SWIGRUNTIME PyObject* SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this) { #if (PY_VERSION_HEX >= 0x02020000) PyObject *inst = 0; PyObject *newraw = data->newraw; if (newraw) { inst = PyObject_Call(newraw, data->newargs, NULL); if (inst) { #if !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { PyObject *dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; PyDict_SetItem(dict, SWIG_This(), swig_this); } } #else PyObject *key = SWIG_This(); PyObject_SetAttr(inst, key, swig_this); #endif } } else { PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); } return inst; #else #if (PY_VERSION_HEX >= 0x02010000) PyObject *inst; PyObject *dict = PyDict_New(); PyDict_SetItem(dict, SWIG_This(), swig_this); inst = PyInstance_NewRaw(data->newargs, dict); Py_DECREF(dict); return (PyObject *) inst; #else PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type); if (inst == NULL) { return NULL; } inst->in_class = (PyClassObject *)data->newargs; Py_INCREF(inst->in_class); inst->in_dict = PyDict_New(); if (inst->in_dict == NULL) { Py_DECREF(inst); return NULL; } #ifdef Py_TPFLAGS_HAVE_WEAKREFS inst->in_weakreflist = NULL; #endif #ifdef Py_TPFLAGS_GC PyObject_GC_Init(inst); #endif PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this); return (PyObject *) inst; #endif #endif } SWIGRUNTIME void SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this) { PyObject *dict; #if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS) PyObject **dictptr = _PyObject_GetDictPtr(inst); if (dictptr != NULL) { dict = *dictptr; if (dict == NULL) { dict = PyDict_New(); *dictptr = dict; } PyDict_SetItem(dict, SWIG_This(), swig_this); return; } #endif dict = PyObject_GetAttrString(inst, (char*)"__dict__"); PyDict_SetItem(dict, SWIG_This(), swig_this); Py_DECREF(dict); } SWIGINTERN PyObject * SWIG_Python_InitShadowInstance(PyObject *args) { PyObject *obj[2]; if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) { return NULL; } else { PySwigObject *sthis = SWIG_Python_GetSwigThis(obj[0]); if (sthis) { PySwigObject_append((PyObject*) sthis, obj[1]); } else { SWIG_Python_SetSwigThis(obj[0], obj[1]); } return SWIG_Py_Void(); } } /* Create a new pointer object */ SWIGRUNTIME PyObject * SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) { if (!ptr) { return SWIG_Py_Void(); } else { int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0; PyObject *robj = PySwigObject_New(ptr, type, own); PySwigClientData *clientdata = type ? (PySwigClientData *)(type->clientdata) : 0; if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) { PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj); if (inst) { Py_DECREF(robj); robj = inst; } } return robj; } } /* Create a new packed object */ SWIGRUNTIMEINLINE PyObject * SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) { return ptr ? PySwigPacked_New((void *) ptr, sz, type) : SWIG_Py_Void(); } /* -----------------------------------------------------------------------------* * Get type list * -----------------------------------------------------------------------------*/ #ifdef SWIG_LINK_RUNTIME void *SWIG_ReturnGlobalTypeList(void *); #endif SWIGRUNTIME swig_module_info * SWIG_Python_GetModule(void) { static void *type_pointer = (void *)0; /* first check if module already created */ if (!type_pointer) { #ifdef SWIG_LINK_RUNTIME type_pointer = SWIG_ReturnGlobalTypeList((void *)0); #else type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME); if (PyErr_Occurred()) { PyErr_Clear(); type_pointer = (void *)0; } #endif } return (swig_module_info *) type_pointer; } #if PY_MAJOR_VERSION < 2 /* PyModule_AddObject function was introduced in Python 2.0. The following function is copied out of Python/modsupport.c in python version 2.3.4 */ SWIGINTERN int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { PyObject *dict; if (!PyModule_Check(m)) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs module as first arg"); return SWIG_ERROR; } if (!o) { PyErr_SetString(PyExc_TypeError, "PyModule_AddObject() needs non-NULL value"); return SWIG_ERROR; } dict = PyModule_GetDict(m); if (dict == NULL) { /* Internal error -- modules must have a dict! */ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__", PyModule_GetName(m)); return SWIG_ERROR; } if (PyDict_SetItemString(dict, name, o)) return SWIG_ERROR; Py_DECREF(o); return SWIG_OK; } #endif SWIGRUNTIME void SWIG_Python_DestroyModule(void *vptr) { swig_module_info *swig_module = (swig_module_info *) vptr; swig_type_info **types = swig_module->types; size_t i; for (i =0; i < swig_module->size; ++i) { swig_type_info *ty = types[i]; if (ty->owndata) { PySwigClientData *data = (PySwigClientData *) ty->clientdata; if (data) PySwigClientData_Del(data); } } Py_DECREF(SWIG_This()); } SWIGRUNTIME void SWIG_Python_SetModule(swig_module_info *swig_module) { static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */ PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table); PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule); if (pointer && module) { PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer); } else { Py_XDECREF(pointer); } } /* The python cached type query */ SWIGRUNTIME PyObject * SWIG_Python_TypeCache(void) { static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New(); return cache; } SWIGRUNTIME swig_type_info * SWIG_Python_TypeQuery(const char *type) { PyObject *cache = SWIG_Python_TypeCache(); PyObject *key = PyString_FromString(type); PyObject *obj = PyDict_GetItem(cache, key); swig_type_info *descriptor; if (obj) { descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj); } else { swig_module_info *swig_module = SWIG_Python_GetModule(); descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type); if (descriptor) { obj = PyCObject_FromVoidPtr(descriptor, NULL); PyDict_SetItem(cache, key, obj); Py_DECREF(obj); } } Py_DECREF(key); return descriptor; } /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg) #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags) SWIGRUNTIME int SWIG_Python_AddErrMesg(const char* mesg, int infront) { if (PyErr_Occurred()) { PyObject *type = 0; PyObject *value = 0; PyObject *traceback = 0; PyErr_Fetch(&type, &value, &traceback); if (value) { PyObject *old_str = PyObject_Str(value); Py_XINCREF(type); PyErr_Clear(); if (infront) { PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str)); } else { PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg); } Py_DECREF(old_str); } return 1; } else { return 0; } } SWIGRUNTIME int SWIG_Python_ArgFail(int argnum) { if (PyErr_Occurred()) { /* add information about failing argument */ char mesg[256]; PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); return SWIG_Python_AddErrMesg(mesg, 1); } else { return 0; } } SWIGRUNTIMEINLINE const char * PySwigObject_GetDesc(PyObject *self) { PySwigObject *v = (PySwigObject *)self; swig_type_info *ty = v ? v->ty : 0; return ty ? ty->str : (char*)""; } SWIGRUNTIME void SWIG_Python_TypeError(const char *type, PyObject *obj) { if (type) { #if defined(SWIG_COBJECT_TYPES) if (obj && PySwigObject_Check(obj)) { const char *otype = (const char *) PySwigObject_GetDesc(obj); if (otype) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received", type, otype); return; } } else #endif { const char *otype = (obj ? obj->ob_type->tp_name : 0); if (otype) { PyObject *str = PyObject_Str(obj); const char *cstr = str ? PyString_AsString(str) : 0; if (cstr) { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", type, otype, cstr); } else { PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", type, otype); } Py_XDECREF(str); return; } } PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); } else { PyErr_Format(PyExc_TypeError, "unexpected type is received"); } } /* Convert a pointer value, signal an exception on a type mismatch */ SWIGRUNTIME void * SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { void *result; if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { PyErr_Clear(); if (flags & SWIG_POINTER_EXCEPTION) { SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); SWIG_Python_ArgFail(argnum); } } return result; } #ifdef __cplusplus #if 0 { /* cc-mode */ #endif } #endif #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_COLORB swig_types[0] #define SWIGTYPE_p_COLORW swig_types[1] #define SWIGTYPE_p_GAMMATABLE swig_types[2] #define SWIGTYPE_p_IT8 swig_types[3] #define SWIGTYPE_p_LCMSGAMMAPARAMS swig_types[4] #define SWIGTYPE_p_LPMATSHAPER swig_types[5] #define SWIGTYPE_p_LPWMAT3 swig_types[6] #define SWIGTYPE_p_LPWVEC3 swig_types[7] #define SWIGTYPE_p_LPcmsNAMEDCOLORLIST swig_types[8] #define SWIGTYPE_p_LPcmsSEQ swig_types[9] #define SWIGTYPE_p_MAT3 swig_types[10] #define SWIGTYPE_p_MATSHAPER swig_types[11] #define SWIGTYPE_p_SAMPLEDCURVE swig_types[12] #define SWIGTYPE_p_StrPointer swig_types[13] #define SWIGTYPE_p_VEC3 swig_types[14] #define SWIGTYPE_p_WMAT3 swig_types[15] #define SWIGTYPE_p_WVEC3 swig_types[16] #define SWIGTYPE_p__cmsTestAlign16 swig_types[17] #define SWIGTYPE_p__cmsTestAlign8 swig_types[18] #define SWIGTYPE_p__cmstransform_struct swig_types[19] #define SWIGTYPE_p__lcms_LUT_struc swig_types[20] #define SWIGTYPE_p__lcms_iccprofile_struct swig_types[21] #define SWIGTYPE_p__lcms_l16params_struc swig_types[22] #define SWIGTYPE_p__lcms_l8opt_struc swig_types[23] #define SWIGTYPE_p_a_16__LCMSGAMMAPARAMS swig_types[24] #define SWIGTYPE_p_char swig_types[25] #define SWIGTYPE_p_cmsCIELCh swig_types[26] #define SWIGTYPE_p_cmsCIELab swig_types[27] #define SWIGTYPE_p_cmsCIEXYZ swig_types[28] #define SWIGTYPE_p_cmsCIEXYZTRIPLE swig_types[29] #define SWIGTYPE_p_cmsCIExyY swig_types[30] #define SWIGTYPE_p_cmsCIExyYTRIPLE swig_types[31] #define SWIGTYPE_p_cmsJCh swig_types[32] #define SWIGTYPE_p_cmsNAMEDCOLOR swig_types[33] #define SWIGTYPE_p_cmsNAMEDCOLORLIST swig_types[34] #define SWIGTYPE_p_cmsPSEQDESC swig_types[35] #define SWIGTYPE_p_cmsSEQ swig_types[36] #define SWIGTYPE_p_cmsViewingConditions swig_types[37] #define SWIGTYPE_p_double swig_types[38] #define SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void swig_types[39] #define SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void swig_types[40] #define SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_p_void__int swig_types[41] #define SWIGTYPE_p_f_int_p_q_const__char__int swig_types[42] #define SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void swig_types[43] #define SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char swig_types[44] #define SWIGTYPE_p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void swig_types[45] #define SWIGTYPE_p_f_p__lcms_iccprofile_struct__int swig_types[46] #define SWIGTYPE_p_f_p__lcms_iccprofile_struct__size_t swig_types[47] #define SWIGTYPE_p_f_p__lcms_iccprofile_struct_size_t__int swig_types[48] #define SWIGTYPE_p_f_p__lcms_iccprofile_struct_size_t_p_void__int swig_types[49] #define SWIGTYPE_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char swig_types[50] #define SWIGTYPE_p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t swig_types[51] #define SWIGTYPE_p_icCLutStruct swig_types[52] #define SWIGTYPE_p_icColorSpaceSignature swig_types[53] #define SWIGTYPE_p_icInt32Number swig_types[54] #define SWIGTYPE_p_icLutAtoB swig_types[55] #define SWIGTYPE_p_icLutBtoA swig_types[56] #define SWIGTYPE_p_icProfileClassSignature swig_types[57] #define SWIGTYPE_p_icRenderingIntent swig_types[58] #define SWIGTYPE_p_icS15Fixed16Number swig_types[59] #define SWIGTYPE_p_icSignature swig_types[60] #define SWIGTYPE_p_icTagSignature swig_types[61] #define SWIGTYPE_p_icTechnologySignature swig_types[62] #define SWIGTYPE_p_icUInt16Number swig_types[63] #define SWIGTYPE_p_icUInt32Number swig_types[64] #define SWIGTYPE_p_icUInt8Number swig_types[65] #define SWIGTYPE_p_int swig_types[66] #define SWIGTYPE_p_p_GAMMATABLE swig_types[67] #define SWIGTYPE_p_p_char swig_types[68] #define SWIGTYPE_p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void swig_types[69] #define SWIGTYPE_p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char swig_types[70] #define SWIGTYPE_p_p_p_char swig_types[71] #define SWIGTYPE_p_p_unsigned_short swig_types[72] #define SWIGTYPE_p_p_void swig_types[73] #define SWIGTYPE_p_size_t swig_types[74] #define SWIGTYPE_p_tm swig_types[75] #define SWIGTYPE_p_unsigned_char swig_types[76] #define SWIGTYPE_p_unsigned_int swig_types[77] #define SWIGTYPE_p_unsigned_long swig_types[78] #define SWIGTYPE_p_unsigned_short swig_types[79] #define SWIGTYPE_p_void swig_types[80] static swig_type_info *swig_types[82]; static swig_module_info swig_module = {swig_types, 81, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) /* -------- TYPES TABLE (END) -------- */ #if (PY_VERSION_HEX <= 0x02000000) # if !defined(SWIG_PYTHON_CLASSIC) # error "This python version requires swig to be run with the '-classic' option" # endif #endif /*----------------------------------------------- @(target):= _lcms.so ------------------------------------------------*/ #define SWIG_init init_lcms #define SWIG_name "_lcms" #define SWIGVERSION 0x010336 #define SWIG_VERSION SWIGVERSION #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) #include namespace swig { class PyObject_ptr { protected: PyObject *_obj; public: PyObject_ptr() :_obj(0) { } PyObject_ptr(const PyObject_ptr& item) : _obj(item._obj) { Py_XINCREF(_obj); } PyObject_ptr(PyObject *obj, bool initial_ref = true) :_obj(obj) { if (initial_ref) { Py_XINCREF(_obj); } } PyObject_ptr & operator=(const PyObject_ptr& item) { Py_XINCREF(item._obj); Py_XDECREF(_obj); _obj = item._obj; return *this; } ~PyObject_ptr() { Py_XDECREF(_obj); } operator PyObject *() const { return _obj; } PyObject *operator->() const { return _obj; } }; } namespace swig { struct PyObject_var : PyObject_ptr { PyObject_var(PyObject* obj = 0) : PyObject_ptr(obj, false) { } PyObject_var & operator = (PyObject* obj) { Py_XDECREF(_obj); _obj = obj; return *this; } }; } #include "lcms.h" static PyObject *lcmsError; static volatile int InErrorFlag; static int MyErrorHandler(int Severity, const char* Txt) { if (Severity == LCMS_ERRC_WARNING) PyErr_Warn(lcmsError, (char*) Txt); else PyErr_SetString(lcmsError, Txt); InErrorFlag = 1; return 1; } typedef struct { WORD w[MAXCHANNELS]; } COLORW; typedef COLORW* LPCOLORW; typedef struct { BYTE b[MAXCHANNELS]; } COLORB; typedef COLORB* LPCOLORB; typedef struct { LCMSHANDLE hIT8; } IT8; typedef IT8* LPIT8; SWIGINTERN COLORW *new_COLORW(){ LPCOLORW v; v = (LPCOLORW) _cmsMalloc(sizeof(COLORW)); memset((v),0,(sizeof(COLORW))); return v; } SWIGINTERN char const *COLORW___repr__(COLORW *self){ return "Color 16 bps"; } SWIGINTERN swig_type_info* SWIG_pchar_descriptor(void) { static int init = 0; static swig_type_info* info = 0; if (!init) { info = SWIG_TypeQuery("_p_char"); init = 1; } return info; } SWIGINTERNINLINE PyObject * SWIG_FromCharPtrAndSize(const char* carray, size_t size) { if (carray) { if (size > INT_MAX) { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); return pchar_descriptor ? SWIG_NewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { return PyString_FromStringAndSize(carray, static_cast< int >(size)); } } else { return SWIG_Py_Void(); } } SWIGINTERNINLINE PyObject * SWIG_FromCharPtr(const char *cptr) { return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0)); } #include #if !defined(SWIG_NO_LLONG_MAX) # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) # define LLONG_MAX __LONG_LONG_MAX__ # define LLONG_MIN (-LLONG_MAX - 1LL) # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) # endif #endif SWIGINTERN int SWIG_AsVal_double (PyObject *obj, double *val) { int res = SWIG_TypeError; if (PyFloat_Check(obj)) { if (val) *val = PyFloat_AsDouble(obj); return SWIG_OK; } else if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { double v = PyLong_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; double d = PyFloat_AsDouble(obj); if (!PyErr_Occurred()) { if (val) *val = d; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_AddCast(SWIG_OK)); } else { PyErr_Clear(); } } } #endif return res; } #include #include SWIGINTERNINLINE int SWIG_CanCastAsInteger(double *d, double min, double max) { double x = *d; if ((min <= x && x <= max)) { double fx = floor(x); double cx = ceil(x); double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */ if ((errno == EDOM) || (errno == ERANGE)) { errno = 0; } else { double summ, reps, diff; if (rd < x) { diff = x - rd; } else if (rd > x) { diff = rd - x; } else { return 1; } summ = rd + x; reps = diff/summ; if (reps < 8*DBL_EPSILON) { *d = rd; return 1; } } } return 0; } SWIGINTERN int SWIG_AsVal_long (PyObject *obj, long* val) { if (PyInt_Check(obj)) { if (val) *val = PyInt_AsLong(obj); return SWIG_OK; } else if (PyLong_Check(obj)) { long v = PyLong_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; long v = PyInt_AsLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) { if (val) *val = (long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_int (PyObject * obj, int *val) { long v; int res = SWIG_AsVal_long (obj, &v); if (SWIG_IsOK(res)) { if ((v < INT_MIN || v > INT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< int >(v); } } return res; } SWIGINTERN WORD COLORW___getitem__(COLORW *self,int key){ return self -> w[key]; } #define SWIG_From_long PyInt_FromLong SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_long (unsigned long value) { return (value > LONG_MAX) ? PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); } SWIGINTERNINLINE PyObject * SWIG_From_unsigned_SS_short (unsigned short value) { return SWIG_From_unsigned_SS_long (value); } SWIGINTERN void COLORW___setitem__(COLORW *self,int key,int val){ self -> w[key] = (WORD) val; } SWIGINTERN COLORB *new_COLORB(){ LPCOLORB v; v = (LPCOLORB) _cmsMalloc(sizeof(COLORB)); memset((v),0,(sizeof(COLORB))); return v; } SWIGINTERN void delete_COLORB(COLORB *self){ _cmsFree(self); } SWIGINTERN char const *COLORB___repr__(COLORB *self){ return "Color 8 bps"; } SWIGINTERN WORD COLORB___getitem__(COLORB *self,int key){ return self -> b[key]; } SWIGINTERN void COLORB___setitem__(COLORB *self,int key,int val){ self -> b[key] = (BYTE) val; } SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { if (PyString_Check(obj)) { char *cstr; Py_ssize_t len; PyString_AsStringAndSize(obj, &cstr, &len); if (cptr) { if (alloc) { /* In python the user should not be able to modify the inner string representation. To warranty that, if you define SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string buffer is always returned. The default behavior is just to return the pointer value, so, be careful. */ #if defined(SWIG_PYTHON_SAFE_CSTRINGS) if (*alloc != SWIG_OLDOBJ) #else if (*alloc == SWIG_NEWOBJ) #endif { *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { *cptr = PyString_AsString(obj); } } if (psize) *psize = len + 1; return SWIG_OK; } else { swig_type_info* pchar_descriptor = SWIG_pchar_descriptor(); if (pchar_descriptor) { void* vptr = 0; if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) { if (cptr) *cptr = (char *) vptr; if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0; if (alloc) *alloc = SWIG_OLDOBJ; return SWIG_OK; } } } return SWIG_TypeError; } SWIGINTERN IT8 *new_IT8__SWIG_0(char const *FileName){ LPIT8 it8; it8 = (LPIT8) _cmsMalloc(sizeof(IT8)); InErrorFlag = 0; it8 -> hIT8 = cmsIT8LoadFromFile(FileName); if (InErrorFlag) { _cmsFree(it8); return NULL; } return it8; } SWIGINTERN IT8 *new_IT8__SWIG_1(){ LPIT8 it8; it8 = (LPIT8) _cmsMalloc(sizeof(IT8)); it8 -> hIT8 = cmsIT8Alloc(); return it8; } SWIGINTERN void delete_IT8(IT8 *self){ cmsIT8Free(self -> hIT8); _cmsFree(self); } SWIGINTERN char const *IT8___repr__(IT8 *self){ return "CGATS.13/IT8 parser"; } SWIGINTERN int IT8_saveToFile(IT8 *self,char const *Filename){ return cmsIT8SaveToFile(self -> hIT8, Filename); } SWIGINTERNINLINE PyObject * SWIG_From_int (int value) { return SWIG_From_long (value); } SWIGINTERN int IT8_tableCount(IT8 *self){ return cmsIT8TableCount(self -> hIT8); } SWIGINTERN int IT8_setTable(IT8 *self,int n){ return cmsIT8SetTable(self -> hIT8, n); } SWIGINTERN char const *IT8_getSheetType(IT8 *self){ return cmsIT8GetSheetType(self -> hIT8); } SWIGINTERN int IT8_setSheetType(IT8 *self,char const *Type){ return cmsIT8SetSheetType(self -> hIT8, Type); } SWIGINTERN int IT8_addComment(IT8 *self,char const *txt){ return cmsIT8SetComment(self -> hIT8, txt); } SWIGINTERN int IT8_setProperty__SWIG_0(IT8 *self,char const *Prop,char const *Str){ return cmsIT8SetPropertyStr(self -> hIT8, Prop, Str); } SWIGINTERN int IT8_setProperty__SWIG_1(IT8 *self,char const *Prop,double dbl){ return cmsIT8SetPropertyDbl(self -> hIT8, Prop, dbl); } SWIGINTERN int IT8_setPropertyAsHex(IT8 *self,char const *Prop,int Val){ return cmsIT8SetPropertyHex(self -> hIT8, Prop, Val); } SWIGINTERN int IT8_setPropertyUncooked(IT8 *self,char const *Prop,char const *Str){ return cmsIT8SetPropertyUncooked(self -> hIT8, Prop, Str); } SWIGINTERN char const *IT8_getProperty(IT8 *self,char const *Prop){ return cmsIT8GetProperty(self -> hIT8, Prop); } SWIGINTERN double IT8_getPropertyAsDbl(IT8 *self,char const *Prop){ return cmsIT8GetPropertyDbl(self -> hIT8, Prop); } #define SWIG_From_double PyFloat_FromDouble SWIGINTERN char const *IT8_getData__SWIG_0(IT8 *self,int row,int col){ return cmsIT8GetDataRowCol(self -> hIT8, row, col); } SWIGINTERN char const *IT8_getData__SWIG_1(IT8 *self,char const *Patch,char const *Sample){ return cmsIT8GetData(self -> hIT8, Patch, Sample); } SWIGINTERN double IT8_getDataAsDbl__SWIG_0(IT8 *self,int row,int col){ return cmsIT8GetDataRowColDbl(self -> hIT8, row, col); } SWIGINTERN double IT8_getDataAsDbl__SWIG_1(IT8 *self,char const *Patch,char const *Sample){ return cmsIT8GetDataDbl(self -> hIT8, Patch, Sample); } SWIGINTERN int IT8_setData__SWIG_0(IT8 *self,int row,int col,char const *Val){ return cmsIT8SetDataRowCol(self ->hIT8, row, col, Val); } SWIGINTERN int IT8_setData__SWIG_1(IT8 *self,int row,int col,double dbl){ return cmsIT8SetDataRowColDbl(self ->hIT8, row, col, dbl); } SWIGINTERN int IT8_setData__SWIG_2(IT8 *self,char const *Patch,char const *Sample,char const *Val){ return cmsIT8SetData(self ->hIT8, Patch, Sample, Val); } SWIGINTERN int IT8_setData__SWIG_3(IT8 *self,char const *Patch,char const *Sample,double dbl){ return cmsIT8SetDataDbl(self ->hIT8, Patch, Sample, dbl); } SWIGINTERN int IT8_setDataFormat(IT8 *self,int nSample,char const *Sample){ return cmsIT8SetDataFormat(self -> hIT8, nSample, Sample); } SWIGINTERN char const *IT8_getPatchName(IT8 *self,int nPatch){ return cmsIT8GetPatchName(self -> hIT8, nPatch, NULL); } SWIGINTERN int IT8_getDataFormat(IT8 *self,char const *Patch){ return cmsIT8GetDataFormat(self -> hIT8, Patch); } SWIGINTERN PyObject *IT8_enumDataFormat(IT8 *self){ char** DataFormat; PyObject* TheList; PyObject* OneDataFormat; int i, n; n = cmsIT8EnumDataFormat(self -> hIT8, &DataFormat); TheList = PyList_New(n); if (!TheList) return NULL; for (i = 0; i < n; i++) { OneDataFormat = PyString_FromString(DataFormat[i]); PyList_SET_ITEM(TheList, i, OneDataFormat); } return TheList; } SWIGINTERN PyObject *IT8_enumProperties(IT8 *self){ const char** Props; PyObject* TheList; PyObject* OneProp; int i, n; n = cmsIT8EnumProperties(self -> hIT8, &Props); TheList = PyList_New(n); if (!TheList) return NULL; for (i = 0; i < n; i++) { OneProp = PyString_FromString(Props[i]); PyList_SET_ITEM(TheList, i, OneProp); } return TheList; } SWIGINTERN int IT8_setTableByLabel__SWIG_0(IT8 *self,char const *cSet,char const *cFld=NULL,char const *ExpectedType=NULL){ return cmsIT8SetTableByLabel(self -> hIT8, cSet, cFld, ExpectedType); } SWIGINTERN PyObject *IT8_getRow(IT8 *self,int n){ PyObject* TheList; PyObject* OneProp; int i; int nf = (int) cmsIT8GetPropertyDbl(self -> hIT8, "NUMBER_OF_FIELDS"); if (nf <= 0) return NULL; TheList = PyList_New(nf); if (!TheList) return NULL; for (i = 0; i < nf; i++) { OneProp = PyString_FromString(cmsIT8GetDataRowCol(self ->hIT8, n, i)); PyList_SET_ITEM(TheList, i, OneProp); } return TheList; } SWIGINTERN PyObject *IT8_getCol(IT8 *self,char const *Patch){ PyObject* TheList; PyObject* OneProp; int i; int n = cmsIT8GetDataFormat(self -> hIT8, Patch); if (n < 0) return NULL; int ns = (int) cmsIT8GetPropertyDbl(self -> hIT8, "NUMBER_OF_SETS"); if (ns <= 0) return NULL; TheList = PyList_New(ns); if (!TheList) return NULL; for (i = 0; i < ns; i++) { OneProp = PyString_FromString(cmsIT8GetDataRowCol(self ->hIT8, i, n)); PyList_SET_ITEM(TheList, i, OneProp); } return TheList; } SWIGINTERN int SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) { if (PyInt_Check(obj)) { long v = PyInt_AsLong(obj); if (v >= 0) { if (val) *val = v; return SWIG_OK; } else { return SWIG_OverflowError; } } else if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; } else { PyErr_Clear(); } } #ifdef SWIG_PYTHON_CAST_MODE { int dispatch = 0; unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_AddCast(SWIG_OK); } else { PyErr_Clear(); } if (!dispatch) { double d; int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d)); if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) { if (val) *val = (unsigned long)(d); return res; } } } #endif return SWIG_TypeError; } SWIGINTERN int SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, &v); if (SWIG_IsOK(res)) { if ((v > UINT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< unsigned int >(v); } } return res; } SWIGINTERNINLINE PyObject * SWIG_From_unsigned_SS_int (unsigned int value) { return SWIG_From_unsigned_SS_long (value); } SWIGINTERN GAMMATABLE *new_GAMMATABLE__SWIG_0(double Gamma,int nEntries=256){ return Gamma <= 0 ? cmsAllocGamma(nEntries) : cmsBuildGamma(nEntries, Gamma); } SWIGINTERN void delete_GAMMATABLE(GAMMATABLE *self){ cmsFreeGamma(self); } SWIGINTERN char const *GAMMATABLE___repr__(GAMMATABLE *self){ static char Buffer[256]; sprintf(Buffer, "Gamma Table of %d entries [estimated gamma %g]", self ->nEntries, cmsEstimateGamma(self)); return Buffer; } SWIGINTERN WORD GAMMATABLE___getitem__(GAMMATABLE *self,int key){ return self -> GammaTable[key]; } SWIGINTERN int SWIG_AsVal_unsigned_SS_short (PyObject * obj, unsigned short *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, &v); if (SWIG_IsOK(res)) { if ((v > USHRT_MAX)) { return SWIG_OverflowError; } else { if (val) *val = static_cast< unsigned short >(v); } } return res; } SWIGINTERN void GAMMATABLE___setitem__(GAMMATABLE *self,int key,WORD val){ self -> GammaTable[key] = val; } SWIGINTERN VEC3 *new_VEC3__SWIG_0(double vx=0,double vy=0,double vz=0){ LPVEC3 v; v = (LPVEC3) _cmsMalloc(sizeof(VEC3)); v->n[0] =vx; v->n[1] =vy; v->n[2] =vz; return v; } SWIGINTERN void delete_VEC3(VEC3 *self){ _cmsFree(self); } SWIGINTERN double VEC3___getitem__(VEC3 *self,int key){ return self -> n[key]; } SWIGINTERN void VEC3___setitem__(VEC3 *self,int key,double val){ self -> n[key] = val; } SWIGINTERN char const *VEC3___repr__(VEC3 *self){ static char Buffer[256]; sprintf(Buffer, "VEC3 [%g, %g, %g]", self->n[0],self->n[1],self->n[2]); return Buffer; } SWIGINTERN cmsCIEXYZ *new_cmsCIEXYZ__SWIG_0(double x=0,double y=0,double z=0){ LPcmsCIEXYZ v; v = (LPcmsCIEXYZ) _cmsMalloc(sizeof(cmsCIEXYZ)); v->X = x; v->Y = y; v->Z = z; return v; } SWIGINTERN void delete_cmsCIEXYZ(cmsCIEXYZ *self){ _cmsFree(self); } SWIGINTERN char const *cmsCIEXYZ___repr__(cmsCIEXYZ *self){ static char Buffer[256]; sprintf(Buffer, "XYZ [%g, %g, %g]", self->X,self->Y,self->Z); return Buffer; } SWIGINTERN cmsCIExyY *new_cmsCIExyY__SWIG_0(double x=0,double y=0,double Y=0){ LPcmsCIExyY v; v = (LPcmsCIExyY) _cmsMalloc(sizeof(cmsCIExyY)); v->x = x; v->y = y; v->Y = Y; return v; } SWIGINTERN void delete_cmsCIExyY(cmsCIExyY *self){ _cmsFree(self); } SWIGINTERN char const *cmsCIExyY___repr__(cmsCIExyY *self){ static char Buffer[256]; sprintf(Buffer, "xyY [%g, %g, %g]", self->x,self->y,self->Y); return Buffer; } SWIGINTERN cmsCIELab *new_cmsCIELab__SWIG_0(double L=0,double a=0,double b=0){ LPcmsCIELab v; v = (LPcmsCIELab) _cmsMalloc(sizeof(cmsCIELab)); v->L = L; v->a = a; v->b = b; return v; } SWIGINTERN void delete_cmsCIELab(cmsCIELab *self){ _cmsFree(self); } SWIGINTERN char const *cmsCIELab___repr__(cmsCIELab *self){ static char Buffer[256]; sprintf(Buffer, "Lab [%g, %g, %g]", self->L,self->a,self->b); return Buffer; } SWIGINTERN int cmsCIELab___cmp__(cmsCIELab *self,cmsCIELab *a){ return cmsDeltaE(self, a) > 0.0; } SWIGINTERN cmsCIELCh *new_cmsCIELCh__SWIG_0(double L=0,double C=0,double h=0){ LPcmsCIELCh v; v = (LPcmsCIELCh) _cmsMalloc(sizeof(cmsCIELCh)); v->L = L; v->C = C; v->h = h; return v; } SWIGINTERN void delete_cmsCIELCh(cmsCIELCh *self){ _cmsFree(self); } SWIGINTERN char const *cmsCIELCh___repr__(cmsCIELCh *self){ static char Buffer[256]; sprintf(Buffer, "LCh [%g, %g, %g]", self->L,self->C,self->h); return Buffer; } SWIGINTERN cmsJCh *new_cmsJCh__SWIG_0(double J=0,double C=0,double h=0){ LPcmsJCh v; v = (LPcmsJCh) _cmsMalloc(sizeof(cmsJCh)); v->J = J; v->C = C; v->h = h; return v; } SWIGINTERN void delete_cmsJCh(cmsJCh *self){ _cmsFree(self); } SWIGINTERN char const *cmsJCh___repr__(cmsJCh *self){ static char Buffer[256]; sprintf(Buffer, "CIECAM JCh [%g, %g, %g]", self->J,self->C,self->h); return Buffer; } SWIGINTERN cmsCIEXYZTRIPLE *new_cmsCIEXYZTRIPLE(cmsCIEXYZ *Red,cmsCIEXYZ *Green,cmsCIEXYZ *Blue){ LPcmsCIEXYZTRIPLE v; v = (LPcmsCIEXYZTRIPLE) _cmsMalloc(sizeof(cmsCIEXYZTRIPLE)); memcpy((&v->Red),(Red),(sizeof(cmsCIExyY))); memcpy((&v->Green),(Green),(sizeof(cmsCIExyY))); memcpy((&v->Blue),(Blue),(sizeof(cmsCIExyY))); return v; } SWIGINTERN void delete_cmsCIEXYZTRIPLE(cmsCIEXYZTRIPLE *self){ _cmsFree(self); } SWIGINTERN char const *cmsCIEXYZTRIPLE___repr__(cmsCIEXYZTRIPLE *self){ return "xyY Triple"; } SWIGINTERN cmsCIExyYTRIPLE *new_cmsCIExyYTRIPLE(cmsCIExyY *Red,cmsCIExyY *Green,cmsCIExyY *Blue){ LPcmsCIExyYTRIPLE v; v = (LPcmsCIExyYTRIPLE) _cmsMalloc(sizeof(cmsCIExyYTRIPLE)); memcpy((&v->Red),(Red),(sizeof(cmsCIExyY))); memcpy((&v->Green),(Green),(sizeof(cmsCIExyY))); memcpy((&v->Blue),(Blue),(sizeof(cmsCIExyY))); return v; } SWIGINTERN void delete_cmsCIExyYTRIPLE(cmsCIExyYTRIPLE *self){ _cmsFree(self); } SWIGINTERN char const *cmsCIExyYTRIPLE___repr__(cmsCIExyYTRIPLE *self){ return "xyY Triple"; } SWIGINTERN cmsViewingConditions *new_cmsViewingConditions(cmsCIEXYZ *WhitePoint,double Yb,double La,int surround,double D_value){ LPcmsViewingConditions v; v = (LPcmsViewingConditions) _cmsMalloc(sizeof(cmsViewingConditions)); memcpy((&v -> whitePoint),(WhitePoint),(sizeof(cmsCIEXYZ))); v ->Yb = Yb; v ->La = La; v -> surround = surround; v -> D_value = D_value; return v; } SWIGINTERN void delete_cmsViewingConditions(cmsViewingConditions *self){ _cmsFree(self); } SWIGINTERN char const *cmsViewingConditions___repr__(cmsViewingConditions *self){ return "CIECAM97s viewing conditions"; } SWIGINTERN int SWIG_AsCharArray(PyObject * obj, char *val, size_t size) { char* cptr = 0; size_t csize = 0; int alloc = SWIG_OLDOBJ; int res = SWIG_AsCharPtrAndSize(obj, &cptr, &csize, &alloc); if (SWIG_IsOK(res)) { if ((csize == size + 1) && cptr && !(cptr[csize-1])) --csize; if (csize <= size) { if (val) { if (csize) memcpy(val, cptr, csize*sizeof(char)); if (csize < size) memset(val + csize, 0, (size - csize)*sizeof(char)); } if (alloc == SWIG_NEWOBJ) { delete[] cptr; res = SWIG_DelNewMask(res); } return res; } if (alloc == SWIG_NEWOBJ) delete[] cptr; } return SWIG_TypeError; } SWIGINTERNINLINE int SWIG_AsVal_size_t (PyObject * obj, size_t *val) { unsigned long v; int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); return res; } SWIGINTERNINLINE PyObject * SWIG_From_size_t (size_t value) { return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); } SWIGINTERN icTagSignature *new_icTagSignature(unsigned int n){ icTagSignature* v = (icTagSignature*) _cmsMalloc(sizeof(icTagSignature)); *v = (icTagSignature) n; return v; } SWIGINTERN void delete_icTagSignature(icTagSignature *self){ _cmsFree(self); } class StrPointer { }; SWIGINTERN StrPointer *new_StrPointer(char *s){ return (StrPointer*) s; } #ifdef __cplusplus extern "C" { #endif SWIGINTERN PyObject *_wrap_COLORW_w_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *arg1 = (COLORW *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:COLORW_w_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORW, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORW_w_set" "', argument " "1"" of type '" "COLORW *""'"); } arg1 = reinterpret_cast< COLORW * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "COLORW_w_set" "', argument " "2"" of type '" "WORD [16]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->w[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""w""' of type '""WORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORW_w_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *arg1 = (COLORW *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:COLORW_w_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORW, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORW_w_get" "', argument " "1"" of type '" "COLORW *""'"); } arg1 = reinterpret_cast< COLORW * >(argp1); result = (WORD *)(WORD *) ((arg1)->w); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_COLORW(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_COLORW")) SWIG_fail; InErrorFlag = 0; result = (COLORW *)new_COLORW(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_COLORW, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORW___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *arg1 = (COLORW *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:COLORW___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORW, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORW___repr__" "', argument " "1"" of type '" "COLORW *""'"); } arg1 = reinterpret_cast< COLORW * >(argp1); InErrorFlag = 0; result = (char *)COLORW___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORW___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *arg1 = (COLORW *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OO:COLORW___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORW, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORW___getitem__" "', argument " "1"" of type '" "COLORW *""'"); } arg1 = reinterpret_cast< COLORW * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "COLORW___getitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (WORD)COLORW___getitem__(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORW___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *arg1 = (COLORW *) 0 ; int arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:COLORW___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORW, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORW___setitem__" "', argument " "1"" of type '" "COLORW *""'"); } arg1 = reinterpret_cast< COLORW * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "COLORW___setitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "COLORW___setitem__" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; COLORW___setitem__(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_COLORW(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORW *arg1 = (COLORW *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_COLORW",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORW, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_COLORW" "', argument " "1"" of type '" "COLORW *""'"); } arg1 = reinterpret_cast< COLORW * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *COLORW_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_COLORW, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_COLORB_b_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *arg1 = (COLORB *) 0 ; BYTE *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:COLORB_b_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORB_b_set" "', argument " "1"" of type '" "COLORB *""'"); } arg1 = reinterpret_cast< COLORB * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "COLORB_b_set" "', argument " "2"" of type '" "BYTE [16]""'"); } arg2 = reinterpret_cast< BYTE * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->b[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""b""' of type '""BYTE [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORB_b_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *arg1 = (COLORB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; BYTE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:COLORB_b_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORB_b_get" "', argument " "1"" of type '" "COLORB *""'"); } arg1 = reinterpret_cast< COLORB * >(argp1); result = (BYTE *)(BYTE *) ((arg1)->b); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_char, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_COLORB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_COLORB")) SWIG_fail; InErrorFlag = 0; result = (COLORB *)new_COLORB(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_COLORB, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_COLORB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *arg1 = (COLORB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_COLORB",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORB, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_COLORB" "', argument " "1"" of type '" "COLORB *""'"); } arg1 = reinterpret_cast< COLORB * >(argp1); InErrorFlag = 0; delete_COLORB(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORB___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *arg1 = (COLORB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:COLORB___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORB___repr__" "', argument " "1"" of type '" "COLORB *""'"); } arg1 = reinterpret_cast< COLORB * >(argp1); InErrorFlag = 0; result = (char *)COLORB___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORB___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *arg1 = (COLORB *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OO:COLORB___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORB___getitem__" "', argument " "1"" of type '" "COLORB *""'"); } arg1 = reinterpret_cast< COLORB * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "COLORB___getitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (WORD)COLORB___getitem__(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_COLORB___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; COLORB *arg1 = (COLORB *) 0 ; int arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:COLORB___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_COLORB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "COLORB___setitem__" "', argument " "1"" of type '" "COLORB *""'"); } arg1 = reinterpret_cast< COLORB * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "COLORB___setitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "COLORB___setitem__" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; COLORB___setitem__(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *COLORB_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_COLORB, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_IT8_hIT8_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; LCMSHANDLE arg2 = (LCMSHANDLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_hIT8_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_hIT8_set" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_hIT8_set" "', argument " "2"" of type '" "LCMSHANDLE""'"); } if (arg1) (arg1)->hIT8 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_hIT8_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSHANDLE result; if (!PyArg_ParseTuple(args,(char *)"O:IT8_hIT8_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_hIT8_get" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); result = (LCMSHANDLE) ((arg1)->hIT8); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_IT8__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject * obj0 = 0 ; IT8 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_IT8",&obj0)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_IT8" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); InErrorFlag = 0; result = (IT8 *)new_IT8__SWIG_0((char const *)arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IT8, SWIG_POINTER_NEW | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_new_IT8__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_IT8")) SWIG_fail; InErrorFlag = 0; result = (IT8 *)new_IT8__SWIG_1(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IT8, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_IT8(PyObject *self, PyObject *args) { int argc; PyObject *argv[2]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 1); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_IT8__SWIG_1(self, args); } if (argc == 1) { int _v; int res = SWIG_AsCharPtrAndSize(argv[0], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_new_IT8__SWIG_0(self, args); } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_IT8'.\n" " Possible C/C++ prototypes are:\n" " IT8(char const *)\n" " IT8()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_IT8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_IT8",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IT8" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); InErrorFlag = 0; delete_IT8(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:IT8___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8___repr__" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); InErrorFlag = 0; result = (char *)IT8___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_saveToFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_saveToFile",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_saveToFile" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_saveToFile" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)IT8_saveToFile(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_tableCount(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:IT8_tableCount",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_tableCount" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); InErrorFlag = 0; result = (int)IT8_tableCount(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_setTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_setTable",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setTable" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_setTable" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (int)IT8_setTable(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_getSheetType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:IT8_getSheetType",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getSheetType" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); InErrorFlag = 0; result = (char *)IT8_getSheetType(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_setSheetType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_setSheetType",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setSheetType" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setSheetType" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)IT8_setSheetType(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_addComment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_addComment",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_addComment" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_addComment" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)IT8_addComment(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setProperty__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_setProperty",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setProperty" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setProperty" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setProperty" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (int)IT8_setProperty__SWIG_0(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setProperty__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_setProperty",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setProperty" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setProperty" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IT8_setProperty" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (int)IT8_setProperty__SWIG_1(arg1,(char const *)arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setProperty(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IT8_setProperty__SWIG_1(self, args); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_setProperty__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'IT8_setProperty'.\n" " Possible C/C++ prototypes are:\n" " setProperty(IT8 *,char const *,char const *)\n" " setProperty(IT8 *,char const *,double)\n"); return NULL; } SWIGINTERN PyObject *_wrap_IT8_setPropertyAsHex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_setPropertyAsHex",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setPropertyAsHex" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setPropertyAsHex" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IT8_setPropertyAsHex" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (int)IT8_setPropertyAsHex(arg1,(char const *)arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setPropertyUncooked(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_setPropertyUncooked",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setPropertyUncooked" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setPropertyUncooked" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setPropertyUncooked" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (int)IT8_setPropertyUncooked(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_getProperty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_getProperty",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getProperty" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_getProperty" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (char *)IT8_getProperty(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_getPropertyAsDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_getPropertyAsDbl",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getPropertyAsDbl" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_getPropertyAsDbl" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (double)IT8_getPropertyAsDbl(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_getData__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_getData",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getData" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_getData" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IT8_getData" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (char *)IT8_getData__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_getData__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_getData",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getData" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_getData" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_getData" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (char *)IT8_getData__SWIG_1(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_getData(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IT8_getData__SWIG_0(self, args); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_getData__SWIG_1(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'IT8_getData'.\n" " Possible C/C++ prototypes are:\n" " getData(IT8 *,int,int)\n" " getData(IT8 *,char const *,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_IT8_getDataAsDbl__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_getDataAsDbl",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getDataAsDbl" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_getDataAsDbl" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IT8_getDataAsDbl" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (double)IT8_getDataAsDbl__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_getDataAsDbl__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_getDataAsDbl",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getDataAsDbl" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_getDataAsDbl" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_getDataAsDbl" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (double)IT8_getDataAsDbl__SWIG_1(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_getDataAsDbl(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IT8_getDataAsDbl__SWIG_0(self, args); } } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_getDataAsDbl__SWIG_1(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'IT8_getDataAsDbl'.\n" " Possible C/C++ prototypes are:\n" " getDataAsDbl(IT8 *,int,int)\n" " getDataAsDbl(IT8 *,char const *,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_IT8_setData__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; int arg3 ; char *arg4 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:IT8_setData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setData" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_setData" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IT8_setData" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IT8_setData" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (int)IT8_setData__SWIG_0(arg1,arg2,arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setData__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; int arg3 ; double arg4 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:IT8_setData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setData" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_setData" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IT8_setData" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "IT8_setData" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); InErrorFlag = 0; result = (int)IT8_setData__SWIG_1(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_setData__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:IT8_setData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setData" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setData" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setData" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IT8_setData" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (int)IT8_setData__SWIG_2(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setData__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; double arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:IT8_setData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setData" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setData" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setData" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "IT8_setData" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); InErrorFlag = 0; result = (int)IT8_setData__SWIG_3(arg1,(char const *)arg2,(char const *)arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setData(PyObject *self, PyObject *args) { int argc; PyObject *argv[5]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[3], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IT8_setData__SWIG_1(self, args); } } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_int(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_setData__SWIG_0(self, args); } } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { { int res = SWIG_AsVal_double(argv[3], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_IT8_setData__SWIG_3(self, args); } } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_setData__SWIG_2(self, args); } } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'IT8_setData'.\n" " Possible C/C++ prototypes are:\n" " setData(IT8 *,int,int,char const *)\n" " setData(IT8 *,int,int,double)\n" " setData(IT8 *,char const *,char const *,char const *)\n" " setData(IT8 *,char const *,char const *,double)\n"); return NULL; } SWIGINTERN PyObject *_wrap_IT8_setDataFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_setDataFormat",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setDataFormat" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_setDataFormat" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setDataFormat" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (int)IT8_setDataFormat(arg1,arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_getPatchName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_getPatchName",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getPatchName" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_getPatchName" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (char *)IT8_getPatchName(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_getDataFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_getDataFormat",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getDataFormat" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_getDataFormat" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)IT8_getDataFormat(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_enumDataFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:IT8_enumDataFormat",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_enumDataFormat" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); InErrorFlag = 0; result = (PyObject *)IT8_enumDataFormat(arg1); if (InErrorFlag) SWIG_fail; resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_enumProperties(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:IT8_enumProperties",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_enumProperties" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); InErrorFlag = 0; result = (PyObject *)IT8_enumProperties(arg1); if (InErrorFlag) SWIG_fail; resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_setTableByLabel__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:IT8_setTableByLabel",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setTableByLabel" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setTableByLabel" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setTableByLabel" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "IT8_setTableByLabel" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (int)IT8_setTableByLabel__SWIG_0(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setTableByLabel__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:IT8_setTableByLabel",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setTableByLabel" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setTableByLabel" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IT8_setTableByLabel" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (int)IT8_setTableByLabel__SWIG_0(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setTableByLabel__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_setTableByLabel",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_setTableByLabel" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_setTableByLabel" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)IT8_setTableByLabel__SWIG_0(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_IT8_setTableByLabel(PyObject *self, PyObject *args) { int argc; PyObject *argv[5]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 2) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_setTableByLabel__SWIG_2(self, args); } } } if (argc == 3) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_setTableByLabel__SWIG_1(self, args); } } } } if (argc == 4) { int _v; void *vptr = 0; int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_IT8, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[1], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[2], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { int res = SWIG_AsCharPtrAndSize(argv[3], 0, NULL, 0); _v = SWIG_CheckState(res); if (_v) { return _wrap_IT8_setTableByLabel__SWIG_0(self, args); } } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'IT8_setTableByLabel'.\n" " Possible C/C++ prototypes are:\n" " setTableByLabel(IT8 *,char const *,char const *,char const *)\n" " setTableByLabel(IT8 *,char const *,char const *)\n" " setTableByLabel(IT8 *,char const *)\n"); return NULL; } SWIGINTERN PyObject *_wrap_IT8_getRow(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_getRow",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getRow" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IT8_getRow" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (PyObject *)IT8_getRow(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = result; return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_IT8_getCol(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IT8 *arg1 = (IT8 *) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:IT8_getCol",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IT8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IT8_getCol" "', argument " "1"" of type '" "IT8 *""'"); } arg1 = reinterpret_cast< IT8 * >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IT8_getCol" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (PyObject *)IT8_getCol(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = result; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *IT8_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_IT8, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_icCLutStruct_gridPoints_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; icUInt8Number *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icCLutStruct_gridPoints_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_gridPoints_set" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_icUInt8Number, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icCLutStruct_gridPoints_set" "', argument " "2"" of type '" "icUInt8Number [16]""'"); } arg2 = reinterpret_cast< icUInt8Number * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->gridPoints[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""gridPoints""' of type '""icUInt8Number [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_gridPoints_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:icCLutStruct_gridPoints_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_gridPoints_get" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); result = (icUInt8Number *)(icUInt8Number *) ((arg1)->gridPoints); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icUInt8Number, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_prec_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icCLutStruct_prec_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_prec_set" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icCLutStruct_prec_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icCLutStruct_prec_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->prec = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_prec_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icCLutStruct_prec_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_prec_get" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); result = ((arg1)->prec); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_pad1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icCLutStruct_pad1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_pad1_set" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icCLutStruct_pad1_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icCLutStruct_pad1_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad1 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_pad1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icCLutStruct_pad1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_pad1_get" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); result = ((arg1)->pad1); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_pad2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icCLutStruct_pad2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_pad2_set" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icCLutStruct_pad2_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icCLutStruct_pad2_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad2 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_pad2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icCLutStruct_pad2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_pad2_get" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); result = ((arg1)->pad2); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_pad3_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icCLutStruct_pad3_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_pad3_set" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icCLutStruct_pad3_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icCLutStruct_pad3_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad3 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icCLutStruct_pad3_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icCLutStruct_pad3_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icCLutStruct_pad3_get" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); result = ((arg1)->pad3); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_icCLutStruct(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_icCLutStruct")) SWIG_fail; InErrorFlag = 0; result = (icCLutStruct *)new icCLutStruct(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icCLutStruct, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_icCLutStruct(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icCLutStruct *arg1 = (icCLutStruct *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_icCLutStruct",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icCLutStruct, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_icCLutStruct" "', argument " "1"" of type '" "icCLutStruct *""'"); } arg1 = reinterpret_cast< icCLutStruct * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *icCLutStruct_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_icCLutStruct, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_icLutAtoB_inputChan_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_inputChan_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_inputChan_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_inputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_inputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->inputChan = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_inputChan_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_inputChan_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_inputChan_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->inputChan); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_outputChan_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_outputChan_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_outputChan_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_outputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_outputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->outputChan = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_outputChan_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_outputChan_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_outputChan_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->outputChan); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_pad1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_pad1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_pad1_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_pad1_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_pad1_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad1 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_pad1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_pad1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_pad1_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->pad1); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_pad2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_pad2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_pad2_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_pad2_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_pad2_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad2 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_pad2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_pad2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_pad2_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->pad2); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetB_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_offsetB_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetB_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_offsetB_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_offsetB_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetB = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetB_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_offsetB_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetB_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->offsetB); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetMat_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_offsetMat_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetMat_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_offsetMat_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_offsetMat_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetMat = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetMat_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_offsetMat_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetMat_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->offsetMat); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetM_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_offsetM_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetM_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_offsetM_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_offsetM_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetM = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetM_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_offsetM_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetM_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->offsetM); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetC_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_offsetC_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetC_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_offsetC_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_offsetC_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetC = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetC_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_offsetC_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetC_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->offsetC); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetA_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutAtoB_offsetA_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetA_set" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutAtoB_offsetA_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutAtoB_offsetA_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetA = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutAtoB_offsetA_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutAtoB_offsetA_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutAtoB_offsetA_get" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); result = ((arg1)->offsetA); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_icLutAtoB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_icLutAtoB")) SWIG_fail; InErrorFlag = 0; result = (icLutAtoB *)new icLutAtoB(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icLutAtoB, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_icLutAtoB(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutAtoB *arg1 = (icLutAtoB *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_icLutAtoB",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutAtoB, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_icLutAtoB" "', argument " "1"" of type '" "icLutAtoB *""'"); } arg1 = reinterpret_cast< icLutAtoB * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *icLutAtoB_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_icLutAtoB, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_icLutBtoA_inputChan_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_inputChan_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_inputChan_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_inputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_inputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->inputChan = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_inputChan_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_inputChan_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_inputChan_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->inputChan); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_outputChan_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_outputChan_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_outputChan_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_outputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_outputChan_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->outputChan = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_outputChan_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_outputChan_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_outputChan_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->outputChan); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_pad1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_pad1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_pad1_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_pad1_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_pad1_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad1 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_pad1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_pad1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_pad1_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->pad1); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_pad2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_pad2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_pad2_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_pad2_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_pad2_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->pad2 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_pad2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_pad2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_pad2_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->pad2); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetB_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_offsetB_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetB_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_offsetB_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_offsetB_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetB = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetB_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_offsetB_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetB_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->offsetB); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetMat_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_offsetMat_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetMat_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_offsetMat_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_offsetMat_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetMat = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetMat_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_offsetMat_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetMat_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->offsetMat); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetM_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_offsetM_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetM_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_offsetM_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_offsetM_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetM = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetM_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_offsetM_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetM_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->offsetM); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetC_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_offsetC_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetC_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_offsetC_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_offsetC_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetC = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetC_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_offsetC_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetC_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->offsetC); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetA_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:icLutBtoA_offsetA_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetA_set" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "icLutBtoA_offsetA_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "icLutBtoA_offsetA_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->offsetA = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_icLutBtoA_offsetA_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:icLutBtoA_offsetA_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "icLutBtoA_offsetA_get" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); result = ((arg1)->offsetA); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_icLutBtoA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_icLutBtoA")) SWIG_fail; InErrorFlag = 0; result = (icLutBtoA *)new icLutBtoA(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icLutBtoA, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_icLutBtoA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icLutBtoA *arg1 = (icLutBtoA *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_icLutBtoA",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icLutBtoA, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_icLutBtoA" "', argument " "1"" of type '" "icLutBtoA *""'"); } arg1 = reinterpret_cast< icLutBtoA * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *icLutBtoA_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_icLutBtoA, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_LCMSGAMMAPARAMS_Crc32_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSGAMMAPARAMS_Crc32_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSGAMMAPARAMS_Crc32_set" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "LCMSGAMMAPARAMS_Crc32_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->Crc32 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSGAMMAPARAMS_Crc32_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSGAMMAPARAMS_Crc32_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSGAMMAPARAMS_Crc32_get" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); result = (unsigned int) ((arg1)->Crc32); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSGAMMAPARAMS_Type_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSGAMMAPARAMS_Type_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSGAMMAPARAMS_Type_set" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "LCMSGAMMAPARAMS_Type_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Type = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSGAMMAPARAMS_Type_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSGAMMAPARAMS_Type_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSGAMMAPARAMS_Type_get" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); result = (int) ((arg1)->Type); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSGAMMAPARAMS_Params_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; double *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSGAMMAPARAMS_Params_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSGAMMAPARAMS_Params_set" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSGAMMAPARAMS_Params_set" "', argument " "2"" of type '" "double [10]""'"); } arg2 = reinterpret_cast< double * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)10; ++ii) arg1->Params[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""Params""' of type '""double [10]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSGAMMAPARAMS_Params_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSGAMMAPARAMS_Params_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSGAMMAPARAMS_Params_get" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); result = (double *)(double *) ((arg1)->Params); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_LCMSGAMMAPARAMS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_LCMSGAMMAPARAMS")) SWIG_fail; InErrorFlag = 0; result = (LCMSGAMMAPARAMS *)new LCMSGAMMAPARAMS(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_LCMSGAMMAPARAMS, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_LCMSGAMMAPARAMS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSGAMMAPARAMS *arg1 = (LCMSGAMMAPARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_LCMSGAMMAPARAMS",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_LCMSGAMMAPARAMS, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_LCMSGAMMAPARAMS" "', argument " "1"" of type '" "LCMSGAMMAPARAMS *""'"); } arg1 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *LCMSGAMMAPARAMS_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_LCMSGAMMAPARAMS, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_GAMMATABLE_Seed_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; LCMSGAMMAPARAMS *arg2 = (LCMSGAMMAPARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:GAMMATABLE_Seed_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE_Seed_set" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GAMMATABLE_Seed_set" "', argument " "2"" of type '" "LCMSGAMMAPARAMS *""'"); } arg2 = reinterpret_cast< LCMSGAMMAPARAMS * >(argp2); if (arg1) (arg1)->Seed = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE_Seed_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSGAMMAPARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:GAMMATABLE_Seed_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE_Seed_get" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); result = (LCMSGAMMAPARAMS *)& ((arg1)->Seed); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_LCMSGAMMAPARAMS, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE_nEntries_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:GAMMATABLE_nEntries_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE_nEntries_set" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GAMMATABLE_nEntries_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->nEntries = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE_nEntries_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:GAMMATABLE_nEntries_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE_nEntries_get" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); result = (int) ((arg1)->nEntries); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE_GammaTable_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:GAMMATABLE_GammaTable_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE_GammaTable_set" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "GAMMATABLE_GammaTable_set" "', argument " "2"" of type '" "WORD [1]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)1; ++ii) arg1->GammaTable[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""GammaTable""' of type '""WORD [1]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE_GammaTable_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:GAMMATABLE_GammaTable_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE_GammaTable_get" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); result = (WORD *)(WORD *) ((arg1)->GammaTable); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_GAMMATABLE__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; int arg2 ; double val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; GAMMATABLE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_GAMMATABLE",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GAMMATABLE" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_GAMMATABLE" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (GAMMATABLE *)new_GAMMATABLE__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_GAMMATABLE__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; GAMMATABLE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_GAMMATABLE",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_GAMMATABLE" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (GAMMATABLE *)new_GAMMATABLE__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_GAMMATABLE(PyObject *self, PyObject *args) { int argc; PyObject *argv[3]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 2); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_GAMMATABLE__SWIG_1(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_int(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_GAMMATABLE__SWIG_0(self, args); } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_GAMMATABLE'.\n" " Possible C/C++ prototypes are:\n" " GAMMATABLE(double,int)\n" " GAMMATABLE(double)\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_GAMMATABLE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_GAMMATABLE",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_GAMMATABLE" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); InErrorFlag = 0; delete_GAMMATABLE(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:GAMMATABLE___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE___repr__" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); InErrorFlag = 0; result = (char *)GAMMATABLE___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OO:GAMMATABLE___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE___getitem__" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GAMMATABLE___getitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (WORD)GAMMATABLE___getitem__(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_GAMMATABLE___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; GAMMATABLE *arg1 = (GAMMATABLE *) 0 ; int arg2 ; WORD arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; unsigned short val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:GAMMATABLE___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "GAMMATABLE___setitem__" "', argument " "1"" of type '" "GAMMATABLE *""'"); } arg1 = reinterpret_cast< GAMMATABLE * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "GAMMATABLE___setitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_unsigned_SS_short(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "GAMMATABLE___setitem__" "', argument " "3"" of type '" "WORD""'"); } arg3 = static_cast< WORD >(val3); InErrorFlag = 0; GAMMATABLE___setitem__(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *GAMMATABLE_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_GAMMATABLE, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_VEC3_n_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *arg1 = (VEC3 *) 0 ; double *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3_n_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3_n_set" "', argument " "1"" of type '" "VEC3 *""'"); } arg1 = reinterpret_cast< VEC3 * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3_n_set" "', argument " "2"" of type '" "double [3]""'"); } arg2 = reinterpret_cast< double * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->n[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""n""' of type '""double [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3_n_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *arg1 = (VEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:VEC3_n_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3_n_get" "', argument " "1"" of type '" "VEC3 *""'"); } arg1 = reinterpret_cast< VEC3 * >(argp1); result = (double *)(double *) ((arg1)->n); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_VEC3__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double arg3 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; VEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_VEC3",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VEC3" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_VEC3" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_VEC3" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (VEC3 *)new_VEC3__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VEC3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_VEC3__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; VEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_VEC3",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VEC3" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_VEC3" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (VEC3 *)new_VEC3__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VEC3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_VEC3__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; VEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_VEC3",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_VEC3" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (VEC3 *)new_VEC3__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VEC3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_VEC3__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_VEC3")) SWIG_fail; InErrorFlag = 0; result = (VEC3 *)new_VEC3__SWIG_0(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VEC3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_VEC3(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_VEC3__SWIG_3(self, args); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_VEC3__SWIG_2(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_VEC3__SWIG_1(self, args); } } } if (argc == 3) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_VEC3__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_VEC3'.\n" " Possible C/C++ prototypes are:\n" " VEC3(double,double,double)\n" " VEC3(double,double)\n" " VEC3(double)\n" " VEC3()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_VEC3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *arg1 = (VEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_VEC3",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_VEC3" "', argument " "1"" of type '" "VEC3 *""'"); } arg1 = reinterpret_cast< VEC3 * >(argp1); InErrorFlag = 0; delete_VEC3(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3___getitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *arg1 = (VEC3 *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3___getitem__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3___getitem__" "', argument " "1"" of type '" "VEC3 *""'"); } arg1 = reinterpret_cast< VEC3 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VEC3___getitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (double)VEC3___getitem__(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3___setitem__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *arg1 = (VEC3 *) 0 ; int arg2 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3___setitem__",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3___setitem__" "', argument " "1"" of type '" "VEC3 *""'"); } arg1 = reinterpret_cast< VEC3 * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VEC3___setitem__" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3___setitem__" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; VEC3___setitem__(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; VEC3 *arg1 = (VEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:VEC3___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3___repr__" "', argument " "1"" of type '" "VEC3 *""'"); } arg1 = reinterpret_cast< VEC3 * >(argp1); InErrorFlag = 0; result = (char *)VEC3___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *VEC3_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_VEC3, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_MAT3_v_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MAT3 *arg1 = (MAT3 *) 0 ; VEC3 *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MAT3_v_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3_v_set" "', argument " "1"" of type '" "MAT3 *""'"); } arg1 = reinterpret_cast< MAT3 * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3_v_set" "', argument " "2"" of type '" "VEC3 [3]""'"); } arg2 = reinterpret_cast< VEC3 * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->v[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""v""' of type '""VEC3 [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3_v_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MAT3 *arg1 = (MAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; VEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MAT3_v_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3_v_get" "', argument " "1"" of type '" "MAT3 *""'"); } arg1 = reinterpret_cast< MAT3 * >(argp1); result = (VEC3 *)(VEC3 *) ((arg1)->v); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_VEC3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_MAT3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_MAT3")) SWIG_fail; InErrorFlag = 0; result = (MAT3 *)new MAT3(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MAT3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_MAT3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MAT3 *arg1 = (MAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_MAT3",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_MAT3" "', argument " "1"" of type '" "MAT3 *""'"); } arg1 = reinterpret_cast< MAT3 * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *MAT3_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_MAT3, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIEXYZ_X_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIEXYZ_X_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ_X_set" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIEXYZ_X_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->X = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZ_X_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZ_X_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ_X_get" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); result = (double) ((arg1)->X); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZ_Y_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIEXYZ_Y_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ_Y_set" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIEXYZ_Y_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->Y = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZ_Y_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZ_Y_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ_Y_get" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); result = (double) ((arg1)->Y); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZ_Z_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIEXYZ_Z_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ_Z_set" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIEXYZ_Z_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->Z = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZ_Z_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZ_Z_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ_Z_get" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); result = (double) ((arg1)->Z); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIEXYZ__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double arg3 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsCIEXYZ",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIEXYZ" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIEXYZ" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_cmsCIEXYZ" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (cmsCIEXYZ *)new_cmsCIEXYZ__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIEXYZ__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_cmsCIEXYZ",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIEXYZ" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIEXYZ" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (cmsCIEXYZ *)new_cmsCIEXYZ__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIEXYZ__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_cmsCIEXYZ",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIEXYZ" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (cmsCIEXYZ *)new_cmsCIEXYZ__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIEXYZ__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsCIEXYZ")) SWIG_fail; InErrorFlag = 0; result = (cmsCIEXYZ *)new_cmsCIEXYZ__SWIG_0(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIEXYZ(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_cmsCIEXYZ__SWIG_3(self, args); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIEXYZ__SWIG_2(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIEXYZ__SWIG_1(self, args); } } } if (argc == 3) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIEXYZ__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_cmsCIEXYZ'.\n" " Possible C/C++ prototypes are:\n" " cmsCIEXYZ(double,double,double)\n" " cmsCIEXYZ(double,double)\n" " cmsCIEXYZ(double)\n" " cmsCIEXYZ()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsCIEXYZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsCIEXYZ",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsCIEXYZ" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); InErrorFlag = 0; delete_cmsCIEXYZ(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZ___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZ___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZ___repr__" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); InErrorFlag = 0; result = (char *)cmsCIEXYZ___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsCIEXYZ_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsCIEXYZ, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIExyY_x_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIExyY_x_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY_x_set" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIExyY_x_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->x = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyY_x_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyY_x_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY_x_get" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); result = (double) ((arg1)->x); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyY_y_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIExyY_y_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY_y_set" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIExyY_y_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->y = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyY_y_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyY_y_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY_y_get" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); result = (double) ((arg1)->y); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyY_Y_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIExyY_Y_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY_Y_set" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIExyY_Y_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->Y = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyY_Y_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyY_Y_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY_Y_get" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); result = (double) ((arg1)->Y); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIExyY__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double arg3 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsCIExyY",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIExyY" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIExyY" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_cmsCIExyY" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (cmsCIExyY *)new_cmsCIExyY__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIExyY__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_cmsCIExyY",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIExyY" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIExyY" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (cmsCIExyY *)new_cmsCIExyY__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIExyY__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_cmsCIExyY",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIExyY" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (cmsCIExyY *)new_cmsCIExyY__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIExyY__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsCIExyY")) SWIG_fail; InErrorFlag = 0; result = (cmsCIExyY *)new_cmsCIExyY__SWIG_0(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIExyY(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_cmsCIExyY__SWIG_3(self, args); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIExyY__SWIG_2(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIExyY__SWIG_1(self, args); } } } if (argc == 3) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIExyY__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_cmsCIExyY'.\n" " Possible C/C++ prototypes are:\n" " cmsCIExyY(double,double,double)\n" " cmsCIExyY(double,double)\n" " cmsCIExyY(double)\n" " cmsCIExyY()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsCIExyY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsCIExyY",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsCIExyY" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); InErrorFlag = 0; delete_cmsCIExyY(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyY___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyY___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyY___repr__" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); InErrorFlag = 0; result = (char *)cmsCIExyY___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsCIExyY_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsCIExyY, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIELab_L_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELab_L_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab_L_set" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIELab_L_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->L = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab_L_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELab_L_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab_L_get" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); result = (double) ((arg1)->L); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab_a_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELab_a_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab_a_set" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIELab_a_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->a = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab_a_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELab_a_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab_a_get" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); result = (double) ((arg1)->a); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab_b_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELab_b_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab_b_set" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIELab_b_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->b = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab_b_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELab_b_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab_b_get" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); result = (double) ((arg1)->b); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELab__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double arg3 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsCIELab *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsCIELab",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIELab" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIELab" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_cmsCIELab" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (cmsCIELab *)new_cmsCIELab__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELab, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELab__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsCIELab *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_cmsCIELab",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIELab" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIELab" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (cmsCIELab *)new_cmsCIELab__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELab, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELab__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; cmsCIELab *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_cmsCIELab",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIELab" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (cmsCIELab *)new_cmsCIELab__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELab, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELab__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsCIELab")) SWIG_fail; InErrorFlag = 0; result = (cmsCIELab *)new_cmsCIELab__SWIG_0(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELab, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELab(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_cmsCIELab__SWIG_3(self, args); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIELab__SWIG_2(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIELab__SWIG_1(self, args); } } } if (argc == 3) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIELab__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_cmsCIELab'.\n" " Possible C/C++ prototypes are:\n" " cmsCIELab(double,double,double)\n" " cmsCIELab(double,double)\n" " cmsCIELab(double)\n" " cmsCIELab()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsCIELab(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsCIELab",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsCIELab" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); InErrorFlag = 0; delete_cmsCIELab(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELab___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab___repr__" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); InErrorFlag = 0; result = (char *)cmsCIELab___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELab___cmp__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELab *arg1 = (cmsCIELab *) 0 ; cmsCIELab *arg2 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELab___cmp__",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELab___cmp__" "', argument " "1"" of type '" "cmsCIELab *""'"); } arg1 = reinterpret_cast< cmsCIELab * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIELab___cmp__" "', argument " "2"" of type '" "cmsCIELab *""'"); } arg2 = reinterpret_cast< cmsCIELab * >(argp2); InErrorFlag = 0; result = (int)cmsCIELab___cmp__(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsCIELab_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsCIELab, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIELCh_L_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELCh_L_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh_L_set" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIELCh_L_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->L = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELCh_L_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELCh_L_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh_L_get" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); result = (double) ((arg1)->L); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELCh_C_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELCh_C_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh_C_set" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIELCh_C_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->C = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELCh_C_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELCh_C_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh_C_get" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); result = (double) ((arg1)->C); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELCh_h_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIELCh_h_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh_h_set" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCIELCh_h_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->h = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELCh_h_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELCh_h_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh_h_get" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); result = (double) ((arg1)->h); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELCh__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double arg3 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsCIELCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsCIELCh",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIELCh" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIELCh" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_cmsCIELCh" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (cmsCIELCh *)new_cmsCIELCh__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELCh__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsCIELCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_cmsCIELCh",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIELCh" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsCIELCh" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (cmsCIELCh *)new_cmsCIELCh__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELCh__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; cmsCIELCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_cmsCIELCh",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsCIELCh" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (cmsCIELCh *)new_cmsCIELCh__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELCh__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsCIELCh")) SWIG_fail; InErrorFlag = 0; result = (cmsCIELCh *)new_cmsCIELCh__SWIG_0(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIELCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIELCh(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_cmsCIELCh__SWIG_3(self, args); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIELCh__SWIG_2(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIELCh__SWIG_1(self, args); } } } if (argc == 3) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsCIELCh__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_cmsCIELCh'.\n" " Possible C/C++ prototypes are:\n" " cmsCIELCh(double,double,double)\n" " cmsCIELCh(double,double)\n" " cmsCIELCh(double)\n" " cmsCIELCh()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsCIELCh(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsCIELCh",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsCIELCh" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); InErrorFlag = 0; delete_cmsCIELCh(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIELCh___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIELCh *arg1 = (cmsCIELCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIELCh___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIELCh___repr__" "', argument " "1"" of type '" "cmsCIELCh *""'"); } arg1 = reinterpret_cast< cmsCIELCh * >(argp1); InErrorFlag = 0; result = (char *)cmsCIELCh___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsCIELCh_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsCIELCh, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsJCh_J_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsJCh_J_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh_J_set" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsJCh_J_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->J = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJCh_J_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsJCh_J_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh_J_get" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); result = (double) ((arg1)->J); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJCh_C_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsJCh_C_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh_C_set" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsJCh_C_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->C = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJCh_C_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsJCh_C_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh_C_get" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); result = (double) ((arg1)->C); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJCh_h_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsJCh_h_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh_h_set" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsJCh_h_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->h = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJCh_h_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsJCh_h_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh_h_get" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); result = (double) ((arg1)->h); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsJCh__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double arg3 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsJCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsJCh",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsJCh" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsJCh" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_cmsJCh" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (cmsJCh *)new_cmsJCh__SWIG_0(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsJCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsJCh__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double arg2 ; double val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsJCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:new_cmsJCh",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsJCh" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsJCh" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (cmsJCh *)new_cmsJCh__SWIG_0(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsJCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsJCh__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; cmsJCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_cmsJCh",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_cmsJCh" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (cmsJCh *)new_cmsJCh__SWIG_0(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsJCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsJCh__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsJCh")) SWIG_fail; InErrorFlag = 0; result = (cmsJCh *)new_cmsJCh__SWIG_0(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsJCh, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsJCh(PyObject *self, PyObject *args) { int argc; PyObject *argv[4]; int ii; if (!PyTuple_Check(args)) SWIG_fail; argc = (int)PyObject_Length(args); for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } if (argc == 0) { return _wrap_new_cmsJCh__SWIG_3(self, args); } if (argc == 1) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsJCh__SWIG_2(self, args); } } if (argc == 2) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsJCh__SWIG_1(self, args); } } } if (argc == 3) { int _v; { int res = SWIG_AsVal_double(argv[0], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { { int res = SWIG_AsVal_double(argv[2], NULL); _v = SWIG_CheckState(res); } if (_v) { return _wrap_new_cmsJCh__SWIG_0(self, args); } } } } fail: SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'new_cmsJCh'.\n" " Possible C/C++ prototypes are:\n" " cmsJCh(double,double,double)\n" " cmsJCh(double,double)\n" " cmsJCh(double)\n" " cmsJCh()\n"); return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsJCh(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsJCh",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsJCh" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); InErrorFlag = 0; delete_cmsJCh(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJCh___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsJCh *arg1 = (cmsJCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsJCh___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJCh___repr__" "', argument " "1"" of type '" "cmsJCh *""'"); } arg1 = reinterpret_cast< cmsJCh * >(argp1); InErrorFlag = 0; result = (char *)cmsJCh___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsJCh_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsJCh, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE_Red_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIEXYZTRIPLE_Red_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE_Red_set" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIEXYZTRIPLE_Red_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->Red = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE_Red_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZTRIPLE_Red_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE_Red_get" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->Red); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE_Green_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIEXYZTRIPLE_Green_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE_Green_set" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIEXYZTRIPLE_Green_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->Green = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE_Green_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZTRIPLE_Green_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE_Green_get" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->Green); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE_Blue_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIEXYZTRIPLE_Blue_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE_Blue_set" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIEXYZTRIPLE_Blue_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->Blue = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE_Blue_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZTRIPLE_Blue_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE_Blue_get" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->Blue); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIEXYZTRIPLE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; cmsCIEXYZ *arg3 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsCIEXYZTRIPLE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsCIEXYZTRIPLE",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_cmsCIEXYZTRIPLE" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_cmsCIEXYZTRIPLE" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_cmsCIEXYZTRIPLE" "', argument " "3"" of type '" "cmsCIEXYZ *""'"); } arg3 = reinterpret_cast< cmsCIEXYZ * >(argp3); InErrorFlag = 0; result = (cmsCIEXYZTRIPLE *)new_cmsCIEXYZTRIPLE(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZTRIPLE, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsCIEXYZTRIPLE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsCIEXYZTRIPLE",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsCIEXYZTRIPLE" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); InErrorFlag = 0; delete_cmsCIEXYZTRIPLE(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIEXYZTRIPLE___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZTRIPLE *arg1 = (cmsCIEXYZTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIEXYZTRIPLE___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIEXYZTRIPLE___repr__" "', argument " "1"" of type '" "cmsCIEXYZTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIEXYZTRIPLE * >(argp1); InErrorFlag = 0; result = (char *)cmsCIEXYZTRIPLE___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsCIEXYZTRIPLE_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsCIEXYZTRIPLE, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE_Red_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; cmsCIExyY *arg2 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIExyYTRIPLE_Red_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE_Red_set" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIExyYTRIPLE_Red_set" "', argument " "2"" of type '" "cmsCIExyY *""'"); } arg2 = reinterpret_cast< cmsCIExyY * >(argp2); if (arg1) (arg1)->Red = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE_Red_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyYTRIPLE_Red_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE_Red_get" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); result = (cmsCIExyY *)& ((arg1)->Red); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE_Green_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; cmsCIExyY *arg2 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIExyYTRIPLE_Green_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE_Green_set" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIExyYTRIPLE_Green_set" "', argument " "2"" of type '" "cmsCIExyY *""'"); } arg2 = reinterpret_cast< cmsCIExyY * >(argp2); if (arg1) (arg1)->Green = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE_Green_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyYTRIPLE_Green_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE_Green_get" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); result = (cmsCIExyY *)& ((arg1)->Green); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE_Blue_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; cmsCIExyY *arg2 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIExyYTRIPLE_Blue_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE_Blue_set" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIExyYTRIPLE_Blue_set" "', argument " "2"" of type '" "cmsCIExyY *""'"); } arg2 = reinterpret_cast< cmsCIExyY * >(argp2); if (arg1) (arg1)->Blue = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE_Blue_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIExyY *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyYTRIPLE_Blue_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE_Blue_get" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); result = (cmsCIExyY *)& ((arg1)->Blue); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsCIExyYTRIPLE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyY *arg1 = (cmsCIExyY *) 0 ; cmsCIExyY *arg2 = (cmsCIExyY *) 0 ; cmsCIExyY *arg3 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsCIExyYTRIPLE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:new_cmsCIExyYTRIPLE",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_cmsCIExyYTRIPLE" "', argument " "1"" of type '" "cmsCIExyY *""'"); } arg1 = reinterpret_cast< cmsCIExyY * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_cmsCIExyYTRIPLE" "', argument " "2"" of type '" "cmsCIExyY *""'"); } arg2 = reinterpret_cast< cmsCIExyY * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_cmsCIExyYTRIPLE" "', argument " "3"" of type '" "cmsCIExyY *""'"); } arg3 = reinterpret_cast< cmsCIExyY * >(argp3); InErrorFlag = 0; result = (cmsCIExyYTRIPLE *)new_cmsCIExyYTRIPLE(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyYTRIPLE, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsCIExyYTRIPLE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsCIExyYTRIPLE",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsCIExyYTRIPLE" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); InErrorFlag = 0; delete_cmsCIExyYTRIPLE(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIExyYTRIPLE___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIExyYTRIPLE *arg1 = (cmsCIExyYTRIPLE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIExyYTRIPLE___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIExyYTRIPLE___repr__" "', argument " "1"" of type '" "cmsCIExyYTRIPLE *""'"); } arg1 = reinterpret_cast< cmsCIExyYTRIPLE * >(argp1); InErrorFlag = 0; result = (char *)cmsCIExyYTRIPLE___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsCIExyYTRIPLE_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsCIExyYTRIPLE, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsD50_XYZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ result; if (!PyArg_ParseTuple(args,(char *)":cmsD50_XYZ")) SWIG_fail; InErrorFlag = 0; result = (LPcmsCIEXYZ)cmsD50_XYZ(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsD50_xyY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIExyY result; if (!PyArg_ParseTuple(args,(char *)":cmsD50_xyY")) SWIG_fail; InErrorFlag = 0; result = (LPcmsCIExyY)cmsD50_xyY(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIExyY, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsOpenProfileFromFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; char *arg2 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsOpenProfileFromFile",&obj0,&obj1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsOpenProfileFromFile" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsOpenProfileFromFile" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (cmsHPROFILE)cmsOpenProfileFromFile((char const *)arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsOpenProfileFromMem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVOID arg1 = (LPVOID) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsOpenProfileFromMem",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsOpenProfileFromMem" "', argument " "1"" of type '" "LPVOID""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsOpenProfileFromMem" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (cmsHPROFILE)cmsOpenProfileFromMem(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCloseProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCloseProfile",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCloseProfile" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsCloseProfile(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateRGBProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIExyY arg1 = (LPcmsCIExyY) 0 ; LPcmsCIExyYTRIPLE arg2 = (LPcmsCIExyYTRIPLE) 0 ; LPGAMMATABLE *arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; LPGAMMATABLE gamma3[3] ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsCreateRGBProfile",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateRGBProfile" "', argument " "1"" of type '" "LPcmsCIExyY""'"); } arg1 = reinterpret_cast< LPcmsCIExyY >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCreateRGBProfile" "', argument " "2"" of type '" "LPcmsCIExyYTRIPLE""'"); } arg2 = reinterpret_cast< LPcmsCIExyYTRIPLE >(argp2); { PyObject* tmp[3]; if (PyTuple_Check(obj2)) { if (!PyArg_ParseTuple(obj2,"OOO",&tmp[0],&tmp[1],&tmp[2])) { PyErr_SetString(PyExc_TypeError,"gamma must have 3 elements"); return NULL; } if ((SWIG_ConvertPtr(tmp[0], (void **) &gamma3[0], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; if ((SWIG_ConvertPtr(tmp[1], (void **) &gamma3[1], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; if ((SWIG_ConvertPtr(tmp[2], (void **) &gamma3[2], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; arg3 = gamma3; } else { PyErr_SetString(PyExc_TypeError,"expected a tuple."); return NULL; } } InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateRGBProfile(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateGrayProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIExyY arg1 = (LPcmsCIExyY) 0 ; LPGAMMATABLE arg2 = (LPGAMMATABLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCreateGrayProfile",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateGrayProfile" "', argument " "1"" of type '" "LPcmsCIExyY""'"); } arg1 = reinterpret_cast< LPcmsCIExyY >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCreateGrayProfile" "', argument " "2"" of type '" "LPGAMMATABLE""'"); } arg2 = reinterpret_cast< LPGAMMATABLE >(argp2); InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateGrayProfile(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateLinearizationDeviceLink(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; LPGAMMATABLE *arg2 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCreateLinearizationDeviceLink",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateLinearizationDeviceLink" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsCreateLinearizationDeviceLink" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCreateLinearizationDeviceLink" "', argument " "2"" of type '" "LPGAMMATABLE []""'"); } arg2 = reinterpret_cast< LPGAMMATABLE * >(argp2); InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateLinearizationDeviceLink(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateInkLimitingDeviceLink(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; double arg2 ; void *argp1 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCreateInkLimitingDeviceLink",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateInkLimitingDeviceLink" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsCreateInkLimitingDeviceLink" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCreateInkLimitingDeviceLink" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateInkLimitingDeviceLink(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateLabProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIExyY arg1 = (LPcmsCIExyY) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCreateLabProfile",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateLabProfile" "', argument " "1"" of type '" "LPcmsCIExyY""'"); } arg1 = reinterpret_cast< LPcmsCIExyY >(argp1); InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateLabProfile(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateLab4Profile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIExyY arg1 = (LPcmsCIExyY) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCreateLab4Profile",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateLab4Profile" "', argument " "1"" of type '" "LPcmsCIExyY""'"); } arg1 = reinterpret_cast< LPcmsCIExyY >(argp1); InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateLab4Profile(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateXYZProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)":cmsCreateXYZProfile")) SWIG_fail; InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateXYZProfile(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreate_sRGBProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)":cmsCreate_sRGBProfile")) SWIG_fail; InErrorFlag = 0; result = (cmsHPROFILE)cmsCreate_sRGBProfile(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateBCHSWabstractProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; int arg6 ; int arg7 ; int val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; double val5 ; int ecode5 = 0 ; int val6 ; int ecode6 = 0 ; int val7 ; int ecode7 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:cmsCreateBCHSWabstractProfile",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); ecode5 = SWIG_AsVal_double(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "5"" of type '" "double""'"); } arg5 = static_cast< double >(val5); ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cmsCreateBCHSWabstractProfile" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateBCHSWabstractProfile(arg1,arg2,arg3,arg4,arg5,arg6,arg7); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateNULLProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)":cmsCreateNULLProfile")) SWIG_fail; InErrorFlag = 0; result = (cmsHPROFILE)cmsCreateNULLProfile(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsXYZ2xyY(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIExyY arg1 = (LPcmsCIExyY) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsXYZ2xyY",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsXYZ2xyY" "', argument " "1"" of type '" "LPcmsCIExyY""'"); } arg1 = reinterpret_cast< LPcmsCIExyY >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsXYZ2xyY" "', argument " "2"" of type '" "cmsCIEXYZ const *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); InErrorFlag = 0; cmsXYZ2xyY(arg1,(cmsCIEXYZ const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsxyY2XYZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; cmsCIExyY *arg2 = (cmsCIExyY *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsxyY2XYZ",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsxyY2XYZ" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsxyY2XYZ" "', argument " "2"" of type '" "cmsCIExyY const *""'"); } arg2 = reinterpret_cast< cmsCIExyY * >(argp2); InErrorFlag = 0; cmsxyY2XYZ(arg1,(cmsCIExyY const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsXYZ2Lab(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; LPcmsCIELab arg2 = (LPcmsCIELab) 0 ; cmsCIEXYZ *arg3 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsXYZ2Lab",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsXYZ2Lab" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsXYZ2Lab" "', argument " "2"" of type '" "LPcmsCIELab""'"); } arg2 = reinterpret_cast< LPcmsCIELab >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsXYZ2Lab" "', argument " "3"" of type '" "cmsCIEXYZ const *""'"); } arg3 = reinterpret_cast< cmsCIEXYZ * >(argp3); InErrorFlag = 0; cmsXYZ2Lab(arg1,arg2,(cmsCIEXYZ const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLab2XYZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg2 = (LPcmsCIEXYZ) 0 ; cmsCIELab *arg3 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsLab2XYZ",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsLab2XYZ" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLab2XYZ" "', argument " "2"" of type '" "LPcmsCIEXYZ""'"); } arg2 = reinterpret_cast< LPcmsCIEXYZ >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsLab2XYZ" "', argument " "3"" of type '" "cmsCIELab const *""'"); } arg3 = reinterpret_cast< cmsCIELab * >(argp3); InErrorFlag = 0; cmsLab2XYZ(arg1,arg2,(cmsCIELab const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLab2LCh(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELCh arg1 = (LPcmsCIELCh) 0 ; cmsCIELab *arg2 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsLab2LCh",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsLab2LCh" "', argument " "1"" of type '" "LPcmsCIELCh""'"); } arg1 = reinterpret_cast< LPcmsCIELCh >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLab2LCh" "', argument " "2"" of type '" "cmsCIELab const *""'"); } arg2 = reinterpret_cast< cmsCIELab * >(argp2); InErrorFlag = 0; cmsLab2LCh(arg1,(cmsCIELab const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLCh2Lab(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; cmsCIELCh *arg2 = (cmsCIELCh *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsLCh2Lab",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsLCh2Lab" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELCh, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLCh2Lab" "', argument " "2"" of type '" "cmsCIELCh const *""'"); } arg2 = reinterpret_cast< cmsCIELCh * >(argp2); InErrorFlag = 0; cmsLCh2Lab(arg1,(cmsCIELCh const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDeltaE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; LPcmsCIELab arg2 = (LPcmsCIELab) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsDeltaE",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDeltaE" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsDeltaE" "', argument " "2"" of type '" "LPcmsCIELab""'"); } arg2 = reinterpret_cast< LPcmsCIELab >(argp2); InErrorFlag = 0; result = (double)cmsDeltaE(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIE94DeltaE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; LPcmsCIELab arg2 = (LPcmsCIELab) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCIE94DeltaE",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIE94DeltaE" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIE94DeltaE" "', argument " "2"" of type '" "LPcmsCIELab""'"); } arg2 = reinterpret_cast< LPcmsCIELab >(argp2); InErrorFlag = 0; result = (double)cmsCIE94DeltaE(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsBFDdeltaE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; LPcmsCIELab arg2 = (LPcmsCIELab) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsBFDdeltaE",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsBFDdeltaE" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsBFDdeltaE" "', argument " "2"" of type '" "LPcmsCIELab""'"); } arg2 = reinterpret_cast< LPcmsCIELab >(argp2); InErrorFlag = 0; result = (double)cmsBFDdeltaE(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCMCdeltaE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; LPcmsCIELab arg2 = (LPcmsCIELab) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCMCdeltaE",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCMCdeltaE" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCMCdeltaE" "', argument " "2"" of type '" "LPcmsCIELab""'"); } arg2 = reinterpret_cast< LPcmsCIELab >(argp2); InErrorFlag = 0; result = (double)cmsCMCdeltaE(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIE2000DeltaE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; LPcmsCIELab arg2 = (LPcmsCIELab) 0 ; double arg3 ; double arg4 ; double arg5 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; double val5 ; int ecode5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsCIE2000DeltaE",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIE2000DeltaE" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIE2000DeltaE" "', argument " "2"" of type '" "LPcmsCIELab""'"); } arg2 = reinterpret_cast< LPcmsCIELab >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsCIE2000DeltaE" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsCIE2000DeltaE" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); ecode5 = SWIG_AsVal_double(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cmsCIE2000DeltaE" "', argument " "5"" of type '" "double""'"); } arg5 = static_cast< double >(val5); InErrorFlag = 0; result = (double)cmsCIE2000DeltaE(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsClampLab(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; double arg2 ; double arg3 ; double arg4 ; double arg5 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; double val5 ; int ecode5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsClampLab",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsClampLab" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsClampLab" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsClampLab" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsClampLab" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); ecode5 = SWIG_AsVal_double(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cmsClampLab" "', argument " "5"" of type '" "double""'"); } arg5 = static_cast< double >(val5); InErrorFlag = 0; cmsClampLab(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsWhitePointFromTemp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; LPcmsCIExyY arg2 = (LPcmsCIExyY) 0 ; int val1 ; int ecode1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsWhitePointFromTemp",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsWhitePointFromTemp" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsWhitePointFromTemp" "', argument " "2"" of type '" "LPcmsCIExyY""'"); } arg2 = reinterpret_cast< LPcmsCIExyY >(argp2); InErrorFlag = 0; result = (LCMSBOOL)cmsWhitePointFromTemp(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAdaptToIlluminant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg2 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg3 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg4 = (LPcmsCIEXYZ) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsAdaptToIlluminant",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAdaptToIlluminant" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAdaptToIlluminant" "', argument " "2"" of type '" "LPcmsCIEXYZ""'"); } arg2 = reinterpret_cast< LPcmsCIEXYZ >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsAdaptToIlluminant" "', argument " "3"" of type '" "LPcmsCIEXYZ""'"); } arg3 = reinterpret_cast< LPcmsCIEXYZ >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsAdaptToIlluminant" "', argument " "4"" of type '" "LPcmsCIEXYZ""'"); } arg4 = reinterpret_cast< LPcmsCIEXYZ >(argp4); InErrorFlag = 0; result = (LCMSBOOL)cmsAdaptToIlluminant(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsBuildRGB2XYZtransferMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPcmsCIExyY arg2 = (LPcmsCIExyY) 0 ; LPcmsCIExyYTRIPLE arg3 = (LPcmsCIExyYTRIPLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsBuildRGB2XYZtransferMatrix",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsBuildRGB2XYZtransferMatrix" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsBuildRGB2XYZtransferMatrix" "', argument " "2"" of type '" "LPcmsCIExyY""'"); } arg2 = reinterpret_cast< LPcmsCIExyY >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsBuildRGB2XYZtransferMatrix" "', argument " "3"" of type '" "LPcmsCIExyYTRIPLE""'"); } arg3 = reinterpret_cast< LPcmsCIExyYTRIPLE >(argp3); InErrorFlag = 0; result = (LCMSBOOL)cmsBuildRGB2XYZtransferMatrix(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_whitePoint_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsViewingConditions_whitePoint_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_whitePoint_set" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsViewingConditions_whitePoint_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->whitePoint = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_whitePoint_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsViewingConditions_whitePoint_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_whitePoint_get" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->whitePoint); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_Yb_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsViewingConditions_Yb_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_Yb_set" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsViewingConditions_Yb_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->Yb = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_Yb_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsViewingConditions_Yb_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_Yb_get" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); result = (double) ((arg1)->Yb); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_La_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsViewingConditions_La_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_La_set" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsViewingConditions_La_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->La = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_La_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsViewingConditions_La_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_La_get" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); result = (double) ((arg1)->La); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_surround_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsViewingConditions_surround_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_surround_set" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsViewingConditions_surround_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->surround = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_surround_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsViewingConditions_surround_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_surround_get" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); result = (int) ((arg1)->surround); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_D_value_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsViewingConditions_D_value_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_D_value_set" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsViewingConditions_D_value_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->D_value = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions_D_value_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsViewingConditions_D_value_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions_D_value_get" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); result = (double) ((arg1)->D_value); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsViewingConditions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsCIEXYZ *arg1 = (cmsCIEXYZ *) 0 ; double arg2 ; double arg3 ; int arg4 ; double arg5 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; double val5 ; int ecode5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; cmsViewingConditions *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:new_cmsViewingConditions",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_cmsViewingConditions" "', argument " "1"" of type '" "cmsCIEXYZ *""'"); } arg1 = reinterpret_cast< cmsCIEXYZ * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_cmsViewingConditions" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "new_cmsViewingConditions" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "new_cmsViewingConditions" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); ecode5 = SWIG_AsVal_double(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "new_cmsViewingConditions" "', argument " "5"" of type '" "double""'"); } arg5 = static_cast< double >(val5); InErrorFlag = 0; result = (cmsViewingConditions *)new_cmsViewingConditions(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsViewingConditions, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsViewingConditions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsViewingConditions",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsViewingConditions" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); InErrorFlag = 0; delete_cmsViewingConditions(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsViewingConditions___repr__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsViewingConditions *arg1 = (cmsViewingConditions *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsViewingConditions___repr__",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsViewingConditions___repr__" "', argument " "1"" of type '" "cmsViewingConditions *""'"); } arg1 = reinterpret_cast< cmsViewingConditions * >(argp1); InErrorFlag = 0; result = (char *)cmsViewingConditions___repr__(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsViewingConditions_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsViewingConditions, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCIECAM97sInit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsViewingConditions arg1 = (LPcmsViewingConditions) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSHANDLE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIECAM97sInit",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM97sInit" "', argument " "1"" of type '" "LPcmsViewingConditions""'"); } arg1 = reinterpret_cast< LPcmsViewingConditions >(argp1); InErrorFlag = 0; result = (LCMSHANDLE)cmsCIECAM97sInit(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM97sDone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int res1 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIECAM97sDone",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM97sDone" "', argument " "1"" of type '" "LCMSHANDLE""'"); } InErrorFlag = 0; cmsCIECAM97sDone(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM97sForward(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; LPcmsCIEXYZ arg2 = (LPcmsCIEXYZ) 0 ; LPcmsJCh arg3 = (LPcmsJCh) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsCIECAM97sForward",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM97sForward" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIECAM97sForward" "', argument " "2"" of type '" "LPcmsCIEXYZ""'"); } arg2 = reinterpret_cast< LPcmsCIEXYZ >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsCIECAM97sForward" "', argument " "3"" of type '" "LPcmsJCh""'"); } arg3 = reinterpret_cast< LPcmsJCh >(argp3); InErrorFlag = 0; cmsCIECAM97sForward(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM97sReverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; LPcmsJCh arg2 = (LPcmsJCh) 0 ; LPcmsCIEXYZ arg3 = (LPcmsCIEXYZ) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsCIECAM97sReverse",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM97sReverse" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIECAM97sReverse" "', argument " "2"" of type '" "LPcmsJCh""'"); } arg2 = reinterpret_cast< LPcmsJCh >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsCIECAM97sReverse" "', argument " "3"" of type '" "LPcmsCIEXYZ""'"); } arg3 = reinterpret_cast< LPcmsCIEXYZ >(argp3); InErrorFlag = 0; cmsCIECAM97sReverse(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM02Init(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsViewingConditions arg1 = (LPcmsViewingConditions) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSHANDLE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIECAM02Init",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsViewingConditions, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM02Init" "', argument " "1"" of type '" "LPcmsViewingConditions""'"); } arg1 = reinterpret_cast< LPcmsViewingConditions >(argp1); InErrorFlag = 0; result = (LCMSHANDLE)cmsCIECAM02Init(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM02Done(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int res1 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsCIECAM02Done",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM02Done" "', argument " "1"" of type '" "LCMSHANDLE""'"); } InErrorFlag = 0; cmsCIECAM02Done(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM02Forward(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; LPcmsCIEXYZ arg2 = (LPcmsCIEXYZ) 0 ; LPcmsJCh arg3 = (LPcmsJCh) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsCIECAM02Forward",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM02Forward" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIECAM02Forward" "', argument " "2"" of type '" "LPcmsCIEXYZ""'"); } arg2 = reinterpret_cast< LPcmsCIEXYZ >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsCIECAM02Forward" "', argument " "3"" of type '" "LPcmsJCh""'"); } arg3 = reinterpret_cast< LPcmsJCh >(argp3); InErrorFlag = 0; cmsCIECAM02Forward(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCIECAM02Reverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; LPcmsJCh arg2 = (LPcmsJCh) 0 ; LPcmsCIEXYZ arg3 = (LPcmsCIEXYZ) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsCIECAM02Reverse",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCIECAM02Reverse" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsJCh, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCIECAM02Reverse" "', argument " "2"" of type '" "LPcmsJCh""'"); } arg2 = reinterpret_cast< LPcmsJCh >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsCIECAM02Reverse" "', argument " "3"" of type '" "LPcmsCIEXYZ""'"); } arg3 = reinterpret_cast< LPcmsCIEXYZ >(argp3); InErrorFlag = 0; cmsCIECAM02Reverse(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsBuildGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; double arg2 ; int val1 ; int ecode1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsBuildGamma",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsBuildGamma" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsBuildGamma" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (LPGAMMATABLE)cmsBuildGamma(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsBuildParametricGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int arg2 ; double *arg3 ; int val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsBuildParametricGamma",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsBuildParametricGamma" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsBuildParametricGamma" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_double, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsBuildParametricGamma" "', argument " "3"" of type '" "double []""'"); } arg3 = reinterpret_cast< double * >(argp3); InErrorFlag = 0; result = (LPGAMMATABLE)cmsBuildParametricGamma(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAllocGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsAllocGamma",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsAllocGamma" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = (LPGAMMATABLE)cmsAllocGamma(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeGamma",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFreeGamma" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); InErrorFlag = 0; cmsFreeGamma(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeGammaTriple(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE *arg1 ; LPGAMMATABLE gamma1[3] ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeGammaTriple",&obj0)) SWIG_fail; { PyObject* tmp[3]; if (PyTuple_Check(obj0)) { if (!PyArg_ParseTuple(obj0,"OOO",&tmp[0],&tmp[1],&tmp[2])) { PyErr_SetString(PyExc_TypeError,"gamma must have 3 elements"); return NULL; } if ((SWIG_ConvertPtr(tmp[0], (void **) &gamma1[0], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; if ((SWIG_ConvertPtr(tmp[1], (void **) &gamma1[1], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; if ((SWIG_ConvertPtr(tmp[2], (void **) &gamma1[2], SWIGTYPE_p_GAMMATABLE,1)) == -1) return NULL; arg1 = gamma1; } else { PyErr_SetString(PyExc_TypeError,"expected a tuple."); return NULL; } } InErrorFlag = 0; cmsFreeGammaTriple(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDupGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsDupGamma",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDupGamma" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); InErrorFlag = 0; result = (LPGAMMATABLE)cmsDupGamma(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReverseGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; LPGAMMATABLE arg2 = (LPGAMMATABLE) 0 ; int val1 ; int ecode1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReverseGamma",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsReverseGamma" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReverseGamma" "', argument " "2"" of type '" "LPGAMMATABLE""'"); } arg2 = reinterpret_cast< LPGAMMATABLE >(argp2); InErrorFlag = 0; result = (LPGAMMATABLE)cmsReverseGamma(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJoinGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; LPGAMMATABLE arg2 = (LPGAMMATABLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsJoinGamma",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJoinGamma" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsJoinGamma" "', argument " "2"" of type '" "LPGAMMATABLE""'"); } arg2 = reinterpret_cast< LPGAMMATABLE >(argp2); InErrorFlag = 0; result = (LPGAMMATABLE)cmsJoinGamma(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJoinGammaEx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; LPGAMMATABLE arg2 = (LPGAMMATABLE) 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsJoinGammaEx",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJoinGammaEx" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsJoinGammaEx" "', argument " "2"" of type '" "LPGAMMATABLE""'"); } arg2 = reinterpret_cast< LPGAMMATABLE >(argp2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsJoinGammaEx" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (LPGAMMATABLE)cmsJoinGammaEx(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSmoothGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSmoothGamma",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSmoothGamma" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSmoothGamma" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (LCMSBOOL)cmsSmoothGamma(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsEstimateGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsEstimateGamma",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsEstimateGamma" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); InErrorFlag = 0; result = (double)cmsEstimateGamma(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsEstimateGammaEx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWORD arg1 = (LPWORD) 0 ; int arg2 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsEstimateGammaEx",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsEstimateGammaEx" "', argument " "1"" of type '" "LPWORD""'"); } arg1 = reinterpret_cast< LPWORD >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsEstimateGammaEx" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsEstimateGammaEx" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (double)cmsEstimateGammaEx(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReadICCGamma",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCGamma" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCGamma" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadICCGamma" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = (LPGAMMATABLE)cmsReadICCGamma(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCGammaReversed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReadICCGammaReversed",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCGammaReversed" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCGammaReversed" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadICCGammaReversed" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = (LPGAMMATABLE)cmsReadICCGammaReversed(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeMediaWhitePoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTakeMediaWhitePoint",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeMediaWhitePoint" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeMediaWhitePoint" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsTakeMediaWhitePoint(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeMediaBlackPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTakeMediaBlackPoint",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeMediaBlackPoint" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeMediaBlackPoint" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsTakeMediaBlackPoint(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeIluminant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTakeIluminant",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeIluminant" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeIluminant" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsTakeIluminant(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeColorants(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZTRIPLE arg1 = (LPcmsCIEXYZTRIPLE) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTakeColorants",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeColorants" "', argument " "1"" of type '" "LPcmsCIEXYZTRIPLE""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZTRIPLE >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeColorants" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsTakeColorants(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeHeaderFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeHeaderFlags",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeHeaderFlags" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (DWORD)cmsTakeHeaderFlags(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeHeaderAttributes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeHeaderAttributes",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeHeaderAttributes" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (DWORD)cmsTakeHeaderAttributes(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetLanguage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 ; char *arg2 ; char temp1[4] ; int res1 ; char temp2[4] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetLanguage",&obj0,&obj1)) SWIG_fail; res1 = SWIG_AsCharArray(obj0, temp1, 4); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetLanguage" "', argument " "1"" of type '" "char const [4]""'"); } arg1 = reinterpret_cast< char * >(temp1); res2 = SWIG_AsCharArray(obj1, temp2, 4); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetLanguage" "', argument " "2"" of type '" "char const [4]""'"); } arg2 = reinterpret_cast< char * >(temp2); InErrorFlag = 0; cmsSetLanguage((char const (*))arg1,(char const (*))arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeProductName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeProductName",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeProductName" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (char *)cmsTakeProductName(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeProductDesc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeProductDesc",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeProductDesc" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (char *)cmsTakeProductDesc(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeProductInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeProductInfo",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeProductInfo" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (char *)cmsTakeProductInfo(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeManufacturer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeManufacturer",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeManufacturer" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (char *)cmsTakeManufacturer(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeModel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeModel",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeModel" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (char *)cmsTakeModel(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeCopyright(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeCopyright",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeCopyright" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (char *)cmsTakeCopyright(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeProfileID(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; BYTE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeProfileID",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeProfileID" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (BYTE *)cmsTakeProfileID(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_char, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeCreationDateTime(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; tm *arg1 = (tm *) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTakeCreationDateTime",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_tm, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeCreationDateTime" "', argument " "1"" of type '" "tm *""'"); } arg1 = reinterpret_cast< tm * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeCreationDateTime" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsTakeCreationDateTime(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeCalibrationDateTime(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; tm *arg1 = (tm *) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTakeCalibrationDateTime",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_tm, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeCalibrationDateTime" "', argument " "1"" of type '" "tm *""'"); } arg1 = reinterpret_cast< tm * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeCalibrationDateTime" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsTakeCalibrationDateTime(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIsTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIsTag",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIsTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIsTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsIsTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = (LCMSBOOL)cmsIsTag(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeRenderingIntent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsTakeRenderingIntent",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeRenderingIntent" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (int)cmsTakeRenderingIntent(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTakeCharTargetData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; char **arg2 = (char **) 0 ; size_t *arg3 = (size_t *) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsTakeCharTargetData",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTakeCharTargetData" "', argument " "1"" of type '" "cmsHPROFILE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTakeCharTargetData" "', argument " "2"" of type '" "char **""'"); } arg2 = reinterpret_cast< char ** >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_size_t, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsTakeCharTargetData" "', argument " "3"" of type '" "size_t *""'"); } arg3 = reinterpret_cast< size_t * >(argp3); InErrorFlag = 0; result = (LCMSBOOL)cmsTakeCharTargetData(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCTextEx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; char *arg3 = (char *) 0 ; size_t arg4 ; int res1 ; void *argp2 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; size_t val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsReadICCTextEx",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCTextEx" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCTextEx" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadICCTextEx" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsReadICCTextEx" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_size_t(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsReadICCTextEx" "', argument " "4"" of type '" "size_t""'"); } arg4 = static_cast< size_t >(val4); InErrorFlag = 0; result = (int)cmsReadICCTextEx(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; char *arg3 = (char *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsReadICCText",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCText" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCText" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadICCText" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsReadICCText" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (int)cmsReadICCText(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_deviceMfg_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; icSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsPSEQDESC_deviceMfg_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_deviceMfg_set" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsPSEQDESC_deviceMfg_set" "', argument " "2"" of type '" "icSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsPSEQDESC_deviceMfg_set" "', argument " "2"" of type '" "icSignature""'"); } else { icSignature * temp = reinterpret_cast< icSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->deviceMfg = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_deviceMfg_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icSignature result; if (!PyArg_ParseTuple(args,(char *)"O:cmsPSEQDESC_deviceMfg_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_deviceMfg_get" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); result = ((arg1)->deviceMfg); resultobj = SWIG_NewPointerObj((new icSignature(static_cast< const icSignature& >(result))), SWIGTYPE_p_icSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_deviceModel_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; icSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsPSEQDESC_deviceModel_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_deviceModel_set" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsPSEQDESC_deviceModel_set" "', argument " "2"" of type '" "icSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsPSEQDESC_deviceModel_set" "', argument " "2"" of type '" "icSignature""'"); } else { icSignature * temp = reinterpret_cast< icSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->deviceModel = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_deviceModel_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icSignature result; if (!PyArg_ParseTuple(args,(char *)"O:cmsPSEQDESC_deviceModel_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_deviceModel_get" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); result = ((arg1)->deviceModel); resultobj = SWIG_NewPointerObj((new icSignature(static_cast< const icSignature& >(result))), SWIGTYPE_p_icSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_attributes_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; icUInt32Number *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsPSEQDESC_attributes_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_attributes_set" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_icUInt32Number, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsPSEQDESC_attributes_set" "', argument " "2"" of type '" "icUInt32Number [2]""'"); } arg2 = reinterpret_cast< icUInt32Number * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)2; ++ii) arg1->attributes[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""attributes""' of type '""icUInt32Number [2]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_attributes_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsPSEQDESC_attributes_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_attributes_get" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); result = (icUInt32Number *)(icUInt32Number *) ((arg1)->attributes); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icUInt32Number, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_technology_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; icTechnologySignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsPSEQDESC_technology_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_technology_set" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTechnologySignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsPSEQDESC_technology_set" "', argument " "2"" of type '" "icTechnologySignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsPSEQDESC_technology_set" "', argument " "2"" of type '" "icTechnologySignature""'"); } else { icTechnologySignature * temp = reinterpret_cast< icTechnologySignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->technology = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_technology_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icTechnologySignature result; if (!PyArg_ParseTuple(args,(char *)"O:cmsPSEQDESC_technology_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_technology_get" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); result = ((arg1)->technology); resultobj = SWIG_NewPointerObj((new icTechnologySignature(static_cast< const icTechnologySignature& >(result))), SWIGTYPE_p_icTechnologySignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_Manufacturer_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; char *arg2 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[512] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsPSEQDESC_Manufacturer_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_Manufacturer_set" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); res2 = SWIG_AsCharArray(obj1, temp2, 512); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsPSEQDESC_Manufacturer_set" "', argument " "2"" of type '" "char [512]""'"); } arg2 = reinterpret_cast< char * >(temp2); if (arg2) memcpy(arg1->Manufacturer,arg2,512*sizeof(char)); else memset(arg1->Manufacturer,0,512*sizeof(char)); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_Manufacturer_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsPSEQDESC_Manufacturer_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_Manufacturer_get" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); result = (char *)(char *) ((arg1)->Manufacturer); { size_t size = 512; while (size && (result[size - 1] == '\0')) --size; resultobj = SWIG_FromCharPtrAndSize(result, size); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_Model_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; char *arg2 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[512] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsPSEQDESC_Model_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_Model_set" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); res2 = SWIG_AsCharArray(obj1, temp2, 512); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsPSEQDESC_Model_set" "', argument " "2"" of type '" "char [512]""'"); } arg2 = reinterpret_cast< char * >(temp2); if (arg2) memcpy(arg1->Model,arg2,512*sizeof(char)); else memset(arg1->Model,0,512*sizeof(char)); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsPSEQDESC_Model_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsPSEQDESC_Model_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsPSEQDESC_Model_get" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); result = (char *)(char *) ((arg1)->Model); { size_t size = 512; while (size && (result[size - 1] == '\0')) --size; resultobj = SWIG_FromCharPtrAndSize(result, size); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsPSEQDESC(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsPSEQDESC")) SWIG_fail; InErrorFlag = 0; result = (cmsPSEQDESC *)new cmsPSEQDESC(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsPSEQDESC, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsPSEQDESC(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsPSEQDESC *arg1 = (cmsPSEQDESC *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsPSEQDESC",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsPSEQDESC, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsPSEQDESC" "', argument " "1"" of type '" "cmsPSEQDESC *""'"); } arg1 = reinterpret_cast< cmsPSEQDESC * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsPSEQDESC_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsPSEQDESC, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsSEQ_n_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsSEQ *arg1 = (cmsSEQ *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSEQ_n_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsSEQ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSEQ_n_set" "', argument " "1"" of type '" "cmsSEQ *""'"); } arg1 = reinterpret_cast< cmsSEQ * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSEQ_n_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->n = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSEQ_n_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsSEQ *arg1 = (cmsSEQ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsSEQ_n_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsSEQ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSEQ_n_get" "', argument " "1"" of type '" "cmsSEQ *""'"); } arg1 = reinterpret_cast< cmsSEQ * >(argp1); result = (int) ((arg1)->n); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSEQ_seq_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsSEQ *arg1 = (cmsSEQ *) 0 ; cmsPSEQDESC *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSEQ_seq_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsSEQ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSEQ_seq_set" "', argument " "1"" of type '" "cmsSEQ *""'"); } arg1 = reinterpret_cast< cmsSEQ * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSEQ_seq_set" "', argument " "2"" of type '" "cmsPSEQDESC [1]""'"); } arg2 = reinterpret_cast< cmsPSEQDESC * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)1; ++ii) arg1->seq[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""seq""' of type '""cmsPSEQDESC [1]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSEQ_seq_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsSEQ *arg1 = (cmsSEQ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsPSEQDESC *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsSEQ_seq_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsSEQ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSEQ_seq_get" "', argument " "1"" of type '" "cmsSEQ *""'"); } arg1 = reinterpret_cast< cmsSEQ * >(argp1); result = (cmsPSEQDESC *)(cmsPSEQDESC *) ((arg1)->seq); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsPSEQDESC, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsSEQ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsSEQ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsSEQ")) SWIG_fail; InErrorFlag = 0; result = (cmsSEQ *)new cmsSEQ(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsSEQ, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsSEQ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsSEQ *arg1 = (cmsSEQ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsSEQ",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsSEQ, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsSEQ" "', argument " "1"" of type '" "cmsSEQ *""'"); } arg1 = reinterpret_cast< cmsSEQ * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsSEQ_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsSEQ, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsReadProfileSequenceDescription(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; LPcmsSEQ result; if (!PyArg_ParseTuple(args,(char *)"O:cmsReadProfileSequenceDescription",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadProfileSequenceDescription" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsReadProfileSequenceDescription(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPcmsSEQ(static_cast< const LPcmsSEQ& >(result))), SWIGTYPE_p_LPcmsSEQ, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeProfileSequenceDescription(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsSEQ arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeProfileSequenceDescription",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPcmsSEQ, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFreeProfileSequenceDescription" "', argument " "1"" of type '" "LPcmsSEQ""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsFreeProfileSequenceDescription" "', argument " "1"" of type '" "LPcmsSEQ""'"); } else { LPcmsSEQ * temp = reinterpret_cast< LPcmsSEQ * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; cmsFreeProfileSequenceDescription(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsICCcolorSpace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsICCcolorSpace",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "_cmsICCcolorSpace" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = _cmsICCcolorSpace(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsLCMScolorSpace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsLCMScolorSpace",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsLCMScolorSpace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsLCMScolorSpace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = (int)_cmsLCMScolorSpace(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsChannelsOf(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsChannelsOf",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsChannelsOf" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsChannelsOf" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = (int)_cmsChannelsOf(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsIsMatrixShaper(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsIsMatrixShaper",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsIsMatrixShaper" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)_cmsIsMatrixShaper(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIsIntentSupported(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; int arg3 ; int res1 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIsIntentSupported",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIsIntentSupported" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIsIntentSupported" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIsIntentSupported" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (LCMSBOOL)cmsIsIntentSupported(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetPCS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:cmsGetPCS",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetPCS" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsGetPCS(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetColorSpace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:cmsGetColorSpace",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetColorSpace" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsGetColorSpace(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetDeviceClass(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; icProfileClassSignature result; if (!PyArg_ParseTuple(args,(char *)"O:cmsGetDeviceClass",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetDeviceClass" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsGetDeviceClass(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icProfileClassSignature(static_cast< const icProfileClassSignature& >(result))), SWIGTYPE_p_icProfileClassSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetProfileICCversion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:cmsGetProfileICCversion",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetProfileICCversion" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (DWORD)cmsGetProfileICCversion(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetProfileICCversion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetProfileICCversion",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetProfileICCversion" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSetProfileICCversion" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; cmsSetProfileICCversion(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetTagCount(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; icInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:cmsGetTagCount",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetTagCount" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsGetTagCount(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icInt32Number(static_cast< const icInt32Number& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetTagSignature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; icInt32Number arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; SwigValueWrapper< icTagSignature > result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsGetTagSignature",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetTagSignature" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsGetTagSignature" "', argument " "2"" of type '" "icInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsGetTagSignature" "', argument " "2"" of type '" "icInt32Number""'"); } else { icInt32Number * temp = reinterpret_cast< icInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = cmsGetTagSignature(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icTagSignature(static_cast< const icTagSignature& >(result))), SWIGTYPE_p_icTagSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetDeviceClass(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; icProfileClassSignature arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetDeviceClass",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetDeviceClass" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icProfileClassSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetDeviceClass" "', argument " "2"" of type '" "icProfileClassSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsSetDeviceClass" "', argument " "2"" of type '" "icProfileClassSignature""'"); } else { icProfileClassSignature * temp = reinterpret_cast< icProfileClassSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; cmsSetDeviceClass(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetColorSpace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; icColorSpaceSignature arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetColorSpace",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetColorSpace" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetColorSpace" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsSetColorSpace" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; cmsSetColorSpace(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetPCS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; icColorSpaceSignature arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetPCS",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetPCS" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetPCS" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsSetPCS" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; cmsSetPCS(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetRenderingIntent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; int res1 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetRenderingIntent",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetRenderingIntent" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSetRenderingIntent" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; cmsSetRenderingIntent(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetHeaderFlags(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetHeaderFlags",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetHeaderFlags" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSetHeaderFlags" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; cmsSetHeaderFlags(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetHeaderAttributes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetHeaderAttributes",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetHeaderAttributes" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSetHeaderAttributes" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; cmsSetHeaderAttributes(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetProfileID(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; LPBYTE arg2 = (LPBYTE) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetProfileID",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetProfileID" "', argument " "1"" of type '" "cmsHPROFILE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetProfileID" "', argument " "2"" of type '" "LPBYTE""'"); } arg2 = reinterpret_cast< LPBYTE >(argp2); InErrorFlag = 0; cmsSetProfileID(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; DWORD arg2 ; cmsHPROFILE arg3 = (cmsHPROFILE) 0 ; DWORD arg4 ; int arg5 ; DWORD arg6 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; int res3 ; unsigned long val4 ; int ecode4 = 0 ; int val5 ; int ecode5 = 0 ; unsigned long val6 ; int ecode6 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; cmsHTRANSFORM result; if (!PyArg_ParseTuple(args,(char *)"OOOOOO:cmsCreateTransform",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateTransform" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCreateTransform" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsCreateTransform" "', argument " "3"" of type '" "cmsHPROFILE""'"); } ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsCreateTransform" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); ecode5 = SWIG_AsVal_int(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cmsCreateTransform" "', argument " "5"" of type '" "int""'"); } arg5 = static_cast< int >(val5); ecode6 = SWIG_AsVal_unsigned_SS_long(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cmsCreateTransform" "', argument " "6"" of type '" "DWORD""'"); } arg6 = static_cast< DWORD >(val6); InErrorFlag = 0; result = (cmsHTRANSFORM)cmsCreateTransform(arg1,arg2,arg3,arg4,arg5,arg6); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateProofingTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; DWORD arg2 ; cmsHPROFILE arg3 = (cmsHPROFILE) 0 ; DWORD arg4 ; cmsHPROFILE arg5 = (cmsHPROFILE) 0 ; int arg6 ; int arg7 ; DWORD arg8 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; int res3 ; unsigned long val4 ; int ecode4 = 0 ; int res5 ; int val6 ; int ecode6 = 0 ; int val7 ; int ecode7 = 0 ; unsigned long val8 ; int ecode8 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; cmsHTRANSFORM result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:cmsCreateProofingTransform",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateProofingTransform" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCreateProofingTransform" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsCreateProofingTransform" "', argument " "3"" of type '" "cmsHPROFILE""'"); } ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsCreateProofingTransform" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); res5 = SWIG_ConvertPtr(obj4,SWIG_as_voidptrptr(&arg5), 0, 0); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cmsCreateProofingTransform" "', argument " "5"" of type '" "cmsHPROFILE""'"); } ecode6 = SWIG_AsVal_int(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cmsCreateProofingTransform" "', argument " "6"" of type '" "int""'"); } arg6 = static_cast< int >(val6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cmsCreateProofingTransform" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); ecode8 = SWIG_AsVal_unsigned_SS_long(obj7, &val8); if (!SWIG_IsOK(ecode8)) { SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "cmsCreateProofingTransform" "', argument " "8"" of type '" "DWORD""'"); } arg8 = static_cast< DWORD >(val8); InErrorFlag = 0; result = (cmsHTRANSFORM)cmsCreateProofingTransform(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCreateMultiprofileTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE *arg1 ; int arg2 ; DWORD arg3 ; DWORD arg4 ; int arg5 ; DWORD arg6 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; unsigned long val3 ; int ecode3 = 0 ; unsigned long val4 ; int ecode4 = 0 ; int val5 ; int ecode5 = 0 ; unsigned long val6 ; int ecode6 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; cmsHTRANSFORM result; if (!PyArg_ParseTuple(args,(char *)"OOOOOO:cmsCreateMultiprofileTransform",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_p_void, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsCreateMultiprofileTransform" "', argument " "1"" of type '" "cmsHPROFILE []""'"); } arg1 = reinterpret_cast< cmsHPROFILE * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCreateMultiprofileTransform" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_unsigned_SS_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsCreateMultiprofileTransform" "', argument " "3"" of type '" "DWORD""'"); } arg3 = static_cast< DWORD >(val3); ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsCreateMultiprofileTransform" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); ecode5 = SWIG_AsVal_int(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cmsCreateMultiprofileTransform" "', argument " "5"" of type '" "int""'"); } arg5 = static_cast< int >(val5); ecode6 = SWIG_AsVal_unsigned_SS_long(obj5, &val6); if (!SWIG_IsOK(ecode6)) { SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "cmsCreateMultiprofileTransform" "', argument " "6"" of type '" "DWORD""'"); } arg6 = static_cast< DWORD >(val6); InErrorFlag = 0; result = (cmsHTRANSFORM)cmsCreateMultiprofileTransform(arg1,arg2,arg3,arg4,arg5,arg6); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDeleteTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; int res1 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsDeleteTransform",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDeleteTransform" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } InErrorFlag = 0; cmsDeleteTransform(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDoTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; LPVOID arg2 = (LPVOID) 0 ; LPVOID arg3 = (LPVOID) 0 ; unsigned int arg4 ; int res1 ; int res2 ; int res3 ; unsigned int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsDoTransform",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDoTransform" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsDoTransform" "', argument " "2"" of type '" "LPVOID""'"); } res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsDoTransform" "', argument " "3"" of type '" "LPVOID""'"); } ecode4 = SWIG_AsVal_unsigned_SS_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsDoTransform" "', argument " "4"" of type '" "unsigned int""'"); } arg4 = static_cast< unsigned int >(val4); InErrorFlag = 0; cmsDoTransform(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsChangeBuffersFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; DWORD arg2 ; DWORD arg3 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; unsigned long val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsChangeBuffersFormat",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsChangeBuffersFormat" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsChangeBuffersFormat" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); ecode3 = SWIG_AsVal_unsigned_SS_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsChangeBuffersFormat" "', argument " "3"" of type '" "DWORD""'"); } arg3 = static_cast< DWORD >(val3); InErrorFlag = 0; cmsChangeBuffersFormat(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetAlarmCodes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int arg2 ; int arg3 ; int val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsSetAlarmCodes",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsSetAlarmCodes" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSetAlarmCodes" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsSetAlarmCodes" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; cmsSetAlarmCodes(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetAlarmCodes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int *arg1 = (int *) 0 ; int *arg2 = (int *) 0 ; int *arg3 = (int *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsGetAlarmCodes",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_int, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetAlarmCodes" "', argument " "1"" of type '" "int *""'"); } arg1 = reinterpret_cast< int * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_int, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsGetAlarmCodes" "', argument " "2"" of type '" "int *""'"); } arg2 = reinterpret_cast< int * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_int, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsGetAlarmCodes" "', argument " "3"" of type '" "int *""'"); } arg3 = reinterpret_cast< int * >(argp3); InErrorFlag = 0; cmsGetAlarmCodes(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetAdaptationState(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:cmsSetAdaptationState",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsSetAdaptationState" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (double)cmsSetAdaptationState(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetCMYKPreservationStrategy(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsSetCMYKPreservationStrategy",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsSetCMYKPreservationStrategy" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = (int)cmsSetCMYKPreservationStrategy(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLOR_Name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; char *arg2 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[(256)] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLOR_Name_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLOR_Name_set" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); res2 = SWIG_AsCharArray(obj1, temp2, (256)); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNAMEDCOLOR_Name_set" "', argument " "2"" of type '" "char [(256)]""'"); } arg2 = reinterpret_cast< char * >(temp2); if (arg2) memcpy(arg1->Name,arg2,(256)*sizeof(char)); else memset(arg1->Name,0,(256)*sizeof(char)); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLOR_Name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLOR_Name_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLOR_Name_get" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); result = (char *)(char *) ((arg1)->Name); { size_t size = (256); while (size && (result[size - 1] == '\0')) --size; resultobj = SWIG_FromCharPtrAndSize(result, size); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLOR_PCS_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLOR_PCS_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLOR_PCS_set" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNAMEDCOLOR_PCS_set" "', argument " "2"" of type '" "WORD [3]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->PCS[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""PCS""' of type '""WORD [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLOR_PCS_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLOR_PCS_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLOR_PCS_get" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); result = (WORD *)(WORD *) ((arg1)->PCS); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLOR_DeviceColorant_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLOR_DeviceColorant_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLOR_DeviceColorant_set" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNAMEDCOLOR_DeviceColorant_set" "', argument " "2"" of type '" "WORD [16]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->DeviceColorant[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""DeviceColorant""' of type '""WORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLOR_DeviceColorant_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLOR_DeviceColorant_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLOR_DeviceColorant_get" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); result = (WORD *)(WORD *) ((arg1)->DeviceColorant); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsNAMEDCOLOR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsNAMEDCOLOR")) SWIG_fail; InErrorFlag = 0; result = (cmsNAMEDCOLOR *)new cmsNAMEDCOLOR(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsNAMEDCOLOR, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsNAMEDCOLOR(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLOR *arg1 = (cmsNAMEDCOLOR *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsNAMEDCOLOR",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLOR, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsNAMEDCOLOR" "', argument " "1"" of type '" "cmsNAMEDCOLOR *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLOR * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsNAMEDCOLOR_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsNAMEDCOLOR, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_nColors_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLORLIST_nColors_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_nColors_set" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsNAMEDCOLORLIST_nColors_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->nColors = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_nColors_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLORLIST_nColors_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_nColors_get" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); result = (int) ((arg1)->nColors); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_Allocated_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLORLIST_Allocated_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_Allocated_set" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsNAMEDCOLORLIST_Allocated_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Allocated = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_Allocated_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLORLIST_Allocated_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_Allocated_get" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); result = (int) ((arg1)->Allocated); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_ColorantCount_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLORLIST_ColorantCount_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_ColorantCount_set" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsNAMEDCOLORLIST_ColorantCount_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->ColorantCount = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_ColorantCount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLORLIST_ColorantCount_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_ColorantCount_get" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); result = (int) ((arg1)->ColorantCount); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_Prefix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; char *arg2 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[33] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLORLIST_Prefix_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_Prefix_set" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); res2 = SWIG_AsCharArray(obj1, temp2, 33); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNAMEDCOLORLIST_Prefix_set" "', argument " "2"" of type '" "char [33]""'"); } arg2 = reinterpret_cast< char * >(temp2); if (arg2) memcpy(arg1->Prefix,arg2,33*sizeof(char)); else memset(arg1->Prefix,0,33*sizeof(char)); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_Prefix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLORLIST_Prefix_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_Prefix_get" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); result = (char *)(char *) ((arg1)->Prefix); { size_t size = 33; while (size && (result[size - 1] == '\0')) --size; resultobj = SWIG_FromCharPtrAndSize(result, size); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_Suffix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; char *arg2 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[33] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLORLIST_Suffix_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_Suffix_set" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); res2 = SWIG_AsCharArray(obj1, temp2, 33); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNAMEDCOLORLIST_Suffix_set" "', argument " "2"" of type '" "char [33]""'"); } arg2 = reinterpret_cast< char * >(temp2); if (arg2) memcpy(arg1->Suffix,arg2,33*sizeof(char)); else memset(arg1->Suffix,0,33*sizeof(char)); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_Suffix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLORLIST_Suffix_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_Suffix_get" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); result = (char *)(char *) ((arg1)->Suffix); { size_t size = 33; while (size && (result[size - 1] == '\0')) --size; resultobj = SWIG_FromCharPtrAndSize(result, size); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_List_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; cmsNAMEDCOLOR *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNAMEDCOLORLIST_List_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_List_set" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNAMEDCOLORLIST_List_set" "', argument " "2"" of type '" "cmsNAMEDCOLOR [1]""'"); } arg2 = reinterpret_cast< cmsNAMEDCOLOR * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)1; ++ii) arg1->List[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""List""' of type '""cmsNAMEDCOLOR [1]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNAMEDCOLORLIST_List_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsNAMEDCOLOR *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsNAMEDCOLORLIST_List_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNAMEDCOLORLIST_List_get" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); result = (cmsNAMEDCOLOR *)(cmsNAMEDCOLOR *) ((arg1)->List); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsNAMEDCOLOR, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_cmsNAMEDCOLORLIST(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_cmsNAMEDCOLORLIST")) SWIG_fail; InErrorFlag = 0; result = (cmsNAMEDCOLORLIST *)new cmsNAMEDCOLORLIST(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsNAMEDCOLORLIST, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_cmsNAMEDCOLORLIST(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsNAMEDCOLORLIST *arg1 = (cmsNAMEDCOLORLIST *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_cmsNAMEDCOLORLIST",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsNAMEDCOLORLIST, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_cmsNAMEDCOLORLIST" "', argument " "1"" of type '" "cmsNAMEDCOLORLIST *""'"); } arg1 = reinterpret_cast< cmsNAMEDCOLORLIST * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *cmsNAMEDCOLORLIST_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_cmsNAMEDCOLORLIST, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsNamedColorCount(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; int res1 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsNamedColorCount",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNamedColorCount" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } InErrorFlag = 0; result = (int)cmsNamedColorCount(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsNamedColorInfo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; int arg2 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; char *arg5 = (char *) 0 ; int res1 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; int res5 ; char *buf5 = 0 ; int alloc5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsNamedColorInfo",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNamedColorInfo" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsNamedColorInfo" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsNamedColorInfo" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsNamedColorInfo" "', argument " "4"" of type '" "char *""'"); } arg4 = reinterpret_cast< char * >(buf4); res5 = SWIG_AsCharPtrAndSize(obj4, &buf5, NULL, &alloc5); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cmsNamedColorInfo" "', argument " "5"" of type '" "char *""'"); } arg5 = reinterpret_cast< char * >(buf5); InErrorFlag = 0; result = (LCMSBOOL)cmsNamedColorInfo(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; if (alloc5 == SWIG_NEWOBJ) delete[] buf5; return NULL; } SWIGINTERN PyObject *_wrap_cmsNamedColorIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsNamedColorIndex",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsNamedColorIndex" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsNamedColorIndex" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)cmsNamedColorIndex(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsReadColorantTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPcmsNAMEDCOLORLIST result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReadColorantTable",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadColorantTable" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadColorantTable" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadColorantTable" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = cmsReadColorantTable(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPcmsNAMEDCOLORLIST(static_cast< const LPcmsNAMEDCOLORLIST& >(result))), SWIGTYPE_p_LPcmsNAMEDCOLORLIST, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAddTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; void *arg3 = (void *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; int res3 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsAddTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAddTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAddTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsAddTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsAddTag" "', argument " "3"" of type '" "void const *""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsAddTag(arg1,arg2,(void const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTransform2DeviceLink(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsTransform2DeviceLink",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTransform2DeviceLink" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsTransform2DeviceLink" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (cmsHPROFILE)cmsTransform2DeviceLink(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsSetLUTdepth(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; int res1 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsSetLUTdepth",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsSetLUTdepth" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsSetLUTdepth" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; _cmsSetLUTdepth(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSaveProfile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSaveProfile",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSaveProfile" "', argument " "1"" of type '" "cmsHPROFILE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSaveProfile" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (LCMSBOOL)_cmsSaveProfile(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap__cmsSaveProfileToMem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; void *arg2 = (void *) 0 ; size_t *arg3 = (size_t *) 0 ; int res1 ; int res2 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsSaveProfileToMem",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsSaveProfileToMem" "', argument " "1"" of type '" "cmsHPROFILE""'"); } res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsSaveProfileToMem" "', argument " "2"" of type '" "void *""'"); } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_size_t, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsSaveProfileToMem" "', argument " "3"" of type '" "size_t *""'"); } arg3 = reinterpret_cast< size_t * >(argp3); InErrorFlag = 0; result = (LCMSBOOL)_cmsSaveProfileToMem(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetPostScriptCSA(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; LPVOID arg3 = (LPVOID) 0 ; DWORD arg4 ; int res1 ; int val2 ; int ecode2 = 0 ; int res3 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsGetPostScriptCSA",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetPostScriptCSA" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsGetPostScriptCSA" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsGetPostScriptCSA" "', argument " "3"" of type '" "LPVOID""'"); } ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsGetPostScriptCSA" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); InErrorFlag = 0; result = (DWORD)cmsGetPostScriptCSA(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetPostScriptCRD(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; LPVOID arg3 = (LPVOID) 0 ; DWORD arg4 ; int res1 ; int val2 ; int ecode2 = 0 ; int res3 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsGetPostScriptCRD",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetPostScriptCRD" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsGetPostScriptCRD" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsGetPostScriptCRD" "', argument " "3"" of type '" "LPVOID""'"); } ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsGetPostScriptCRD" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); InErrorFlag = 0; result = (DWORD)cmsGetPostScriptCRD(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetPostScriptCRDEx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; DWORD arg3 ; LPVOID arg4 = (LPVOID) 0 ; DWORD arg5 ; int res1 ; int val2 ; int ecode2 = 0 ; unsigned long val3 ; int ecode3 = 0 ; int res4 ; unsigned long val5 ; int ecode5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsGetPostScriptCRDEx",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetPostScriptCRDEx" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsGetPostScriptCRDEx" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_unsigned_SS_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsGetPostScriptCRDEx" "', argument " "3"" of type '" "DWORD""'"); } arg3 = static_cast< DWORD >(val3); res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4), 0, 0); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsGetPostScriptCRDEx" "', argument " "4"" of type '" "LPVOID""'"); } ecode5 = SWIG_AsVal_unsigned_SS_long(obj4, &val5); if (!SWIG_IsOK(ecode5)) { SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "cmsGetPostScriptCRDEx" "', argument " "5"" of type '" "DWORD""'"); } arg5 = static_cast< DWORD >(val5); InErrorFlag = 0; result = (DWORD)cmsGetPostScriptCRDEx(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsErrorAction(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsErrorAction",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsErrorAction" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = (int)cmsErrorAction(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetErrorHandler(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsErrorHandlerFunction arg1 = (cmsErrorHandlerFunction) 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsSetErrorHandler",&obj0)) SWIG_fail; { int res = SWIG_ConvertFunctionPtr(obj0, (void**)(&arg1), SWIGTYPE_p_f_int_p_q_const__char__int); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "cmsSetErrorHandler" "', argument " "1"" of type '" "cmsErrorHandlerFunction""'"); } } InErrorFlag = 0; cmsSetErrorHandler(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAllocLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT result; if (!PyArg_ParseTuple(args,(char *)":cmsAllocLUT")) SWIG_fail; InErrorFlag = 0; result = (LPLUT)cmsAllocLUT(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAllocLinearTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; LPGAMMATABLE *arg2 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsAllocLinearTable",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAllocLinearTable" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAllocLinearTable" "', argument " "2"" of type '" "LPGAMMATABLE []""'"); } arg2 = reinterpret_cast< LPGAMMATABLE * >(argp2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsAllocLinearTable" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (LPLUT)cmsAllocLinearTable(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAlloc3DGrid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; int arg2 ; int arg3 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsAlloc3DGrid",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAlloc3DGrid" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsAlloc3DGrid" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsAlloc3DGrid" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsAlloc3DGrid" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); InErrorFlag = 0; result = (LPLUT)cmsAlloc3DGrid(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetMatrixLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSetMatrixLUT",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetMatrixLUT" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetMatrixLUT" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); InErrorFlag = 0; result = (LPLUT)cmsSetMatrixLUT(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetMatrixLUT4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; LPVEC3 arg3 = (LPVEC3) 0 ; DWORD arg4 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsSetMatrixLUT4",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetMatrixLUT4" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSetMatrixLUT4" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsSetMatrixLUT4" "', argument " "3"" of type '" "LPVEC3""'"); } arg3 = reinterpret_cast< LPVEC3 >(argp3); ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsSetMatrixLUT4" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); InErrorFlag = 0; result = (LPLUT)cmsSetMatrixLUT4(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeLUT",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFreeLUT" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); InErrorFlag = 0; cmsFreeLUT(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsEvalLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; WORD *arg2 ; WORD *arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsEvalLUT",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsEvalLUT" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsEvalLUT" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsEvalLUT" "', argument " "3"" of type '" "WORD []""'"); } arg3 = reinterpret_cast< WORD * >(argp3); InErrorFlag = 0; cmsEvalLUT(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsEvalLUTreverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; WORD *arg2 ; WORD *arg3 ; LPWORD arg4 = (LPWORD) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsEvalLUTreverse",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsEvalLUTreverse" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsEvalLUTreverse" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsEvalLUTreverse" "', argument " "3"" of type '" "WORD []""'"); } arg3 = reinterpret_cast< WORD * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsEvalLUTreverse" "', argument " "4"" of type '" "LPWORD""'"); } arg4 = reinterpret_cast< LPWORD >(argp4); InErrorFlag = 0; result = (double)cmsEvalLUTreverse(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCLut(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; int res1 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReadICCLut",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCLut" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCLut" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadICCLut" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = (LPLUT)cmsReadICCLut(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDupLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:cmsDupLUT",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDupLUT" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); InErrorFlag = 0; result = (LPLUT)cmsDupLUT(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSample3DGrid(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; _cmsSAMPLER arg2 = (_cmsSAMPLER) 0 ; LPVOID arg3 = (LPVOID) 0 ; DWORD arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res3 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsSample3DGrid",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSample3DGrid" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_p_void__int); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "cmsSample3DGrid" "', argument " "2"" of type '" "_cmsSAMPLER""'"); } } res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsSample3DGrid" "', argument " "3"" of type '" "LPVOID""'"); } ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsSample3DGrid" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); InErrorFlag = 0; result = (int)cmsSample3DGrid(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSetUserFormatters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; DWORD arg2 ; cmsFORMATTER arg3 = (cmsFORMATTER) 0 ; DWORD arg4 ; cmsFORMATTER arg5 = (cmsFORMATTER) 0 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsSetUserFormatters",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSetUserFormatters" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSetUserFormatters" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); { int res = SWIG_ConvertFunctionPtr(obj2, (void**)(&arg3), SWIGTYPE_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "cmsSetUserFormatters" "', argument " "3"" of type '" "cmsFORMATTER""'"); } } ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsSetUserFormatters" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); { int res = SWIG_ConvertFunctionPtr(obj4, (void**)(&arg5), SWIGTYPE_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "cmsSetUserFormatters" "', argument " "5"" of type '" "cmsFORMATTER""'"); } } InErrorFlag = 0; cmsSetUserFormatters(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsGetUserFormatters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; LPDWORD arg2 = (LPDWORD) 0 ; cmsFORMATTER *arg3 = (cmsFORMATTER *) 0 ; LPDWORD arg4 = (LPDWORD) 0 ; cmsFORMATTER *arg5 = (cmsFORMATTER *) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; void *argp5 = 0 ; int res5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsGetUserFormatters",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsGetUserFormatters" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_long, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsGetUserFormatters" "', argument " "2"" of type '" "LPDWORD""'"); } arg2 = reinterpret_cast< LPDWORD >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsGetUserFormatters" "', argument " "3"" of type '" "cmsFORMATTER *""'"); } arg3 = reinterpret_cast< cmsFORMATTER * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_unsigned_long, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsGetUserFormatters" "', argument " "4"" of type '" "LPDWORD""'"); } arg4 = reinterpret_cast< LPDWORD >(argp4); res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, 0 | 0 ); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cmsGetUserFormatters" "', argument " "5"" of type '" "cmsFORMATTER *""'"); } arg5 = reinterpret_cast< cmsFORMATTER * >(argp5); InErrorFlag = 0; cmsGetUserFormatters(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8Alloc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE result; if (!PyArg_ParseTuple(args,(char *)":cmsIT8Alloc")) SWIG_fail; InErrorFlag = 0; result = (LCMSHANDLE)cmsIT8Alloc(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8Free(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int res1 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsIT8Free",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8Free" "', argument " "1"" of type '" "LCMSHANDLE""'"); } InErrorFlag = 0; cmsIT8Free(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8TableCount(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int res1 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:cmsIT8TableCount",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8TableCount" "', argument " "1"" of type '" "LCMSHANDLE""'"); } InErrorFlag = 0; result = (int)cmsIT8TableCount(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; int res1 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8SetTable",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetTable" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8SetTable" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (int)cmsIT8SetTable(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8LoadFromFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject * obj0 = 0 ; LCMSHANDLE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsIT8LoadFromFile",&obj0)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8LoadFromFile" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); InErrorFlag = 0; result = (LCMSHANDLE)cmsIT8LoadFromFile((char const *)arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8LoadFromMem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; void *arg1 = (void *) 0 ; size_t arg2 ; int res1 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSHANDLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8LoadFromMem",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8LoadFromMem" "', argument " "1"" of type '" "void *""'"); } ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8LoadFromMem" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); InErrorFlag = 0; result = (LCMSHANDLE)cmsIT8LoadFromMem(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SaveToFile(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8SaveToFile",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SaveToFile" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SaveToFile" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SaveToFile(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SaveToMem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; void *arg2 = (void *) 0 ; size_t *arg3 = (size_t *) 0 ; int res1 ; int res2 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8SaveToMem",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SaveToMem" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SaveToMem" "', argument " "2"" of type '" "void *""'"); } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_size_t, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SaveToMem" "', argument " "3"" of type '" "size_t *""'"); } arg3 = reinterpret_cast< size_t * >(argp3); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SaveToMem(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetSheetType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int res1 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsIT8GetSheetType",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetSheetType" "', argument " "1"" of type '" "LCMSHANDLE""'"); } InErrorFlag = 0; result = (char *)cmsIT8GetSheetType(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetSheetType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8SetSheetType",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetSheetType" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetSheetType" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetSheetType(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetComment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8SetComment",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetComment" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetComment" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetComment(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetPropertyStr(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8SetPropertyStr",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetPropertyStr" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetPropertyStr" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetPropertyStr" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetPropertyStr(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetPropertyDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; double arg3 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8SetPropertyDbl",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetPropertyDbl" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetPropertyDbl" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIT8SetPropertyDbl" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetPropertyDbl(arg1,(char const *)arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetPropertyHex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int arg3 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8SetPropertyHex",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetPropertyHex" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetPropertyHex" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIT8SetPropertyHex" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetPropertyHex(arg1,(char const *)arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetPropertyMulti(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsIT8SetPropertyMulti",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetPropertyMulti" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetPropertyMulti" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetPropertyMulti" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsIT8SetPropertyMulti" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetPropertyMulti(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetPropertyUncooked(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8SetPropertyUncooked",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetPropertyUncooked" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetPropertyUncooked" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetPropertyUncooked" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetPropertyUncooked(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetProperty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8GetProperty",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetProperty" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetProperty" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (char *)cmsIT8GetProperty(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetPropertyDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8GetPropertyDbl",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetPropertyDbl" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetPropertyDbl" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (double)cmsIT8GetPropertyDbl(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetPropertyMulti(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8GetPropertyMulti",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetPropertyMulti" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetPropertyMulti" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8GetPropertyMulti" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (char *)cmsIT8GetPropertyMulti(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8EnumProperties(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char ***arg2 = (char ***) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8EnumProperties",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8EnumProperties" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8EnumProperties" "', argument " "2"" of type '" "char const ***""'"); } arg2 = reinterpret_cast< char *** >(argp2); InErrorFlag = 0; result = (int)cmsIT8EnumProperties(arg1,(char const ***)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8EnumPropertyMulti(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char ***arg3 = (char ***) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8EnumPropertyMulti",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8EnumPropertyMulti" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8EnumPropertyMulti" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8EnumPropertyMulti" "', argument " "3"" of type '" "char const ***""'"); } arg3 = reinterpret_cast< char *** >(argp3); InErrorFlag = 0; result = (int)cmsIT8EnumPropertyMulti(arg1,(char const *)arg2,(char const ***)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetDataRowCol(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; int arg3 ; int res1 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8GetDataRowCol",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetDataRowCol" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8GetDataRowCol" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIT8GetDataRowCol" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (char *)cmsIT8GetDataRowCol(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetDataRowColDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; int arg3 ; int res1 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8GetDataRowColDbl",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetDataRowColDbl" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8GetDataRowColDbl" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIT8GetDataRowColDbl" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (double)cmsIT8GetDataRowColDbl(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetDataRowCol(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; int arg3 ; char *arg4 = (char *) 0 ; int res1 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsIT8SetDataRowCol",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetDataRowCol" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8SetDataRowCol" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIT8SetDataRowCol" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsIT8SetDataRowCol" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetDataRowCol(arg1,arg2,arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetDataRowColDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; int arg3 ; double arg4 ; int res1 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsIT8SetDataRowColDbl",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetDataRowColDbl" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8SetDataRowColDbl" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsIT8SetDataRowColDbl" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsIT8SetDataRowColDbl" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetDataRowColDbl(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8GetData",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetData" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetData" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8GetData" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (char *)cmsIT8GetData(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetDataDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8GetDataDbl",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetDataDbl" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetDataDbl" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8GetDataDbl" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (double)cmsIT8GetDataDbl(arg1,(char const *)arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsIT8SetData",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetData" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetData" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetData" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsIT8SetData" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetData(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetDataDbl(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; double arg4 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsIT8SetDataDbl",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetDataDbl" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetDataDbl" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetDataDbl" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsIT8SetDataDbl" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetDataDbl(arg1,(char const *)arg2,(char const *)arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetDataFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8GetDataFormat",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetDataFormat" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetDataFormat" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)cmsIT8GetDataFormat(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetDataFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; char *arg3 = (char *) 0 ; int res1 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8SetDataFormat",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetDataFormat" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8SetDataFormat" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetDataFormat" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetDataFormat(arg1,arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8EnumDataFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char ***arg2 = (char ***) 0 ; int res1 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8EnumDataFormat",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8EnumDataFormat" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_p_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8EnumDataFormat" "', argument " "2"" of type '" "char ***""'"); } arg2 = reinterpret_cast< char *** >(argp2); InErrorFlag = 0; result = (int)cmsIT8EnumDataFormat(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetPatchName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; int arg2 ; char *arg3 = (char *) 0 ; int res1 ; int val2 ; int ecode2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsIT8GetPatchName",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetPatchName" "', argument " "1"" of type '" "LCMSHANDLE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIT8GetPatchName" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8GetPatchName" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (char *)cmsIT8GetPatchName(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_FromCharPtr((const char *)result); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8GetPatchByName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8GetPatchByName",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8GetPatchByName" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8GetPatchByName" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (int)cmsIT8GetPatchByName(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetTableByLabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; char *arg4 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; int res4 ; char *buf4 = 0 ; int alloc4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsIT8SetTableByLabel",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetTableByLabel" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetTableByLabel" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsIT8SetTableByLabel" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); res4 = SWIG_AsCharPtrAndSize(obj3, &buf4, NULL, &alloc4); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsIT8SetTableByLabel" "', argument " "4"" of type '" "char const *""'"); } arg4 = reinterpret_cast< char * >(buf4); InErrorFlag = 0; result = (int)cmsIT8SetTableByLabel(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; if (alloc4 == SWIG_NEWOBJ) delete[] buf4; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8SetIndexColumn(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8SetIndexColumn",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8SetIndexColumn" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8SetIndexColumn" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; result = (LCMSBOOL)cmsIT8SetIndexColumn(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsIT8DefineDblFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSHANDLE arg1 = (LCMSHANDLE) 0 ; char *arg2 = (char *) 0 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIT8DefineDblFormat",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIT8DefineDblFormat" "', argument " "1"" of type '" "LCMSHANDLE""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsIT8DefineDblFormat" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; cmsIT8DefineDblFormat(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_cmsLabEncoded2Float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsLabEncoded2Float",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsLabEncoded2Float" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLabEncoded2Float" "', argument " "2"" of type '" "WORD const [3]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); InErrorFlag = 0; cmsLabEncoded2Float(arg1,(unsigned short const (*))arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLabEncoded2Float4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIELab arg1 = (LPcmsCIELab) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsLabEncoded2Float4",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsLabEncoded2Float4" "', argument " "1"" of type '" "LPcmsCIELab""'"); } arg1 = reinterpret_cast< LPcmsCIELab >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLabEncoded2Float4" "', argument " "2"" of type '" "WORD const [3]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); InErrorFlag = 0; cmsLabEncoded2Float4(arg1,(unsigned short const (*))arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFloat2LabEncoded(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; cmsCIELab *arg2 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsFloat2LabEncoded",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFloat2LabEncoded" "', argument " "1"" of type '" "WORD [3]""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsFloat2LabEncoded" "', argument " "2"" of type '" "cmsCIELab const *""'"); } arg2 = reinterpret_cast< cmsCIELab * >(argp2); InErrorFlag = 0; cmsFloat2LabEncoded(arg1,(cmsCIELab const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFloat2LabEncoded4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; cmsCIELab *arg2 = (cmsCIELab *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsFloat2LabEncoded4",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFloat2LabEncoded4" "', argument " "1"" of type '" "WORD [3]""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIELab, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsFloat2LabEncoded4" "', argument " "2"" of type '" "cmsCIELab const *""'"); } arg2 = reinterpret_cast< cmsCIELab * >(argp2); InErrorFlag = 0; cmsFloat2LabEncoded4(arg1,(cmsCIELab const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsXYZEncoded2Float(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsXYZEncoded2Float",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsXYZEncoded2Float" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsXYZEncoded2Float" "', argument " "2"" of type '" "WORD const [3]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); InErrorFlag = 0; cmsXYZEncoded2Float(arg1,(unsigned short const (*))arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFloat2XYZEncoded(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsFloat2XYZEncoded",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFloat2XYZEncoded" "', argument " "1"" of type '" "WORD [3]""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsFloat2XYZEncoded" "', argument " "2"" of type '" "cmsCIEXYZ const *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); InErrorFlag = 0; cmsFloat2XYZEncoded(arg1,(cmsCIEXYZ const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddTextTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; char *arg3 = (char *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddTextTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddTextTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddTextTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddTextTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddTextTag" "', argument " "3"" of type '" "char const *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; result = (LCMSBOOL)_cmsAddTextTag(arg1,arg2,(char const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap__cmsAddXYZTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; cmsCIEXYZ *arg3 = (cmsCIEXYZ *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddXYZTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddXYZTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddXYZTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddXYZTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddXYZTag" "', argument " "3"" of type '" "cmsCIEXYZ const *""'"); } arg3 = reinterpret_cast< cmsCIEXYZ * >(argp3); InErrorFlag = 0; result = (LCMSBOOL)_cmsAddXYZTag(arg1,arg2,(cmsCIEXYZ const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddLUTTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; void *arg3 = (void *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; int res3 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddLUTTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddLUTTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddLUTTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddLUTTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2,SWIG_as_voidptrptr(&arg3), 0, 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddLUTTag" "', argument " "3"" of type '" "void const *""'"); } InErrorFlag = 0; result = (LCMSBOOL)_cmsAddLUTTag(arg1,arg2,(void const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddGammaTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; LPGAMMATABLE arg3 = (LPGAMMATABLE) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddGammaTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddGammaTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddGammaTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddGammaTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddGammaTag" "', argument " "3"" of type '" "LPGAMMATABLE""'"); } arg3 = reinterpret_cast< LPGAMMATABLE >(argp3); InErrorFlag = 0; result = (LCMSBOOL)_cmsAddGammaTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddChromaticityTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; LPcmsCIExyYTRIPLE arg3 = (LPcmsCIExyYTRIPLE) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddChromaticityTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddChromaticityTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddChromaticityTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddChromaticityTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIExyYTRIPLE, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddChromaticityTag" "', argument " "3"" of type '" "LPcmsCIExyYTRIPLE""'"); } arg3 = reinterpret_cast< LPcmsCIExyYTRIPLE >(argp3); InErrorFlag = 0; result = (LCMSBOOL)_cmsAddChromaticityTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddSequenceDescriptionTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; LPcmsSEQ arg3 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddSequenceDescriptionTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddSequenceDescriptionTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddSequenceDescriptionTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddSequenceDescriptionTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_LPcmsSEQ, 0 | 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddSequenceDescriptionTag" "', argument " "3"" of type '" "LPcmsSEQ""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddSequenceDescriptionTag" "', argument " "3"" of type '" "LPcmsSEQ""'"); } else { LPcmsSEQ * temp = reinterpret_cast< LPcmsSEQ * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } InErrorFlag = 0; result = (LCMSBOOL)_cmsAddSequenceDescriptionTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddNamedColorTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; LPcmsNAMEDCOLORLIST arg3 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddNamedColorTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddNamedColorTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddNamedColorTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddNamedColorTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_LPcmsNAMEDCOLORLIST, 0 | 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddNamedColorTag" "', argument " "3"" of type '" "LPcmsNAMEDCOLORLIST""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddNamedColorTag" "', argument " "3"" of type '" "LPcmsNAMEDCOLORLIST""'"); } else { LPcmsNAMEDCOLORLIST * temp = reinterpret_cast< LPcmsNAMEDCOLORLIST * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } InErrorFlag = 0; result = (LCMSBOOL)_cmsAddNamedColorTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddDateTimeTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; tm *arg3 = (tm *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddDateTimeTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddDateTimeTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddDateTimeTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddDateTimeTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_tm, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddDateTimeTag" "', argument " "3"" of type '" "tm *""'"); } arg3 = reinterpret_cast< tm * >(argp3); InErrorFlag = 0; result = (LCMSBOOL)_cmsAddDateTimeTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddColorantTableTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; LPcmsNAMEDCOLORLIST arg3 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddColorantTableTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddColorantTableTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddColorantTableTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddColorantTableTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_LPcmsNAMEDCOLORLIST, 0 | 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddColorantTableTag" "', argument " "3"" of type '" "LPcmsNAMEDCOLORLIST""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddColorantTableTag" "', argument " "3"" of type '" "LPcmsNAMEDCOLORLIST""'"); } else { LPcmsNAMEDCOLORLIST * temp = reinterpret_cast< LPcmsNAMEDCOLORLIST * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } InErrorFlag = 0; result = (LCMSBOOL)_cmsAddColorantTableTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsAddChromaticAdaptationTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; cmsCIEXYZ *arg3 = (cmsCIEXYZ *) 0 ; int res1 ; void *argp2 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsAddChromaticAdaptationTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsAddChromaticAdaptationTag" "', argument " "1"" of type '" "cmsHPROFILE""'"); } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsAddChromaticAdaptationTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsAddChromaticAdaptationTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsAddChromaticAdaptationTag" "', argument " "3"" of type '" "cmsCIEXYZ const *""'"); } arg3 = reinterpret_cast< cmsCIEXYZ * >(argp3); InErrorFlag = 0; result = (LCMSBOOL)_cmsAddChromaticAdaptationTag(arg1,arg2,(cmsCIEXYZ const *)arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsQuickFloor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; double val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsQuickFloor",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "_cmsQuickFloor" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); InErrorFlag = 0; result = (int)_cmsQuickFloor(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsClampWord(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsClampWord",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "_cmsClampWord" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = (WORD)_cmsClampWord(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsMalloc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; size_t arg1 ; size_t val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; void *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsMalloc",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_size_t(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "_cmsMalloc" "', argument " "1"" of type '" "size_t""'"); } arg1 = static_cast< size_t >(val1); InErrorFlag = 0; result = (void *)_cmsMalloc(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsCalloc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; size_t arg1 ; size_t arg2 ; size_t val1 ; int ecode1 = 0 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; void *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsCalloc",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_size_t(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "_cmsCalloc" "', argument " "1"" of type '" "size_t""'"); } arg1 = static_cast< size_t >(val1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsCalloc" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); InErrorFlag = 0; result = (void *)_cmsCalloc(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsFree(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; void *arg1 = (void *) 0 ; int res1 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsFree",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsFree" "', argument " "1"" of type '" "void *""'"); } InErrorFlag = 0; _cmsFree(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSignalError(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; char *arg2 = (char *) 0 ; char *arg3 = (char *) 0 ; int val1 ; int ecode1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; int res3 ; char *buf3 = 0 ; int alloc3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsSignalError",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsSignalError" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsSignalError" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsSignalError" "', argument " "3"" of type '" "char *""'"); } arg3 = reinterpret_cast< char * >(buf3); InErrorFlag = 0; cmsSignalError(arg1,(char const *)arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; if (alloc3 == SWIG_NEWOBJ) delete[] buf3; return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign16_a_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign16 *arg1 = (_cmsTestAlign16 *) 0 ; icS15Fixed16Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTestAlign16_a_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign16, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign16_a_set" "', argument " "1"" of type '" "_cmsTestAlign16 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign16 * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icS15Fixed16Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTestAlign16_a_set" "', argument " "2"" of type '" "icS15Fixed16Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTestAlign16_a_set" "', argument " "2"" of type '" "icS15Fixed16Number""'"); } else { icS15Fixed16Number * temp = reinterpret_cast< icS15Fixed16Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->a = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign16_a_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign16 *arg1 = (_cmsTestAlign16 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icS15Fixed16Number result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTestAlign16_a_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign16, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign16_a_get" "', argument " "1"" of type '" "_cmsTestAlign16 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign16 * >(argp1); result = ((arg1)->a); resultobj = SWIG_NewPointerObj((new icS15Fixed16Number(static_cast< const icS15Fixed16Number& >(result))), SWIGTYPE_p_icS15Fixed16Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign16_b_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign16 *arg1 = (_cmsTestAlign16 *) 0 ; icUInt16Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTestAlign16_b_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign16, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign16_b_set" "', argument " "1"" of type '" "_cmsTestAlign16 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign16 * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt16Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTestAlign16_b_set" "', argument " "2"" of type '" "icUInt16Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTestAlign16_b_set" "', argument " "2"" of type '" "icUInt16Number""'"); } else { icUInt16Number * temp = reinterpret_cast< icUInt16Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->b = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign16_b_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign16 *arg1 = (_cmsTestAlign16 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt16Number result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTestAlign16_b_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign16, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign16_b_get" "', argument " "1"" of type '" "_cmsTestAlign16 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign16 * >(argp1); result = ((arg1)->b); resultobj = SWIG_NewPointerObj((new icUInt16Number(static_cast< const icUInt16Number& >(result))), SWIGTYPE_p_icUInt16Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__cmsTestAlign16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign16 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__cmsTestAlign16")) SWIG_fail; InErrorFlag = 0; result = (_cmsTestAlign16 *)new _cmsTestAlign16(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__cmsTestAlign16, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__cmsTestAlign16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign16 *arg1 = (_cmsTestAlign16 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__cmsTestAlign16",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign16, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__cmsTestAlign16" "', argument " "1"" of type '" "_cmsTestAlign16 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign16 * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_cmsTestAlign16_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__cmsTestAlign16, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__cmsTestAlign8_a_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign8 *arg1 = (_cmsTestAlign8 *) 0 ; icS15Fixed16Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTestAlign8_a_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign8_a_set" "', argument " "1"" of type '" "_cmsTestAlign8 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign8 * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icS15Fixed16Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTestAlign8_a_set" "', argument " "2"" of type '" "icS15Fixed16Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTestAlign8_a_set" "', argument " "2"" of type '" "icS15Fixed16Number""'"); } else { icS15Fixed16Number * temp = reinterpret_cast< icS15Fixed16Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->a = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign8_a_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign8 *arg1 = (_cmsTestAlign8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icS15Fixed16Number result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTestAlign8_a_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign8_a_get" "', argument " "1"" of type '" "_cmsTestAlign8 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign8 * >(argp1); result = ((arg1)->a); resultobj = SWIG_NewPointerObj((new icS15Fixed16Number(static_cast< const icS15Fixed16Number& >(result))), SWIGTYPE_p_icS15Fixed16Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign8_b_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign8 *arg1 = (_cmsTestAlign8 *) 0 ; icUInt8Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTestAlign8_b_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign8_b_set" "', argument " "1"" of type '" "_cmsTestAlign8 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign8 * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt8Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTestAlign8_b_set" "', argument " "2"" of type '" "icUInt8Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTestAlign8_b_set" "', argument " "2"" of type '" "icUInt8Number""'"); } else { icUInt8Number * temp = reinterpret_cast< icUInt8Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->b = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTestAlign8_b_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign8 *arg1 = (_cmsTestAlign8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt8Number result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTestAlign8_b_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign8, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTestAlign8_b_get" "', argument " "1"" of type '" "_cmsTestAlign8 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign8 * >(argp1); result = ((arg1)->b); resultobj = SWIG_NewPointerObj((new icUInt8Number(static_cast< const icUInt8Number& >(result))), SWIGTYPE_p_icUInt8Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__cmsTestAlign8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign8 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__cmsTestAlign8")) SWIG_fail; InErrorFlag = 0; result = (_cmsTestAlign8 *)new _cmsTestAlign8(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__cmsTestAlign8, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__cmsTestAlign8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTestAlign8 *arg1 = (_cmsTestAlign8 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__cmsTestAlign8",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmsTestAlign8, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__cmsTestAlign8" "', argument " "1"" of type '" "_cmsTestAlign8 *""'"); } arg1 = reinterpret_cast< _cmsTestAlign8 * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_cmsTestAlign8_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__cmsTestAlign8, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_FixedMul(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Fixed32 arg1 ; Fixed32 arg2 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; Fixed32 result; if (!PyArg_ParseTuple(args,(char *)"OO:FixedMul",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FixedMul" "', argument " "1"" of type '" "Fixed32""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedMul" "', argument " "1"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FixedMul" "', argument " "2"" of type '" "Fixed32""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedMul" "', argument " "2"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = FixedMul(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new Fixed32(static_cast< const Fixed32& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_FixedSquare(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Fixed32 arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; Fixed32 result; if (!PyArg_ParseTuple(args,(char *)"O:FixedSquare",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FixedSquare" "', argument " "1"" of type '" "Fixed32""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedSquare" "', argument " "1"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = FixedSquare(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new Fixed32(static_cast< const Fixed32& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_ToFixedDomain(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; Fixed32 result; if (!PyArg_ParseTuple(args,(char *)"O:ToFixedDomain",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "ToFixedDomain" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = ToFixedDomain(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new Fixed32(static_cast< const Fixed32& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_FromFixedDomain(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Fixed32 arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:FromFixedDomain",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FromFixedDomain" "', argument " "1"" of type '" "Fixed32""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FromFixedDomain" "', argument " "1"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = (int)FromFixedDomain(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_FixedLERP(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Fixed32 arg1 ; Fixed32 arg2 ; Fixed32 arg3 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; void *argp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Fixed32 result; if (!PyArg_ParseTuple(args,(char *)"OOO:FixedLERP",&obj0,&obj1,&obj2)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "FixedLERP" "', argument " "1"" of type '" "Fixed32""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedLERP" "', argument " "1"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FixedLERP" "', argument " "2"" of type '" "Fixed32""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedLERP" "', argument " "2"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "FixedLERP" "', argument " "3"" of type '" "Fixed32""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedLERP" "', argument " "3"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } InErrorFlag = 0; result = FixedLERP(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new Fixed32(static_cast< const Fixed32& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_FixedScale(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD arg1 ; Fixed32 arg2 ; unsigned short val1 ; int ecode1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OO:FixedScale",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "FixedScale" "', argument " "1"" of type '" "WORD""'"); } arg1 = static_cast< WORD >(val1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "FixedScale" "', argument " "2"" of type '" "Fixed32""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "FixedScale" "', argument " "2"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; result = (WORD)FixedScale(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_WVEC3_n_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WVEC3 *arg1 = (WVEC3 *) 0 ; Fixed32 *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:WVEC3_n_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WVEC3_n_set" "', argument " "1"" of type '" "WVEC3 *""'"); } arg1 = reinterpret_cast< WVEC3 * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_icInt32Number, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "WVEC3_n_set" "', argument " "2"" of type '" "Fixed32 [3]""'"); } arg2 = reinterpret_cast< Fixed32 * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->n[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""n""' of type '""Fixed32 [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_WVEC3_n_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WVEC3 *arg1 = (WVEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; Fixed32 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:WVEC3_n_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WVEC3_n_get" "', argument " "1"" of type '" "WVEC3 *""'"); } arg1 = reinterpret_cast< WVEC3 * >(argp1); result = (Fixed32 *)(Fixed32 *) ((arg1)->n); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icInt32Number, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_WVEC3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WVEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_WVEC3")) SWIG_fail; InErrorFlag = 0; result = (WVEC3 *)new WVEC3(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WVEC3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_WVEC3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WVEC3 *arg1 = (WVEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_WVEC3",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_WVEC3, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_WVEC3" "', argument " "1"" of type '" "WVEC3 *""'"); } arg1 = reinterpret_cast< WVEC3 * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *WVEC3_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_WVEC3, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_WMAT3_v_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WMAT3 *arg1 = (WMAT3 *) 0 ; WVEC3 *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:WMAT3_v_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WMAT3_v_set" "', argument " "1"" of type '" "WMAT3 *""'"); } arg1 = reinterpret_cast< WMAT3 * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "WMAT3_v_set" "', argument " "2"" of type '" "WVEC3 [3]""'"); } arg2 = reinterpret_cast< WVEC3 * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->v[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""v""' of type '""WVEC3 [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_WMAT3_v_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WMAT3 *arg1 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WVEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:WMAT3_v_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "WMAT3_v_get" "', argument " "1"" of type '" "WMAT3 *""'"); } arg1 = reinterpret_cast< WMAT3 * >(argp1); result = (WVEC3 *)(WVEC3 *) ((arg1)->v); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WVEC3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_WMAT3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_WMAT3")) SWIG_fail; InErrorFlag = 0; result = (WMAT3 *)new WMAT3(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_WMAT3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WMAT3 *arg1 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_WMAT3",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_WMAT3, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_WMAT3" "', argument " "1"" of type '" "WMAT3 *""'"); } arg1 = reinterpret_cast< WMAT3 * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *WMAT3_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_WMAT3, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_VEC3init(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; double arg2 ; double arg3 ; double arg4 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:VEC3init",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3init" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VEC3init" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3init" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "VEC3init" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); InErrorFlag = 0; VEC3init(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3initF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWVEC3 arg1 ; double arg2 ; double arg3 ; double arg4 ; void *argp1 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; double val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:VEC3initF",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3initF" "', argument " "1"" of type '" "LPWVEC3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3initF" "', argument " "1"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "VEC3initF" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3initF" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_double(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "VEC3initF" "', argument " "4"" of type '" "double""'"); } arg4 = static_cast< double >(val4); InErrorFlag = 0; VEC3initF(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3toFix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWVEC3 arg1 ; LPVEC3 arg2 = (LPVEC3) 0 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3toFix",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3toFix" "', argument " "1"" of type '" "LPWVEC3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3toFix" "', argument " "1"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3toFix" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); InErrorFlag = 0; VEC3toFix(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3fromFix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPWVEC3 arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3fromFix",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3fromFix" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3fromFix" "', argument " "2"" of type '" "LPWVEC3""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3fromFix" "', argument " "2"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; VEC3fromFix(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3scaleFix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWORD arg1 = (LPWORD) 0 ; LPWVEC3 arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3scaleFix",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3scaleFix" "', argument " "1"" of type '" "LPWORD""'"); } arg1 = reinterpret_cast< LPWORD >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3scaleFix" "', argument " "2"" of type '" "LPWVEC3""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3scaleFix" "', argument " "2"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; VEC3scaleFix(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3swap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3swap",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3swap" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3swap" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); InErrorFlag = 0; VEC3swap(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3divK(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3divK",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3divK" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3divK" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3divK" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; VEC3divK(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3perK(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3perK",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3perK" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3perK" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3perK" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; VEC3perK(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3minus(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; LPVEC3 arg3 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3minus",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3minus" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3minus" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VEC3minus" "', argument " "3"" of type '" "LPVEC3""'"); } arg3 = reinterpret_cast< LPVEC3 >(argp3); InErrorFlag = 0; VEC3minus(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3perComp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; LPVEC3 arg3 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3perComp",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3perComp" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3perComp" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VEC3perComp" "', argument " "3"" of type '" "LPVEC3""'"); } arg3 = reinterpret_cast< LPVEC3 >(argp3); InErrorFlag = 0; VEC3perComp(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3equal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWVEC3 arg1 ; LPWVEC3 arg2 ; double arg3 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3equal",&obj0,&obj1,&obj2)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3equal" "', argument " "1"" of type '" "LPWVEC3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3equal" "', argument " "1"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3equal" "', argument " "2"" of type '" "LPWVEC3""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3equal" "', argument " "2"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3equal" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (LCMSBOOL)VEC3equal(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3equalF(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3equalF",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3equalF" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3equalF" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3equalF" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; result = (LCMSBOOL)VEC3equalF(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3scaleAndCut(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWVEC3 arg1 ; LPVEC3 arg2 = (LPVEC3) 0 ; double arg3 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3scaleAndCut",&obj0,&obj1,&obj2)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3scaleAndCut" "', argument " "1"" of type '" "LPWVEC3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "VEC3scaleAndCut" "', argument " "1"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3scaleAndCut" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "VEC3scaleAndCut" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; VEC3scaleAndCut(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3cross(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; LPVEC3 arg3 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:VEC3cross",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3cross" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3cross" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "VEC3cross" "', argument " "3"" of type '" "LPVEC3""'"); } arg3 = reinterpret_cast< LPVEC3 >(argp3); InErrorFlag = 0; VEC3cross(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3saturate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:VEC3saturate",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3saturate" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); InErrorFlag = 0; VEC3saturate(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3distance(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPVEC3 arg2 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"OO:VEC3distance",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3distance" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "VEC3distance" "', argument " "2"" of type '" "LPVEC3""'"); } arg2 = reinterpret_cast< LPVEC3 >(argp2); InErrorFlag = 0; result = (double)VEC3distance(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_VEC3length(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:VEC3length",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "VEC3length" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); InErrorFlag = 0; result = (double)VEC3length(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3identity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MAT3identity",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3identity" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); InErrorFlag = 0; MAT3identity(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3per(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; LPMAT3 arg3 = (LPMAT3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:MAT3per",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3per" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3per" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "MAT3per" "', argument " "3"" of type '" "LPMAT3""'"); } arg3 = reinterpret_cast< LPMAT3 >(argp3); InErrorFlag = 0; MAT3per(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3perK(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:MAT3perK",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3perK" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3perK" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "MAT3perK" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; MAT3perK(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3inverse(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:MAT3inverse",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3inverse" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3inverse" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); InErrorFlag = 0; result = (int)MAT3inverse(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3solve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; LPVEC3 arg3 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOO:MAT3solve",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3solve" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3solve" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "MAT3solve" "', argument " "3"" of type '" "LPVEC3""'"); } arg3 = reinterpret_cast< LPVEC3 >(argp3); InErrorFlag = 0; result = (LCMSBOOL)MAT3solve(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3det(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:MAT3det",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3det" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); InErrorFlag = 0; result = (double)MAT3det(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3eval(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVEC3 arg1 = (LPVEC3) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; LPVEC3 arg3 = (LPVEC3) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:MAT3eval",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3eval" "', argument " "1"" of type '" "LPVEC3""'"); } arg1 = reinterpret_cast< LPVEC3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3eval" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_VEC3, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "MAT3eval" "', argument " "3"" of type '" "LPVEC3""'"); } arg3 = reinterpret_cast< LPVEC3 >(argp3); InErrorFlag = 0; MAT3eval(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3toFix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWMAT3 arg1 ; LPMAT3 arg2 = (LPMAT3) 0 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MAT3toFix",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWMAT3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3toFix" "', argument " "1"" of type '" "LPWMAT3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3toFix" "', argument " "1"" of type '" "LPWMAT3""'"); } else { LPWMAT3 * temp = reinterpret_cast< LPWMAT3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3toFix" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); InErrorFlag = 0; MAT3toFix(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3fromFix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPWMAT3 arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MAT3fromFix",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3fromFix" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPWMAT3, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3fromFix" "', argument " "2"" of type '" "LPWMAT3""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3fromFix" "', argument " "2"" of type '" "LPWMAT3""'"); } else { LPWMAT3 * temp = reinterpret_cast< LPWMAT3 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } InErrorFlag = 0; MAT3fromFix(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3evalW(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWVEC3 arg1 ; LPWMAT3 arg2 ; LPWVEC3 arg3 ; void *argp1 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; void *argp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:MAT3evalW",&obj0,&obj1,&obj2)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3evalW" "', argument " "1"" of type '" "LPWVEC3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3evalW" "', argument " "1"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPWMAT3, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3evalW" "', argument " "2"" of type '" "LPWMAT3""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3evalW" "', argument " "2"" of type '" "LPWMAT3""'"); } else { LPWMAT3 * temp = reinterpret_cast< LPWMAT3 * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "MAT3evalW" "', argument " "3"" of type '" "LPWVEC3""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3evalW" "', argument " "3"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } InErrorFlag = 0; MAT3evalW(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3isIdentity(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWMAT3 arg1 ; double arg2 ; void *argp1 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:MAT3isIdentity",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWMAT3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3isIdentity" "', argument " "1"" of type '" "LPWMAT3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3isIdentity" "', argument " "1"" of type '" "LPWMAT3""'"); } else { LPWMAT3 * temp = reinterpret_cast< LPWMAT3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "MAT3isIdentity" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (LCMSBOOL)MAT3isIdentity(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MAT3scaleAndCut(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWMAT3 arg1 ; LPMAT3 arg2 = (LPMAT3) 0 ; double arg3 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:MAT3scaleAndCut",&obj0,&obj1,&obj2)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPWMAT3, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MAT3scaleAndCut" "', argument " "1"" of type '" "LPWMAT3""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "MAT3scaleAndCut" "', argument " "1"" of type '" "LPWMAT3""'"); } else { LPWMAT3 * temp = reinterpret_cast< LPWMAT3 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MAT3scaleAndCut" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "MAT3scaleAndCut" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; MAT3scaleAndCut(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsIsLinear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsIsLinear",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsIsLinear" "', argument " "1"" of type '" "WORD []""'"); } arg1 = reinterpret_cast< WORD * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsIsLinear" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (int)cmsIsLinear(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_X0_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; unsigned int *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L8PARAMS_X0_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_X0_set" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_int, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L8PARAMS_X0_set" "', argument " "2"" of type '" "unsigned int [256]""'"); } arg2 = reinterpret_cast< unsigned int * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)256; ++ii) arg1->X0[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""X0""' of type '""unsigned int [256]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_X0_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:L8PARAMS_X0_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_X0_get" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); result = (unsigned int *)(unsigned int *) ((arg1)->X0); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_Y0_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; unsigned int *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L8PARAMS_Y0_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_Y0_set" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_int, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L8PARAMS_Y0_set" "', argument " "2"" of type '" "unsigned int [256]""'"); } arg2 = reinterpret_cast< unsigned int * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)256; ++ii) arg1->Y0[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""Y0""' of type '""unsigned int [256]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_Y0_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:L8PARAMS_Y0_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_Y0_get" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); result = (unsigned int *)(unsigned int *) ((arg1)->Y0); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_Z0_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; unsigned int *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L8PARAMS_Z0_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_Z0_set" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_int, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L8PARAMS_Z0_set" "', argument " "2"" of type '" "unsigned int [256]""'"); } arg2 = reinterpret_cast< unsigned int * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)256; ++ii) arg1->Z0[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""Z0""' of type '""unsigned int [256]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_Z0_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:L8PARAMS_Z0_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_Z0_get" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); result = (unsigned int *)(unsigned int *) ((arg1)->Z0); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_int, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_rx_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L8PARAMS_rx_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_rx_set" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L8PARAMS_rx_set" "', argument " "2"" of type '" "WORD [256]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)256; ++ii) arg1->rx[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""rx""' of type '""WORD [256]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_rx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:L8PARAMS_rx_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_rx_get" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); result = (WORD *)(WORD *) ((arg1)->rx); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_ry_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L8PARAMS_ry_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_ry_set" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L8PARAMS_ry_set" "', argument " "2"" of type '" "WORD [256]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)256; ++ii) arg1->ry[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""ry""' of type '""WORD [256]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_ry_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:L8PARAMS_ry_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_ry_get" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); result = (WORD *)(WORD *) ((arg1)->ry); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_rz_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L8PARAMS_rz_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_rz_set" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L8PARAMS_rz_set" "', argument " "2"" of type '" "WORD [256]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)256; ++ii) arg1->rz[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""rz""' of type '""WORD [256]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L8PARAMS_rz_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:L8PARAMS_rz_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L8PARAMS_rz_get" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); result = (WORD *)(WORD *) ((arg1)->rz); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_L8PARAMS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_L8PARAMS")) SWIG_fail; InErrorFlag = 0; result = (L8PARAMS *)new L8PARAMS(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l8opt_struc, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_L8PARAMS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L8PARAMS *arg1 = (L8PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_L8PARAMS",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l8opt_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_L8PARAMS" "', argument " "1"" of type '" "L8PARAMS *""'"); } arg1 = reinterpret_cast< L8PARAMS * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *L8PARAMS_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__lcms_l8opt_struc, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_L16PARAMS_nSamples_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_nSamples_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_nSamples_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_nSamples_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->nSamples = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_nSamples_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_nSamples_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_nSamples_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->nSamples); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_nInputs_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_nInputs_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_nInputs_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_nInputs_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->nInputs = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_nInputs_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_nInputs_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_nInputs_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->nInputs); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_nOutputs_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_nOutputs_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_nOutputs_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_nOutputs_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->nOutputs = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_nOutputs_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_nOutputs_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_nOutputs_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->nOutputs); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_Domain_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; WORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned short val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_Domain_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_Domain_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_short(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_Domain_set" "', argument " "2"" of type '" "WORD""'"); } arg2 = static_cast< WORD >(val2); if (arg1) (arg1)->Domain = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_Domain_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_Domain_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_Domain_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (WORD) ((arg1)->Domain); resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta1_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta1_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta1 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta1_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta1); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta2_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta2_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta2 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta2_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta2); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta3_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta3_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta3_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta3_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta3 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta3_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta3_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta3_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta3); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta4_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta4_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta4_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta4_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta4 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta4_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta4_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta4_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta4); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta5_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta5_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta5_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta5_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta5 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta5_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta5_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta5_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta5); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta6_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta6_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta6_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta6_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta6 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta6_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta6_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta6_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta6); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta7_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta7_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta7_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta7_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta7 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta7_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta7_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta7_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta7); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta8_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_opta8_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta8_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "L16PARAMS_opta8_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->opta8 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_opta8_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_opta8_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_opta8_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (int) ((arg1)->opta8); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_Interp3D_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; _cms3DLERP arg2 = (_cms3DLERP) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_Interp3D_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_Interp3D_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "L16PARAMS_Interp3D_set" "', argument " "2"" of type '" "_cms3DLERP""'"); } } if (arg1) (arg1)->Interp3D = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_Interp3D_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cms3DLERP result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_Interp3D_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_Interp3D_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (_cms3DLERP) ((arg1)->Interp3D); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_p8_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; LPL8PARAMS arg2 = (LPL8PARAMS) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:L16PARAMS_p8_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_p8_set" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l8opt_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "L16PARAMS_p8_set" "', argument " "2"" of type '" "LPL8PARAMS""'"); } arg2 = reinterpret_cast< LPL8PARAMS >(argp2); if (arg1) (arg1)->p8 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_L16PARAMS_p8_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPL8PARAMS result; if (!PyArg_ParseTuple(args,(char *)"O:L16PARAMS_p8_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "L16PARAMS_p8_get" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); result = (LPL8PARAMS) ((arg1)->p8); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l8opt_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_L16PARAMS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_L16PARAMS")) SWIG_fail; InErrorFlag = 0; result = (L16PARAMS *)new L16PARAMS(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_L16PARAMS(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; L16PARAMS *arg1 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_L16PARAMS",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_l16params_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_L16PARAMS" "', argument " "1"" of type '" "L16PARAMS *""'"); } arg1 = reinterpret_cast< L16PARAMS * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *L16PARAMS_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__lcms_l16params_struc, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsCalcL16Params(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; LPL16PARAMS arg2 = (LPL16PARAMS) 0 ; int val1 ; int ecode1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsCalcL16Params",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsCalcL16Params" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsCalcL16Params" "', argument " "2"" of type '" "LPL16PARAMS""'"); } arg2 = reinterpret_cast< LPL16PARAMS >(argp2); InErrorFlag = 0; cmsCalcL16Params(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCalcCLUT16Params(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int arg2 ; int arg3 ; LPL16PARAMS arg4 = (LPL16PARAMS) 0 ; int val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsCalcCLUT16Params",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsCalcCLUT16Params" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCalcCLUT16Params" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsCalcCLUT16Params" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsCalcCLUT16Params" "', argument " "4"" of type '" "LPL16PARAMS""'"); } arg4 = reinterpret_cast< LPL16PARAMS >(argp4); InErrorFlag = 0; cmsCalcCLUT16Params(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsCalcCLUT16ParamsEx(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int arg2 ; int arg3 ; LCMSBOOL arg4 ; LPL16PARAMS arg5 = (LPL16PARAMS) 0 ; int val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; int val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; void *argp5 = 0 ; int res5 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOOO:cmsCalcCLUT16ParamsEx",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsCalcCLUT16ParamsEx" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsCalcCLUT16ParamsEx" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsCalcCLUT16ParamsEx" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsCalcCLUT16ParamsEx" "', argument " "4"" of type '" "LCMSBOOL""'"); } arg4 = static_cast< LCMSBOOL >(val4); res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cmsCalcCLUT16ParamsEx" "', argument " "5"" of type '" "LPL16PARAMS""'"); } arg5 = reinterpret_cast< LPL16PARAMS >(argp5); InErrorFlag = 0; cmsCalcCLUT16ParamsEx(arg1,arg2,arg3,arg4,arg5); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLinearInterpLUT16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD arg1 ; WORD *arg2 ; LPL16PARAMS arg3 = (LPL16PARAMS) 0 ; unsigned short val1 ; int ecode1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsLinearInterpLUT16",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsLinearInterpLUT16" "', argument " "1"" of type '" "WORD""'"); } arg1 = static_cast< WORD >(val1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLinearInterpLUT16" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsLinearInterpLUT16" "', argument " "3"" of type '" "LPL16PARAMS""'"); } arg3 = reinterpret_cast< LPL16PARAMS >(argp3); InErrorFlag = 0; result = (WORD)cmsLinearInterpLUT16(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLinearInterpFixed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD arg1 ; WORD *arg2 ; LPL16PARAMS arg3 = (LPL16PARAMS) 0 ; unsigned short val1 ; int ecode1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; Fixed32 result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsLinearInterpFixed",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsLinearInterpFixed" "', argument " "1"" of type '" "WORD""'"); } arg1 = static_cast< WORD >(val1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLinearInterpFixed" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsLinearInterpFixed" "', argument " "3"" of type '" "LPL16PARAMS""'"); } arg3 = reinterpret_cast< LPL16PARAMS >(argp3); InErrorFlag = 0; result = cmsLinearInterpFixed(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new Fixed32(static_cast< const Fixed32& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReverseLinearInterpLUT16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD arg1 ; WORD *arg2 ; LPL16PARAMS arg3 = (LPL16PARAMS) 0 ; unsigned short val1 ; int ecode1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsReverseLinearInterpLUT16",&obj0,&obj1,&obj2)) SWIG_fail; ecode1 = SWIG_AsVal_unsigned_SS_short(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsReverseLinearInterpLUT16" "', argument " "1"" of type '" "WORD""'"); } arg1 = static_cast< WORD >(val1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReverseLinearInterpLUT16" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsReverseLinearInterpLUT16" "', argument " "3"" of type '" "LPL16PARAMS""'"); } arg3 = reinterpret_cast< LPL16PARAMS >(argp3); InErrorFlag = 0; result = (WORD)cmsReverseLinearInterpLUT16(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTrilinearInterp16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; WORD *arg2 ; WORD *arg3 ; LPL16PARAMS arg4 = (LPL16PARAMS) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsTrilinearInterp16",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTrilinearInterp16" "', argument " "1"" of type '" "WORD []""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTrilinearInterp16" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsTrilinearInterp16" "', argument " "3"" of type '" "WORD []""'"); } arg3 = reinterpret_cast< WORD * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsTrilinearInterp16" "', argument " "4"" of type '" "LPL16PARAMS""'"); } arg4 = reinterpret_cast< LPL16PARAMS >(argp4); InErrorFlag = 0; cmsTrilinearInterp16(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTetrahedralInterp16(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; WORD *arg2 ; WORD *arg3 ; LPL16PARAMS arg4 = (LPL16PARAMS) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsTetrahedralInterp16",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTetrahedralInterp16" "', argument " "1"" of type '" "WORD []""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTetrahedralInterp16" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsTetrahedralInterp16" "', argument " "3"" of type '" "WORD []""'"); } arg3 = reinterpret_cast< WORD * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsTetrahedralInterp16" "', argument " "4"" of type '" "LPL16PARAMS""'"); } arg4 = reinterpret_cast< LPL16PARAMS >(argp4); InErrorFlag = 0; cmsTetrahedralInterp16(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsTetrahedralInterp8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; WORD *arg2 ; WORD *arg3 ; LPL16PARAMS arg4 = (LPL16PARAMS) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsTetrahedralInterp8",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsTetrahedralInterp8" "', argument " "1"" of type '" "WORD []""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsTetrahedralInterp8" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsTetrahedralInterp8" "', argument " "3"" of type '" "WORD []""'"); } arg3 = reinterpret_cast< WORD * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsTetrahedralInterp8" "', argument " "4"" of type '" "LPL16PARAMS""'"); } arg4 = reinterpret_cast< LPL16PARAMS >(argp4); InErrorFlag = 0; cmsTetrahedralInterp8(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_wFlags_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_wFlags_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_wFlags_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_wFlags_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->wFlags = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_wFlags_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_wFlags_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_wFlags_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (DWORD) ((arg1)->wFlags); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Matrix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; WMAT3 *arg2 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Matrix_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Matrix_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_Matrix_set" "', argument " "2"" of type '" "WMAT3 *""'"); } arg2 = reinterpret_cast< WMAT3 * >(argp2); if (arg1) (arg1)->Matrix = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Matrix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Matrix_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Matrix_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (WMAT3 *)& ((arg1)->Matrix); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_InputChan_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_InputChan_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_InputChan_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_InputChan_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->InputChan = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_InputChan_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_InputChan_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_InputChan_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->InputChan); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_OutputChan_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_OutputChan_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_OutputChan_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_OutputChan_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->OutputChan = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_OutputChan_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_OutputChan_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_OutputChan_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->OutputChan); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_InputEntries_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_InputEntries_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_InputEntries_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_InputEntries_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->InputEntries = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_InputEntries_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_InputEntries_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_InputEntries_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->InputEntries); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_OutputEntries_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_OutputEntries_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_OutputEntries_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_OutputEntries_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->OutputEntries = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_OutputEntries_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_OutputEntries_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_OutputEntries_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->OutputEntries); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_cLutPoints_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_cLutPoints_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_cLutPoints_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_cLutPoints_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->cLutPoints = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_cLutPoints_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_cLutPoints_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_cLutPoints_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->cLutPoints); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LPWORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L1_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_L1_set" "', argument " "2"" of type '" "LPWORD [16]""'"); } arg2 = reinterpret_cast< LPWORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->L1[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""L1""' of type '""LPWORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L1_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LPWORD *)(LPWORD *) ((arg1)->L1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LPWORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L2_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_L2_set" "', argument " "2"" of type '" "LPWORD [16]""'"); } arg2 = reinterpret_cast< LPWORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->L2[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""L2""' of type '""LPWORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L2_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LPWORD *)(LPWORD *) ((arg1)->L2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_T_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LPWORD arg2 = (LPWORD) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_T_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_T_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_T_set" "', argument " "2"" of type '" "LPWORD""'"); } arg2 = reinterpret_cast< LPWORD >(argp2); if (arg1) (arg1)->T = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_T_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_T_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_T_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LPWORD) ((arg1)->T); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Tsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Tsize_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Tsize_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_Tsize_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->Tsize = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Tsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Tsize_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Tsize_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->Tsize); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_In16params_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_In16params_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_In16params_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_In16params_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->In16params = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_In16params_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_In16params_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_In16params_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (L16PARAMS *)& ((arg1)->In16params); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Out16params_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Out16params_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Out16params_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_Out16params_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->Out16params = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Out16params_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Out16params_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Out16params_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (L16PARAMS *)& ((arg1)->Out16params); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_CLut16params_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_CLut16params_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_CLut16params_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_CLut16params_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->CLut16params = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_CLut16params_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_CLut16params_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_CLut16params_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (L16PARAMS *)& ((arg1)->CLut16params); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Intent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Intent_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Intent_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_Intent_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Intent = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Intent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Intent_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Intent_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (int) ((arg1)->Intent); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Mat3_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; WMAT3 *arg2 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Mat3_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Mat3_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_Mat3_set" "', argument " "2"" of type '" "WMAT3 *""'"); } arg2 = reinterpret_cast< WMAT3 * >(argp2); if (arg1) (arg1)->Mat3 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Mat3_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Mat3_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Mat3_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (WMAT3 *)& ((arg1)->Mat3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Ofs3_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; WVEC3 *arg2 = (WVEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Ofs3_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Ofs3_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_Ofs3_set" "', argument " "2"" of type '" "WVEC3 *""'"); } arg2 = reinterpret_cast< WVEC3 * >(argp2); if (arg1) (arg1)->Ofs3 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Ofs3_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WVEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Ofs3_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Ofs3_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (WVEC3 *)& ((arg1)->Ofs3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WVEC3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L3_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LPWORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L3_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L3_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_L3_set" "', argument " "2"" of type '" "LPWORD [16]""'"); } arg2 = reinterpret_cast< LPWORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->L3[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""L3""' of type '""LPWORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L3_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L3_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L3_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LPWORD *)(LPWORD *) ((arg1)->L3); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L3params_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L3params_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L3params_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_L3params_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->L3params = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L3params_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L3params_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L3params_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (L16PARAMS *)& ((arg1)->L3params); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L3Entries_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L3Entries_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L3Entries_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_L3Entries_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->L3Entries = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L3Entries_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L3Entries_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L3Entries_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->L3Entries); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Mat4_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; WMAT3 *arg2 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Mat4_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Mat4_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_Mat4_set" "', argument " "2"" of type '" "WMAT3 *""'"); } arg2 = reinterpret_cast< WMAT3 * >(argp2); if (arg1) (arg1)->Mat4 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Mat4_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Mat4_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Mat4_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (WMAT3 *)& ((arg1)->Mat4); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Ofs4_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; WVEC3 *arg2 = (WVEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_Ofs4_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Ofs4_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_Ofs4_set" "', argument " "2"" of type '" "WVEC3 *""'"); } arg2 = reinterpret_cast< WVEC3 * >(argp2); if (arg1) (arg1)->Ofs4 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_Ofs4_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WVEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_Ofs4_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_Ofs4_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (WVEC3 *)& ((arg1)->Ofs4); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WVEC3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L4_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LPWORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L4_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L4_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_L4_set" "', argument " "2"" of type '" "LPWORD [16]""'"); } arg2 = reinterpret_cast< LPWORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->L4[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""L4""' of type '""LPWORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L4_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L4_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L4_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LPWORD *)(LPWORD *) ((arg1)->L4); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L4params_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L4params_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L4params_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_L4params_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->L4params = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L4params_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L4params_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L4params_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (L16PARAMS *)& ((arg1)->L4params); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L4Entries_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; unsigned int arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_L4Entries_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L4Entries_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_L4Entries_set" "', argument " "2"" of type '" "unsigned int""'"); } arg2 = static_cast< unsigned int >(val2); if (arg1) (arg1)->L4Entries = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_L4Entries_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_L4Entries_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_L4Entries_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (unsigned int) ((arg1)->L4Entries); resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_FixGrayAxes_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LCMSBOOL arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_FixGrayAxes_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_FixGrayAxes_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_lcms_LUT_struc_FixGrayAxes_set" "', argument " "2"" of type '" "LCMSBOOL""'"); } arg2 = static_cast< LCMSBOOL >(val2); if (arg1) (arg1)->FixGrayAxes = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_FixGrayAxes_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_FixGrayAxes_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_FixGrayAxes_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LCMSBOOL) ((arg1)->FixGrayAxes); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_LCurvesSeed_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; LCMSGAMMAPARAMS (*arg2)[16] ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_lcms_LUT_struc_LCurvesSeed_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_LCurvesSeed_set" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_a_16__LCMSGAMMAPARAMS, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_lcms_LUT_struc_LCurvesSeed_set" "', argument " "2"" of type '" "LCMSGAMMAPARAMS [4][16]""'"); } arg2 = reinterpret_cast< LCMSGAMMAPARAMS (*)[16] >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)4; ++ii) { if (arg2[ii]) { size_t jj = 0; for (; jj < (size_t)16; ++jj) arg1->LCurvesSeed[ii][jj] = arg2[ii][jj]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""LCurvesSeed""' of type '""LCMSGAMMAPARAMS [4][16]""'"); } } } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""LCurvesSeed""' of type '""LCMSGAMMAPARAMS [4][16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__lcms_LUT_struc_LCurvesSeed_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSGAMMAPARAMS (*result)[16] = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_lcms_LUT_struc_LCurvesSeed_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_lcms_LUT_struc_LCurvesSeed_get" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); result = (LCMSGAMMAPARAMS (*)[16])(LCMSGAMMAPARAMS (*)[16]) ((arg1)->LCurvesSeed); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_a_16__LCMSGAMMAPARAMS, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__lcms_LUT_struc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__lcms_LUT_struc")) SWIG_fail; InErrorFlag = 0; result = (_lcms_LUT_struc *)new _lcms_LUT_struc(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__lcms_LUT_struc(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _lcms_LUT_struc *arg1 = (_lcms_LUT_struc *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__lcms_LUT_struc",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__lcms_LUT_struc" "', argument " "1"" of type '" "_lcms_LUT_struc *""'"); } arg1 = reinterpret_cast< _lcms_LUT_struc * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_lcms_LUT_struc_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__lcms_LUT_struc, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__cmsSmoothEndpoints(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPWORD arg1 = (LPWORD) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsSmoothEndpoints",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsSmoothEndpoints" "', argument " "1"" of type '" "LPWORD""'"); } arg1 = reinterpret_cast< LPWORD >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsSmoothEndpoints" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (LCMSBOOL)_cmsSmoothEndpoints(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsCrc32OfGammaTable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; unsigned int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsCrc32OfGammaTable",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsCrc32OfGammaTable" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); InErrorFlag = 0; result = (unsigned int)_cmsCrc32OfGammaTable(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAllocSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; LPSAMPLEDCURVE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsAllocSampledCurve",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsAllocSampledCurve" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = (LPSAMPLEDCURVE)cmsAllocSampledCurve(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeSampledCurve",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFreeSampledCurve" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); InErrorFlag = 0; cmsFreeSampledCurve(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDupSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPSAMPLEDCURVE result; if (!PyArg_ParseTuple(args,(char *)"O:cmsDupSampledCurve",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDupSampledCurve" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); InErrorFlag = 0; result = (LPSAMPLEDCURVE)cmsDupSampledCurve(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsConvertGammaToSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPGAMMATABLE arg1 = (LPGAMMATABLE) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPSAMPLEDCURVE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsConvertGammaToSampledCurve",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsConvertGammaToSampledCurve" "', argument " "1"" of type '" "LPGAMMATABLE""'"); } arg1 = reinterpret_cast< LPGAMMATABLE >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsConvertGammaToSampledCurve" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (LPSAMPLEDCURVE)cmsConvertGammaToSampledCurve(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsConvertSampledCurveToGamma(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsConvertSampledCurveToGamma",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsConvertSampledCurveToGamma" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsConvertSampledCurveToGamma" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (LPGAMMATABLE)cmsConvertSampledCurveToGamma(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsEndpointsOfSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; double *arg2 = (double *) 0 ; double *arg3 = (double *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsEndpointsOfSampledCurve",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsEndpointsOfSampledCurve" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsEndpointsOfSampledCurve" "', argument " "2"" of type '" "double *""'"); } arg2 = reinterpret_cast< double * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_double, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsEndpointsOfSampledCurve" "', argument " "3"" of type '" "double *""'"); } arg3 = reinterpret_cast< double * >(argp3); InErrorFlag = 0; cmsEndpointsOfSampledCurve(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsClampSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; double arg2 ; double arg3 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsClampSampledCurve",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsClampSampledCurve" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsClampSampledCurve" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsClampSampledCurve" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); InErrorFlag = 0; cmsClampSampledCurve(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsSmoothSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsSmoothSampledCurve",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsSmoothSampledCurve" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsSmoothSampledCurve" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); InErrorFlag = 0; result = (LCMSBOOL)cmsSmoothSampledCurve(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsRescaleSampledCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; double arg2 ; double arg3 ; int arg4 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; double val3 ; int ecode3 = 0 ; int val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsRescaleSampledCurve",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsRescaleSampledCurve" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsRescaleSampledCurve" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); ecode3 = SWIG_AsVal_double(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsRescaleSampledCurve" "', argument " "3"" of type '" "double""'"); } arg3 = static_cast< double >(val3); ecode4 = SWIG_AsVal_int(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsRescaleSampledCurve" "', argument " "4"" of type '" "int""'"); } arg4 = static_cast< int >(val4); InErrorFlag = 0; cmsRescaleSampledCurve(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsJoinSampledCurves(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPSAMPLEDCURVE arg1 = (LPSAMPLEDCURVE) 0 ; LPSAMPLEDCURVE arg2 = (LPSAMPLEDCURVE) 0 ; int arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LPSAMPLEDCURVE result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsJoinSampledCurves",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsJoinSampledCurves" "', argument " "1"" of type '" "LPSAMPLEDCURVE""'"); } arg1 = reinterpret_cast< LPSAMPLEDCURVE >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsJoinSampledCurves" "', argument " "2"" of type '" "LPSAMPLEDCURVE""'"); } arg2 = reinterpret_cast< LPSAMPLEDCURVE >(argp2); ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsJoinSampledCurves" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); InErrorFlag = 0; result = (LPSAMPLEDCURVE)cmsJoinSampledCurves(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_SAMPLEDCURVE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_dwFlags_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MATSHAPER_dwFlags_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_dwFlags_set" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "MATSHAPER_dwFlags_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->dwFlags = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_dwFlags_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:MATSHAPER_dwFlags_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_dwFlags_get" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); result = (DWORD) ((arg1)->dwFlags); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_Matrix_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; WMAT3 *arg2 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MATSHAPER_Matrix_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_Matrix_set" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MATSHAPER_Matrix_set" "', argument " "2"" of type '" "WMAT3 *""'"); } arg2 = reinterpret_cast< WMAT3 * >(argp2); if (arg1) (arg1)->Matrix = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_Matrix_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MATSHAPER_Matrix_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_Matrix_get" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); result = (WMAT3 *)& ((arg1)->Matrix); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_p16_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MATSHAPER_p16_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_p16_set" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MATSHAPER_p16_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->p16 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_p16_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MATSHAPER_p16_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_p16_get" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); result = (L16PARAMS *)& ((arg1)->p16); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_L_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; LPWORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MATSHAPER_L_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_L_set" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MATSHAPER_L_set" "', argument " "2"" of type '" "LPWORD [3]""'"); } arg2 = reinterpret_cast< LPWORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->L[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""L""' of type '""LPWORD [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_L_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MATSHAPER_L_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_L_get" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); result = (LPWORD *)(LPWORD *) ((arg1)->L); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_p2_16_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; L16PARAMS *arg2 = (L16PARAMS *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MATSHAPER_p2_16_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_p2_16_set" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MATSHAPER_p2_16_set" "', argument " "2"" of type '" "L16PARAMS *""'"); } arg2 = reinterpret_cast< L16PARAMS * >(argp2); if (arg1) (arg1)->p2_16 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_p2_16_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; L16PARAMS *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MATSHAPER_p2_16_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_p2_16_get" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); result = (L16PARAMS *)& ((arg1)->p2_16); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_l16params_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_L2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; LPWORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:MATSHAPER_L2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_L2_set" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "MATSHAPER_L2_set" "', argument " "2"" of type '" "LPWORD [3]""'"); } arg2 = reinterpret_cast< LPWORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)3; ++ii) arg1->L2[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""L2""' of type '""LPWORD [3]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_MATSHAPER_L2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPWORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:MATSHAPER_L2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "MATSHAPER_L2_get" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); result = (LPWORD *)(LPWORD *) ((arg1)->L2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_MATSHAPER(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_MATSHAPER")) SWIG_fail; InErrorFlag = 0; result = (MATSHAPER *)new MATSHAPER(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MATSHAPER, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_MATSHAPER(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; MATSHAPER *arg1 = (MATSHAPER *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_MATSHAPER",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MATSHAPER, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_MATSHAPER" "', argument " "1"" of type '" "MATSHAPER *""'"); } arg1 = reinterpret_cast< MATSHAPER * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *MATSHAPER_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_MATSHAPER, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_cmsAllocMatShaper(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPGAMMATABLE *arg2 ; DWORD arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; unsigned long val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsAllocMatShaper",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAllocMatShaper" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAllocMatShaper" "', argument " "2"" of type '" "LPGAMMATABLE []""'"); } arg2 = reinterpret_cast< LPGAMMATABLE * >(argp2); ecode3 = SWIG_AsVal_unsigned_SS_long(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsAllocMatShaper" "', argument " "3"" of type '" "DWORD""'"); } arg3 = static_cast< DWORD >(val3); InErrorFlag = 0; result = cmsAllocMatShaper(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAllocMatShaper2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPGAMMATABLE *arg2 ; LPGAMMATABLE *arg3 ; DWORD arg4 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsAllocMatShaper2",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAllocMatShaper2" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAllocMatShaper2" "', argument " "2"" of type '" "LPGAMMATABLE []""'"); } arg2 = reinterpret_cast< LPGAMMATABLE * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_GAMMATABLE, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsAllocMatShaper2" "', argument " "3"" of type '" "LPGAMMATABLE []""'"); } arg3 = reinterpret_cast< LPGAMMATABLE * >(argp3); ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsAllocMatShaper2" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); InErrorFlag = 0; result = cmsAllocMatShaper2(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeMatShaper(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMATSHAPER arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeMatShaper",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPMATSHAPER, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFreeMatShaper" "', argument " "1"" of type '" "LPMATSHAPER""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsFreeMatShaper" "', argument " "1"" of type '" "LPMATSHAPER""'"); } else { LPMATSHAPER * temp = reinterpret_cast< LPMATSHAPER * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; cmsFreeMatShaper(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsEvalMatShaper(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMATSHAPER arg1 ; WORD *arg2 ; WORD *arg3 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsEvalMatShaper",&obj0,&obj1,&obj2)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPMATSHAPER, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsEvalMatShaper" "', argument " "1"" of type '" "LPMATSHAPER""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsEvalMatShaper" "', argument " "1"" of type '" "LPMATSHAPER""'"); } else { LPMATSHAPER * temp = reinterpret_cast< LPMATSHAPER * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsEvalMatShaper" "', argument " "2"" of type '" "WORD []""'"); } arg2 = reinterpret_cast< WORD * >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsEvalMatShaper" "', argument " "3"" of type '" "WORD []""'"); } arg3 = reinterpret_cast< WORD * >(argp3); InErrorFlag = 0; cmsEvalMatShaper(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCMatrixRGB2XYZ(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReadICCMatrixRGB2XYZ",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCMatrixRGB2XYZ" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCMatrixRGB2XYZ" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsReadICCMatrixRGB2XYZ(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsBuildInputMatrixShaper(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"O:cmsBuildInputMatrixShaper",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsBuildInputMatrixShaper" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsBuildInputMatrixShaper(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsBuildOutputMatrixShaper(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int res1 ; PyObject * obj0 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"O:cmsBuildOutputMatrixShaper",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsBuildOutputMatrixShaper" "', argument " "1"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = cmsBuildOutputMatrixShaper(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAdaptationMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPMAT3 arg2 = (LPMAT3) 0 ; LPcmsCIEXYZ arg3 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg4 = (LPcmsCIEXYZ) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsAdaptationMatrix",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAdaptationMatrix" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAdaptationMatrix" "', argument " "2"" of type '" "LPMAT3""'"); } arg2 = reinterpret_cast< LPMAT3 >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsAdaptationMatrix" "', argument " "3"" of type '" "LPcmsCIEXYZ""'"); } arg3 = reinterpret_cast< LPcmsCIEXYZ >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsAdaptationMatrix" "', argument " "4"" of type '" "LPcmsCIEXYZ""'"); } arg4 = reinterpret_cast< LPcmsCIEXYZ >(argp4); InErrorFlag = 0; result = (LCMSBOOL)cmsAdaptationMatrix(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAdaptMatrixToD50(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPcmsCIExyY arg2 = (LPcmsCIExyY) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsAdaptMatrixToD50",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAdaptMatrixToD50" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAdaptMatrixToD50" "', argument " "2"" of type '" "LPcmsCIExyY""'"); } arg2 = reinterpret_cast< LPcmsCIExyY >(argp2); InErrorFlag = 0; result = (LCMSBOOL)cmsAdaptMatrixToD50(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAdaptMatrixFromD50(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; LPcmsCIExyY arg2 = (LPcmsCIExyY) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsAdaptMatrixFromD50",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAdaptMatrixFromD50" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIExyY, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAdaptMatrixFromD50" "', argument " "2"" of type '" "LPcmsCIExyY""'"); } arg2 = reinterpret_cast< LPcmsCIExyY >(argp2); InErrorFlag = 0; result = (LCMSBOOL)cmsAdaptMatrixFromD50(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadChromaticAdaptationMatrix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPMAT3 arg1 = (LPMAT3) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OO:cmsReadChromaticAdaptationMatrix",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadChromaticAdaptationMatrix" "', argument " "1"" of type '" "LPMAT3""'"); } arg1 = reinterpret_cast< LPMAT3 >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadChromaticAdaptationMatrix" "', argument " "2"" of type '" "cmsHPROFILE""'"); } InErrorFlag = 0; result = (LCMSBOOL)cmsReadChromaticAdaptationMatrix(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsXYZ2LabEncoded(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsXYZ2LabEncoded",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsXYZ2LabEncoded" "', argument " "1"" of type '" "WORD [3]""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsXYZ2LabEncoded" "', argument " "2"" of type '" "WORD [3]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); InErrorFlag = 0; cmsXYZ2LabEncoded(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsLab2XYZEncoded(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; WORD *arg1 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:cmsLab2XYZEncoded",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsLab2XYZEncoded" "', argument " "1"" of type '" "WORD [3]""'"); } arg1 = reinterpret_cast< WORD * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsLab2XYZEncoded" "', argument " "2"" of type '" "WORD [3]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); InErrorFlag = 0; cmsLab2XYZEncoded(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsIdentifyWhitePoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; LPcmsCIEXYZ arg2 = (LPcmsCIEXYZ) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsIdentifyWhitePoint",&obj0,&obj1)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsIdentifyWhitePoint" "', argument " "1"" of type '" "char *""'"); } arg1 = reinterpret_cast< char * >(buf1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsIdentifyWhitePoint" "', argument " "2"" of type '" "LPcmsCIEXYZ""'"); } arg2 = reinterpret_cast< LPcmsCIEXYZ >(argp2); InErrorFlag = 0; _cmsIdentifyWhitePoint(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap__cmsQuantizeVal(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; double arg1 ; int arg2 ; double val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsQuantizeVal",&obj0,&obj1)) SWIG_fail; ecode1 = SWIG_AsVal_double(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "_cmsQuantizeVal" "', argument " "1"" of type '" "double""'"); } arg1 = static_cast< double >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsQuantizeVal" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (WORD)_cmsQuantizeVal(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAllocNamedColorList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; LPcmsNAMEDCOLORLIST result; if (!PyArg_ParseTuple(args,(char *)"O:cmsAllocNamedColorList",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsAllocNamedColorList" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); InErrorFlag = 0; result = cmsAllocNamedColorList(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new LPcmsNAMEDCOLORLIST(static_cast< const LPcmsNAMEDCOLORLIST& >(result))), SWIGTYPE_p_LPcmsNAMEDCOLORLIST, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsReadICCnamedColorList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg3 ; int res1 ; int res2 ; void *argp3 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOO:cmsReadICCnamedColorList",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsReadICCnamedColorList" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsReadICCnamedColorList" "', argument " "2"" of type '" "cmsHPROFILE""'"); } { res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsReadICCnamedColorList" "', argument " "3"" of type '" "icTagSignature""'"); } if (!argp3) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsReadICCnamedColorList" "', argument " "3"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp3); arg3 = *temp; if (SWIG_IsNewObj(res3)) delete temp; } } InErrorFlag = 0; result = (int)cmsReadICCnamedColorList(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsFreeNamedColorList(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsNAMEDCOLORLIST arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:cmsFreeNamedColorList",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_LPcmsNAMEDCOLORLIST, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsFreeNamedColorList" "', argument " "1"" of type '" "LPcmsNAMEDCOLORLIST""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsFreeNamedColorList" "', argument " "1"" of type '" "LPcmsNAMEDCOLORLIST""'"); } else { LPcmsNAMEDCOLORLIST * temp = reinterpret_cast< LPcmsNAMEDCOLORLIST * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; cmsFreeNamedColorList(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsAppendNamedColor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; char *arg2 = (char *) 0 ; WORD *arg3 ; WORD *arg4 ; int res1 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsAppendNamedColor",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsAppendNamedColor" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsAppendNamedColor" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsAppendNamedColor" "', argument " "3"" of type '" "WORD [3]""'"); } arg3 = reinterpret_cast< WORD * >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsAppendNamedColor" "', argument " "4"" of type '" "WORD [16]""'"); } arg4 = reinterpret_cast< WORD * >(argp4); InErrorFlag = 0; result = (LCMSBOOL)cmsAppendNamedColor(arg1,(char const *)arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_stream_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *arg2 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_stream_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_stream_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_stream_set" "', argument " "2"" of type '" "void *""'"); } if (arg1) (arg1)->stream = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_stream_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; void *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_stream_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_stream_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (void *) ((arg1)->stream); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_DeviceClass_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icProfileClassSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_DeviceClass_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_DeviceClass_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icProfileClassSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_DeviceClass_set" "', argument " "2"" of type '" "icProfileClassSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_DeviceClass_set" "', argument " "2"" of type '" "icProfileClassSignature""'"); } else { icProfileClassSignature * temp = reinterpret_cast< icProfileClassSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->DeviceClass = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_DeviceClass_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icProfileClassSignature result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_DeviceClass_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_DeviceClass_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->DeviceClass); resultobj = SWIG_NewPointerObj((new icProfileClassSignature(static_cast< const icProfileClassSignature& >(result))), SWIGTYPE_p_icProfileClassSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_ColorSpace_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icColorSpaceSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_ColorSpace_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_ColorSpace_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_ColorSpace_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_ColorSpace_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->ColorSpace = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_ColorSpace_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_ColorSpace_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_ColorSpace_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->ColorSpace); resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_PCS_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icColorSpaceSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_PCS_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_PCS_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_PCS_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_PCS_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->PCS = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_PCS_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_PCS_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_PCS_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->PCS); resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_RenderingIntent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icRenderingIntent arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_RenderingIntent_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_RenderingIntent_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icRenderingIntent, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_RenderingIntent_set" "', argument " "2"" of type '" "icRenderingIntent""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_RenderingIntent_set" "', argument " "2"" of type '" "icRenderingIntent""'"); } else { icRenderingIntent * temp = reinterpret_cast< icRenderingIntent * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->RenderingIntent = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_RenderingIntent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icRenderingIntent result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_RenderingIntent_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_RenderingIntent_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->RenderingIntent); resultobj = SWIG_NewPointerObj((new icRenderingIntent(static_cast< const icRenderingIntent& >(result))), SWIGTYPE_p_icRenderingIntent, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_flags_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_flags_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_flags_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_flags_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_flags_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->flags = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_flags_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_flags_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_flags_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->flags); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_attributes_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_attributes_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_attributes_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_attributes_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_attributes_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->attributes = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_attributes_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_attributes_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_attributes_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->attributes); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Illuminant_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Illuminant_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Illuminant_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_Illuminant_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->Illuminant = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Illuminant_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Illuminant_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Illuminant_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->Illuminant); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Version_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icUInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Version_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Version_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icUInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_Version_set" "', argument " "2"" of type '" "icUInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_Version_set" "', argument " "2"" of type '" "icUInt32Number""'"); } else { icUInt32Number * temp = reinterpret_cast< icUInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->Version = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Version_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icUInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Version_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Version_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->Version); resultobj = SWIG_NewPointerObj((new icUInt32Number(static_cast< const icUInt32Number& >(result))), SWIGTYPE_p_icUInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_ChromaticAdaptation_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; MAT3 *arg2 = (MAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_ChromaticAdaptation_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_ChromaticAdaptation_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_ChromaticAdaptation_set" "', argument " "2"" of type '" "MAT3 *""'"); } arg2 = reinterpret_cast< MAT3 * >(argp2); if (arg1) (arg1)->ChromaticAdaptation = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_ChromaticAdaptation_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; MAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_ChromaticAdaptation_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_ChromaticAdaptation_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (MAT3 *)& ((arg1)->ChromaticAdaptation); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_MAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_MediaWhitePoint_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_MediaWhitePoint_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_MediaWhitePoint_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_MediaWhitePoint_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->MediaWhitePoint = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_MediaWhitePoint_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_MediaWhitePoint_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_MediaWhitePoint_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->MediaWhitePoint); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_MediaBlackPoint_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; cmsCIEXYZ *arg2 = (cmsCIEXYZ *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_MediaBlackPoint_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_MediaBlackPoint_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_MediaBlackPoint_set" "', argument " "2"" of type '" "cmsCIEXYZ *""'"); } arg2 = reinterpret_cast< cmsCIEXYZ * >(argp2); if (arg1) (arg1)->MediaBlackPoint = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_MediaBlackPoint_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsCIEXYZ *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_MediaBlackPoint_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_MediaBlackPoint_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (cmsCIEXYZ *)& ((arg1)->MediaBlackPoint); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_ProfileID_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; BYTE *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_ProfileID_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_ProfileID_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_char, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_ProfileID_set" "', argument " "2"" of type '" "BYTE [16]""'"); } arg2 = reinterpret_cast< BYTE * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->ProfileID[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""ProfileID""' of type '""BYTE [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_ProfileID_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; BYTE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_ProfileID_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_ProfileID_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (BYTE *)(BYTE *) ((arg1)->ProfileID); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_char, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagCount_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icInt32Number arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_TagCount_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagCount_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_TagCount_set" "', argument " "2"" of type '" "icInt32Number""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_TagCount_set" "', argument " "2"" of type '" "icInt32Number""'"); } else { icInt32Number * temp = reinterpret_cast< icInt32Number * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->TagCount = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagCount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icInt32Number result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_TagCount_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagCount_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->TagCount); resultobj = SWIG_NewPointerObj((new icInt32Number(static_cast< const icInt32Number& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagNames_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; icTagSignature *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_TagNames_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagNames_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_icTagSignature, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_TagNames_set" "', argument " "2"" of type '" "icTagSignature [100]""'"); } arg2 = reinterpret_cast< icTagSignature * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)100; ++ii) arg1->TagNames[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""TagNames""' of type '""icTagSignature [100]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagNames_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icTagSignature *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_TagNames_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagNames_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (icTagSignature *)(icTagSignature *) ((arg1)->TagNames); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icTagSignature, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagSizes_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; size_t *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_TagSizes_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagSizes_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_size_t, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_TagSizes_set" "', argument " "2"" of type '" "size_t [100]""'"); } arg2 = reinterpret_cast< size_t * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)100; ++ii) arg1->TagSizes[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""TagSizes""' of type '""size_t [100]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagSizes_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; size_t *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_TagSizes_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagSizes_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (size_t *)(size_t *) ((arg1)->TagSizes); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_size_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagOffsets_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; size_t *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_TagOffsets_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagOffsets_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_size_t, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_TagOffsets_set" "', argument " "2"" of type '" "size_t [100]""'"); } arg2 = reinterpret_cast< size_t * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)100; ++ii) arg1->TagOffsets[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""TagOffsets""' of type '""size_t [100]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagOffsets_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; size_t *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_TagOffsets_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagOffsets_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (size_t *)(size_t *) ((arg1)->TagOffsets); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_size_t, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagPtrs_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; LPVOID *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_TagPtrs_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagPtrs_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_void, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_TagPtrs_set" "', argument " "2"" of type '" "LPVOID [100]""'"); } arg2 = reinterpret_cast< LPVOID * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)100; ++ii) arg1->TagPtrs[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""TagPtrs""' of type '""LPVOID [100]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_TagPtrs_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPVOID *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_TagPtrs_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_TagPtrs_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (LPVOID *)(LPVOID *) ((arg1)->TagPtrs); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_PhysicalFile_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; char *arg2 ; void *argp1 = 0 ; int res1 = 0 ; char temp2[(256)] ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_PhysicalFile_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_PhysicalFile_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); res2 = SWIG_AsCharArray(obj1, temp2, (256)); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_PhysicalFile_set" "', argument " "2"" of type '" "char [(256)]""'"); } arg2 = reinterpret_cast< char * >(temp2); if (arg2) memcpy(arg1->PhysicalFile,arg2,(256)*sizeof(char)); else memset(arg1->PhysicalFile,0,(256)*sizeof(char)); resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_PhysicalFile_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; char *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_PhysicalFile_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_PhysicalFile_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (char *)(char *) ((arg1)->PhysicalFile); { size_t size = (256); while (size && (result[size - 1] == '\0')) --size; resultobj = SWIG_FromCharPtrAndSize(result, size); } return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_IsWrite_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; LCMSBOOL arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_IsWrite_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_IsWrite_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "LCMSICCPROFILE_IsWrite_set" "', argument " "2"" of type '" "LCMSBOOL""'"); } arg2 = static_cast< LCMSBOOL >(val2); if (arg1) (arg1)->IsWrite = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_IsWrite_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_IsWrite_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_IsWrite_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (LCMSBOOL) ((arg1)->IsWrite); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_SaveAs8Bits_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; LCMSBOOL arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_SaveAs8Bits_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_SaveAs8Bits_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "LCMSICCPROFILE_SaveAs8Bits_set" "', argument " "2"" of type '" "LCMSBOOL""'"); } arg2 = static_cast< LCMSBOOL >(val2); if (arg1) (arg1)->SaveAs8Bits = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_SaveAs8Bits_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_SaveAs8Bits_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_SaveAs8Bits_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (LCMSBOOL) ((arg1)->SaveAs8Bits); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Created_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; tm arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Created_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Created_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_tm, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "LCMSICCPROFILE_Created_set" "', argument " "2"" of type '" "tm""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "LCMSICCPROFILE_Created_set" "', argument " "2"" of type '" "tm""'"); } else { tm * temp = reinterpret_cast< tm * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->Created = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Created_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; tm result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Created_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Created_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->Created); resultobj = SWIG_NewPointerObj((new tm(static_cast< const tm& >(result))), SWIGTYPE_p_tm, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Read_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; size_t (*arg2)(void *,size_t,size_t,_lcms_iccprofile_struct *) = (size_t (*)(void *,size_t,size_t,_lcms_iccprofile_struct *)) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Read_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Read_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "LCMSICCPROFILE_Read_set" "', argument " "2"" of type '" "size_t (*)(void *,size_t,size_t,_lcms_iccprofile_struct *)""'"); } } if (arg1) (arg1)->Read = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Read_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; size_t (*result)(void *,size_t,size_t,_lcms_iccprofile_struct *) = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Read_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Read_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (size_t (*)(void *,size_t,size_t,_lcms_iccprofile_struct *)) ((arg1)->Read); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Seek_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; LCMSBOOL (*arg2)(_lcms_iccprofile_struct *,size_t) = (LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t)) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Seek_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Seek_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__lcms_iccprofile_struct_size_t__int); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "LCMSICCPROFILE_Seek_set" "', argument " "2"" of type '" "LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t)""'"); } } if (arg1) (arg1)->Seek = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Seek_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL (*result)(_lcms_iccprofile_struct *,size_t) = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Seek_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Seek_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t)) ((arg1)->Seek); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__lcms_iccprofile_struct_size_t__int); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Close_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; LCMSBOOL (*arg2)(_lcms_iccprofile_struct *) = (LCMSBOOL (*)(_lcms_iccprofile_struct *)) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Close_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Close_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__lcms_iccprofile_struct__int); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "LCMSICCPROFILE_Close_set" "', argument " "2"" of type '" "LCMSBOOL (*)(_lcms_iccprofile_struct *)""'"); } } if (arg1) (arg1)->Close = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Close_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL (*result)(_lcms_iccprofile_struct *) = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Close_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Close_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (LCMSBOOL (*)(_lcms_iccprofile_struct *)) ((arg1)->Close); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__lcms_iccprofile_struct__int); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Tell_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; size_t (*arg2)(_lcms_iccprofile_struct *) = (size_t (*)(_lcms_iccprofile_struct *)) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Tell_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Tell_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__lcms_iccprofile_struct__size_t); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "LCMSICCPROFILE_Tell_set" "', argument " "2"" of type '" "size_t (*)(_lcms_iccprofile_struct *)""'"); } } if (arg1) (arg1)->Tell = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Tell_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; size_t (*result)(_lcms_iccprofile_struct *) = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Tell_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Tell_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (size_t (*)(_lcms_iccprofile_struct *)) ((arg1)->Tell); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__lcms_iccprofile_struct__size_t); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Write_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; LCMSBOOL (*arg2)(_lcms_iccprofile_struct *,size_t,LPVOID) = (LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t,LPVOID)) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_Write_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Write_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__lcms_iccprofile_struct_size_t_p_void__int); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "LCMSICCPROFILE_Write_set" "', argument " "2"" of type '" "LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t,LPVOID)""'"); } } if (arg1) (arg1)->Write = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_Write_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL (*result)(_lcms_iccprofile_struct *,size_t,LPVOID) = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_Write_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_Write_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = (LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t,LPVOID)) ((arg1)->Write); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__lcms_iccprofile_struct_size_t_p_void__int); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_UsedSpace_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:LCMSICCPROFILE_UsedSpace_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_UsedSpace_set" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "LCMSICCPROFILE_UsedSpace_set" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); if (arg1) (arg1)->UsedSpace = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_LCMSICCPROFILE_UsedSpace_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; size_t result; if (!PyArg_ParseTuple(args,(char *)"O:LCMSICCPROFILE_UsedSpace_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "LCMSICCPROFILE_UsedSpace_get" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); result = ((arg1)->UsedSpace); resultobj = SWIG_From_size_t(static_cast< size_t >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_LCMSICCPROFILE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new_LCMSICCPROFILE")) SWIG_fail; InErrorFlag = 0; result = (LCMSICCPROFILE *)new LCMSICCPROFILE(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_iccprofile_struct, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_LCMSICCPROFILE(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LCMSICCPROFILE *arg1 = (LCMSICCPROFILE *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_LCMSICCPROFILE",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_LCMSICCPROFILE" "', argument " "1"" of type '" "LCMSICCPROFILE *""'"); } arg1 = reinterpret_cast< LCMSICCPROFILE * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *LCMSICCPROFILE_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__lcms_iccprofile_struct, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__cmsCreateProfilePlaceholder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)":_cmsCreateProfilePlaceholder")) SWIG_fail; InErrorFlag = 0; result = (cmsHPROFILE)_cmsCreateProfilePlaceholder(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsSearchTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLCMSICCPROFILE arg1 = (LPLCMSICCPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; LCMSBOOL arg3 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; int val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; icInt32Number result; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsSearchTag",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsSearchTag" "', argument " "1"" of type '" "LPLCMSICCPROFILE""'"); } arg1 = reinterpret_cast< LPLCMSICCPROFILE >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsSearchTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsSearchTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_cmsSearchTag" "', argument " "3"" of type '" "LCMSBOOL""'"); } arg3 = static_cast< LCMSBOOL >(val3); InErrorFlag = 0; result = _cmsSearchTag(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj((new icInt32Number(static_cast< const icInt32Number& >(result))), SWIGTYPE_p_icInt32Number, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsInitTag(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLCMSICCPROFILE arg1 = (LPLCMSICCPROFILE) 0 ; SwigValueWrapper< icTagSignature > arg2 ; size_t arg3 ; void *arg4 = (void *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; size_t val3 ; int ecode3 = 0 ; int res4 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LPVOID result; if (!PyArg_ParseTuple(args,(char *)"OOOO:_cmsInitTag",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsInitTag" "', argument " "1"" of type '" "LPLCMSICCPROFILE""'"); } arg1 = reinterpret_cast< LPLCMSICCPROFILE >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icTagSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsInitTag" "', argument " "2"" of type '" "icTagSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsInitTag" "', argument " "2"" of type '" "icTagSignature""'"); } else { icTagSignature * temp = reinterpret_cast< icTagSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } ecode3 = SWIG_AsVal_size_t(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_cmsInitTag" "', argument " "3"" of type '" "size_t""'"); } arg3 = static_cast< size_t >(val3); res4 = SWIG_ConvertPtr(obj3,SWIG_as_voidptrptr(&arg4), 0, 0); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "_cmsInitTag" "', argument " "4"" of type '" "void const *""'"); } InErrorFlag = 0; result = (LPVOID)_cmsInitTag(arg1,arg2,arg3,(void const *)arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsCreateProfileFromFilePlaceholder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject * obj0 = 0 ; LPLCMSICCPROFILE result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsCreateProfileFromFilePlaceholder",&obj0)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsCreateProfileFromFilePlaceholder" "', argument " "1"" of type '" "char const *""'"); } arg1 = reinterpret_cast< char * >(buf1); InErrorFlag = 0; result = (LPLCMSICCPROFILE)_cmsCreateProfileFromFilePlaceholder((char const *)arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap__cmsCreateProfileFromMemPlaceholder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPVOID arg1 = (LPVOID) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLCMSICCPROFILE result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsCreateProfileFromMemPlaceholder",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsCreateProfileFromMemPlaceholder" "', argument " "1"" of type '" "LPVOID""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsCreateProfileFromMemPlaceholder" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (LPLCMSICCPROFILE)_cmsCreateProfileFromMemPlaceholder(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsSetSaveToDisk(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLCMSICCPROFILE arg1 = (LPLCMSICCPROFILE) 0 ; char *arg2 = (char *) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; char *buf2 = 0 ; int alloc2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsSetSaveToDisk",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsSetSaveToDisk" "', argument " "1"" of type '" "LPLCMSICCPROFILE""'"); } arg1 = reinterpret_cast< LPLCMSICCPROFILE >(argp1); res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsSetSaveToDisk" "', argument " "2"" of type '" "char const *""'"); } arg2 = reinterpret_cast< char * >(buf2); InErrorFlag = 0; _cmsSetSaveToDisk(arg1,(char const *)arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return resultobj; fail: if (alloc2 == SWIG_NEWOBJ) delete[] buf2; return NULL; } SWIGINTERN PyObject *_wrap__cmsSetSaveToMemory(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLCMSICCPROFILE arg1 = (LPLCMSICCPROFILE) 0 ; LPVOID arg2 = (LPVOID) 0 ; size_t arg3 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; size_t val3 ; int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsSetSaveToMemory",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_iccprofile_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsSetSaveToMemory" "', argument " "1"" of type '" "LPLCMSICCPROFILE""'"); } arg1 = reinterpret_cast< LPLCMSICCPROFILE >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsSetSaveToMemory" "', argument " "2"" of type '" "LPVOID""'"); } ecode3 = SWIG_AsVal_size_t(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "_cmsSetSaveToMemory" "', argument " "3"" of type '" "size_t""'"); } arg3 = static_cast< size_t >(val3); InErrorFlag = 0; _cmsSetSaveToMemory(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_InputFormat_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_InputFormat_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_InputFormat_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_InputFormat_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->InputFormat = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_InputFormat_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_InputFormat_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_InputFormat_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (DWORD) ((arg1)->InputFormat); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_OutputFormat_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_OutputFormat_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_OutputFormat_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_OutputFormat_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->OutputFormat = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_OutputFormat_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_OutputFormat_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_OutputFormat_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (DWORD) ((arg1)->OutputFormat); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_StrideIn_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_StrideIn_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_StrideIn_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_StrideIn_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->StrideIn = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_StrideIn_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_StrideIn_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_StrideIn_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (DWORD) ((arg1)->StrideIn); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_StrideOut_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_StrideOut_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_StrideOut_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_StrideOut_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->StrideOut = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_StrideOut_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_StrideOut_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_StrideOut_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (DWORD) ((arg1)->StrideOut); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Intent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Intent_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Intent_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_Intent_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Intent = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Intent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Intent_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Intent_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (int) ((arg1)->Intent); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ProofIntent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_ProofIntent_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ProofIntent_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_ProofIntent_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->ProofIntent = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ProofIntent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_ProofIntent_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ProofIntent_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (int) ((arg1)->ProofIntent); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_DoGamutCheck_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_DoGamutCheck_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_DoGamutCheck_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_DoGamutCheck_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->DoGamutCheck = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_DoGamutCheck_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_DoGamutCheck_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_DoGamutCheck_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (int) ((arg1)->DoGamutCheck); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_InputProfile_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_InputProfile_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_InputProfile_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_InputProfile_set" "', argument " "2"" of type '" "cmsHPROFILE""'"); } if (arg1) (arg1)->InputProfile = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_InputProfile_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_InputProfile_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_InputProfile_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (cmsHPROFILE) ((arg1)->InputProfile); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_OutputProfile_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_OutputProfile_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_OutputProfile_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_OutputProfile_set" "', argument " "2"" of type '" "cmsHPROFILE""'"); } if (arg1) (arg1)->OutputProfile = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_OutputProfile_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_OutputProfile_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_OutputProfile_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (cmsHPROFILE) ((arg1)->OutputProfile); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_PreviewProfile_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_PreviewProfile_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_PreviewProfile_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, SWIG_POINTER_DISOWN); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_PreviewProfile_set" "', argument " "2"" of type '" "cmsHPROFILE""'"); } if (arg1) (arg1)->PreviewProfile = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_PreviewProfile_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; cmsHPROFILE result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_PreviewProfile_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_PreviewProfile_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (cmsHPROFILE) ((arg1)->PreviewProfile); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_void, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_EntryColorSpace_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; icColorSpaceSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_EntryColorSpace_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_EntryColorSpace_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_EntryColorSpace_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTRANSFORM_EntryColorSpace_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->EntryColorSpace = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_EntryColorSpace_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_EntryColorSpace_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_EntryColorSpace_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = ((arg1)->EntryColorSpace); resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ExitColorSpace_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; icColorSpaceSignature arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_ExitColorSpace_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ExitColorSpace_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_ExitColorSpace_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTRANSFORM_ExitColorSpace_set" "', argument " "2"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->ExitColorSpace = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ExitColorSpace_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; icColorSpaceSignature result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_ExitColorSpace_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ExitColorSpace_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = ((arg1)->ExitColorSpace); resultobj = SWIG_NewPointerObj((new icColorSpaceSignature(static_cast< const icColorSpaceSignature& >(result))), SWIGTYPE_p_icColorSpaceSignature, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_dwOriginalFlags_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_dwOriginalFlags_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_dwOriginalFlags_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_dwOriginalFlags_set" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); if (arg1) (arg1)->dwOriginalFlags = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_dwOriginalFlags_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; DWORD result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_dwOriginalFlags_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_dwOriginalFlags_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (DWORD) ((arg1)->dwOriginalFlags); resultobj = SWIG_From_unsigned_SS_long(static_cast< unsigned long >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_m1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; WMAT3 *arg2 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_m1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_m1_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_m1_set" "', argument " "2"" of type '" "WMAT3 *""'"); } arg2 = reinterpret_cast< WMAT3 * >(argp2); if (arg1) (arg1)->m1 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_m1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_m1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_m1_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (WMAT3 *)& ((arg1)->m1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_m2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; WMAT3 *arg2 = (WMAT3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_m2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_m2_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WMAT3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_m2_set" "', argument " "2"" of type '" "WMAT3 *""'"); } arg2 = reinterpret_cast< WMAT3 * >(argp2); if (arg1) (arg1)->m2 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_m2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WMAT3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_m2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_m2_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (WMAT3 *)& ((arg1)->m2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WMAT3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_of1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; WVEC3 *arg2 = (WVEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_of1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_of1_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_of1_set" "', argument " "2"" of type '" "WVEC3 *""'"); } arg2 = reinterpret_cast< WVEC3 * >(argp2); if (arg1) (arg1)->of1 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_of1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WVEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_of1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_of1_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (WVEC3 *)& ((arg1)->of1); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WVEC3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_of2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; WVEC3 *arg2 = (WVEC3 *) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_of2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_of2_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_WVEC3, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_of2_set" "', argument " "2"" of type '" "WVEC3 *""'"); } arg2 = reinterpret_cast< WVEC3 * >(argp2); if (arg1) (arg1)->of2 = *arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_of2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WVEC3 *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_of2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_of2_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (WVEC3 *)& ((arg1)->of2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_WVEC3, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_xform_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsCOLORCALLBACKFN arg2 = (_cmsCOLORCALLBACKFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_xform_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_xform_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_xform_set" "', argument " "2"" of type '" "_cmsCOLORCALLBACKFN""'"); } } if (arg1) (arg1)->xform = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_xform_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsCOLORCALLBACKFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_xform_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_xform_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsCOLORCALLBACKFN) ((arg1)->xform); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_FromInput_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsFIXFN arg2 = (_cmsFIXFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_FromInput_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_FromInput_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_FromInput_set" "', argument " "2"" of type '" "_cmsFIXFN""'"); } } if (arg1) (arg1)->FromInput = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_FromInput_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsFIXFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_FromInput_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_FromInput_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsFIXFN) ((arg1)->FromInput); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_FromDevice_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsTRANSFN arg2 = (_cmsTRANSFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_FromDevice_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_FromDevice_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_FromDevice_set" "', argument " "2"" of type '" "_cmsTRANSFN""'"); } } if (arg1) (arg1)->FromDevice = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_FromDevice_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsTRANSFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_FromDevice_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_FromDevice_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsTRANSFN) ((arg1)->FromDevice); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Stage1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsADJFN arg2 = (_cmsADJFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Stage1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Stage1_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_Stage1_set" "', argument " "2"" of type '" "_cmsADJFN""'"); } } if (arg1) (arg1)->Stage1 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Stage1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsADJFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Stage1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Stage1_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsADJFN) ((arg1)->Stage1); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Stage2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsADJFN arg2 = (_cmsADJFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Stage2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Stage2_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_Stage2_set" "', argument " "2"" of type '" "_cmsADJFN""'"); } } if (arg1) (arg1)->Stage2 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Stage2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsADJFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Stage2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Stage2_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsADJFN) ((arg1)->Stage2); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ToDevice_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsTRANSFN arg2 = (_cmsTRANSFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_ToDevice_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ToDevice_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_ToDevice_set" "', argument " "2"" of type '" "_cmsTRANSFN""'"); } } if (arg1) (arg1)->ToDevice = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ToDevice_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsTRANSFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_ToDevice_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ToDevice_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsTRANSFN) ((arg1)->ToDevice); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ToOutput_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; _cmsFIXFN arg2 = (_cmsFIXFN) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_ToOutput_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ToOutput_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char); if (!SWIG_IsOK(res)) { SWIG_exception_fail(SWIG_ArgError(res), "in method '" "_cmsTRANSFORM_ToOutput_set" "', argument " "2"" of type '" "_cmsFIXFN""'"); } } if (arg1) (arg1)->ToOutput = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_ToOutput_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; _cmsFIXFN result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_ToOutput_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_ToOutput_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (_cmsFIXFN) ((arg1)->ToOutput); resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Device2PCS_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPLUT arg2 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Device2PCS_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Device2PCS_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_Device2PCS_set" "', argument " "2"" of type '" "LPLUT""'"); } arg2 = reinterpret_cast< LPLUT >(argp2); if (arg1) (arg1)->Device2PCS = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Device2PCS_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Device2PCS_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Device2PCS_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LPLUT) ((arg1)->Device2PCS); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_PCS2Device_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPLUT arg2 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_PCS2Device_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_PCS2Device_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_PCS2Device_set" "', argument " "2"" of type '" "LPLUT""'"); } arg2 = reinterpret_cast< LPLUT >(argp2); if (arg1) (arg1)->PCS2Device = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_PCS2Device_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_PCS2Device_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_PCS2Device_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LPLUT) ((arg1)->PCS2Device); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Gamut_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPLUT arg2 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Gamut_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Gamut_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_Gamut_set" "', argument " "2"" of type '" "LPLUT""'"); } arg2 = reinterpret_cast< LPLUT >(argp2); if (arg1) (arg1)->Gamut = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Gamut_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Gamut_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Gamut_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LPLUT) ((arg1)->Gamut); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Preview_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPLUT arg2 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Preview_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Preview_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_Preview_set" "', argument " "2"" of type '" "LPLUT""'"); } arg2 = reinterpret_cast< LPLUT >(argp2); if (arg1) (arg1)->Preview = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Preview_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Preview_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Preview_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LPLUT) ((arg1)->Preview); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_DeviceLink_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPLUT arg2 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_DeviceLink_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_DeviceLink_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_DeviceLink_set" "', argument " "2"" of type '" "LPLUT""'"); } arg2 = reinterpret_cast< LPLUT >(argp2); if (arg1) (arg1)->DeviceLink = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_DeviceLink_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_DeviceLink_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_DeviceLink_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LPLUT) ((arg1)->DeviceLink); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_GamutCheck_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPLUT arg2 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_GamutCheck_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_GamutCheck_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p__lcms_LUT_struc, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_GamutCheck_set" "', argument " "2"" of type '" "LPLUT""'"); } arg2 = reinterpret_cast< LPLUT >(argp2); if (arg1) (arg1)->GamutCheck = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_GamutCheck_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_GamutCheck_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_GamutCheck_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LPLUT) ((arg1)->GamutCheck); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_InMatShaper_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPMATSHAPER arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_InMatShaper_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_InMatShaper_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPMATSHAPER, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_InMatShaper_set" "', argument " "2"" of type '" "LPMATSHAPER""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTRANSFORM_InMatShaper_set" "', argument " "2"" of type '" "LPMATSHAPER""'"); } else { LPMATSHAPER * temp = reinterpret_cast< LPMATSHAPER * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->InMatShaper = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_InMatShaper_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_InMatShaper_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_InMatShaper_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = ((arg1)->InMatShaper); resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_OutMatShaper_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPMATSHAPER arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_OutMatShaper_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_OutMatShaper_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPMATSHAPER, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_OutMatShaper_set" "', argument " "2"" of type '" "LPMATSHAPER""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTRANSFORM_OutMatShaper_set" "', argument " "2"" of type '" "LPMATSHAPER""'"); } else { LPMATSHAPER * temp = reinterpret_cast< LPMATSHAPER * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->OutMatShaper = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_OutMatShaper_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_OutMatShaper_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_OutMatShaper_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = ((arg1)->OutMatShaper); resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_SmeltMatShaper_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPMATSHAPER arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_SmeltMatShaper_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_SmeltMatShaper_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPMATSHAPER, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_SmeltMatShaper_set" "', argument " "2"" of type '" "LPMATSHAPER""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTRANSFORM_SmeltMatShaper_set" "', argument " "2"" of type '" "LPMATSHAPER""'"); } else { LPMATSHAPER * temp = reinterpret_cast< LPMATSHAPER * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->SmeltMatShaper = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_SmeltMatShaper_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPMATSHAPER result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_SmeltMatShaper_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_SmeltMatShaper_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = ((arg1)->SmeltMatShaper); resultobj = SWIG_NewPointerObj((new LPMATSHAPER(static_cast< const LPMATSHAPER& >(result))), SWIGTYPE_p_LPMATSHAPER, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Phase1_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Phase1_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Phase1_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_Phase1_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Phase1 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Phase1_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Phase1_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Phase1_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (int) ((arg1)->Phase1); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Phase2_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Phase2_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Phase2_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_Phase2_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Phase2 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Phase2_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Phase2_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Phase2_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (int) ((arg1)->Phase2); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Phase3_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; int arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_Phase3_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Phase3_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_Phase3_set" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); if (arg1) (arg1)->Phase3 = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_Phase3_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_Phase3_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_Phase3_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (int) ((arg1)->Phase3); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_NamedColorList_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LPcmsNAMEDCOLORLIST arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_NamedColorList_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_NamedColorList_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); { res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_LPcmsNAMEDCOLORLIST, 0 | 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_NamedColorList_set" "', argument " "2"" of type '" "LPcmsNAMEDCOLORLIST""'"); } if (!argp2) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsTRANSFORM_NamedColorList_set" "', argument " "2"" of type '" "LPcmsNAMEDCOLORLIST""'"); } else { LPcmsNAMEDCOLORLIST * temp = reinterpret_cast< LPcmsNAMEDCOLORLIST * >(argp2); arg2 = *temp; if (SWIG_IsNewObj(res2)) delete temp; } } if (arg1) (arg1)->NamedColorList = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_NamedColorList_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPcmsNAMEDCOLORLIST result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_NamedColorList_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_NamedColorList_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = ((arg1)->NamedColorList); resultobj = SWIG_NewPointerObj((new LPcmsNAMEDCOLORLIST(static_cast< const LPcmsNAMEDCOLORLIST& >(result))), SWIGTYPE_p_LPcmsNAMEDCOLORLIST, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_lInputV4Lab_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LCMSBOOL arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_lInputV4Lab_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_lInputV4Lab_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_lInputV4Lab_set" "', argument " "2"" of type '" "LCMSBOOL""'"); } arg2 = static_cast< LCMSBOOL >(val2); if (arg1) (arg1)->lInputV4Lab = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_lInputV4Lab_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_lInputV4Lab_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_lInputV4Lab_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LCMSBOOL) ((arg1)->lInputV4Lab); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_lOutputV4Lab_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LCMSBOOL arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_lOutputV4Lab_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_lOutputV4Lab_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_lOutputV4Lab_set" "', argument " "2"" of type '" "LCMSBOOL""'"); } arg2 = static_cast< LCMSBOOL >(val2); if (arg1) (arg1)->lOutputV4Lab = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_lOutputV4Lab_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_lOutputV4Lab_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_lOutputV4Lab_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LCMSBOOL) ((arg1)->lOutputV4Lab); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_CacheIn_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_CacheIn_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_CacheIn_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_CacheIn_set" "', argument " "2"" of type '" "WORD [16]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->CacheIn[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""CacheIn""' of type '""WORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_CacheIn_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_CacheIn_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_CacheIn_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (WORD *)(WORD *) ((arg1)->CacheIn); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_CacheOut_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; WORD *arg2 ; void *argp1 = 0 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_CacheOut_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_CacheOut_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsTRANSFORM_CacheOut_set" "', argument " "2"" of type '" "WORD [16]""'"); } arg2 = reinterpret_cast< WORD * >(argp2); { if (arg2) { size_t ii = 0; for (; ii < (size_t)16; ++ii) arg1->CacheOut[ii] = arg2[ii]; } else { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""CacheOut""' of type '""WORD [16]""'"); } } resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_CacheOut_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_CacheOut_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_CacheOut_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (WORD *)(WORD *) ((arg1)->CacheOut); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_AdaptationState_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; double arg2 ; void *argp1 = 0 ; int res1 = 0 ; double val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_AdaptationState_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_AdaptationState_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_AdaptationState_set" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); if (arg1) (arg1)->AdaptationState = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_AdaptationState_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_AdaptationState_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_AdaptationState_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (double) ((arg1)->AdaptationState); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_rwlock_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; LCMS_RWLOCK_T arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsTRANSFORM_rwlock_set",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_rwlock_set" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsTRANSFORM_rwlock_set" "', argument " "2"" of type '" "LCMS_RWLOCK_T""'"); } arg2 = static_cast< LCMS_RWLOCK_T >(val2); if (arg1) (arg1)->rwlock = arg2; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsTRANSFORM_rwlock_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMS_RWLOCK_T result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsTRANSFORM_rwlock_get",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsTRANSFORM_rwlock_get" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); result = (LCMS_RWLOCK_T) ((arg1)->rwlock); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new__cmsTRANSFORM(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *result = 0 ; if (!PyArg_ParseTuple(args,(char *)":new__cmsTRANSFORM")) SWIG_fail; InErrorFlag = 0; result = (_cmsTRANSFORM *)new _cmsTRANSFORM(); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__cmstransform_struct, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete__cmsTRANSFORM(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _cmsTRANSFORM *arg1 = (_cmsTRANSFORM *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete__cmsTRANSFORM",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete__cmsTRANSFORM" "', argument " "1"" of type '" "_cmsTRANSFORM *""'"); } arg1 = reinterpret_cast< _cmsTRANSFORM * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_cmsTRANSFORM_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p__cmstransform_struct, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap__cmsIdentifyInputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _LPcmsTRANSFORM arg1 = (_LPcmsTRANSFORM) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; _cmsFIXFN result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsIdentifyInputFormat",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsIdentifyInputFormat" "', argument " "1"" of type '" "_LPcmsTRANSFORM""'"); } arg1 = reinterpret_cast< _LPcmsTRANSFORM >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsIdentifyInputFormat" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (_cmsFIXFN)_cmsIdentifyInputFormat(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsIdentifyOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _LPcmsTRANSFORM arg1 = (_LPcmsTRANSFORM) 0 ; DWORD arg2 ; void *argp1 = 0 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; _cmsFIXFN result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsIdentifyOutputFormat",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsIdentifyOutputFormat" "', argument " "1"" of type '" "_LPcmsTRANSFORM""'"); } arg1 = reinterpret_cast< _LPcmsTRANSFORM >(argp1); ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsIdentifyOutputFormat" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (_cmsFIXFN)_cmsIdentifyOutputFormat(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsChooseCnvrt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; int arg1 ; int arg2 ; LPcmsCIEXYZ arg3 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg4 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg5 = (LPcmsCIEXYZ) 0 ; LPMAT3 arg6 = (LPMAT3) 0 ; int arg7 ; LPcmsCIEXYZ arg8 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg9 = (LPcmsCIEXYZ) 0 ; LPcmsCIEXYZ arg10 = (LPcmsCIEXYZ) 0 ; LPMAT3 arg11 = (LPMAT3) 0 ; int arg12 ; double arg13 ; _cmsADJFN *arg14 = (_cmsADJFN *) 0 ; LPWMAT3 arg15 ; LPWVEC3 arg16 ; int val1 ; int ecode1 = 0 ; int val2 ; int ecode2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; void *argp5 = 0 ; int res5 = 0 ; void *argp6 = 0 ; int res6 = 0 ; int val7 ; int ecode7 = 0 ; void *argp8 = 0 ; int res8 = 0 ; void *argp9 = 0 ; int res9 = 0 ; void *argp10 = 0 ; int res10 = 0 ; void *argp11 = 0 ; int res11 = 0 ; int val12 ; int ecode12 = 0 ; double val13 ; int ecode13 = 0 ; void *argp14 = 0 ; int res14 = 0 ; void *argp15 ; int res15 = 0 ; void *argp16 ; int res16 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; PyObject * obj4 = 0 ; PyObject * obj5 = 0 ; PyObject * obj6 = 0 ; PyObject * obj7 = 0 ; PyObject * obj8 = 0 ; PyObject * obj9 = 0 ; PyObject * obj10 = 0 ; PyObject * obj11 = 0 ; PyObject * obj12 = 0 ; PyObject * obj13 = 0 ; PyObject * obj14 = 0 ; PyObject * obj15 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOOOOOOOOOOOOOO:cmsChooseCnvrt",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12,&obj13,&obj14,&obj15)) SWIG_fail; ecode1 = SWIG_AsVal_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "cmsChooseCnvrt" "', argument " "1"" of type '" "int""'"); } arg1 = static_cast< int >(val1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "cmsChooseCnvrt" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "cmsChooseCnvrt" "', argument " "3"" of type '" "LPcmsCIEXYZ""'"); } arg3 = reinterpret_cast< LPcmsCIEXYZ >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "cmsChooseCnvrt" "', argument " "4"" of type '" "LPcmsCIEXYZ""'"); } arg4 = reinterpret_cast< LPcmsCIEXYZ >(argp4); res5 = SWIG_ConvertPtr(obj4, &argp5,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res5)) { SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "cmsChooseCnvrt" "', argument " "5"" of type '" "LPcmsCIEXYZ""'"); } arg5 = reinterpret_cast< LPcmsCIEXYZ >(argp5); res6 = SWIG_ConvertPtr(obj5, &argp6,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res6)) { SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "cmsChooseCnvrt" "', argument " "6"" of type '" "LPMAT3""'"); } arg6 = reinterpret_cast< LPMAT3 >(argp6); ecode7 = SWIG_AsVal_int(obj6, &val7); if (!SWIG_IsOK(ecode7)) { SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "cmsChooseCnvrt" "', argument " "7"" of type '" "int""'"); } arg7 = static_cast< int >(val7); res8 = SWIG_ConvertPtr(obj7, &argp8,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res8)) { SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "cmsChooseCnvrt" "', argument " "8"" of type '" "LPcmsCIEXYZ""'"); } arg8 = reinterpret_cast< LPcmsCIEXYZ >(argp8); res9 = SWIG_ConvertPtr(obj8, &argp9,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res9)) { SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "cmsChooseCnvrt" "', argument " "9"" of type '" "LPcmsCIEXYZ""'"); } arg9 = reinterpret_cast< LPcmsCIEXYZ >(argp9); res10 = SWIG_ConvertPtr(obj9, &argp10,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res10)) { SWIG_exception_fail(SWIG_ArgError(res10), "in method '" "cmsChooseCnvrt" "', argument " "10"" of type '" "LPcmsCIEXYZ""'"); } arg10 = reinterpret_cast< LPcmsCIEXYZ >(argp10); res11 = SWIG_ConvertPtr(obj10, &argp11,SWIGTYPE_p_MAT3, 0 | 0 ); if (!SWIG_IsOK(res11)) { SWIG_exception_fail(SWIG_ArgError(res11), "in method '" "cmsChooseCnvrt" "', argument " "11"" of type '" "LPMAT3""'"); } arg11 = reinterpret_cast< LPMAT3 >(argp11); ecode12 = SWIG_AsVal_int(obj11, &val12); if (!SWIG_IsOK(ecode12)) { SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "cmsChooseCnvrt" "', argument " "12"" of type '" "int""'"); } arg12 = static_cast< int >(val12); ecode13 = SWIG_AsVal_double(obj12, &val13); if (!SWIG_IsOK(ecode13)) { SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "cmsChooseCnvrt" "', argument " "13"" of type '" "double""'"); } arg13 = static_cast< double >(val13); res14 = SWIG_ConvertPtr(obj13, &argp14,SWIGTYPE_p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, 0 | 0 ); if (!SWIG_IsOK(res14)) { SWIG_exception_fail(SWIG_ArgError(res14), "in method '" "cmsChooseCnvrt" "', argument " "14"" of type '" "_cmsADJFN *""'"); } arg14 = reinterpret_cast< _cmsADJFN * >(argp14); { res15 = SWIG_ConvertPtr(obj14, &argp15, SWIGTYPE_p_LPWMAT3, 0 | 0); if (!SWIG_IsOK(res15)) { SWIG_exception_fail(SWIG_ArgError(res15), "in method '" "cmsChooseCnvrt" "', argument " "15"" of type '" "LPWMAT3""'"); } if (!argp15) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsChooseCnvrt" "', argument " "15"" of type '" "LPWMAT3""'"); } else { LPWMAT3 * temp = reinterpret_cast< LPWMAT3 * >(argp15); arg15 = *temp; if (SWIG_IsNewObj(res15)) delete temp; } } { res16 = SWIG_ConvertPtr(obj15, &argp16, SWIGTYPE_p_LPWVEC3, 0 | 0); if (!SWIG_IsOK(res16)) { SWIG_exception_fail(SWIG_ArgError(res16), "in method '" "cmsChooseCnvrt" "', argument " "16"" of type '" "LPWVEC3""'"); } if (!argp16) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "cmsChooseCnvrt" "', argument " "16"" of type '" "LPWVEC3""'"); } else { LPWVEC3 * temp = reinterpret_cast< LPWVEC3 * >(argp16); arg16 = *temp; if (SWIG_IsNewObj(res16)) delete temp; } } InErrorFlag = 0; result = (int)cmsChooseCnvrt(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsEndPointsBySpace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; WORD **arg2 = (WORD **) 0 ; WORD **arg3 = (WORD **) 0 ; int *arg4 = (int *) 0 ; void *argp1 ; int res1 = 0 ; void *argp2 = 0 ; int res2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; void *argp4 = 0 ; int res4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"OOOO:_cmsEndPointsBySpace",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsEndPointsBySpace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsEndPointsBySpace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "_cmsEndPointsBySpace" "', argument " "2"" of type '" "WORD **""'"); } arg2 = reinterpret_cast< WORD ** >(argp2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_unsigned_short, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsEndPointsBySpace" "', argument " "3"" of type '" "WORD **""'"); } arg3 = reinterpret_cast< WORD ** >(argp3); res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 | 0 ); if (!SWIG_IsOK(res4)) { SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "_cmsEndPointsBySpace" "', argument " "4"" of type '" "int *""'"); } arg4 = reinterpret_cast< int * >(argp4); InErrorFlag = 0; result = (LCMSBOOL)_cmsEndPointsBySpace(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsWhiteBySpace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:_cmsWhiteBySpace",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsWhiteBySpace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsWhiteBySpace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = (WORD *)_cmsWhiteBySpace(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_short, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Clamp_L(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Fixed32 arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"O:Clamp_L",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Clamp_L" "', argument " "1"" of type '" "Fixed32""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Clamp_L" "', argument " "1"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = (WORD)Clamp_L(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_Clamp_ab(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Fixed32 arg1 ; void *argp1 ; int res1 = 0 ; PyObject * obj0 = 0 ; WORD result; if (!PyArg_ParseTuple(args,(char *)"O:Clamp_ab",&obj0)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icInt32Number, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Clamp_ab" "', argument " "1"" of type '" "Fixed32""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "Clamp_ab" "', argument " "1"" of type '" "Fixed32""'"); } else { Fixed32 * temp = reinterpret_cast< Fixed32 * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } InErrorFlag = 0; result = (WORD)Clamp_ab(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_unsigned_SS_short(static_cast< unsigned short >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_cmsDetectBlackPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPcmsCIEXYZ arg1 = (LPcmsCIEXYZ) 0 ; cmsHPROFILE arg2 = (cmsHPROFILE) 0 ; int arg3 ; DWORD arg4 ; void *argp1 = 0 ; int res1 = 0 ; int res2 ; int val3 ; int ecode3 = 0 ; unsigned long val4 ; int ecode4 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; PyObject * obj3 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OOOO:cmsDetectBlackPoint",&obj0,&obj1,&obj2,&obj3)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_cmsCIEXYZ, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "cmsDetectBlackPoint" "', argument " "1"" of type '" "LPcmsCIEXYZ""'"); } arg1 = reinterpret_cast< LPcmsCIEXYZ >(argp1); res2 = SWIG_ConvertPtr(obj1,SWIG_as_voidptrptr(&arg2), 0, 0); if (!SWIG_IsOK(res2)) { SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "cmsDetectBlackPoint" "', argument " "2"" of type '" "cmsHPROFILE""'"); } ecode3 = SWIG_AsVal_int(obj2, &val3); if (!SWIG_IsOK(ecode3)) { SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "cmsDetectBlackPoint" "', argument " "3"" of type '" "int""'"); } arg3 = static_cast< int >(val3); ecode4 = SWIG_AsVal_unsigned_SS_long(obj3, &val4); if (!SWIG_IsOK(ecode4)) { SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "cmsDetectBlackPoint" "', argument " "4"" of type '" "DWORD""'"); } arg4 = static_cast< DWORD >(val4); InErrorFlag = 0; result = (int)cmsDetectBlackPoint(arg1,arg2,arg3,arg4); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsReasonableGridpointsByColorspace(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icColorSpaceSignature arg1 ; DWORD arg2 ; void *argp1 ; int res1 = 0 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; int result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsReasonableGridpointsByColorspace",&obj0,&obj1)) SWIG_fail; { res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_icColorSpaceSignature, 0 | 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsReasonableGridpointsByColorspace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } if (!argp1) { SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "_cmsReasonableGridpointsByColorspace" "', argument " "1"" of type '" "icColorSpaceSignature""'"); } else { icColorSpaceSignature * temp = reinterpret_cast< icColorSpaceSignature * >(argp1); arg1 = *temp; if (SWIG_IsNewObj(res1)) delete temp; } } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsReasonableGridpointsByColorspace" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (int)_cmsReasonableGridpointsByColorspace(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsPrecalculateDeviceLink(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsPrecalculateDeviceLink",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsPrecalculateDeviceLink" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsPrecalculateDeviceLink" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (LPLUT)_cmsPrecalculateDeviceLink(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsPrecalculateBlackPreservingDeviceLink(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; DWORD arg2 ; int res1 ; unsigned long val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsPrecalculateBlackPreservingDeviceLink",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsPrecalculateBlackPreservingDeviceLink" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_unsigned_SS_long(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsPrecalculateBlackPreservingDeviceLink" "', argument " "2"" of type '" "DWORD""'"); } arg2 = static_cast< DWORD >(val2); InErrorFlag = 0; result = (LPLUT)_cmsPrecalculateBlackPreservingDeviceLink(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsPrecalculateGamutCheck(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; int res1 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsPrecalculateGamutCheck",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsPrecalculateGamutCheck" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } InErrorFlag = 0; result = (LPLUT)_cmsPrecalculateGamutCheck(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsFixWhiteMisalignment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; _LPcmsTRANSFORM arg1 = (_LPcmsTRANSFORM) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsFixWhiteMisalignment",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__cmstransform_struct, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsFixWhiteMisalignment" "', argument " "1"" of type '" "_LPcmsTRANSFORM""'"); } arg1 = reinterpret_cast< _LPcmsTRANSFORM >(argp1); InErrorFlag = 0; result = (LCMSBOOL)_cmsFixWhiteMisalignment(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsBlessLUT8(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsBlessLUT8",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsBlessLUT8" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); InErrorFlag = 0; result = (LPLUT)_cmsBlessLUT8(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsComputeGamutLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; int res1 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsComputeGamutLUT",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsComputeGamutLUT" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsComputeGamutLUT" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (LPLUT)_cmsComputeGamutLUT(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsComputeSoftProofLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHPROFILE arg1 = (cmsHPROFILE) 0 ; int arg2 ; int res1 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPLUT result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsComputeSoftProofLUT",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsComputeSoftProofLUT" "', argument " "1"" of type '" "cmsHPROFILE""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsComputeSoftProofLUT" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (LPLUT)_cmsComputeSoftProofLUT(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsComputePrelinearizationTablesFromXFORM(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM *arg1 ; int arg2 ; LPLUT arg3 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; void *argp3 = 0 ; int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; if (!PyArg_ParseTuple(args,(char *)"OOO:_cmsComputePrelinearizationTablesFromXFORM",&obj0,&obj1,&obj2)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_p_void, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsComputePrelinearizationTablesFromXFORM" "', argument " "1"" of type '" "cmsHTRANSFORM []""'"); } arg1 = reinterpret_cast< cmsHTRANSFORM * >(argp1); ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsComputePrelinearizationTablesFromXFORM" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res3)) { SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "_cmsComputePrelinearizationTablesFromXFORM" "', argument " "3"" of type '" "LPLUT""'"); } arg3 = reinterpret_cast< LPLUT >(argp3); InErrorFlag = 0; _cmsComputePrelinearizationTablesFromXFORM(arg1,arg2,arg3); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsBuildKToneCurve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; cmsHTRANSFORM arg1 = (cmsHTRANSFORM) 0 ; int arg2 ; int res1 ; int val2 ; int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; LPGAMMATABLE result; if (!PyArg_ParseTuple(args,(char *)"OO:_cmsBuildKToneCurve",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0,SWIG_as_voidptrptr(&arg1), 0, 0); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsBuildKToneCurve" "', argument " "1"" of type '" "cmsHTRANSFORM""'"); } ecode2 = SWIG_AsVal_int(obj1, &val2); if (!SWIG_IsOK(ecode2)) { SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "_cmsBuildKToneCurve" "', argument " "2"" of type '" "int""'"); } arg2 = static_cast< int >(val2); InErrorFlag = 0; result = (LPGAMMATABLE)_cmsBuildKToneCurve(arg1,arg2); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_GAMMATABLE, 0 | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap__cmsValidateLUT(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; LPLUT arg1 = (LPLUT) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; LCMSBOOL result; if (!PyArg_ParseTuple(args,(char *)"O:_cmsValidateLUT",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p__lcms_LUT_struc, 0 | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "_cmsValidateLUT" "', argument " "1"" of type '" "LPLUT""'"); } arg1 = reinterpret_cast< LPLUT >(argp1); InErrorFlag = 0; result = (LCMSBOOL)_cmsValidateLUT(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_new_icTagSignature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; unsigned int arg1 ; unsigned int val1 ; int ecode1 = 0 ; PyObject * obj0 = 0 ; icTagSignature *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_icTagSignature",&obj0)) SWIG_fail; ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1); if (!SWIG_IsOK(ecode1)) { SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "new_icTagSignature" "', argument " "1"" of type '" "unsigned int""'"); } arg1 = static_cast< unsigned int >(val1); InErrorFlag = 0; result = (icTagSignature *)new_icTagSignature(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_icTagSignature, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } SWIGINTERN PyObject *_wrap_delete_icTagSignature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; icTagSignature *arg1 = (icTagSignature *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_icTagSignature",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_icTagSignature, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_icTagSignature" "', argument " "1"" of type '" "icTagSignature *""'"); } arg1 = reinterpret_cast< icTagSignature * >(argp1); InErrorFlag = 0; delete_icTagSignature(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *icTagSignature_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_icTagSignature, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } SWIGINTERN PyObject *_wrap_new_StrPointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; char *arg1 = (char *) 0 ; int res1 ; char *buf1 = 0 ; int alloc1 = 0 ; PyObject * obj0 = 0 ; StrPointer *result = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:new_StrPointer",&obj0)) SWIG_fail; res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_StrPointer" "', argument " "1"" of type '" "char *""'"); } arg1 = reinterpret_cast< char * >(buf1); InErrorFlag = 0; result = (StrPointer *)new_StrPointer(arg1); if (InErrorFlag) SWIG_fail; resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_StrPointer, SWIG_POINTER_NEW | 0 ); if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return resultobj; fail: if (alloc1 == SWIG_NEWOBJ) delete[] buf1; return NULL; } SWIGINTERN PyObject *_wrap_delete_StrPointer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; StrPointer *arg1 = (StrPointer *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; if (!PyArg_ParseTuple(args,(char *)"O:delete_StrPointer",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_StrPointer, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_StrPointer" "', argument " "1"" of type '" "StrPointer *""'"); } arg1 = reinterpret_cast< StrPointer * >(argp1); InErrorFlag = 0; delete arg1; if (InErrorFlag) SWIG_fail; resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } SWIGINTERN PyObject *StrPointer_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_StrPointer, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } static PyMethodDef SwigMethods[] = { { (char *)"COLORW_w_set", _wrap_COLORW_w_set, METH_VARARGS, NULL}, { (char *)"COLORW_w_get", _wrap_COLORW_w_get, METH_VARARGS, NULL}, { (char *)"new_COLORW", _wrap_new_COLORW, METH_VARARGS, NULL}, { (char *)"COLORW___repr__", _wrap_COLORW___repr__, METH_VARARGS, NULL}, { (char *)"COLORW___getitem__", _wrap_COLORW___getitem__, METH_VARARGS, NULL}, { (char *)"COLORW___setitem__", _wrap_COLORW___setitem__, METH_VARARGS, NULL}, { (char *)"delete_COLORW", _wrap_delete_COLORW, METH_VARARGS, NULL}, { (char *)"COLORW_swigregister", COLORW_swigregister, METH_VARARGS, NULL}, { (char *)"COLORB_b_set", _wrap_COLORB_b_set, METH_VARARGS, NULL}, { (char *)"COLORB_b_get", _wrap_COLORB_b_get, METH_VARARGS, NULL}, { (char *)"new_COLORB", _wrap_new_COLORB, METH_VARARGS, NULL}, { (char *)"delete_COLORB", _wrap_delete_COLORB, METH_VARARGS, NULL}, { (char *)"COLORB___repr__", _wrap_COLORB___repr__, METH_VARARGS, NULL}, { (char *)"COLORB___getitem__", _wrap_COLORB___getitem__, METH_VARARGS, NULL}, { (char *)"COLORB___setitem__", _wrap_COLORB___setitem__, METH_VARARGS, NULL}, { (char *)"COLORB_swigregister", COLORB_swigregister, METH_VARARGS, NULL}, { (char *)"IT8_hIT8_set", _wrap_IT8_hIT8_set, METH_VARARGS, NULL}, { (char *)"IT8_hIT8_get", _wrap_IT8_hIT8_get, METH_VARARGS, NULL}, { (char *)"new_IT8", _wrap_new_IT8, METH_VARARGS, NULL}, { (char *)"delete_IT8", _wrap_delete_IT8, METH_VARARGS, NULL}, { (char *)"IT8___repr__", _wrap_IT8___repr__, METH_VARARGS, NULL}, { (char *)"IT8_saveToFile", _wrap_IT8_saveToFile, METH_VARARGS, NULL}, { (char *)"IT8_tableCount", _wrap_IT8_tableCount, METH_VARARGS, NULL}, { (char *)"IT8_setTable", _wrap_IT8_setTable, METH_VARARGS, NULL}, { (char *)"IT8_getSheetType", _wrap_IT8_getSheetType, METH_VARARGS, NULL}, { (char *)"IT8_setSheetType", _wrap_IT8_setSheetType, METH_VARARGS, NULL}, { (char *)"IT8_addComment", _wrap_IT8_addComment, METH_VARARGS, NULL}, { (char *)"IT8_setProperty", _wrap_IT8_setProperty, METH_VARARGS, NULL}, { (char *)"IT8_setPropertyAsHex", _wrap_IT8_setPropertyAsHex, METH_VARARGS, NULL}, { (char *)"IT8_setPropertyUncooked", _wrap_IT8_setPropertyUncooked, METH_VARARGS, NULL}, { (char *)"IT8_getProperty", _wrap_IT8_getProperty, METH_VARARGS, NULL}, { (char *)"IT8_getPropertyAsDbl", _wrap_IT8_getPropertyAsDbl, METH_VARARGS, NULL}, { (char *)"IT8_getData", _wrap_IT8_getData, METH_VARARGS, NULL}, { (char *)"IT8_getDataAsDbl", _wrap_IT8_getDataAsDbl, METH_VARARGS, NULL}, { (char *)"IT8_setData", _wrap_IT8_setData, METH_VARARGS, NULL}, { (char *)"IT8_setDataFormat", _wrap_IT8_setDataFormat, METH_VARARGS, NULL}, { (char *)"IT8_getPatchName", _wrap_IT8_getPatchName, METH_VARARGS, NULL}, { (char *)"IT8_getDataFormat", _wrap_IT8_getDataFormat, METH_VARARGS, NULL}, { (char *)"IT8_enumDataFormat", _wrap_IT8_enumDataFormat, METH_VARARGS, NULL}, { (char *)"IT8_enumProperties", _wrap_IT8_enumProperties, METH_VARARGS, NULL}, { (char *)"IT8_setTableByLabel", _wrap_IT8_setTableByLabel, METH_VARARGS, NULL}, { (char *)"IT8_getRow", _wrap_IT8_getRow, METH_VARARGS, NULL}, { (char *)"IT8_getCol", _wrap_IT8_getCol, METH_VARARGS, NULL}, { (char *)"IT8_swigregister", IT8_swigregister, METH_VARARGS, NULL}, { (char *)"icCLutStruct_gridPoints_set", _wrap_icCLutStruct_gridPoints_set, METH_VARARGS, NULL}, { (char *)"icCLutStruct_gridPoints_get", _wrap_icCLutStruct_gridPoints_get, METH_VARARGS, NULL}, { (char *)"icCLutStruct_prec_set", _wrap_icCLutStruct_prec_set, METH_VARARGS, NULL}, { (char *)"icCLutStruct_prec_get", _wrap_icCLutStruct_prec_get, METH_VARARGS, NULL}, { (char *)"icCLutStruct_pad1_set", _wrap_icCLutStruct_pad1_set, METH_VARARGS, NULL}, { (char *)"icCLutStruct_pad1_get", _wrap_icCLutStruct_pad1_get, METH_VARARGS, NULL}, { (char *)"icCLutStruct_pad2_set", _wrap_icCLutStruct_pad2_set, METH_VARARGS, NULL}, { (char *)"icCLutStruct_pad2_get", _wrap_icCLutStruct_pad2_get, METH_VARARGS, NULL}, { (char *)"icCLutStruct_pad3_set", _wrap_icCLutStruct_pad3_set, METH_VARARGS, NULL}, { (char *)"icCLutStruct_pad3_get", _wrap_icCLutStruct_pad3_get, METH_VARARGS, NULL}, { (char *)"new_icCLutStruct", _wrap_new_icCLutStruct, METH_VARARGS, NULL}, { (char *)"delete_icCLutStruct", _wrap_delete_icCLutStruct, METH_VARARGS, NULL}, { (char *)"icCLutStruct_swigregister", icCLutStruct_swigregister, METH_VARARGS, NULL}, { (char *)"icLutAtoB_inputChan_set", _wrap_icLutAtoB_inputChan_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_inputChan_get", _wrap_icLutAtoB_inputChan_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_outputChan_set", _wrap_icLutAtoB_outputChan_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_outputChan_get", _wrap_icLutAtoB_outputChan_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_pad1_set", _wrap_icLutAtoB_pad1_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_pad1_get", _wrap_icLutAtoB_pad1_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_pad2_set", _wrap_icLutAtoB_pad2_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_pad2_get", _wrap_icLutAtoB_pad2_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetB_set", _wrap_icLutAtoB_offsetB_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetB_get", _wrap_icLutAtoB_offsetB_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetMat_set", _wrap_icLutAtoB_offsetMat_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetMat_get", _wrap_icLutAtoB_offsetMat_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetM_set", _wrap_icLutAtoB_offsetM_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetM_get", _wrap_icLutAtoB_offsetM_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetC_set", _wrap_icLutAtoB_offsetC_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetC_get", _wrap_icLutAtoB_offsetC_get, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetA_set", _wrap_icLutAtoB_offsetA_set, METH_VARARGS, NULL}, { (char *)"icLutAtoB_offsetA_get", _wrap_icLutAtoB_offsetA_get, METH_VARARGS, NULL}, { (char *)"new_icLutAtoB", _wrap_new_icLutAtoB, METH_VARARGS, NULL}, { (char *)"delete_icLutAtoB", _wrap_delete_icLutAtoB, METH_VARARGS, NULL}, { (char *)"icLutAtoB_swigregister", icLutAtoB_swigregister, METH_VARARGS, NULL}, { (char *)"icLutBtoA_inputChan_set", _wrap_icLutBtoA_inputChan_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_inputChan_get", _wrap_icLutBtoA_inputChan_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_outputChan_set", _wrap_icLutBtoA_outputChan_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_outputChan_get", _wrap_icLutBtoA_outputChan_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_pad1_set", _wrap_icLutBtoA_pad1_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_pad1_get", _wrap_icLutBtoA_pad1_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_pad2_set", _wrap_icLutBtoA_pad2_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_pad2_get", _wrap_icLutBtoA_pad2_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetB_set", _wrap_icLutBtoA_offsetB_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetB_get", _wrap_icLutBtoA_offsetB_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetMat_set", _wrap_icLutBtoA_offsetMat_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetMat_get", _wrap_icLutBtoA_offsetMat_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetM_set", _wrap_icLutBtoA_offsetM_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetM_get", _wrap_icLutBtoA_offsetM_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetC_set", _wrap_icLutBtoA_offsetC_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetC_get", _wrap_icLutBtoA_offsetC_get, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetA_set", _wrap_icLutBtoA_offsetA_set, METH_VARARGS, NULL}, { (char *)"icLutBtoA_offsetA_get", _wrap_icLutBtoA_offsetA_get, METH_VARARGS, NULL}, { (char *)"new_icLutBtoA", _wrap_new_icLutBtoA, METH_VARARGS, NULL}, { (char *)"delete_icLutBtoA", _wrap_delete_icLutBtoA, METH_VARARGS, NULL}, { (char *)"icLutBtoA_swigregister", icLutBtoA_swigregister, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_Crc32_set", _wrap_LCMSGAMMAPARAMS_Crc32_set, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_Crc32_get", _wrap_LCMSGAMMAPARAMS_Crc32_get, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_Type_set", _wrap_LCMSGAMMAPARAMS_Type_set, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_Type_get", _wrap_LCMSGAMMAPARAMS_Type_get, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_Params_set", _wrap_LCMSGAMMAPARAMS_Params_set, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_Params_get", _wrap_LCMSGAMMAPARAMS_Params_get, METH_VARARGS, NULL}, { (char *)"new_LCMSGAMMAPARAMS", _wrap_new_LCMSGAMMAPARAMS, METH_VARARGS, NULL}, { (char *)"delete_LCMSGAMMAPARAMS", _wrap_delete_LCMSGAMMAPARAMS, METH_VARARGS, NULL}, { (char *)"LCMSGAMMAPARAMS_swigregister", LCMSGAMMAPARAMS_swigregister, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_Seed_set", _wrap_GAMMATABLE_Seed_set, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_Seed_get", _wrap_GAMMATABLE_Seed_get, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_nEntries_set", _wrap_GAMMATABLE_nEntries_set, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_nEntries_get", _wrap_GAMMATABLE_nEntries_get, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_GammaTable_set", _wrap_GAMMATABLE_GammaTable_set, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_GammaTable_get", _wrap_GAMMATABLE_GammaTable_get, METH_VARARGS, NULL}, { (char *)"new_GAMMATABLE", _wrap_new_GAMMATABLE, METH_VARARGS, NULL}, { (char *)"delete_GAMMATABLE", _wrap_delete_GAMMATABLE, METH_VARARGS, NULL}, { (char *)"GAMMATABLE___repr__", _wrap_GAMMATABLE___repr__, METH_VARARGS, NULL}, { (char *)"GAMMATABLE___getitem__", _wrap_GAMMATABLE___getitem__, METH_VARARGS, NULL}, { (char *)"GAMMATABLE___setitem__", _wrap_GAMMATABLE___setitem__, METH_VARARGS, NULL}, { (char *)"GAMMATABLE_swigregister", GAMMATABLE_swigregister, METH_VARARGS, NULL}, { (char *)"VEC3_n_set", _wrap_VEC3_n_set, METH_VARARGS, NULL}, { (char *)"VEC3_n_get", _wrap_VEC3_n_get, METH_VARARGS, NULL}, { (char *)"new_VEC3", _wrap_new_VEC3, METH_VARARGS, NULL}, { (char *)"delete_VEC3", _wrap_delete_VEC3, METH_VARARGS, NULL}, { (char *)"VEC3___getitem__", _wrap_VEC3___getitem__, METH_VARARGS, NULL}, { (char *)"VEC3___setitem__", _wrap_VEC3___setitem__, METH_VARARGS, NULL}, { (char *)"VEC3___repr__", _wrap_VEC3___repr__, METH_VARARGS, NULL}, { (char *)"VEC3_swigregister", VEC3_swigregister, METH_VARARGS, NULL}, { (char *)"MAT3_v_set", _wrap_MAT3_v_set, METH_VARARGS, NULL}, { (char *)"MAT3_v_get", _wrap_MAT3_v_get, METH_VARARGS, NULL}, { (char *)"new_MAT3", _wrap_new_MAT3, METH_VARARGS, NULL}, { (char *)"delete_MAT3", _wrap_delete_MAT3, METH_VARARGS, NULL}, { (char *)"MAT3_swigregister", MAT3_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_X_set", _wrap_cmsCIEXYZ_X_set, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_X_get", _wrap_cmsCIEXYZ_X_get, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_Y_set", _wrap_cmsCIEXYZ_Y_set, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_Y_get", _wrap_cmsCIEXYZ_Y_get, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_Z_set", _wrap_cmsCIEXYZ_Z_set, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_Z_get", _wrap_cmsCIEXYZ_Z_get, METH_VARARGS, NULL}, { (char *)"new_cmsCIEXYZ", _wrap_new_cmsCIEXYZ, METH_VARARGS, NULL}, { (char *)"delete_cmsCIEXYZ", _wrap_delete_cmsCIEXYZ, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ___repr__", _wrap_cmsCIEXYZ___repr__, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZ_swigregister", cmsCIEXYZ_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_x_set", _wrap_cmsCIExyY_x_set, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_x_get", _wrap_cmsCIExyY_x_get, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_y_set", _wrap_cmsCIExyY_y_set, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_y_get", _wrap_cmsCIExyY_y_get, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_Y_set", _wrap_cmsCIExyY_Y_set, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_Y_get", _wrap_cmsCIExyY_Y_get, METH_VARARGS, NULL}, { (char *)"new_cmsCIExyY", _wrap_new_cmsCIExyY, METH_VARARGS, NULL}, { (char *)"delete_cmsCIExyY", _wrap_delete_cmsCIExyY, METH_VARARGS, NULL}, { (char *)"cmsCIExyY___repr__", _wrap_cmsCIExyY___repr__, METH_VARARGS, NULL}, { (char *)"cmsCIExyY_swigregister", cmsCIExyY_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIELab_L_set", _wrap_cmsCIELab_L_set, METH_VARARGS, NULL}, { (char *)"cmsCIELab_L_get", _wrap_cmsCIELab_L_get, METH_VARARGS, NULL}, { (char *)"cmsCIELab_a_set", _wrap_cmsCIELab_a_set, METH_VARARGS, NULL}, { (char *)"cmsCIELab_a_get", _wrap_cmsCIELab_a_get, METH_VARARGS, NULL}, { (char *)"cmsCIELab_b_set", _wrap_cmsCIELab_b_set, METH_VARARGS, NULL}, { (char *)"cmsCIELab_b_get", _wrap_cmsCIELab_b_get, METH_VARARGS, NULL}, { (char *)"new_cmsCIELab", _wrap_new_cmsCIELab, METH_VARARGS, NULL}, { (char *)"delete_cmsCIELab", _wrap_delete_cmsCIELab, METH_VARARGS, NULL}, { (char *)"cmsCIELab___repr__", _wrap_cmsCIELab___repr__, METH_VARARGS, NULL}, { (char *)"cmsCIELab___cmp__", _wrap_cmsCIELab___cmp__, METH_VARARGS, NULL}, { (char *)"cmsCIELab_swigregister", cmsCIELab_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_L_set", _wrap_cmsCIELCh_L_set, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_L_get", _wrap_cmsCIELCh_L_get, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_C_set", _wrap_cmsCIELCh_C_set, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_C_get", _wrap_cmsCIELCh_C_get, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_h_set", _wrap_cmsCIELCh_h_set, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_h_get", _wrap_cmsCIELCh_h_get, METH_VARARGS, NULL}, { (char *)"new_cmsCIELCh", _wrap_new_cmsCIELCh, METH_VARARGS, NULL}, { (char *)"delete_cmsCIELCh", _wrap_delete_cmsCIELCh, METH_VARARGS, NULL}, { (char *)"cmsCIELCh___repr__", _wrap_cmsCIELCh___repr__, METH_VARARGS, NULL}, { (char *)"cmsCIELCh_swigregister", cmsCIELCh_swigregister, METH_VARARGS, NULL}, { (char *)"cmsJCh_J_set", _wrap_cmsJCh_J_set, METH_VARARGS, NULL}, { (char *)"cmsJCh_J_get", _wrap_cmsJCh_J_get, METH_VARARGS, NULL}, { (char *)"cmsJCh_C_set", _wrap_cmsJCh_C_set, METH_VARARGS, NULL}, { (char *)"cmsJCh_C_get", _wrap_cmsJCh_C_get, METH_VARARGS, NULL}, { (char *)"cmsJCh_h_set", _wrap_cmsJCh_h_set, METH_VARARGS, NULL}, { (char *)"cmsJCh_h_get", _wrap_cmsJCh_h_get, METH_VARARGS, NULL}, { (char *)"new_cmsJCh", _wrap_new_cmsJCh, METH_VARARGS, NULL}, { (char *)"delete_cmsJCh", _wrap_delete_cmsJCh, METH_VARARGS, NULL}, { (char *)"cmsJCh___repr__", _wrap_cmsJCh___repr__, METH_VARARGS, NULL}, { (char *)"cmsJCh_swigregister", cmsJCh_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_Red_set", _wrap_cmsCIEXYZTRIPLE_Red_set, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_Red_get", _wrap_cmsCIEXYZTRIPLE_Red_get, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_Green_set", _wrap_cmsCIEXYZTRIPLE_Green_set, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_Green_get", _wrap_cmsCIEXYZTRIPLE_Green_get, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_Blue_set", _wrap_cmsCIEXYZTRIPLE_Blue_set, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_Blue_get", _wrap_cmsCIEXYZTRIPLE_Blue_get, METH_VARARGS, NULL}, { (char *)"new_cmsCIEXYZTRIPLE", _wrap_new_cmsCIEXYZTRIPLE, METH_VARARGS, NULL}, { (char *)"delete_cmsCIEXYZTRIPLE", _wrap_delete_cmsCIEXYZTRIPLE, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE___repr__", _wrap_cmsCIEXYZTRIPLE___repr__, METH_VARARGS, NULL}, { (char *)"cmsCIEXYZTRIPLE_swigregister", cmsCIEXYZTRIPLE_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_Red_set", _wrap_cmsCIExyYTRIPLE_Red_set, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_Red_get", _wrap_cmsCIExyYTRIPLE_Red_get, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_Green_set", _wrap_cmsCIExyYTRIPLE_Green_set, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_Green_get", _wrap_cmsCIExyYTRIPLE_Green_get, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_Blue_set", _wrap_cmsCIExyYTRIPLE_Blue_set, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_Blue_get", _wrap_cmsCIExyYTRIPLE_Blue_get, METH_VARARGS, NULL}, { (char *)"new_cmsCIExyYTRIPLE", _wrap_new_cmsCIExyYTRIPLE, METH_VARARGS, NULL}, { (char *)"delete_cmsCIExyYTRIPLE", _wrap_delete_cmsCIExyYTRIPLE, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE___repr__", _wrap_cmsCIExyYTRIPLE___repr__, METH_VARARGS, NULL}, { (char *)"cmsCIExyYTRIPLE_swigregister", cmsCIExyYTRIPLE_swigregister, METH_VARARGS, NULL}, { (char *)"cmsD50_XYZ", _wrap_cmsD50_XYZ, METH_VARARGS, NULL}, { (char *)"cmsD50_xyY", _wrap_cmsD50_xyY, METH_VARARGS, NULL}, { (char *)"cmsOpenProfileFromFile", _wrap_cmsOpenProfileFromFile, METH_VARARGS, NULL}, { (char *)"cmsOpenProfileFromMem", _wrap_cmsOpenProfileFromMem, METH_VARARGS, NULL}, { (char *)"cmsCloseProfile", _wrap_cmsCloseProfile, METH_VARARGS, NULL}, { (char *)"cmsCreateRGBProfile", _wrap_cmsCreateRGBProfile, METH_VARARGS, NULL}, { (char *)"cmsCreateGrayProfile", _wrap_cmsCreateGrayProfile, METH_VARARGS, NULL}, { (char *)"cmsCreateLinearizationDeviceLink", _wrap_cmsCreateLinearizationDeviceLink, METH_VARARGS, NULL}, { (char *)"cmsCreateInkLimitingDeviceLink", _wrap_cmsCreateInkLimitingDeviceLink, METH_VARARGS, NULL}, { (char *)"cmsCreateLabProfile", _wrap_cmsCreateLabProfile, METH_VARARGS, NULL}, { (char *)"cmsCreateLab4Profile", _wrap_cmsCreateLab4Profile, METH_VARARGS, NULL}, { (char *)"cmsCreateXYZProfile", _wrap_cmsCreateXYZProfile, METH_VARARGS, NULL}, { (char *)"cmsCreate_sRGBProfile", _wrap_cmsCreate_sRGBProfile, METH_VARARGS, NULL}, { (char *)"cmsCreateBCHSWabstractProfile", _wrap_cmsCreateBCHSWabstractProfile, METH_VARARGS, NULL}, { (char *)"cmsCreateNULLProfile", _wrap_cmsCreateNULLProfile, METH_VARARGS, NULL}, { (char *)"cmsXYZ2xyY", _wrap_cmsXYZ2xyY, METH_VARARGS, NULL}, { (char *)"cmsxyY2XYZ", _wrap_cmsxyY2XYZ, METH_VARARGS, NULL}, { (char *)"cmsXYZ2Lab", _wrap_cmsXYZ2Lab, METH_VARARGS, NULL}, { (char *)"cmsLab2XYZ", _wrap_cmsLab2XYZ, METH_VARARGS, NULL}, { (char *)"cmsLab2LCh", _wrap_cmsLab2LCh, METH_VARARGS, NULL}, { (char *)"cmsLCh2Lab", _wrap_cmsLCh2Lab, METH_VARARGS, NULL}, { (char *)"cmsDeltaE", _wrap_cmsDeltaE, METH_VARARGS, NULL}, { (char *)"cmsCIE94DeltaE", _wrap_cmsCIE94DeltaE, METH_VARARGS, NULL}, { (char *)"cmsBFDdeltaE", _wrap_cmsBFDdeltaE, METH_VARARGS, NULL}, { (char *)"cmsCMCdeltaE", _wrap_cmsCMCdeltaE, METH_VARARGS, NULL}, { (char *)"cmsCIE2000DeltaE", _wrap_cmsCIE2000DeltaE, METH_VARARGS, NULL}, { (char *)"cmsClampLab", _wrap_cmsClampLab, METH_VARARGS, NULL}, { (char *)"cmsWhitePointFromTemp", _wrap_cmsWhitePointFromTemp, METH_VARARGS, NULL}, { (char *)"cmsAdaptToIlluminant", _wrap_cmsAdaptToIlluminant, METH_VARARGS, NULL}, { (char *)"cmsBuildRGB2XYZtransferMatrix", _wrap_cmsBuildRGB2XYZtransferMatrix, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_whitePoint_set", _wrap_cmsViewingConditions_whitePoint_set, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_whitePoint_get", _wrap_cmsViewingConditions_whitePoint_get, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_Yb_set", _wrap_cmsViewingConditions_Yb_set, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_Yb_get", _wrap_cmsViewingConditions_Yb_get, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_La_set", _wrap_cmsViewingConditions_La_set, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_La_get", _wrap_cmsViewingConditions_La_get, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_surround_set", _wrap_cmsViewingConditions_surround_set, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_surround_get", _wrap_cmsViewingConditions_surround_get, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_D_value_set", _wrap_cmsViewingConditions_D_value_set, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_D_value_get", _wrap_cmsViewingConditions_D_value_get, METH_VARARGS, NULL}, { (char *)"new_cmsViewingConditions", _wrap_new_cmsViewingConditions, METH_VARARGS, NULL}, { (char *)"delete_cmsViewingConditions", _wrap_delete_cmsViewingConditions, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions___repr__", _wrap_cmsViewingConditions___repr__, METH_VARARGS, NULL}, { (char *)"cmsViewingConditions_swigregister", cmsViewingConditions_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCIECAM97sInit", _wrap_cmsCIECAM97sInit, METH_VARARGS, NULL}, { (char *)"cmsCIECAM97sDone", _wrap_cmsCIECAM97sDone, METH_VARARGS, NULL}, { (char *)"cmsCIECAM97sForward", _wrap_cmsCIECAM97sForward, METH_VARARGS, NULL}, { (char *)"cmsCIECAM97sReverse", _wrap_cmsCIECAM97sReverse, METH_VARARGS, NULL}, { (char *)"cmsCIECAM02Init", _wrap_cmsCIECAM02Init, METH_VARARGS, NULL}, { (char *)"cmsCIECAM02Done", _wrap_cmsCIECAM02Done, METH_VARARGS, NULL}, { (char *)"cmsCIECAM02Forward", _wrap_cmsCIECAM02Forward, METH_VARARGS, NULL}, { (char *)"cmsCIECAM02Reverse", _wrap_cmsCIECAM02Reverse, METH_VARARGS, NULL}, { (char *)"cmsBuildGamma", _wrap_cmsBuildGamma, METH_VARARGS, NULL}, { (char *)"cmsBuildParametricGamma", _wrap_cmsBuildParametricGamma, METH_VARARGS, NULL}, { (char *)"cmsAllocGamma", _wrap_cmsAllocGamma, METH_VARARGS, NULL}, { (char *)"cmsFreeGamma", _wrap_cmsFreeGamma, METH_VARARGS, NULL}, { (char *)"cmsFreeGammaTriple", _wrap_cmsFreeGammaTriple, METH_VARARGS, NULL}, { (char *)"cmsDupGamma", _wrap_cmsDupGamma, METH_VARARGS, NULL}, { (char *)"cmsReverseGamma", _wrap_cmsReverseGamma, METH_VARARGS, NULL}, { (char *)"cmsJoinGamma", _wrap_cmsJoinGamma, METH_VARARGS, NULL}, { (char *)"cmsJoinGammaEx", _wrap_cmsJoinGammaEx, METH_VARARGS, NULL}, { (char *)"cmsSmoothGamma", _wrap_cmsSmoothGamma, METH_VARARGS, NULL}, { (char *)"cmsEstimateGamma", _wrap_cmsEstimateGamma, METH_VARARGS, NULL}, { (char *)"cmsEstimateGammaEx", _wrap_cmsEstimateGammaEx, METH_VARARGS, NULL}, { (char *)"cmsReadICCGamma", _wrap_cmsReadICCGamma, METH_VARARGS, NULL}, { (char *)"cmsReadICCGammaReversed", _wrap_cmsReadICCGammaReversed, METH_VARARGS, NULL}, { (char *)"cmsTakeMediaWhitePoint", _wrap_cmsTakeMediaWhitePoint, METH_VARARGS, NULL}, { (char *)"cmsTakeMediaBlackPoint", _wrap_cmsTakeMediaBlackPoint, METH_VARARGS, NULL}, { (char *)"cmsTakeIluminant", _wrap_cmsTakeIluminant, METH_VARARGS, NULL}, { (char *)"cmsTakeColorants", _wrap_cmsTakeColorants, METH_VARARGS, NULL}, { (char *)"cmsTakeHeaderFlags", _wrap_cmsTakeHeaderFlags, METH_VARARGS, NULL}, { (char *)"cmsTakeHeaderAttributes", _wrap_cmsTakeHeaderAttributes, METH_VARARGS, NULL}, { (char *)"cmsSetLanguage", _wrap_cmsSetLanguage, METH_VARARGS, NULL}, { (char *)"cmsTakeProductName", _wrap_cmsTakeProductName, METH_VARARGS, NULL}, { (char *)"cmsTakeProductDesc", _wrap_cmsTakeProductDesc, METH_VARARGS, NULL}, { (char *)"cmsTakeProductInfo", _wrap_cmsTakeProductInfo, METH_VARARGS, NULL}, { (char *)"cmsTakeManufacturer", _wrap_cmsTakeManufacturer, METH_VARARGS, NULL}, { (char *)"cmsTakeModel", _wrap_cmsTakeModel, METH_VARARGS, NULL}, { (char *)"cmsTakeCopyright", _wrap_cmsTakeCopyright, METH_VARARGS, NULL}, { (char *)"cmsTakeProfileID", _wrap_cmsTakeProfileID, METH_VARARGS, NULL}, { (char *)"cmsTakeCreationDateTime", _wrap_cmsTakeCreationDateTime, METH_VARARGS, NULL}, { (char *)"cmsTakeCalibrationDateTime", _wrap_cmsTakeCalibrationDateTime, METH_VARARGS, NULL}, { (char *)"cmsIsTag", _wrap_cmsIsTag, METH_VARARGS, NULL}, { (char *)"cmsTakeRenderingIntent", _wrap_cmsTakeRenderingIntent, METH_VARARGS, NULL}, { (char *)"cmsTakeCharTargetData", _wrap_cmsTakeCharTargetData, METH_VARARGS, NULL}, { (char *)"cmsReadICCTextEx", _wrap_cmsReadICCTextEx, METH_VARARGS, NULL}, { (char *)"cmsReadICCText", _wrap_cmsReadICCText, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_deviceMfg_set", _wrap_cmsPSEQDESC_deviceMfg_set, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_deviceMfg_get", _wrap_cmsPSEQDESC_deviceMfg_get, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_deviceModel_set", _wrap_cmsPSEQDESC_deviceModel_set, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_deviceModel_get", _wrap_cmsPSEQDESC_deviceModel_get, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_attributes_set", _wrap_cmsPSEQDESC_attributes_set, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_attributes_get", _wrap_cmsPSEQDESC_attributes_get, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_technology_set", _wrap_cmsPSEQDESC_technology_set, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_technology_get", _wrap_cmsPSEQDESC_technology_get, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_Manufacturer_set", _wrap_cmsPSEQDESC_Manufacturer_set, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_Manufacturer_get", _wrap_cmsPSEQDESC_Manufacturer_get, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_Model_set", _wrap_cmsPSEQDESC_Model_set, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_Model_get", _wrap_cmsPSEQDESC_Model_get, METH_VARARGS, NULL}, { (char *)"new_cmsPSEQDESC", _wrap_new_cmsPSEQDESC, METH_VARARGS, NULL}, { (char *)"delete_cmsPSEQDESC", _wrap_delete_cmsPSEQDESC, METH_VARARGS, NULL}, { (char *)"cmsPSEQDESC_swigregister", cmsPSEQDESC_swigregister, METH_VARARGS, NULL}, { (char *)"cmsSEQ_n_set", _wrap_cmsSEQ_n_set, METH_VARARGS, NULL}, { (char *)"cmsSEQ_n_get", _wrap_cmsSEQ_n_get, METH_VARARGS, NULL}, { (char *)"cmsSEQ_seq_set", _wrap_cmsSEQ_seq_set, METH_VARARGS, NULL}, { (char *)"cmsSEQ_seq_get", _wrap_cmsSEQ_seq_get, METH_VARARGS, NULL}, { (char *)"new_cmsSEQ", _wrap_new_cmsSEQ, METH_VARARGS, NULL}, { (char *)"delete_cmsSEQ", _wrap_delete_cmsSEQ, METH_VARARGS, NULL}, { (char *)"cmsSEQ_swigregister", cmsSEQ_swigregister, METH_VARARGS, NULL}, { (char *)"cmsReadProfileSequenceDescription", _wrap_cmsReadProfileSequenceDescription, METH_VARARGS, NULL}, { (char *)"cmsFreeProfileSequenceDescription", _wrap_cmsFreeProfileSequenceDescription, METH_VARARGS, NULL}, { (char *)"_cmsICCcolorSpace", _wrap__cmsICCcolorSpace, METH_VARARGS, NULL}, { (char *)"_cmsLCMScolorSpace", _wrap__cmsLCMScolorSpace, METH_VARARGS, NULL}, { (char *)"_cmsChannelsOf", _wrap__cmsChannelsOf, METH_VARARGS, NULL}, { (char *)"_cmsIsMatrixShaper", _wrap__cmsIsMatrixShaper, METH_VARARGS, NULL}, { (char *)"cmsIsIntentSupported", _wrap_cmsIsIntentSupported, METH_VARARGS, NULL}, { (char *)"cmsGetPCS", _wrap_cmsGetPCS, METH_VARARGS, NULL}, { (char *)"cmsGetColorSpace", _wrap_cmsGetColorSpace, METH_VARARGS, NULL}, { (char *)"cmsGetDeviceClass", _wrap_cmsGetDeviceClass, METH_VARARGS, NULL}, { (char *)"cmsGetProfileICCversion", _wrap_cmsGetProfileICCversion, METH_VARARGS, NULL}, { (char *)"cmsSetProfileICCversion", _wrap_cmsSetProfileICCversion, METH_VARARGS, NULL}, { (char *)"cmsGetTagCount", _wrap_cmsGetTagCount, METH_VARARGS, NULL}, { (char *)"cmsGetTagSignature", _wrap_cmsGetTagSignature, METH_VARARGS, NULL}, { (char *)"cmsSetDeviceClass", _wrap_cmsSetDeviceClass, METH_VARARGS, NULL}, { (char *)"cmsSetColorSpace", _wrap_cmsSetColorSpace, METH_VARARGS, NULL}, { (char *)"cmsSetPCS", _wrap_cmsSetPCS, METH_VARARGS, NULL}, { (char *)"cmsSetRenderingIntent", _wrap_cmsSetRenderingIntent, METH_VARARGS, NULL}, { (char *)"cmsSetHeaderFlags", _wrap_cmsSetHeaderFlags, METH_VARARGS, NULL}, { (char *)"cmsSetHeaderAttributes", _wrap_cmsSetHeaderAttributes, METH_VARARGS, NULL}, { (char *)"cmsSetProfileID", _wrap_cmsSetProfileID, METH_VARARGS, NULL}, { (char *)"cmsCreateTransform", _wrap_cmsCreateTransform, METH_VARARGS, NULL}, { (char *)"cmsCreateProofingTransform", _wrap_cmsCreateProofingTransform, METH_VARARGS, NULL}, { (char *)"cmsCreateMultiprofileTransform", _wrap_cmsCreateMultiprofileTransform, METH_VARARGS, NULL}, { (char *)"cmsDeleteTransform", _wrap_cmsDeleteTransform, METH_VARARGS, NULL}, { (char *)"cmsDoTransform", _wrap_cmsDoTransform, METH_VARARGS, NULL}, { (char *)"cmsChangeBuffersFormat", _wrap_cmsChangeBuffersFormat, METH_VARARGS, NULL}, { (char *)"cmsSetAlarmCodes", _wrap_cmsSetAlarmCodes, METH_VARARGS, NULL}, { (char *)"cmsGetAlarmCodes", _wrap_cmsGetAlarmCodes, METH_VARARGS, NULL}, { (char *)"cmsSetAdaptationState", _wrap_cmsSetAdaptationState, METH_VARARGS, NULL}, { (char *)"cmsSetCMYKPreservationStrategy", _wrap_cmsSetCMYKPreservationStrategy, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_Name_set", _wrap_cmsNAMEDCOLOR_Name_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_Name_get", _wrap_cmsNAMEDCOLOR_Name_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_PCS_set", _wrap_cmsNAMEDCOLOR_PCS_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_PCS_get", _wrap_cmsNAMEDCOLOR_PCS_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_DeviceColorant_set", _wrap_cmsNAMEDCOLOR_DeviceColorant_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_DeviceColorant_get", _wrap_cmsNAMEDCOLOR_DeviceColorant_get, METH_VARARGS, NULL}, { (char *)"new_cmsNAMEDCOLOR", _wrap_new_cmsNAMEDCOLOR, METH_VARARGS, NULL}, { (char *)"delete_cmsNAMEDCOLOR", _wrap_delete_cmsNAMEDCOLOR, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLOR_swigregister", cmsNAMEDCOLOR_swigregister, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_nColors_set", _wrap_cmsNAMEDCOLORLIST_nColors_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_nColors_get", _wrap_cmsNAMEDCOLORLIST_nColors_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_Allocated_set", _wrap_cmsNAMEDCOLORLIST_Allocated_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_Allocated_get", _wrap_cmsNAMEDCOLORLIST_Allocated_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_ColorantCount_set", _wrap_cmsNAMEDCOLORLIST_ColorantCount_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_ColorantCount_get", _wrap_cmsNAMEDCOLORLIST_ColorantCount_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_Prefix_set", _wrap_cmsNAMEDCOLORLIST_Prefix_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_Prefix_get", _wrap_cmsNAMEDCOLORLIST_Prefix_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_Suffix_set", _wrap_cmsNAMEDCOLORLIST_Suffix_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_Suffix_get", _wrap_cmsNAMEDCOLORLIST_Suffix_get, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_List_set", _wrap_cmsNAMEDCOLORLIST_List_set, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_List_get", _wrap_cmsNAMEDCOLORLIST_List_get, METH_VARARGS, NULL}, { (char *)"new_cmsNAMEDCOLORLIST", _wrap_new_cmsNAMEDCOLORLIST, METH_VARARGS, NULL}, { (char *)"delete_cmsNAMEDCOLORLIST", _wrap_delete_cmsNAMEDCOLORLIST, METH_VARARGS, NULL}, { (char *)"cmsNAMEDCOLORLIST_swigregister", cmsNAMEDCOLORLIST_swigregister, METH_VARARGS, NULL}, { (char *)"cmsNamedColorCount", _wrap_cmsNamedColorCount, METH_VARARGS, NULL}, { (char *)"cmsNamedColorInfo", _wrap_cmsNamedColorInfo, METH_VARARGS, NULL}, { (char *)"cmsNamedColorIndex", _wrap_cmsNamedColorIndex, METH_VARARGS, NULL}, { (char *)"cmsReadColorantTable", _wrap_cmsReadColorantTable, METH_VARARGS, NULL}, { (char *)"cmsAddTag", _wrap_cmsAddTag, METH_VARARGS, NULL}, { (char *)"cmsTransform2DeviceLink", _wrap_cmsTransform2DeviceLink, METH_VARARGS, NULL}, { (char *)"_cmsSetLUTdepth", _wrap__cmsSetLUTdepth, METH_VARARGS, NULL}, { (char *)"cmsSaveProfile", _wrap_cmsSaveProfile, METH_VARARGS, NULL}, { (char *)"_cmsSaveProfileToMem", _wrap__cmsSaveProfileToMem, METH_VARARGS, NULL}, { (char *)"cmsGetPostScriptCSA", _wrap_cmsGetPostScriptCSA, METH_VARARGS, NULL}, { (char *)"cmsGetPostScriptCRD", _wrap_cmsGetPostScriptCRD, METH_VARARGS, NULL}, { (char *)"cmsGetPostScriptCRDEx", _wrap_cmsGetPostScriptCRDEx, METH_VARARGS, NULL}, { (char *)"cmsErrorAction", _wrap_cmsErrorAction, METH_VARARGS, NULL}, { (char *)"cmsSetErrorHandler", _wrap_cmsSetErrorHandler, METH_VARARGS, NULL}, { (char *)"cmsAllocLUT", _wrap_cmsAllocLUT, METH_VARARGS, NULL}, { (char *)"cmsAllocLinearTable", _wrap_cmsAllocLinearTable, METH_VARARGS, NULL}, { (char *)"cmsAlloc3DGrid", _wrap_cmsAlloc3DGrid, METH_VARARGS, NULL}, { (char *)"cmsSetMatrixLUT", _wrap_cmsSetMatrixLUT, METH_VARARGS, NULL}, { (char *)"cmsSetMatrixLUT4", _wrap_cmsSetMatrixLUT4, METH_VARARGS, NULL}, { (char *)"cmsFreeLUT", _wrap_cmsFreeLUT, METH_VARARGS, NULL}, { (char *)"cmsEvalLUT", _wrap_cmsEvalLUT, METH_VARARGS, NULL}, { (char *)"cmsEvalLUTreverse", _wrap_cmsEvalLUTreverse, METH_VARARGS, NULL}, { (char *)"cmsReadICCLut", _wrap_cmsReadICCLut, METH_VARARGS, NULL}, { (char *)"cmsDupLUT", _wrap_cmsDupLUT, METH_VARARGS, NULL}, { (char *)"cmsSample3DGrid", _wrap_cmsSample3DGrid, METH_VARARGS, NULL}, { (char *)"cmsSetUserFormatters", _wrap_cmsSetUserFormatters, METH_VARARGS, NULL}, { (char *)"cmsGetUserFormatters", _wrap_cmsGetUserFormatters, METH_VARARGS, NULL}, { (char *)"cmsIT8Alloc", _wrap_cmsIT8Alloc, METH_VARARGS, NULL}, { (char *)"cmsIT8Free", _wrap_cmsIT8Free, METH_VARARGS, NULL}, { (char *)"cmsIT8TableCount", _wrap_cmsIT8TableCount, METH_VARARGS, NULL}, { (char *)"cmsIT8SetTable", _wrap_cmsIT8SetTable, METH_VARARGS, NULL}, { (char *)"cmsIT8LoadFromFile", _wrap_cmsIT8LoadFromFile, METH_VARARGS, NULL}, { (char *)"cmsIT8LoadFromMem", _wrap_cmsIT8LoadFromMem, METH_VARARGS, NULL}, { (char *)"cmsIT8SaveToFile", _wrap_cmsIT8SaveToFile, METH_VARARGS, NULL}, { (char *)"cmsIT8SaveToMem", _wrap_cmsIT8SaveToMem, METH_VARARGS, NULL}, { (char *)"cmsIT8GetSheetType", _wrap_cmsIT8GetSheetType, METH_VARARGS, NULL}, { (char *)"cmsIT8SetSheetType", _wrap_cmsIT8SetSheetType, METH_VARARGS, NULL}, { (char *)"cmsIT8SetComment", _wrap_cmsIT8SetComment, METH_VARARGS, NULL}, { (char *)"cmsIT8SetPropertyStr", _wrap_cmsIT8SetPropertyStr, METH_VARARGS, NULL}, { (char *)"cmsIT8SetPropertyDbl", _wrap_cmsIT8SetPropertyDbl, METH_VARARGS, NULL}, { (char *)"cmsIT8SetPropertyHex", _wrap_cmsIT8SetPropertyHex, METH_VARARGS, NULL}, { (char *)"cmsIT8SetPropertyMulti", _wrap_cmsIT8SetPropertyMulti, METH_VARARGS, NULL}, { (char *)"cmsIT8SetPropertyUncooked", _wrap_cmsIT8SetPropertyUncooked, METH_VARARGS, NULL}, { (char *)"cmsIT8GetProperty", _wrap_cmsIT8GetProperty, METH_VARARGS, NULL}, { (char *)"cmsIT8GetPropertyDbl", _wrap_cmsIT8GetPropertyDbl, METH_VARARGS, NULL}, { (char *)"cmsIT8GetPropertyMulti", _wrap_cmsIT8GetPropertyMulti, METH_VARARGS, NULL}, { (char *)"cmsIT8EnumProperties", _wrap_cmsIT8EnumProperties, METH_VARARGS, NULL}, { (char *)"cmsIT8EnumPropertyMulti", _wrap_cmsIT8EnumPropertyMulti, METH_VARARGS, NULL}, { (char *)"cmsIT8GetDataRowCol", _wrap_cmsIT8GetDataRowCol, METH_VARARGS, NULL}, { (char *)"cmsIT8GetDataRowColDbl", _wrap_cmsIT8GetDataRowColDbl, METH_VARARGS, NULL}, { (char *)"cmsIT8SetDataRowCol", _wrap_cmsIT8SetDataRowCol, METH_VARARGS, NULL}, { (char *)"cmsIT8SetDataRowColDbl", _wrap_cmsIT8SetDataRowColDbl, METH_VARARGS, NULL}, { (char *)"cmsIT8GetData", _wrap_cmsIT8GetData, METH_VARARGS, NULL}, { (char *)"cmsIT8GetDataDbl", _wrap_cmsIT8GetDataDbl, METH_VARARGS, NULL}, { (char *)"cmsIT8SetData", _wrap_cmsIT8SetData, METH_VARARGS, NULL}, { (char *)"cmsIT8SetDataDbl", _wrap_cmsIT8SetDataDbl, METH_VARARGS, NULL}, { (char *)"cmsIT8GetDataFormat", _wrap_cmsIT8GetDataFormat, METH_VARARGS, NULL}, { (char *)"cmsIT8SetDataFormat", _wrap_cmsIT8SetDataFormat, METH_VARARGS, NULL}, { (char *)"cmsIT8EnumDataFormat", _wrap_cmsIT8EnumDataFormat, METH_VARARGS, NULL}, { (char *)"cmsIT8GetPatchName", _wrap_cmsIT8GetPatchName, METH_VARARGS, NULL}, { (char *)"cmsIT8GetPatchByName", _wrap_cmsIT8GetPatchByName, METH_VARARGS, NULL}, { (char *)"cmsIT8SetTableByLabel", _wrap_cmsIT8SetTableByLabel, METH_VARARGS, NULL}, { (char *)"cmsIT8SetIndexColumn", _wrap_cmsIT8SetIndexColumn, METH_VARARGS, NULL}, { (char *)"cmsIT8DefineDblFormat", _wrap_cmsIT8DefineDblFormat, METH_VARARGS, NULL}, { (char *)"cmsLabEncoded2Float", _wrap_cmsLabEncoded2Float, METH_VARARGS, NULL}, { (char *)"cmsLabEncoded2Float4", _wrap_cmsLabEncoded2Float4, METH_VARARGS, NULL}, { (char *)"cmsFloat2LabEncoded", _wrap_cmsFloat2LabEncoded, METH_VARARGS, NULL}, { (char *)"cmsFloat2LabEncoded4", _wrap_cmsFloat2LabEncoded4, METH_VARARGS, NULL}, { (char *)"cmsXYZEncoded2Float", _wrap_cmsXYZEncoded2Float, METH_VARARGS, NULL}, { (char *)"cmsFloat2XYZEncoded", _wrap_cmsFloat2XYZEncoded, METH_VARARGS, NULL}, { (char *)"_cmsAddTextTag", _wrap__cmsAddTextTag, METH_VARARGS, NULL}, { (char *)"_cmsAddXYZTag", _wrap__cmsAddXYZTag, METH_VARARGS, NULL}, { (char *)"_cmsAddLUTTag", _wrap__cmsAddLUTTag, METH_VARARGS, NULL}, { (char *)"_cmsAddGammaTag", _wrap__cmsAddGammaTag, METH_VARARGS, NULL}, { (char *)"_cmsAddChromaticityTag", _wrap__cmsAddChromaticityTag, METH_VARARGS, NULL}, { (char *)"_cmsAddSequenceDescriptionTag", _wrap__cmsAddSequenceDescriptionTag, METH_VARARGS, NULL}, { (char *)"_cmsAddNamedColorTag", _wrap__cmsAddNamedColorTag, METH_VARARGS, NULL}, { (char *)"_cmsAddDateTimeTag", _wrap__cmsAddDateTimeTag, METH_VARARGS, NULL}, { (char *)"_cmsAddColorantTableTag", _wrap__cmsAddColorantTableTag, METH_VARARGS, NULL}, { (char *)"_cmsAddChromaticAdaptationTag", _wrap__cmsAddChromaticAdaptationTag, METH_VARARGS, NULL}, { (char *)"_cmsQuickFloor", _wrap__cmsQuickFloor, METH_VARARGS, NULL}, { (char *)"_cmsClampWord", _wrap__cmsClampWord, METH_VARARGS, NULL}, { (char *)"_cmsMalloc", _wrap__cmsMalloc, METH_VARARGS, NULL}, { (char *)"_cmsCalloc", _wrap__cmsCalloc, METH_VARARGS, NULL}, { (char *)"_cmsFree", _wrap__cmsFree, METH_VARARGS, NULL}, { (char *)"cmsSignalError", _wrap_cmsSignalError, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign16_a_set", _wrap__cmsTestAlign16_a_set, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign16_a_get", _wrap__cmsTestAlign16_a_get, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign16_b_set", _wrap__cmsTestAlign16_b_set, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign16_b_get", _wrap__cmsTestAlign16_b_get, METH_VARARGS, NULL}, { (char *)"new__cmsTestAlign16", _wrap_new__cmsTestAlign16, METH_VARARGS, NULL}, { (char *)"delete__cmsTestAlign16", _wrap_delete__cmsTestAlign16, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign16_swigregister", _cmsTestAlign16_swigregister, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign8_a_set", _wrap__cmsTestAlign8_a_set, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign8_a_get", _wrap__cmsTestAlign8_a_get, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign8_b_set", _wrap__cmsTestAlign8_b_set, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign8_b_get", _wrap__cmsTestAlign8_b_get, METH_VARARGS, NULL}, { (char *)"new__cmsTestAlign8", _wrap_new__cmsTestAlign8, METH_VARARGS, NULL}, { (char *)"delete__cmsTestAlign8", _wrap_delete__cmsTestAlign8, METH_VARARGS, NULL}, { (char *)"_cmsTestAlign8_swigregister", _cmsTestAlign8_swigregister, METH_VARARGS, NULL}, { (char *)"FixedMul", _wrap_FixedMul, METH_VARARGS, NULL}, { (char *)"FixedSquare", _wrap_FixedSquare, METH_VARARGS, NULL}, { (char *)"ToFixedDomain", _wrap_ToFixedDomain, METH_VARARGS, NULL}, { (char *)"FromFixedDomain", _wrap_FromFixedDomain, METH_VARARGS, NULL}, { (char *)"FixedLERP", _wrap_FixedLERP, METH_VARARGS, NULL}, { (char *)"FixedScale", _wrap_FixedScale, METH_VARARGS, NULL}, { (char *)"WVEC3_n_set", _wrap_WVEC3_n_set, METH_VARARGS, NULL}, { (char *)"WVEC3_n_get", _wrap_WVEC3_n_get, METH_VARARGS, NULL}, { (char *)"new_WVEC3", _wrap_new_WVEC3, METH_VARARGS, NULL}, { (char *)"delete_WVEC3", _wrap_delete_WVEC3, METH_VARARGS, NULL}, { (char *)"WVEC3_swigregister", WVEC3_swigregister, METH_VARARGS, NULL}, { (char *)"WMAT3_v_set", _wrap_WMAT3_v_set, METH_VARARGS, NULL}, { (char *)"WMAT3_v_get", _wrap_WMAT3_v_get, METH_VARARGS, NULL}, { (char *)"new_WMAT3", _wrap_new_WMAT3, METH_VARARGS, NULL}, { (char *)"delete_WMAT3", _wrap_delete_WMAT3, METH_VARARGS, NULL}, { (char *)"WMAT3_swigregister", WMAT3_swigregister, METH_VARARGS, NULL}, { (char *)"VEC3init", _wrap_VEC3init, METH_VARARGS, NULL}, { (char *)"VEC3initF", _wrap_VEC3initF, METH_VARARGS, NULL}, { (char *)"VEC3toFix", _wrap_VEC3toFix, METH_VARARGS, NULL}, { (char *)"VEC3fromFix", _wrap_VEC3fromFix, METH_VARARGS, NULL}, { (char *)"VEC3scaleFix", _wrap_VEC3scaleFix, METH_VARARGS, NULL}, { (char *)"VEC3swap", _wrap_VEC3swap, METH_VARARGS, NULL}, { (char *)"VEC3divK", _wrap_VEC3divK, METH_VARARGS, NULL}, { (char *)"VEC3perK", _wrap_VEC3perK, METH_VARARGS, NULL}, { (char *)"VEC3minus", _wrap_VEC3minus, METH_VARARGS, NULL}, { (char *)"VEC3perComp", _wrap_VEC3perComp, METH_VARARGS, NULL}, { (char *)"VEC3equal", _wrap_VEC3equal, METH_VARARGS, NULL}, { (char *)"VEC3equalF", _wrap_VEC3equalF, METH_VARARGS, NULL}, { (char *)"VEC3scaleAndCut", _wrap_VEC3scaleAndCut, METH_VARARGS, NULL}, { (char *)"VEC3cross", _wrap_VEC3cross, METH_VARARGS, NULL}, { (char *)"VEC3saturate", _wrap_VEC3saturate, METH_VARARGS, NULL}, { (char *)"VEC3distance", _wrap_VEC3distance, METH_VARARGS, NULL}, { (char *)"VEC3length", _wrap_VEC3length, METH_VARARGS, NULL}, { (char *)"MAT3identity", _wrap_MAT3identity, METH_VARARGS, NULL}, { (char *)"MAT3per", _wrap_MAT3per, METH_VARARGS, NULL}, { (char *)"MAT3perK", _wrap_MAT3perK, METH_VARARGS, NULL}, { (char *)"MAT3inverse", _wrap_MAT3inverse, METH_VARARGS, NULL}, { (char *)"MAT3solve", _wrap_MAT3solve, METH_VARARGS, NULL}, { (char *)"MAT3det", _wrap_MAT3det, METH_VARARGS, NULL}, { (char *)"MAT3eval", _wrap_MAT3eval, METH_VARARGS, NULL}, { (char *)"MAT3toFix", _wrap_MAT3toFix, METH_VARARGS, NULL}, { (char *)"MAT3fromFix", _wrap_MAT3fromFix, METH_VARARGS, NULL}, { (char *)"MAT3evalW", _wrap_MAT3evalW, METH_VARARGS, NULL}, { (char *)"MAT3isIdentity", _wrap_MAT3isIdentity, METH_VARARGS, NULL}, { (char *)"MAT3scaleAndCut", _wrap_MAT3scaleAndCut, METH_VARARGS, NULL}, { (char *)"cmsIsLinear", _wrap_cmsIsLinear, METH_VARARGS, NULL}, { (char *)"L8PARAMS_X0_set", _wrap_L8PARAMS_X0_set, METH_VARARGS, NULL}, { (char *)"L8PARAMS_X0_get", _wrap_L8PARAMS_X0_get, METH_VARARGS, NULL}, { (char *)"L8PARAMS_Y0_set", _wrap_L8PARAMS_Y0_set, METH_VARARGS, NULL}, { (char *)"L8PARAMS_Y0_get", _wrap_L8PARAMS_Y0_get, METH_VARARGS, NULL}, { (char *)"L8PARAMS_Z0_set", _wrap_L8PARAMS_Z0_set, METH_VARARGS, NULL}, { (char *)"L8PARAMS_Z0_get", _wrap_L8PARAMS_Z0_get, METH_VARARGS, NULL}, { (char *)"L8PARAMS_rx_set", _wrap_L8PARAMS_rx_set, METH_VARARGS, NULL}, { (char *)"L8PARAMS_rx_get", _wrap_L8PARAMS_rx_get, METH_VARARGS, NULL}, { (char *)"L8PARAMS_ry_set", _wrap_L8PARAMS_ry_set, METH_VARARGS, NULL}, { (char *)"L8PARAMS_ry_get", _wrap_L8PARAMS_ry_get, METH_VARARGS, NULL}, { (char *)"L8PARAMS_rz_set", _wrap_L8PARAMS_rz_set, METH_VARARGS, NULL}, { (char *)"L8PARAMS_rz_get", _wrap_L8PARAMS_rz_get, METH_VARARGS, NULL}, { (char *)"new_L8PARAMS", _wrap_new_L8PARAMS, METH_VARARGS, NULL}, { (char *)"delete_L8PARAMS", _wrap_delete_L8PARAMS, METH_VARARGS, NULL}, { (char *)"L8PARAMS_swigregister", L8PARAMS_swigregister, METH_VARARGS, NULL}, { (char *)"L16PARAMS_nSamples_set", _wrap_L16PARAMS_nSamples_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_nSamples_get", _wrap_L16PARAMS_nSamples_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_nInputs_set", _wrap_L16PARAMS_nInputs_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_nInputs_get", _wrap_L16PARAMS_nInputs_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_nOutputs_set", _wrap_L16PARAMS_nOutputs_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_nOutputs_get", _wrap_L16PARAMS_nOutputs_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_Domain_set", _wrap_L16PARAMS_Domain_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_Domain_get", _wrap_L16PARAMS_Domain_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta1_set", _wrap_L16PARAMS_opta1_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta1_get", _wrap_L16PARAMS_opta1_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta2_set", _wrap_L16PARAMS_opta2_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta2_get", _wrap_L16PARAMS_opta2_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta3_set", _wrap_L16PARAMS_opta3_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta3_get", _wrap_L16PARAMS_opta3_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta4_set", _wrap_L16PARAMS_opta4_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta4_get", _wrap_L16PARAMS_opta4_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta5_set", _wrap_L16PARAMS_opta5_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta5_get", _wrap_L16PARAMS_opta5_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta6_set", _wrap_L16PARAMS_opta6_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta6_get", _wrap_L16PARAMS_opta6_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta7_set", _wrap_L16PARAMS_opta7_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta7_get", _wrap_L16PARAMS_opta7_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta8_set", _wrap_L16PARAMS_opta8_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_opta8_get", _wrap_L16PARAMS_opta8_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_Interp3D_set", _wrap_L16PARAMS_Interp3D_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_Interp3D_get", _wrap_L16PARAMS_Interp3D_get, METH_VARARGS, NULL}, { (char *)"L16PARAMS_p8_set", _wrap_L16PARAMS_p8_set, METH_VARARGS, NULL}, { (char *)"L16PARAMS_p8_get", _wrap_L16PARAMS_p8_get, METH_VARARGS, NULL}, { (char *)"new_L16PARAMS", _wrap_new_L16PARAMS, METH_VARARGS, NULL}, { (char *)"delete_L16PARAMS", _wrap_delete_L16PARAMS, METH_VARARGS, NULL}, { (char *)"L16PARAMS_swigregister", L16PARAMS_swigregister, METH_VARARGS, NULL}, { (char *)"cmsCalcL16Params", _wrap_cmsCalcL16Params, METH_VARARGS, NULL}, { (char *)"cmsCalcCLUT16Params", _wrap_cmsCalcCLUT16Params, METH_VARARGS, NULL}, { (char *)"cmsCalcCLUT16ParamsEx", _wrap_cmsCalcCLUT16ParamsEx, METH_VARARGS, NULL}, { (char *)"cmsLinearInterpLUT16", _wrap_cmsLinearInterpLUT16, METH_VARARGS, NULL}, { (char *)"cmsLinearInterpFixed", _wrap_cmsLinearInterpFixed, METH_VARARGS, NULL}, { (char *)"cmsReverseLinearInterpLUT16", _wrap_cmsReverseLinearInterpLUT16, METH_VARARGS, NULL}, { (char *)"cmsTrilinearInterp16", _wrap_cmsTrilinearInterp16, METH_VARARGS, NULL}, { (char *)"cmsTetrahedralInterp16", _wrap_cmsTetrahedralInterp16, METH_VARARGS, NULL}, { (char *)"cmsTetrahedralInterp8", _wrap_cmsTetrahedralInterp8, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_wFlags_set", _wrap__lcms_LUT_struc_wFlags_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_wFlags_get", _wrap__lcms_LUT_struc_wFlags_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Matrix_set", _wrap__lcms_LUT_struc_Matrix_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Matrix_get", _wrap__lcms_LUT_struc_Matrix_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_InputChan_set", _wrap__lcms_LUT_struc_InputChan_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_InputChan_get", _wrap__lcms_LUT_struc_InputChan_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_OutputChan_set", _wrap__lcms_LUT_struc_OutputChan_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_OutputChan_get", _wrap__lcms_LUT_struc_OutputChan_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_InputEntries_set", _wrap__lcms_LUT_struc_InputEntries_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_InputEntries_get", _wrap__lcms_LUT_struc_InputEntries_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_OutputEntries_set", _wrap__lcms_LUT_struc_OutputEntries_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_OutputEntries_get", _wrap__lcms_LUT_struc_OutputEntries_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_cLutPoints_set", _wrap__lcms_LUT_struc_cLutPoints_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_cLutPoints_get", _wrap__lcms_LUT_struc_cLutPoints_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L1_set", _wrap__lcms_LUT_struc_L1_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L1_get", _wrap__lcms_LUT_struc_L1_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L2_set", _wrap__lcms_LUT_struc_L2_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L2_get", _wrap__lcms_LUT_struc_L2_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_T_set", _wrap__lcms_LUT_struc_T_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_T_get", _wrap__lcms_LUT_struc_T_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Tsize_set", _wrap__lcms_LUT_struc_Tsize_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Tsize_get", _wrap__lcms_LUT_struc_Tsize_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_In16params_set", _wrap__lcms_LUT_struc_In16params_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_In16params_get", _wrap__lcms_LUT_struc_In16params_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Out16params_set", _wrap__lcms_LUT_struc_Out16params_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Out16params_get", _wrap__lcms_LUT_struc_Out16params_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_CLut16params_set", _wrap__lcms_LUT_struc_CLut16params_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_CLut16params_get", _wrap__lcms_LUT_struc_CLut16params_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Intent_set", _wrap__lcms_LUT_struc_Intent_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Intent_get", _wrap__lcms_LUT_struc_Intent_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Mat3_set", _wrap__lcms_LUT_struc_Mat3_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Mat3_get", _wrap__lcms_LUT_struc_Mat3_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Ofs3_set", _wrap__lcms_LUT_struc_Ofs3_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Ofs3_get", _wrap__lcms_LUT_struc_Ofs3_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L3_set", _wrap__lcms_LUT_struc_L3_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L3_get", _wrap__lcms_LUT_struc_L3_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L3params_set", _wrap__lcms_LUT_struc_L3params_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L3params_get", _wrap__lcms_LUT_struc_L3params_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L3Entries_set", _wrap__lcms_LUT_struc_L3Entries_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L3Entries_get", _wrap__lcms_LUT_struc_L3Entries_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Mat4_set", _wrap__lcms_LUT_struc_Mat4_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Mat4_get", _wrap__lcms_LUT_struc_Mat4_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Ofs4_set", _wrap__lcms_LUT_struc_Ofs4_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_Ofs4_get", _wrap__lcms_LUT_struc_Ofs4_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L4_set", _wrap__lcms_LUT_struc_L4_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L4_get", _wrap__lcms_LUT_struc_L4_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L4params_set", _wrap__lcms_LUT_struc_L4params_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L4params_get", _wrap__lcms_LUT_struc_L4params_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L4Entries_set", _wrap__lcms_LUT_struc_L4Entries_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_L4Entries_get", _wrap__lcms_LUT_struc_L4Entries_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_FixGrayAxes_set", _wrap__lcms_LUT_struc_FixGrayAxes_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_FixGrayAxes_get", _wrap__lcms_LUT_struc_FixGrayAxes_get, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_LCurvesSeed_set", _wrap__lcms_LUT_struc_LCurvesSeed_set, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_LCurvesSeed_get", _wrap__lcms_LUT_struc_LCurvesSeed_get, METH_VARARGS, NULL}, { (char *)"new__lcms_LUT_struc", _wrap_new__lcms_LUT_struc, METH_VARARGS, NULL}, { (char *)"delete__lcms_LUT_struc", _wrap_delete__lcms_LUT_struc, METH_VARARGS, NULL}, { (char *)"_lcms_LUT_struc_swigregister", _lcms_LUT_struc_swigregister, METH_VARARGS, NULL}, { (char *)"_cmsSmoothEndpoints", _wrap__cmsSmoothEndpoints, METH_VARARGS, NULL}, { (char *)"_cmsCrc32OfGammaTable", _wrap__cmsCrc32OfGammaTable, METH_VARARGS, NULL}, { (char *)"cmsAllocSampledCurve", _wrap_cmsAllocSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsFreeSampledCurve", _wrap_cmsFreeSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsDupSampledCurve", _wrap_cmsDupSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsConvertGammaToSampledCurve", _wrap_cmsConvertGammaToSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsConvertSampledCurveToGamma", _wrap_cmsConvertSampledCurveToGamma, METH_VARARGS, NULL}, { (char *)"cmsEndpointsOfSampledCurve", _wrap_cmsEndpointsOfSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsClampSampledCurve", _wrap_cmsClampSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsSmoothSampledCurve", _wrap_cmsSmoothSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsRescaleSampledCurve", _wrap_cmsRescaleSampledCurve, METH_VARARGS, NULL}, { (char *)"cmsJoinSampledCurves", _wrap_cmsJoinSampledCurves, METH_VARARGS, NULL}, { (char *)"MATSHAPER_dwFlags_set", _wrap_MATSHAPER_dwFlags_set, METH_VARARGS, NULL}, { (char *)"MATSHAPER_dwFlags_get", _wrap_MATSHAPER_dwFlags_get, METH_VARARGS, NULL}, { (char *)"MATSHAPER_Matrix_set", _wrap_MATSHAPER_Matrix_set, METH_VARARGS, NULL}, { (char *)"MATSHAPER_Matrix_get", _wrap_MATSHAPER_Matrix_get, METH_VARARGS, NULL}, { (char *)"MATSHAPER_p16_set", _wrap_MATSHAPER_p16_set, METH_VARARGS, NULL}, { (char *)"MATSHAPER_p16_get", _wrap_MATSHAPER_p16_get, METH_VARARGS, NULL}, { (char *)"MATSHAPER_L_set", _wrap_MATSHAPER_L_set, METH_VARARGS, NULL}, { (char *)"MATSHAPER_L_get", _wrap_MATSHAPER_L_get, METH_VARARGS, NULL}, { (char *)"MATSHAPER_p2_16_set", _wrap_MATSHAPER_p2_16_set, METH_VARARGS, NULL}, { (char *)"MATSHAPER_p2_16_get", _wrap_MATSHAPER_p2_16_get, METH_VARARGS, NULL}, { (char *)"MATSHAPER_L2_set", _wrap_MATSHAPER_L2_set, METH_VARARGS, NULL}, { (char *)"MATSHAPER_L2_get", _wrap_MATSHAPER_L2_get, METH_VARARGS, NULL}, { (char *)"new_MATSHAPER", _wrap_new_MATSHAPER, METH_VARARGS, NULL}, { (char *)"delete_MATSHAPER", _wrap_delete_MATSHAPER, METH_VARARGS, NULL}, { (char *)"MATSHAPER_swigregister", MATSHAPER_swigregister, METH_VARARGS, NULL}, { (char *)"cmsAllocMatShaper", _wrap_cmsAllocMatShaper, METH_VARARGS, NULL}, { (char *)"cmsAllocMatShaper2", _wrap_cmsAllocMatShaper2, METH_VARARGS, NULL}, { (char *)"cmsFreeMatShaper", _wrap_cmsFreeMatShaper, METH_VARARGS, NULL}, { (char *)"cmsEvalMatShaper", _wrap_cmsEvalMatShaper, METH_VARARGS, NULL}, { (char *)"cmsReadICCMatrixRGB2XYZ", _wrap_cmsReadICCMatrixRGB2XYZ, METH_VARARGS, NULL}, { (char *)"cmsBuildInputMatrixShaper", _wrap_cmsBuildInputMatrixShaper, METH_VARARGS, NULL}, { (char *)"cmsBuildOutputMatrixShaper", _wrap_cmsBuildOutputMatrixShaper, METH_VARARGS, NULL}, { (char *)"cmsAdaptationMatrix", _wrap_cmsAdaptationMatrix, METH_VARARGS, NULL}, { (char *)"cmsAdaptMatrixToD50", _wrap_cmsAdaptMatrixToD50, METH_VARARGS, NULL}, { (char *)"cmsAdaptMatrixFromD50", _wrap_cmsAdaptMatrixFromD50, METH_VARARGS, NULL}, { (char *)"cmsReadChromaticAdaptationMatrix", _wrap_cmsReadChromaticAdaptationMatrix, METH_VARARGS, NULL}, { (char *)"cmsXYZ2LabEncoded", _wrap_cmsXYZ2LabEncoded, METH_VARARGS, NULL}, { (char *)"cmsLab2XYZEncoded", _wrap_cmsLab2XYZEncoded, METH_VARARGS, NULL}, { (char *)"_cmsIdentifyWhitePoint", _wrap__cmsIdentifyWhitePoint, METH_VARARGS, NULL}, { (char *)"_cmsQuantizeVal", _wrap__cmsQuantizeVal, METH_VARARGS, NULL}, { (char *)"cmsAllocNamedColorList", _wrap_cmsAllocNamedColorList, METH_VARARGS, NULL}, { (char *)"cmsReadICCnamedColorList", _wrap_cmsReadICCnamedColorList, METH_VARARGS, NULL}, { (char *)"cmsFreeNamedColorList", _wrap_cmsFreeNamedColorList, METH_VARARGS, NULL}, { (char *)"cmsAppendNamedColor", _wrap_cmsAppendNamedColor, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_stream_set", _wrap_LCMSICCPROFILE_stream_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_stream_get", _wrap_LCMSICCPROFILE_stream_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_DeviceClass_set", _wrap_LCMSICCPROFILE_DeviceClass_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_DeviceClass_get", _wrap_LCMSICCPROFILE_DeviceClass_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_ColorSpace_set", _wrap_LCMSICCPROFILE_ColorSpace_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_ColorSpace_get", _wrap_LCMSICCPROFILE_ColorSpace_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_PCS_set", _wrap_LCMSICCPROFILE_PCS_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_PCS_get", _wrap_LCMSICCPROFILE_PCS_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_RenderingIntent_set", _wrap_LCMSICCPROFILE_RenderingIntent_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_RenderingIntent_get", _wrap_LCMSICCPROFILE_RenderingIntent_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_flags_set", _wrap_LCMSICCPROFILE_flags_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_flags_get", _wrap_LCMSICCPROFILE_flags_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_attributes_set", _wrap_LCMSICCPROFILE_attributes_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_attributes_get", _wrap_LCMSICCPROFILE_attributes_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Illuminant_set", _wrap_LCMSICCPROFILE_Illuminant_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Illuminant_get", _wrap_LCMSICCPROFILE_Illuminant_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Version_set", _wrap_LCMSICCPROFILE_Version_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Version_get", _wrap_LCMSICCPROFILE_Version_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_ChromaticAdaptation_set", _wrap_LCMSICCPROFILE_ChromaticAdaptation_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_ChromaticAdaptation_get", _wrap_LCMSICCPROFILE_ChromaticAdaptation_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_MediaWhitePoint_set", _wrap_LCMSICCPROFILE_MediaWhitePoint_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_MediaWhitePoint_get", _wrap_LCMSICCPROFILE_MediaWhitePoint_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_MediaBlackPoint_set", _wrap_LCMSICCPROFILE_MediaBlackPoint_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_MediaBlackPoint_get", _wrap_LCMSICCPROFILE_MediaBlackPoint_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_ProfileID_set", _wrap_LCMSICCPROFILE_ProfileID_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_ProfileID_get", _wrap_LCMSICCPROFILE_ProfileID_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagCount_set", _wrap_LCMSICCPROFILE_TagCount_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagCount_get", _wrap_LCMSICCPROFILE_TagCount_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagNames_set", _wrap_LCMSICCPROFILE_TagNames_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagNames_get", _wrap_LCMSICCPROFILE_TagNames_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagSizes_set", _wrap_LCMSICCPROFILE_TagSizes_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagSizes_get", _wrap_LCMSICCPROFILE_TagSizes_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagOffsets_set", _wrap_LCMSICCPROFILE_TagOffsets_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagOffsets_get", _wrap_LCMSICCPROFILE_TagOffsets_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagPtrs_set", _wrap_LCMSICCPROFILE_TagPtrs_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_TagPtrs_get", _wrap_LCMSICCPROFILE_TagPtrs_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_PhysicalFile_set", _wrap_LCMSICCPROFILE_PhysicalFile_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_PhysicalFile_get", _wrap_LCMSICCPROFILE_PhysicalFile_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_IsWrite_set", _wrap_LCMSICCPROFILE_IsWrite_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_IsWrite_get", _wrap_LCMSICCPROFILE_IsWrite_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_SaveAs8Bits_set", _wrap_LCMSICCPROFILE_SaveAs8Bits_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_SaveAs8Bits_get", _wrap_LCMSICCPROFILE_SaveAs8Bits_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Created_set", _wrap_LCMSICCPROFILE_Created_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Created_get", _wrap_LCMSICCPROFILE_Created_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Read_set", _wrap_LCMSICCPROFILE_Read_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Read_get", _wrap_LCMSICCPROFILE_Read_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Seek_set", _wrap_LCMSICCPROFILE_Seek_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Seek_get", _wrap_LCMSICCPROFILE_Seek_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Close_set", _wrap_LCMSICCPROFILE_Close_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Close_get", _wrap_LCMSICCPROFILE_Close_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Tell_set", _wrap_LCMSICCPROFILE_Tell_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Tell_get", _wrap_LCMSICCPROFILE_Tell_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Write_set", _wrap_LCMSICCPROFILE_Write_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_Write_get", _wrap_LCMSICCPROFILE_Write_get, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_UsedSpace_set", _wrap_LCMSICCPROFILE_UsedSpace_set, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_UsedSpace_get", _wrap_LCMSICCPROFILE_UsedSpace_get, METH_VARARGS, NULL}, { (char *)"new_LCMSICCPROFILE", _wrap_new_LCMSICCPROFILE, METH_VARARGS, NULL}, { (char *)"delete_LCMSICCPROFILE", _wrap_delete_LCMSICCPROFILE, METH_VARARGS, NULL}, { (char *)"LCMSICCPROFILE_swigregister", LCMSICCPROFILE_swigregister, METH_VARARGS, NULL}, { (char *)"_cmsCreateProfilePlaceholder", _wrap__cmsCreateProfilePlaceholder, METH_VARARGS, NULL}, { (char *)"_cmsSearchTag", _wrap__cmsSearchTag, METH_VARARGS, NULL}, { (char *)"_cmsInitTag", _wrap__cmsInitTag, METH_VARARGS, NULL}, { (char *)"_cmsCreateProfileFromFilePlaceholder", _wrap__cmsCreateProfileFromFilePlaceholder, METH_VARARGS, NULL}, { (char *)"_cmsCreateProfileFromMemPlaceholder", _wrap__cmsCreateProfileFromMemPlaceholder, METH_VARARGS, NULL}, { (char *)"_cmsSetSaveToDisk", _wrap__cmsSetSaveToDisk, METH_VARARGS, NULL}, { (char *)"_cmsSetSaveToMemory", _wrap__cmsSetSaveToMemory, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_InputFormat_set", _wrap__cmsTRANSFORM_InputFormat_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_InputFormat_get", _wrap__cmsTRANSFORM_InputFormat_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_OutputFormat_set", _wrap__cmsTRANSFORM_OutputFormat_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_OutputFormat_get", _wrap__cmsTRANSFORM_OutputFormat_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_StrideIn_set", _wrap__cmsTRANSFORM_StrideIn_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_StrideIn_get", _wrap__cmsTRANSFORM_StrideIn_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_StrideOut_set", _wrap__cmsTRANSFORM_StrideOut_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_StrideOut_get", _wrap__cmsTRANSFORM_StrideOut_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Intent_set", _wrap__cmsTRANSFORM_Intent_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Intent_get", _wrap__cmsTRANSFORM_Intent_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ProofIntent_set", _wrap__cmsTRANSFORM_ProofIntent_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ProofIntent_get", _wrap__cmsTRANSFORM_ProofIntent_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_DoGamutCheck_set", _wrap__cmsTRANSFORM_DoGamutCheck_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_DoGamutCheck_get", _wrap__cmsTRANSFORM_DoGamutCheck_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_InputProfile_set", _wrap__cmsTRANSFORM_InputProfile_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_InputProfile_get", _wrap__cmsTRANSFORM_InputProfile_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_OutputProfile_set", _wrap__cmsTRANSFORM_OutputProfile_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_OutputProfile_get", _wrap__cmsTRANSFORM_OutputProfile_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_PreviewProfile_set", _wrap__cmsTRANSFORM_PreviewProfile_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_PreviewProfile_get", _wrap__cmsTRANSFORM_PreviewProfile_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_EntryColorSpace_set", _wrap__cmsTRANSFORM_EntryColorSpace_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_EntryColorSpace_get", _wrap__cmsTRANSFORM_EntryColorSpace_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ExitColorSpace_set", _wrap__cmsTRANSFORM_ExitColorSpace_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ExitColorSpace_get", _wrap__cmsTRANSFORM_ExitColorSpace_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_dwOriginalFlags_set", _wrap__cmsTRANSFORM_dwOriginalFlags_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_dwOriginalFlags_get", _wrap__cmsTRANSFORM_dwOriginalFlags_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_m1_set", _wrap__cmsTRANSFORM_m1_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_m1_get", _wrap__cmsTRANSFORM_m1_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_m2_set", _wrap__cmsTRANSFORM_m2_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_m2_get", _wrap__cmsTRANSFORM_m2_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_of1_set", _wrap__cmsTRANSFORM_of1_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_of1_get", _wrap__cmsTRANSFORM_of1_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_of2_set", _wrap__cmsTRANSFORM_of2_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_of2_get", _wrap__cmsTRANSFORM_of2_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_xform_set", _wrap__cmsTRANSFORM_xform_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_xform_get", _wrap__cmsTRANSFORM_xform_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_FromInput_set", _wrap__cmsTRANSFORM_FromInput_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_FromInput_get", _wrap__cmsTRANSFORM_FromInput_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_FromDevice_set", _wrap__cmsTRANSFORM_FromDevice_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_FromDevice_get", _wrap__cmsTRANSFORM_FromDevice_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Stage1_set", _wrap__cmsTRANSFORM_Stage1_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Stage1_get", _wrap__cmsTRANSFORM_Stage1_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Stage2_set", _wrap__cmsTRANSFORM_Stage2_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Stage2_get", _wrap__cmsTRANSFORM_Stage2_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ToDevice_set", _wrap__cmsTRANSFORM_ToDevice_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ToDevice_get", _wrap__cmsTRANSFORM_ToDevice_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ToOutput_set", _wrap__cmsTRANSFORM_ToOutput_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_ToOutput_get", _wrap__cmsTRANSFORM_ToOutput_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Device2PCS_set", _wrap__cmsTRANSFORM_Device2PCS_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Device2PCS_get", _wrap__cmsTRANSFORM_Device2PCS_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_PCS2Device_set", _wrap__cmsTRANSFORM_PCS2Device_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_PCS2Device_get", _wrap__cmsTRANSFORM_PCS2Device_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Gamut_set", _wrap__cmsTRANSFORM_Gamut_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Gamut_get", _wrap__cmsTRANSFORM_Gamut_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Preview_set", _wrap__cmsTRANSFORM_Preview_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Preview_get", _wrap__cmsTRANSFORM_Preview_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_DeviceLink_set", _wrap__cmsTRANSFORM_DeviceLink_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_DeviceLink_get", _wrap__cmsTRANSFORM_DeviceLink_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_GamutCheck_set", _wrap__cmsTRANSFORM_GamutCheck_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_GamutCheck_get", _wrap__cmsTRANSFORM_GamutCheck_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_InMatShaper_set", _wrap__cmsTRANSFORM_InMatShaper_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_InMatShaper_get", _wrap__cmsTRANSFORM_InMatShaper_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_OutMatShaper_set", _wrap__cmsTRANSFORM_OutMatShaper_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_OutMatShaper_get", _wrap__cmsTRANSFORM_OutMatShaper_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_SmeltMatShaper_set", _wrap__cmsTRANSFORM_SmeltMatShaper_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_SmeltMatShaper_get", _wrap__cmsTRANSFORM_SmeltMatShaper_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Phase1_set", _wrap__cmsTRANSFORM_Phase1_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Phase1_get", _wrap__cmsTRANSFORM_Phase1_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Phase2_set", _wrap__cmsTRANSFORM_Phase2_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Phase2_get", _wrap__cmsTRANSFORM_Phase2_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Phase3_set", _wrap__cmsTRANSFORM_Phase3_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_Phase3_get", _wrap__cmsTRANSFORM_Phase3_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_NamedColorList_set", _wrap__cmsTRANSFORM_NamedColorList_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_NamedColorList_get", _wrap__cmsTRANSFORM_NamedColorList_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_lInputV4Lab_set", _wrap__cmsTRANSFORM_lInputV4Lab_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_lInputV4Lab_get", _wrap__cmsTRANSFORM_lInputV4Lab_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_lOutputV4Lab_set", _wrap__cmsTRANSFORM_lOutputV4Lab_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_lOutputV4Lab_get", _wrap__cmsTRANSFORM_lOutputV4Lab_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_CacheIn_set", _wrap__cmsTRANSFORM_CacheIn_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_CacheIn_get", _wrap__cmsTRANSFORM_CacheIn_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_CacheOut_set", _wrap__cmsTRANSFORM_CacheOut_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_CacheOut_get", _wrap__cmsTRANSFORM_CacheOut_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_AdaptationState_set", _wrap__cmsTRANSFORM_AdaptationState_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_AdaptationState_get", _wrap__cmsTRANSFORM_AdaptationState_get, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_rwlock_set", _wrap__cmsTRANSFORM_rwlock_set, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_rwlock_get", _wrap__cmsTRANSFORM_rwlock_get, METH_VARARGS, NULL}, { (char *)"new__cmsTRANSFORM", _wrap_new__cmsTRANSFORM, METH_VARARGS, NULL}, { (char *)"delete__cmsTRANSFORM", _wrap_delete__cmsTRANSFORM, METH_VARARGS, NULL}, { (char *)"_cmsTRANSFORM_swigregister", _cmsTRANSFORM_swigregister, METH_VARARGS, NULL}, { (char *)"_cmsIdentifyInputFormat", _wrap__cmsIdentifyInputFormat, METH_VARARGS, NULL}, { (char *)"_cmsIdentifyOutputFormat", _wrap__cmsIdentifyOutputFormat, METH_VARARGS, NULL}, { (char *)"cmsChooseCnvrt", _wrap_cmsChooseCnvrt, METH_VARARGS, NULL}, { (char *)"_cmsEndPointsBySpace", _wrap__cmsEndPointsBySpace, METH_VARARGS, NULL}, { (char *)"_cmsWhiteBySpace", _wrap__cmsWhiteBySpace, METH_VARARGS, NULL}, { (char *)"Clamp_L", _wrap_Clamp_L, METH_VARARGS, NULL}, { (char *)"Clamp_ab", _wrap_Clamp_ab, METH_VARARGS, NULL}, { (char *)"cmsDetectBlackPoint", _wrap_cmsDetectBlackPoint, METH_VARARGS, NULL}, { (char *)"_cmsReasonableGridpointsByColorspace", _wrap__cmsReasonableGridpointsByColorspace, METH_VARARGS, NULL}, { (char *)"_cmsPrecalculateDeviceLink", _wrap__cmsPrecalculateDeviceLink, METH_VARARGS, NULL}, { (char *)"_cmsPrecalculateBlackPreservingDeviceLink", _wrap__cmsPrecalculateBlackPreservingDeviceLink, METH_VARARGS, NULL}, { (char *)"_cmsPrecalculateGamutCheck", _wrap__cmsPrecalculateGamutCheck, METH_VARARGS, NULL}, { (char *)"_cmsFixWhiteMisalignment", _wrap__cmsFixWhiteMisalignment, METH_VARARGS, NULL}, { (char *)"_cmsBlessLUT8", _wrap__cmsBlessLUT8, METH_VARARGS, NULL}, { (char *)"_cmsComputeGamutLUT", _wrap__cmsComputeGamutLUT, METH_VARARGS, NULL}, { (char *)"_cmsComputeSoftProofLUT", _wrap__cmsComputeSoftProofLUT, METH_VARARGS, NULL}, { (char *)"_cmsComputePrelinearizationTablesFromXFORM", _wrap__cmsComputePrelinearizationTablesFromXFORM, METH_VARARGS, NULL}, { (char *)"_cmsBuildKToneCurve", _wrap__cmsBuildKToneCurve, METH_VARARGS, NULL}, { (char *)"_cmsValidateLUT", _wrap__cmsValidateLUT, METH_VARARGS, NULL}, { (char *)"new_icTagSignature", _wrap_new_icTagSignature, METH_VARARGS, NULL}, { (char *)"delete_icTagSignature", _wrap_delete_icTagSignature, METH_VARARGS, NULL}, { (char *)"icTagSignature_swigregister", icTagSignature_swigregister, METH_VARARGS, NULL}, { (char *)"new_StrPointer", _wrap_new_StrPointer, METH_VARARGS, NULL}, { (char *)"delete_StrPointer", _wrap_delete_StrPointer, METH_VARARGS, NULL}, { (char *)"StrPointer_swigregister", StrPointer_swigregister, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_COLORB = {"_p_COLORB", "COLORB *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_COLORW = {"_p_COLORW", "COLORW *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_GAMMATABLE = {"_p_GAMMATABLE", "GAMMATABLE *|LPGAMMATABLE", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_IT8 = {"_p_IT8", "IT8 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_LCMSGAMMAPARAMS = {"_p_LCMSGAMMAPARAMS", "LCMSGAMMAPARAMS *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_LPMATSHAPER = {"_p_LPMATSHAPER", "LPMATSHAPER *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_LPWMAT3 = {"_p_LPWMAT3", "LPWMAT3 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_LPWVEC3 = {"_p_LPWVEC3", "LPWVEC3 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_LPcmsNAMEDCOLORLIST = {"_p_LPcmsNAMEDCOLORLIST", "LPcmsNAMEDCOLORLIST *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_LPcmsSEQ = {"_p_LPcmsSEQ", "LPcmsSEQ *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_MAT3 = {"_p_MAT3", "LPMAT3|MAT3 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_MATSHAPER = {"_p_MATSHAPER", "MATSHAPER *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_SAMPLEDCURVE = {"_p_SAMPLEDCURVE", "LPSAMPLEDCURVE|SAMPLEDCURVE *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_StrPointer = {"_p_StrPointer", "StrPointer *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_VEC3 = {"_p_VEC3", "VEC3 *|LPVEC3", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_WMAT3 = {"_p_WMAT3", "WMAT3 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_WVEC3 = {"_p_WVEC3", "WVEC3 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__cmsTestAlign16 = {"_p__cmsTestAlign16", "_cmsTestAlign16 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__cmsTestAlign8 = {"_p__cmsTestAlign8", "_cmsTestAlign8 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__cmstransform_struct = {"_p__cmstransform_struct", "_cmsTRANSFORM *|_LPcmsTRANSFORM|_cmstransform_struct *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__lcms_LUT_struc = {"_p__lcms_LUT_struc", "_lcms_LUT_struc *|LPLUT|LUT *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__lcms_iccprofile_struct = {"_p__lcms_iccprofile_struct", "LCMSICCPROFILE *|LPLCMSICCPROFILE|_lcms_iccprofile_struct *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__lcms_l16params_struc = {"_p__lcms_l16params_struc", "_lcms_l16params_struc *|L16PARAMS *|LPL16PARAMS", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p__lcms_l8opt_struc = {"_p__lcms_l8opt_struc", "_lcms_l8opt_struc *|L8PARAMS *|LPL8PARAMS", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_a_16__LCMSGAMMAPARAMS = {"_p_a_16__LCMSGAMMAPARAMS", "LCMSGAMMAPARAMS (*)[16]", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsCIELCh = {"_p_cmsCIELCh", "LPcmsCIELCh|cmsCIELCh *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsCIELab = {"_p_cmsCIELab", "cmsCIELab *|LPcmsCIELab", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsCIEXYZ = {"_p_cmsCIEXYZ", "LPcmsCIEXYZ|cmsCIEXYZ *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsCIEXYZTRIPLE = {"_p_cmsCIEXYZTRIPLE", "cmsCIEXYZTRIPLE *|LPcmsCIEXYZTRIPLE", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsCIExyY = {"_p_cmsCIExyY", "cmsCIExyY *|LPcmsCIExyY", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsCIExyYTRIPLE = {"_p_cmsCIExyYTRIPLE", "cmsCIExyYTRIPLE *|LPcmsCIExyYTRIPLE", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsJCh = {"_p_cmsJCh", "LPcmsJCh|cmsJCh *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsNAMEDCOLOR = {"_p_cmsNAMEDCOLOR", "cmsNAMEDCOLOR *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsNAMEDCOLORLIST = {"_p_cmsNAMEDCOLORLIST", "cmsNAMEDCOLORLIST *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsPSEQDESC = {"_p_cmsPSEQDESC", "cmsPSEQDESC *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsSEQ = {"_p_cmsSEQ", "cmsSEQ *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_cmsViewingConditions = {"_p_cmsViewingConditions", "cmsViewingConditions *|LPcmsViewingConditions", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void = {"_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void", "void (*)(unsigned short [],unsigned short [],LPWMAT3,LPWVEC3)|_cmsADJFN", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void = {"_p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void", "_cms3DLERP|void (*)(unsigned short [],unsigned short [],unsigned short [],_lcms_l16params_struc *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_a___unsigned_short_a___unsigned_short_p_void__int = {"_p_f_a___unsigned_short_a___unsigned_short_p_void__int", "int (*)(unsigned short [],unsigned short [],void *)|_cmsSAMPLER", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_int_p_q_const__char__int = {"_p_f_int_p_q_const__char__int", "int (*)(int,char const *)|cmsErrorHandlerFunction", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void = {"_p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void", "_cmsTRANSFN|void (*)(_cmstransform_struct *,unsigned short [],unsigned short [])", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char = {"_p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char", "_cmsFIXFN|unsigned char *(*)(_cmstransform_struct *,unsigned short [],unsigned char *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void = {"_p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void", "void (*)(_cmstransform_struct *,void *,void *,unsigned int)|_cmsCOLORCALLBACKFN", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__lcms_iccprofile_struct__int = {"_p_f_p__lcms_iccprofile_struct__int", "int (*)(_lcms_iccprofile_struct *)|LCMSBOOL (*)(_lcms_iccprofile_struct *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__lcms_iccprofile_struct__size_t = {"_p_f_p__lcms_iccprofile_struct__size_t", "size_t (*)(_lcms_iccprofile_struct *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__lcms_iccprofile_struct_size_t__int = {"_p_f_p__lcms_iccprofile_struct_size_t__int", "int (*)(_lcms_iccprofile_struct *,size_t)|LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p__lcms_iccprofile_struct_size_t_p_void__int = {"_p_f_p__lcms_iccprofile_struct_size_t_p_void__int", "LCMSBOOL (*)(_lcms_iccprofile_struct *,size_t,LPVOID)|int (*)(_lcms_iccprofile_struct *,size_t,void *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char = {"_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char", "unsigned char *(*)(void *,unsigned short [],unsigned char *)|cmsFORMATTER", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t = {"_p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t", "size_t (*)(void *,size_t,size_t,_lcms_iccprofile_struct *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icCLutStruct = {"_p_icCLutStruct", "icCLutStruct *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icColorSpaceSignature = {"_p_icColorSpaceSignature", "icColorSpaceSignature *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icInt32Number = {"_p_icInt32Number", "icInt32Number *|Fixed32 *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icLutAtoB = {"_p_icLutAtoB", "icLutAtoB *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icLutBtoA = {"_p_icLutBtoA", "icLutBtoA *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icProfileClassSignature = {"_p_icProfileClassSignature", "icProfileClassSignature *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icRenderingIntent = {"_p_icRenderingIntent", "icRenderingIntent *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icS15Fixed16Number = {"_p_icS15Fixed16Number", "icS15Fixed16Number *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icSignature = {"_p_icSignature", "icSignature *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icTagSignature = {"_p_icTagSignature", "icTagSignature *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icTechnologySignature = {"_p_icTechnologySignature", "icTechnologySignature *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icUInt16Number = {"_p_icUInt16Number", "icUInt16Number *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icUInt32Number = {"_p_icUInt32Number", "icUInt32Number *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_icUInt8Number = {"_p_icUInt8Number", "icUInt8Number *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_int = {"_p_int", "int *|LCMSBOOL *|LCMS_RWLOCK_T *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_GAMMATABLE = {"_p_p_GAMMATABLE", "GAMMATABLE **|LPGAMMATABLE *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void = {"_p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void", "void (**)(unsigned short [],unsigned short [],LPWMAT3,LPWVEC3)|_cmsADJFN *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char = {"_p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char", "cmsFORMATTER *|unsigned char *(**)(void *,unsigned short [],unsigned char *)", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_p_char = {"_p_p_p_char", "char ***", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_unsigned_short = {"_p_p_unsigned_short", "WORD **|LPWORD *|unsigned short **", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_p_void = {"_p_p_void", "cmsHTRANSFORM *|cmsHPROFILE *|LPVOID *|void **", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_size_t = {"_p_size_t", "size_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_tm = {"_p_tm", "tm *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|BYTE *|LPBYTE", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_long = {"_p_unsigned_long", "LPDWORD|DWORD *|unsigned long *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "WORD *|unsigned short *|LPWORD", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_void = {"_p_void", "cmsHTRANSFORM|LCMSHANDLE|cmsHPROFILE|LPVOID|void *", 0, 0, (void*)0, 0}; static swig_type_info *swig_type_initial[] = { &_swigt__p_COLORB, &_swigt__p_COLORW, &_swigt__p_GAMMATABLE, &_swigt__p_IT8, &_swigt__p_LCMSGAMMAPARAMS, &_swigt__p_LPMATSHAPER, &_swigt__p_LPWMAT3, &_swigt__p_LPWVEC3, &_swigt__p_LPcmsNAMEDCOLORLIST, &_swigt__p_LPcmsSEQ, &_swigt__p_MAT3, &_swigt__p_MATSHAPER, &_swigt__p_SAMPLEDCURVE, &_swigt__p_StrPointer, &_swigt__p_VEC3, &_swigt__p_WMAT3, &_swigt__p_WVEC3, &_swigt__p__cmsTestAlign16, &_swigt__p__cmsTestAlign8, &_swigt__p__cmstransform_struct, &_swigt__p__lcms_LUT_struc, &_swigt__p__lcms_iccprofile_struct, &_swigt__p__lcms_l16params_struc, &_swigt__p__lcms_l8opt_struc, &_swigt__p_a_16__LCMSGAMMAPARAMS, &_swigt__p_char, &_swigt__p_cmsCIELCh, &_swigt__p_cmsCIELab, &_swigt__p_cmsCIEXYZ, &_swigt__p_cmsCIEXYZTRIPLE, &_swigt__p_cmsCIExyY, &_swigt__p_cmsCIExyYTRIPLE, &_swigt__p_cmsJCh, &_swigt__p_cmsNAMEDCOLOR, &_swigt__p_cmsNAMEDCOLORLIST, &_swigt__p_cmsPSEQDESC, &_swigt__p_cmsSEQ, &_swigt__p_cmsViewingConditions, &_swigt__p_double, &_swigt__p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, &_swigt__p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void, &_swigt__p_f_a___unsigned_short_a___unsigned_short_p_void__int, &_swigt__p_f_int_p_q_const__char__int, &_swigt__p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void, &_swigt__p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char, &_swigt__p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void, &_swigt__p_f_p__lcms_iccprofile_struct__int, &_swigt__p_f_p__lcms_iccprofile_struct__size_t, &_swigt__p_f_p__lcms_iccprofile_struct_size_t__int, &_swigt__p_f_p__lcms_iccprofile_struct_size_t_p_void__int, &_swigt__p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, &_swigt__p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t, &_swigt__p_icCLutStruct, &_swigt__p_icColorSpaceSignature, &_swigt__p_icInt32Number, &_swigt__p_icLutAtoB, &_swigt__p_icLutBtoA, &_swigt__p_icProfileClassSignature, &_swigt__p_icRenderingIntent, &_swigt__p_icS15Fixed16Number, &_swigt__p_icSignature, &_swigt__p_icTagSignature, &_swigt__p_icTechnologySignature, &_swigt__p_icUInt16Number, &_swigt__p_icUInt32Number, &_swigt__p_icUInt8Number, &_swigt__p_int, &_swigt__p_p_GAMMATABLE, &_swigt__p_p_char, &_swigt__p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, &_swigt__p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, &_swigt__p_p_p_char, &_swigt__p_p_unsigned_short, &_swigt__p_p_void, &_swigt__p_size_t, &_swigt__p_tm, &_swigt__p_unsigned_char, &_swigt__p_unsigned_int, &_swigt__p_unsigned_long, &_swigt__p_unsigned_short, &_swigt__p_void, }; static swig_cast_info _swigc__p_COLORB[] = { {&_swigt__p_COLORB, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_COLORW[] = { {&_swigt__p_COLORW, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_GAMMATABLE[] = { {&_swigt__p_GAMMATABLE, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_IT8[] = { {&_swigt__p_IT8, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_LCMSGAMMAPARAMS[] = { {&_swigt__p_LCMSGAMMAPARAMS, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_LPMATSHAPER[] = { {&_swigt__p_LPMATSHAPER, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_LPWMAT3[] = { {&_swigt__p_LPWMAT3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_LPWVEC3[] = { {&_swigt__p_LPWVEC3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_LPcmsNAMEDCOLORLIST[] = { {&_swigt__p_LPcmsNAMEDCOLORLIST, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_LPcmsSEQ[] = { {&_swigt__p_LPcmsSEQ, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_MAT3[] = { {&_swigt__p_MAT3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_MATSHAPER[] = { {&_swigt__p_MATSHAPER, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_SAMPLEDCURVE[] = { {&_swigt__p_SAMPLEDCURVE, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_StrPointer[] = { {&_swigt__p_StrPointer, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_VEC3[] = { {&_swigt__p_VEC3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_WMAT3[] = { {&_swigt__p_WMAT3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_WVEC3[] = { {&_swigt__p_WVEC3, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__cmsTestAlign16[] = { {&_swigt__p__cmsTestAlign16, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__cmsTestAlign8[] = { {&_swigt__p__cmsTestAlign8, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__cmstransform_struct[] = { {&_swigt__p__cmstransform_struct, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__lcms_LUT_struc[] = { {&_swigt__p__lcms_LUT_struc, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__lcms_iccprofile_struct[] = { {&_swigt__p__lcms_iccprofile_struct, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__lcms_l16params_struc[] = { {&_swigt__p__lcms_l16params_struc, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p__lcms_l8opt_struc[] = { {&_swigt__p__lcms_l8opt_struc, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_a_16__LCMSGAMMAPARAMS[] = { {&_swigt__p_a_16__LCMSGAMMAPARAMS, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsCIELCh[] = { {&_swigt__p_cmsCIELCh, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsCIELab[] = { {&_swigt__p_cmsCIELab, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsCIEXYZ[] = { {&_swigt__p_cmsCIEXYZ, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsCIEXYZTRIPLE[] = { {&_swigt__p_cmsCIEXYZTRIPLE, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsCIExyY[] = { {&_swigt__p_cmsCIExyY, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsCIExyYTRIPLE[] = { {&_swigt__p_cmsCIExyYTRIPLE, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsJCh[] = { {&_swigt__p_cmsJCh, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsNAMEDCOLOR[] = { {&_swigt__p_cmsNAMEDCOLOR, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsNAMEDCOLORLIST[] = { {&_swigt__p_cmsNAMEDCOLORLIST, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsPSEQDESC[] = { {&_swigt__p_cmsPSEQDESC, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsSEQ[] = { {&_swigt__p_cmsSEQ, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_cmsViewingConditions[] = { {&_swigt__p_cmsViewingConditions, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_double[] = { {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void[] = { {&_swigt__p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void[] = { {&_swigt__p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_a___unsigned_short_a___unsigned_short_p_void__int[] = { {&_swigt__p_f_a___unsigned_short_a___unsigned_short_p_void__int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_int_p_q_const__char__int[] = { {&_swigt__p_f_int_p_q_const__char__int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void[] = { {&_swigt__p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char[] = { {&_swigt__p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void[] = { {&_swigt__p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__lcms_iccprofile_struct__int[] = { {&_swigt__p_f_p__lcms_iccprofile_struct__int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__lcms_iccprofile_struct__size_t[] = { {&_swigt__p_f_p__lcms_iccprofile_struct__size_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__lcms_iccprofile_struct_size_t__int[] = { {&_swigt__p_f_p__lcms_iccprofile_struct_size_t__int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p__lcms_iccprofile_struct_size_t_p_void__int[] = { {&_swigt__p_f_p__lcms_iccprofile_struct_size_t_p_void__int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char[] = { {&_swigt__p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t[] = { {&_swigt__p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icCLutStruct[] = { {&_swigt__p_icCLutStruct, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icColorSpaceSignature[] = { {&_swigt__p_icColorSpaceSignature, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icInt32Number[] = { {&_swigt__p_icInt32Number, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icLutAtoB[] = { {&_swigt__p_icLutAtoB, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icLutBtoA[] = { {&_swigt__p_icLutBtoA, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icProfileClassSignature[] = { {&_swigt__p_icProfileClassSignature, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icRenderingIntent[] = { {&_swigt__p_icRenderingIntent, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icS15Fixed16Number[] = { {&_swigt__p_icS15Fixed16Number, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icSignature[] = { {&_swigt__p_icSignature, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icTagSignature[] = { {&_swigt__p_icTagSignature, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icTechnologySignature[] = { {&_swigt__p_icTechnologySignature, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icUInt16Number[] = { {&_swigt__p_icUInt16Number, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icUInt32Number[] = { {&_swigt__p_icUInt32Number, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_icUInt8Number[] = { {&_swigt__p_icUInt8Number, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_int[] = { {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_GAMMATABLE[] = { {&_swigt__p_p_GAMMATABLE, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void[] = { {&_swigt__p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char[] = { {&_swigt__p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_p_char[] = { {&_swigt__p_p_p_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_unsigned_short[] = { {&_swigt__p_p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_p_void[] = { {&_swigt__p_p_void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_size_t[] = { {&_swigt__p_size_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_tm[] = { {&_swigt__p_tm, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_char[] = { {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_int[] = { {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_long[] = { {&_swigt__p_unsigned_long, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_unsigned_short[] = { {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_void[] = { {&_swigt__p_void, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info *swig_cast_initial[] = { _swigc__p_COLORB, _swigc__p_COLORW, _swigc__p_GAMMATABLE, _swigc__p_IT8, _swigc__p_LCMSGAMMAPARAMS, _swigc__p_LPMATSHAPER, _swigc__p_LPWMAT3, _swigc__p_LPWVEC3, _swigc__p_LPcmsNAMEDCOLORLIST, _swigc__p_LPcmsSEQ, _swigc__p_MAT3, _swigc__p_MATSHAPER, _swigc__p_SAMPLEDCURVE, _swigc__p_StrPointer, _swigc__p_VEC3, _swigc__p_WMAT3, _swigc__p_WVEC3, _swigc__p__cmsTestAlign16, _swigc__p__cmsTestAlign8, _swigc__p__cmstransform_struct, _swigc__p__lcms_LUT_struc, _swigc__p__lcms_iccprofile_struct, _swigc__p__lcms_l16params_struc, _swigc__p__lcms_l8opt_struc, _swigc__p_a_16__LCMSGAMMAPARAMS, _swigc__p_char, _swigc__p_cmsCIELCh, _swigc__p_cmsCIELab, _swigc__p_cmsCIEXYZ, _swigc__p_cmsCIEXYZTRIPLE, _swigc__p_cmsCIExyY, _swigc__p_cmsCIExyYTRIPLE, _swigc__p_cmsJCh, _swigc__p_cmsNAMEDCOLOR, _swigc__p_cmsNAMEDCOLORLIST, _swigc__p_cmsPSEQDESC, _swigc__p_cmsSEQ, _swigc__p_cmsViewingConditions, _swigc__p_double, _swigc__p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, _swigc__p_f_a___unsigned_short_a___unsigned_short_a___unsigned_short_p__lcms_l16params_struc__void, _swigc__p_f_a___unsigned_short_a___unsigned_short_p_void__int, _swigc__p_f_int_p_q_const__char__int, _swigc__p_f_p__cmstransform_struct_a___unsigned_short_a___unsigned_short__void, _swigc__p_f_p__cmstransform_struct_a___unsigned_short_p_unsigned_char__p_unsigned_char, _swigc__p_f_p__cmstransform_struct_p_void_p_void_unsigned_int__void, _swigc__p_f_p__lcms_iccprofile_struct__int, _swigc__p_f_p__lcms_iccprofile_struct__size_t, _swigc__p_f_p__lcms_iccprofile_struct_size_t__int, _swigc__p_f_p__lcms_iccprofile_struct_size_t_p_void__int, _swigc__p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, _swigc__p_f_p_void_size_t_size_t_p__lcms_iccprofile_struct__size_t, _swigc__p_icCLutStruct, _swigc__p_icColorSpaceSignature, _swigc__p_icInt32Number, _swigc__p_icLutAtoB, _swigc__p_icLutBtoA, _swigc__p_icProfileClassSignature, _swigc__p_icRenderingIntent, _swigc__p_icS15Fixed16Number, _swigc__p_icSignature, _swigc__p_icTagSignature, _swigc__p_icTechnologySignature, _swigc__p_icUInt16Number, _swigc__p_icUInt32Number, _swigc__p_icUInt8Number, _swigc__p_int, _swigc__p_p_GAMMATABLE, _swigc__p_p_char, _swigc__p_p_f_a___unsigned_short_a___unsigned_short_LPWMAT3_LPWVEC3__void, _swigc__p_p_f_p_void_a___unsigned_short_p_unsigned_char__p_unsigned_char, _swigc__p_p_p_char, _swigc__p_p_unsigned_short, _swigc__p_p_void, _swigc__p_size_t, _swigc__p_tm, _swigc__p_unsigned_char, _swigc__p_unsigned_int, _swigc__p_unsigned_long, _swigc__p_unsigned_short, _swigc__p_void, }; /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ static swig_const_info swig_const_table[] = { {0, 0, 0, 0.0, 0, 0}}; #ifdef __cplusplus } #endif /* ----------------------------------------------------------------------------- * Type initialization: * This problem is tough by the requirement that no dynamic * memory is used. Also, since swig_type_info structures store pointers to * swig_cast_info structures and swig_cast_info structures store pointers back * to swig_type_info structures, we need some lookup code at initialization. * The idea is that swig generates all the structures that are needed. * The runtime then collects these partially filled structures. * The SWIG_InitializeModule function takes these initial arrays out of * swig_module, and does all the lookup, filling in the swig_module.types * array with the correct data and linking the correct swig_cast_info * structures together. * * The generated swig_type_info structures are assigned staticly to an initial * array. We just loop through that array, and handle each type individually. * First we lookup if this type has been already loaded, and if so, use the * loaded structure instead of the generated one. Then we have to fill in the * cast linked list. The cast data is initially stored in something like a * two-dimensional array. Each row corresponds to a type (there are the same * number of rows as there are in the swig_type_initial array). Each entry in * a column is one of the swig_cast_info structures for that type. * The cast_initial array is actually an array of arrays, because each row has * a variable number of columns. So to actually build the cast linked list, * we find the array of casts associated with the type, and loop through it * adding the casts to the list. The one last trick we need to do is making * sure the type pointer in the swig_cast_info struct is correct. * * First off, we lookup the cast->type name to see if it is already loaded. * There are three cases to handle: * 1) If the cast->type has already been loaded AND the type we are adding * casting info to has not been loaded (it is in this module), THEN we * replace the cast->type pointer with the type pointer that has already * been loaded. * 2) If BOTH types (the one we are adding casting info to, and the * cast->type) are loaded, THEN the cast info has already been loaded by * the previous module so we just ignore it. * 3) Finally, if cast->type has not already been loaded, then we add that * swig_cast_info to the linked list (because the cast->type) pointer will * be correct. * ----------------------------------------------------------------------------- */ #ifdef __cplusplus extern "C" { #if 0 } /* c-mode */ #endif #endif #if 0 #define SWIGRUNTIME_DEBUG #endif SWIGRUNTIME void SWIG_InitializeModule(void *clientdata) { size_t i; swig_module_info *module_head, *iter; int found, init; clientdata = clientdata; /* check to see if the circular list has been setup, if not, set it up */ if (swig_module.next==0) { /* Initialize the swig_module */ swig_module.type_initial = swig_type_initial; swig_module.cast_initial = swig_cast_initial; swig_module.next = &swig_module; init = 1; } else { init = 0; } /* Try and load any already created modules */ module_head = SWIG_GetModule(clientdata); if (!module_head) { /* This is the first module loaded for this interpreter */ /* so set the swig module into the interpreter */ SWIG_SetModule(clientdata, &swig_module); module_head = &swig_module; } else { /* the interpreter has loaded a SWIG module, but has it loaded this one? */ found=0; iter=module_head; do { if (iter==&swig_module) { found=1; break; } iter=iter->next; } while (iter!= module_head); /* if the is found in the list, then all is done and we may leave */ if (found) return; /* otherwise we must add out module into the list */ swig_module.next = module_head->next; module_head->next = &swig_module; } /* When multiple interpeters are used, a module could have already been initialized in a different interpreter, but not yet have a pointer in this interpreter. In this case, we do not want to continue adding types... everything should be set up already */ if (init == 0) return; /* Now work on filling in swig_module.types */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: size %d\n", swig_module.size); #endif for (i = 0; i < swig_module.size; ++i) { swig_type_info *type = 0; swig_type_info *ret; swig_cast_info *cast; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); #endif /* if there is another module already loaded */ if (swig_module.next != &swig_module) { type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name); } if (type) { /* Overwrite clientdata field */ #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found type %s\n", type->name); #endif if (swig_module.type_initial[i]->clientdata) { type->clientdata = swig_module.type_initial[i]->clientdata; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name); #endif } } else { type = swig_module.type_initial[i]; } /* Insert casting types */ cast = swig_module.cast_initial[i]; while (cast->type) { /* Don't need to add information already in the list */ ret = 0; #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: look cast %s\n", cast->type->name); #endif if (swig_module.next != &swig_module) { ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name); #ifdef SWIGRUNTIME_DEBUG if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name); #endif } if (ret) { if (type == swig_module.type_initial[i]) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: skip old type %s\n", ret->name); #endif cast->type = ret; ret = 0; } else { /* Check for casting already in the list */ swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type); #ifdef SWIGRUNTIME_DEBUG if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name); #endif if (!ocast) ret = 0; } } if (!ret) { #ifdef SWIGRUNTIME_DEBUG printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name); #endif if (type->cast) { type->cast->prev = cast; cast->next = type->cast; } type->cast = cast; } cast++; } /* Set entry in modules->types array equal to the type */ swig_module.types[i] = type; } swig_module.types[i] = 0; #ifdef SWIGRUNTIME_DEBUG printf("**** SWIG_InitializeModule: Cast List ******\n"); for (i = 0; i < swig_module.size; ++i) { int j = 0; swig_cast_info *cast = swig_module.cast_initial[i]; printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name); while (cast->type) { printf("SWIG_InitializeModule: cast type %s\n", cast->type->name); cast++; ++j; } printf("---- Total casts: %d\n",j); } printf("**** SWIG_InitializeModule: Cast List ******\n"); #endif } /* This function will propagate the clientdata field of type to * any new swig_type_info structures that have been added into the list * of equivalent types. It is like calling * SWIG_TypeClientData(type, clientdata) a second time. */ SWIGRUNTIME void SWIG_PropagateClientData(void) { size_t i; swig_cast_info *equiv; static int init_run = 0; if (init_run) return; init_run = 1; for (i = 0; i < swig_module.size; i++) { if (swig_module.types[i]->clientdata) { equiv = swig_module.types[i]->cast; while (equiv) { if (!equiv->converter) { if (equiv->type && !equiv->type->clientdata) SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata); } equiv = equiv->next; } } } } #ifdef __cplusplus #if 0 { /* c-mode */ #endif } #endif #ifdef __cplusplus extern "C" { #endif /* Python-specific SWIG API */ #define SWIG_newvarlink() SWIG_Python_newvarlink() #define SWIG_addvarlink(p, name, get_attr, set_attr) SWIG_Python_addvarlink(p, name, get_attr, set_attr) #define SWIG_InstallConstants(d, constants) SWIG_Python_InstallConstants(d, constants) /* ----------------------------------------------------------------------------- * global variable support code. * ----------------------------------------------------------------------------- */ typedef struct swig_globalvar { char *name; /* Name of global variable */ PyObject *(*get_attr)(void); /* Return the current value */ int (*set_attr)(PyObject *); /* Set the value */ struct swig_globalvar *next; } swig_globalvar; typedef struct swig_varlinkobject { PyObject_HEAD swig_globalvar *vars; } swig_varlinkobject; SWIGINTERN PyObject * swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) { return PyString_FromString(""); } SWIGINTERN PyObject * swig_varlink_str(swig_varlinkobject *v) { PyObject *str = PyString_FromString("("); swig_globalvar *var; for (var = v->vars; var; var=var->next) { PyString_ConcatAndDel(&str,PyString_FromString(var->name)); if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", ")); } PyString_ConcatAndDel(&str,PyString_FromString(")")); return str; } SWIGINTERN int swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) { PyObject *str = swig_varlink_str(v); fprintf(fp,"Swig global variables "); fprintf(fp,"%s\n", PyString_AsString(str)); Py_DECREF(str); return 0; } SWIGINTERN void swig_varlink_dealloc(swig_varlinkobject *v) { swig_globalvar *var = v->vars; while (var) { swig_globalvar *n = var->next; free(var->name); free(var); var = n; } } SWIGINTERN PyObject * swig_varlink_getattr(swig_varlinkobject *v, char *n) { PyObject *res = NULL; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->get_attr)(); break; } var = var->next; } if (res == NULL && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN int swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { int res = 1; swig_globalvar *var = v->vars; while (var) { if (strcmp(var->name,n) == 0) { res = (*var->set_attr)(p); break; } var = var->next; } if (res == 1 && !PyErr_Occurred()) { PyErr_SetString(PyExc_NameError,"Unknown C global variable"); } return res; } SWIGINTERN PyTypeObject* swig_varlink_type(void) { static char varlink__doc__[] = "Swig var link object"; static PyTypeObject varlink_type; static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { PyObject_HEAD_INIT(NULL) 0, /* Number of items in variable part (ob_size) */ (char *)"swigvarlink", /* Type name (tp_name) */ sizeof(swig_varlinkobject), /* Basic size (tp_basicsize) */ 0, /* Itemsize (tp_itemsize) */ (destructor) swig_varlink_dealloc, /* Deallocator (tp_dealloc) */ (printfunc) swig_varlink_print, /* Print (tp_print) */ (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */ (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */ 0, /* tp_compare */ (reprfunc) swig_varlink_repr, /* tp_repr */ 0, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ (reprfunc)swig_varlink_str, /* tp_str */ 0, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ 0, /* tp_flags */ varlink__doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ 0, /* tp_weaklistoffset */ #if PY_VERSION_HEX >= 0x02020000 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */ #endif #if PY_VERSION_HEX >= 0x02030000 0, /* tp_del */ #endif #ifdef COUNT_ALLOCS 0,0,0,0 /* tp_alloc -> tp_next */ #endif }; varlink_type = tmp; varlink_type.ob_type = &PyType_Type; type_init = 1; } return &varlink_type; } /* Create a variable linking object for use later */ SWIGINTERN PyObject * SWIG_Python_newvarlink(void) { swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type()); if (result) { result->vars = 0; } return ((PyObject*) result); } SWIGINTERN void SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { swig_varlinkobject *v = (swig_varlinkobject *) p; swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); if (gv) { size_t size = strlen(name)+1; gv->name = (char *)malloc(size); if (gv->name) { strncpy(gv->name,name,size); gv->get_attr = get_attr; gv->set_attr = set_attr; gv->next = v->vars; } } v->vars = gv; } SWIGINTERN PyObject * SWIG_globals(void) { static PyObject *_SWIG_globals = 0; if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink(); return _SWIG_globals; } /* ----------------------------------------------------------------------------- * constants/methods manipulation * ----------------------------------------------------------------------------- */ /* Install Constants */ SWIGINTERN void SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) { PyObject *obj = 0; size_t i; for (i = 0; constants[i].type; ++i) { switch(constants[i].type) { case SWIG_PY_POINTER: obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); break; case SWIG_PY_BINARY: obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); break; default: obj = 0; break; } if (obj) { PyDict_SetItemString(d, constants[i].name, obj); Py_DECREF(obj); } } } /* -----------------------------------------------------------------------------*/ /* Fix SwigMethods to carry the callback ptrs when needed */ /* -----------------------------------------------------------------------------*/ SWIGINTERN void SWIG_Python_FixMethods(PyMethodDef *methods, swig_const_info *const_table, swig_type_info **types, swig_type_info **types_initial) { size_t i; for (i = 0; methods[i].ml_name; ++i) { const char *c = methods[i].ml_doc; if (c && (c = strstr(c, "swig_ptr: "))) { int j; swig_const_info *ci = 0; const char *name = c + 10; for (j = 0; const_table[j].type; ++j) { if (strncmp(const_table[j].name, name, strlen(const_table[j].name)) == 0) { ci = &(const_table[j]); break; } } if (ci) { size_t shift = (ci->ptype) - types; swig_type_info *ty = types_initial[shift]; size_t ldoc = (c - methods[i].ml_doc); size_t lptr = strlen(ty->name)+2*sizeof(void*)+2; char *ndoc = (char*)malloc(ldoc + lptr + 10); if (ndoc) { char *buff = ndoc; void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0; if (ptr) { strncpy(buff, methods[i].ml_doc, ldoc); buff += ldoc; strncpy(buff, "swig_ptr: ", 10); buff += 10; SWIG_PackVoidPtr(buff, ptr, ty->name, lptr); methods[i].ml_doc = ndoc; } } } } } } #ifdef __cplusplus } #endif /* -----------------------------------------------------------------------------* * Partial Init method * -----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" #endif SWIGEXPORT void SWIG_init(void) { PyObject *m, *d; /* Fix SwigMethods to carry the callback ptrs when needed */ SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial); m = Py_InitModule((char *) SWIG_name, SwigMethods); d = PyModule_GetDict(m); SWIG_InitializeModule(0); SWIG_InstallConstants(d,swig_const_table); lcmsError = PyErr_NewException("lcms.error", NULL, NULL); PyDict_SetItemString(d, "error", lcmsError); cmsSetErrorHandler(MyErrorHandler); SWIG_Python_SetConstant(d, "NON_WINDOWS",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "LCMS_VERSION",SWIG_From_int(static_cast< int >(118))); SWIG_Python_SetConstant(d, "MAXCHANNELS",SWIG_From_int(static_cast< int >(16))); SWIG_Python_SetConstant(d, "PT_ANY",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "PT_GRAY",SWIG_From_int(static_cast< int >(3))); SWIG_Python_SetConstant(d, "PT_RGB",SWIG_From_int(static_cast< int >(4))); SWIG_Python_SetConstant(d, "PT_CMY",SWIG_From_int(static_cast< int >(5))); SWIG_Python_SetConstant(d, "PT_CMYK",SWIG_From_int(static_cast< int >(6))); SWIG_Python_SetConstant(d, "PT_YCbCr",SWIG_From_int(static_cast< int >(7))); SWIG_Python_SetConstant(d, "PT_YUV",SWIG_From_int(static_cast< int >(8))); SWIG_Python_SetConstant(d, "PT_XYZ",SWIG_From_int(static_cast< int >(9))); SWIG_Python_SetConstant(d, "PT_Lab",SWIG_From_int(static_cast< int >(10))); SWIG_Python_SetConstant(d, "PT_YUVK",SWIG_From_int(static_cast< int >(11))); SWIG_Python_SetConstant(d, "PT_HSV",SWIG_From_int(static_cast< int >(12))); SWIG_Python_SetConstant(d, "PT_HLS",SWIG_From_int(static_cast< int >(13))); SWIG_Python_SetConstant(d, "PT_Yxy",SWIG_From_int(static_cast< int >(14))); SWIG_Python_SetConstant(d, "PT_HiFi",SWIG_From_int(static_cast< int >(15))); SWIG_Python_SetConstant(d, "PT_HiFi7",SWIG_From_int(static_cast< int >(16))); SWIG_Python_SetConstant(d, "PT_HiFi8",SWIG_From_int(static_cast< int >(17))); SWIG_Python_SetConstant(d, "PT_HiFi9",SWIG_From_int(static_cast< int >(18))); SWIG_Python_SetConstant(d, "PT_HiFi10",SWIG_From_int(static_cast< int >(19))); SWIG_Python_SetConstant(d, "PT_HiFi11",SWIG_From_int(static_cast< int >(20))); SWIG_Python_SetConstant(d, "PT_HiFi12",SWIG_From_int(static_cast< int >(21))); SWIG_Python_SetConstant(d, "PT_HiFi13",SWIG_From_int(static_cast< int >(22))); SWIG_Python_SetConstant(d, "PT_HiFi14",SWIG_From_int(static_cast< int >(23))); SWIG_Python_SetConstant(d, "PT_HiFi15",SWIG_From_int(static_cast< int >(24))); SWIG_Python_SetConstant(d, "TYPE_GRAY_8",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_GRAY_8_REV",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 3)|(1)|((1) << 13))))); SWIG_Python_SetConstant(d, "TYPE_GRAY_16",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_GRAY_16_REV",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 3)|(2)|((1) << 13))))); SWIG_Python_SetConstant(d, "TYPE_GRAY_16_SE",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_GRAYA_8",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 7)|((1) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_GRAYA_16",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 7)|((1) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_GRAYA_16_SE",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 7)|((1) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_GRAYA_8_PLANAR",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 7)|((1) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_GRAYA_16_PLANAR",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 7)|((1) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_RGB_8",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_RGB_8_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_BGR_8",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_BGR_8_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(1)|((1) << 10)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_RGB_16",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_RGB_16_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_RGB_16_SE",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_BGR_16",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_BGR_16_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(2)|((1) << 10)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_BGR_16_SE",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_RGBA_8",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_RGBA_8_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_RGBA_16",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_RGBA_16_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_RGBA_16_SE",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_ARGB_8",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(1)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_ARGB_16",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_ABGR_8",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_ABGR_16",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_ABGR_16_PLANAR",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 10)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_ABGR_16_SE",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_BGRA_8",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(1)|((1) << 10)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_BGRA_16",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 10)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_BGRA_16_SE",SWIG_From_int(static_cast< int >((((4) << 16)|((1) << 7)|((3) << 3)|(2)|((1) << 11)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_CMY_8",SWIG_From_int(static_cast< int >((((5) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMY_8_PLANAR",SWIG_From_int(static_cast< int >((((5) << 16)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_CMY_16",SWIG_From_int(static_cast< int >((((5) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMY_16_PLANAR",SWIG_From_int(static_cast< int >((((5) << 16)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_CMY_16_SE",SWIG_From_int(static_cast< int >((((5) << 16)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_8",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYKA_8",SWIG_From_int(static_cast< int >((((6) << 16)|((1) << 7)|((4) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_8_REV",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1)|((1) << 13))))); SWIG_Python_SetConstant(d, "TYPE_YUVK_8",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1)|((1) << 13))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_8_PLANAR",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_16",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_16_REV",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 13))))); SWIG_Python_SetConstant(d, "TYPE_YUVK_16",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 13))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_16_PLANAR",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_16_SE",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC_8",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC_16",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC_16_SE",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KCMY_8",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_KCMY_8_REV",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(1)|((1) << 13)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_KCMY_16",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_KCMY_16_REV",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 13)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_KCMY_16_SE",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(2)|((1) << 11)|((1) << 14))))); SWIG_Python_SetConstant(d, "TYPE_CMYK5_8",SWIG_From_int(static_cast< int >((((5) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK5_16",SWIG_From_int(static_cast< int >((((5) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK5_16_SE",SWIG_From_int(static_cast< int >((((5) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC5_8",SWIG_From_int(static_cast< int >((((5) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC5_16",SWIG_From_int(static_cast< int >((((5) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC5_16_SE",SWIG_From_int(static_cast< int >((((5) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYKcm_8",SWIG_From_int(static_cast< int >((((6) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYKcm_8_PLANAR",SWIG_From_int(static_cast< int >((((6) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_CMYKcm_16",SWIG_From_int(static_cast< int >((((6) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYKcm_16_PLANAR",SWIG_From_int(static_cast< int >((((6) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_CMYKcm_16_SE",SWIG_From_int(static_cast< int >((((6) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK7_8",SWIG_From_int(static_cast< int >((((7) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK7_16",SWIG_From_int(static_cast< int >((((7) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK7_16_SE",SWIG_From_int(static_cast< int >((((7) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC7_8",SWIG_From_int(static_cast< int >((((7) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC7_16",SWIG_From_int(static_cast< int >((((7) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC7_16_SE",SWIG_From_int(static_cast< int >((((7) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK8_8",SWIG_From_int(static_cast< int >((((8) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK8_16",SWIG_From_int(static_cast< int >((((8) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK8_16_SE",SWIG_From_int(static_cast< int >((((8) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC8_8",SWIG_From_int(static_cast< int >((((8) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC8_16",SWIG_From_int(static_cast< int >((((8) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC8_16_SE",SWIG_From_int(static_cast< int >((((8) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK9_8",SWIG_From_int(static_cast< int >((((9) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK9_16",SWIG_From_int(static_cast< int >((((9) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK9_16_SE",SWIG_From_int(static_cast< int >((((9) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC9_8",SWIG_From_int(static_cast< int >((((9) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC9_16",SWIG_From_int(static_cast< int >((((9) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC9_16_SE",SWIG_From_int(static_cast< int >((((9) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK10_8",SWIG_From_int(static_cast< int >((((10) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK10_16",SWIG_From_int(static_cast< int >((((10) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK10_16_SE",SWIG_From_int(static_cast< int >((((10) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC10_8",SWIG_From_int(static_cast< int >((((10) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC10_16",SWIG_From_int(static_cast< int >((((10) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC10_16_SE",SWIG_From_int(static_cast< int >((((10) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK11_8",SWIG_From_int(static_cast< int >((((11) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK11_16",SWIG_From_int(static_cast< int >((((11) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK11_16_SE",SWIG_From_int(static_cast< int >((((11) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC11_8",SWIG_From_int(static_cast< int >((((11) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC11_16",SWIG_From_int(static_cast< int >((((11) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC11_16_SE",SWIG_From_int(static_cast< int >((((11) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_CMYK12_8",SWIG_From_int(static_cast< int >((((12) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_CMYK12_16",SWIG_From_int(static_cast< int >((((12) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_CMYK12_16_SE",SWIG_From_int(static_cast< int >((((12) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_KYMC12_8",SWIG_From_int(static_cast< int >((((12) << 3)|(1)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC12_16",SWIG_From_int(static_cast< int >((((12) << 3)|(2)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_KYMC12_16_SE",SWIG_From_int(static_cast< int >((((12) << 3)|(2)|((1) << 10)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_XYZ_16",SWIG_From_int(static_cast< int >((((9) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_Lab_8",SWIG_From_int(static_cast< int >((((10) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_ALab_8",SWIG_From_int(static_cast< int >((((10) << 16)|((3) << 3)|(1)|((1) << 7)|((1) << 10))))); SWIG_Python_SetConstant(d, "TYPE_Lab_16",SWIG_From_int(static_cast< int >((((10) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_Yxy_16",SWIG_From_int(static_cast< int >((((14) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_YCbCr_8",SWIG_From_int(static_cast< int >((((7) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_YCbCr_8_PLANAR",SWIG_From_int(static_cast< int >((((7) << 16)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_YCbCr_16",SWIG_From_int(static_cast< int >((((7) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_YCbCr_16_PLANAR",SWIG_From_int(static_cast< int >((((7) << 16)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_YCbCr_16_SE",SWIG_From_int(static_cast< int >((((7) << 16)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_YUV_8",SWIG_From_int(static_cast< int >((((8) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_YUV_8_PLANAR",SWIG_From_int(static_cast< int >((((8) << 16)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_YUV_16",SWIG_From_int(static_cast< int >((((8) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_YUV_16_PLANAR",SWIG_From_int(static_cast< int >((((8) << 16)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_YUV_16_SE",SWIG_From_int(static_cast< int >((((8) << 16)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_HLS_8",SWIG_From_int(static_cast< int >((((13) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_HLS_8_PLANAR",SWIG_From_int(static_cast< int >((((13) << 16)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_HLS_16",SWIG_From_int(static_cast< int >((((13) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_HLS_16_PLANAR",SWIG_From_int(static_cast< int >((((13) << 16)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_HLS_16_SE",SWIG_From_int(static_cast< int >((((13) << 16)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_HSV_8",SWIG_From_int(static_cast< int >((((12) << 16)|((3) << 3)|(1))))); SWIG_Python_SetConstant(d, "TYPE_HSV_8_PLANAR",SWIG_From_int(static_cast< int >((((12) << 16)|((3) << 3)|(1)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_HSV_16",SWIG_From_int(static_cast< int >((((12) << 16)|((3) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_HSV_16_PLANAR",SWIG_From_int(static_cast< int >((((12) << 16)|((3) << 3)|(2)|((1) << 12))))); SWIG_Python_SetConstant(d, "TYPE_HSV_16_SE",SWIG_From_int(static_cast< int >((((12) << 16)|((3) << 3)|(2)|((1) << 11))))); SWIG_Python_SetConstant(d, "TYPE_NAMED_COLOR_INDEX",SWIG_From_int(static_cast< int >((((1) << 3)|(2))))); SWIG_Python_SetConstant(d, "TYPE_XYZ_DBL",SWIG_From_int(static_cast< int >((((9) << 16)|((3) << 3)|(0))))); SWIG_Python_SetConstant(d, "TYPE_Lab_DBL",SWIG_From_int(static_cast< int >((((10) << 16)|((3) << 3)|(0))))); SWIG_Python_SetConstant(d, "TYPE_GRAY_DBL",SWIG_From_int(static_cast< int >((((3) << 16)|((1) << 3)|(0))))); SWIG_Python_SetConstant(d, "TYPE_RGB_DBL",SWIG_From_int(static_cast< int >((((4) << 16)|((3) << 3)|(0))))); SWIG_Python_SetConstant(d, "TYPE_CMYK_DBL",SWIG_From_int(static_cast< int >((((6) << 16)|((4) << 3)|(0))))); SWIG_Python_SetConstant(d, "D50X",SWIG_From_double(static_cast< double >((0.9642)))); SWIG_Python_SetConstant(d, "D50Y",SWIG_From_double(static_cast< double >((1.0)))); SWIG_Python_SetConstant(d, "D50Z",SWIG_From_double(static_cast< double >((0.8249)))); SWIG_Python_SetConstant(d, "PERCEPTUAL_BLACK_X",SWIG_From_double(static_cast< double >((0.00336)))); SWIG_Python_SetConstant(d, "PERCEPTUAL_BLACK_Y",SWIG_From_double(static_cast< double >((0.0034731)))); SWIG_Python_SetConstant(d, "PERCEPTUAL_BLACK_Z",SWIG_From_double(static_cast< double >((0.00287)))); SWIG_Python_SetConstant(d, "AVG_SURROUND_4",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "AVG_SURROUND",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "DIM_SURROUND",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "DARK_SURROUND",SWIG_From_int(static_cast< int >(3))); SWIG_Python_SetConstant(d, "CUTSHEET_SURROUND",SWIG_From_int(static_cast< int >(4))); SWIG_Python_SetConstant(d, "D_CALCULATE",SWIG_From_int(static_cast< int >((-1)))); SWIG_Python_SetConstant(d, "D_CALCULATE_DISCOUNT",SWIG_From_int(static_cast< int >((-2)))); SWIG_Python_SetConstant(d, "LCMS_DESC_MAX",SWIG_From_int(static_cast< int >(512))); SWIG_Python_SetConstant(d, "LCMS_USED_AS_INPUT",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "LCMS_USED_AS_OUTPUT",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "LCMS_USED_AS_PROOF",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "INTENT_PERCEPTUAL",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "INTENT_RELATIVE_COLORIMETRIC",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "INTENT_SATURATION",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "INTENT_ABSOLUTE_COLORIMETRIC",SWIG_From_int(static_cast< int >(3))); SWIG_Python_SetConstant(d, "cmsFLAGS_MATRIXINPUT",SWIG_From_int(static_cast< int >(0x0001))); SWIG_Python_SetConstant(d, "cmsFLAGS_MATRIXOUTPUT",SWIG_From_int(static_cast< int >(0x0002))); SWIG_Python_SetConstant(d, "cmsFLAGS_MATRIXONLY",SWIG_From_int(static_cast< int >((0x0001|0x0002)))); SWIG_Python_SetConstant(d, "cmsFLAGS_NOWHITEONWHITEFIXUP",SWIG_From_int(static_cast< int >(0x0004))); SWIG_Python_SetConstant(d, "cmsFLAGS_NOPRELINEARIZATION",SWIG_From_int(static_cast< int >(0x0010))); SWIG_Python_SetConstant(d, "cmsFLAGS_GUESSDEVICECLASS",SWIG_From_int(static_cast< int >(0x0020))); SWIG_Python_SetConstant(d, "cmsFLAGS_NOTCACHE",SWIG_From_int(static_cast< int >(0x0040))); SWIG_Python_SetConstant(d, "cmsFLAGS_NOTPRECALC",SWIG_From_int(static_cast< int >(0x0100))); SWIG_Python_SetConstant(d, "cmsFLAGS_NULLTRANSFORM",SWIG_From_int(static_cast< int >(0x0200))); SWIG_Python_SetConstant(d, "cmsFLAGS_HIGHRESPRECALC",SWIG_From_int(static_cast< int >(0x0400))); SWIG_Python_SetConstant(d, "cmsFLAGS_LOWRESPRECALC",SWIG_From_int(static_cast< int >(0x0800))); SWIG_Python_SetConstant(d, "cmsFLAGS_WHITEBLACKCOMPENSATION",SWIG_From_int(static_cast< int >(0x2000))); SWIG_Python_SetConstant(d, "cmsFLAGS_BLACKPOINTCOMPENSATION",SWIG_From_int(static_cast< int >(0x2000))); SWIG_Python_SetConstant(d, "cmsFLAGS_GAMUTCHECK",SWIG_From_int(static_cast< int >(0x1000))); SWIG_Python_SetConstant(d, "cmsFLAGS_SOFTPROOFING",SWIG_From_int(static_cast< int >(0x4000))); SWIG_Python_SetConstant(d, "cmsFLAGS_PRESERVEBLACK",SWIG_From_int(static_cast< int >(0x8000))); SWIG_Python_SetConstant(d, "cmsFLAGS_NODEFAULTRESOURCEDEF",SWIG_From_int(static_cast< int >(0x01000000))); SWIG_Python_SetConstant(d, "LCMS_PRESERVE_PURE_K",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "LCMS_PRESERVE_K_PLANE",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "LCMS_ERROR_ABORT",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "LCMS_ERROR_SHOW",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "LCMS_ERROR_IGNORE",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "LCMS_ERRC_WARNING",SWIG_From_int(static_cast< int >(0x1000))); SWIG_Python_SetConstant(d, "LCMS_ERRC_RECOVERABLE",SWIG_From_int(static_cast< int >(0x2000))); SWIG_Python_SetConstant(d, "LCMS_ERRC_ABORTED",SWIG_From_int(static_cast< int >(0x3000))); SWIG_Python_SetConstant(d, "SAMPLER_INSPECT",SWIG_From_int(static_cast< int >(0x01000000))); SWIG_Python_SetConstant(d, "VX",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "VY",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "VZ",SWIG_From_int(static_cast< int >(2))); SWIG_Python_SetConstant(d, "LUT_HASMATRIX",SWIG_From_int(static_cast< int >(0x0001))); SWIG_Python_SetConstant(d, "LUT_HASTL1",SWIG_From_int(static_cast< int >(0x0002))); SWIG_Python_SetConstant(d, "LUT_HASTL2",SWIG_From_int(static_cast< int >(0x0008))); SWIG_Python_SetConstant(d, "LUT_HAS3DGRID",SWIG_From_int(static_cast< int >(0x0010))); SWIG_Python_SetConstant(d, "LUT_HASMATRIX3",SWIG_From_int(static_cast< int >(0x0020))); SWIG_Python_SetConstant(d, "LUT_HASMATRIX4",SWIG_From_int(static_cast< int >(0x0040))); SWIG_Python_SetConstant(d, "LUT_HASTL3",SWIG_From_int(static_cast< int >(0x0100))); SWIG_Python_SetConstant(d, "LUT_HASTL4",SWIG_From_int(static_cast< int >(0x0200))); SWIG_Python_SetConstant(d, "LUT_V4_OUTPUT_EMULATE_V2",SWIG_From_int(static_cast< int >(0x10000))); SWIG_Python_SetConstant(d, "LUT_V4_INPUT_EMULATE_V2",SWIG_From_int(static_cast< int >(0x20000))); SWIG_Python_SetConstant(d, "LUT_V2_OUTPUT_EMULATE_V4",SWIG_From_int(static_cast< int >(0x40000))); SWIG_Python_SetConstant(d, "LUT_V2_INPUT_EMULATE_V4",SWIG_From_int(static_cast< int >(0x80000))); SWIG_Python_SetConstant(d, "MATSHAPER_HASMATRIX",SWIG_From_int(static_cast< int >(0x0001))); SWIG_Python_SetConstant(d, "MATSHAPER_HASSHAPER",SWIG_From_int(static_cast< int >(0x0002))); SWIG_Python_SetConstant(d, "MATSHAPER_INPUT",SWIG_From_int(static_cast< int >(0x0004))); SWIG_Python_SetConstant(d, "MATSHAPER_OUTPUT",SWIG_From_int(static_cast< int >(0x0008))); SWIG_Python_SetConstant(d, "MATSHAPER_HASINPSHAPER",SWIG_From_int(static_cast< int >(0x0010))); SWIG_Python_SetConstant(d, "MATSHAPER_ALLSMELTED",SWIG_From_int(static_cast< int >((0x0004|0x0008)))); SWIG_Python_SetConstant(d, "MAX_TABLE_TAG",SWIG_From_int(static_cast< int >(100))); SWIG_Python_SetConstant(d, "XYZRel",SWIG_From_int(static_cast< int >(0))); SWIG_Python_SetConstant(d, "LabRel",SWIG_From_int(static_cast< int >(1))); SWIG_Python_SetConstant(d, "LCMS_BPFLAGS_D50_ADAPTED",SWIG_From_int(static_cast< int >(0x0001))); } lcms-1.19/python/Makefile.am0000777000175300010010000000152311272606371015237 0ustar MartiNinguno# # Makefile for building LCMS Python scripting extension # Written by Bob Friesenhahn, June 2003 # # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include pkgdir = $(LCMS_PYEXECDIR) # Shared libraries built in this directory if SUPPORT_PYTHON pkg_LTLIBRARIES = _lcms.la pkg_DATA = lcms.py else pkg_LTLIBRARIES = pkg_DATA = endif _lcms_la_LDFLAGS = -no-undefined -module -avoid-version \ -L$(LCMS_PYLIB)/config _lcms_la_LIBADD = $(top_builddir)/src/liblcms.la -lpython$(PYTHON_VERSION) _lcms_la_SOURCES = lcms_wrap.cxx _lcms_la_CPPFLAGS = -I$(PYTHON_PREFIX)/include/python$(PYTHON_VERSION) \ -I$(LCMS_PYINCLUDE) \ $(AM_CPPFLAGS) EXTRA_DIST = lcms.py lcms.i testbed swig_lcms clean-local: rm -f lcms.pyc lcms-1.19/python/Makefile.in0000644000175300010010000004345311230106052015232 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for building LCMS Python scripting extension # Written by Bob Friesenhahn, June 2003 # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = python DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(pkgdir)" pkgLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkg_LTLIBRARIES) _lcms_la_DEPENDENCIES = $(top_builddir)/src/liblcms.la am__lcms_la_OBJECTS = _lcms_la-lcms_wrap.lo _lcms_la_OBJECTS = $(am__lcms_la_OBJECTS) _lcms_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(_lcms_la_LDFLAGS) $(LDFLAGS) -o $@ @SUPPORT_PYTHON_TRUE@am__lcms_la_rpath = -rpath $(pkgdir) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(_lcms_la_SOURCES) DIST_SOURCES = $(_lcms_la_SOURCES) pkgDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkg_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include pkgdir = $(LCMS_PYEXECDIR) @SUPPORT_PYTHON_FALSE@pkg_LTLIBRARIES = # Shared libraries built in this directory @SUPPORT_PYTHON_TRUE@pkg_LTLIBRARIES = _lcms.la @SUPPORT_PYTHON_FALSE@pkg_DATA = @SUPPORT_PYTHON_TRUE@pkg_DATA = lcms.py _lcms_la_LDFLAGS = -no-undefined -module -avoid-version \ -L$(LCMS_PYLIB)/config _lcms_la_LIBADD = $(top_builddir)/src/liblcms.la -lpython$(PYTHON_VERSION) _lcms_la_SOURCES = lcms_wrap.cxx _lcms_la_CPPFLAGS = -I$(PYTHON_PREFIX)/include/python$(PYTHON_VERSION) \ -I$(LCMS_PYINCLUDE) \ $(AM_CPPFLAGS) EXTRA_DIST = lcms.py lcms.i testbed swig_lcms all: all-am .SUFFIXES: .SUFFIXES: .cxx .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign python/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign python/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)" @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkgLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkgdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkgLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkgdir)/$$f"; \ else :; fi; \ done uninstall-pkgLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$p"; \ done clean-pkgLTLIBRARIES: -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES) @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done _lcms.la: $(_lcms_la_OBJECTS) $(_lcms_la_DEPENDENCIES) $(_lcms_la_LINK) $(am__lcms_la_rpath) $(_lcms_la_OBJECTS) $(_lcms_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_lcms_la-lcms_wrap.Plo@am__quote@ .cxx.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< _lcms_la-lcms_wrap.lo: lcms_wrap.cxx @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_lcms_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT _lcms_la-lcms_wrap.lo -MD -MP -MF $(DEPDIR)/_lcms_la-lcms_wrap.Tpo -c -o _lcms_la-lcms_wrap.lo `test -f 'lcms_wrap.cxx' || echo '$(srcdir)/'`lcms_wrap.cxx @am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/_lcms_la-lcms_wrap.Tpo $(DEPDIR)/_lcms_la-lcms_wrap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='lcms_wrap.cxx' object='_lcms_la-lcms_wrap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(_lcms_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o _lcms_la-lcms_wrap.lo `test -f 'lcms_wrap.cxx' || echo '$(srcdir)/'`lcms_wrap.cxx mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pkgDATA: $(pkg_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)" @list='$(pkg_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdir)/$$f'"; \ $(pkgDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdir)/$$f"; \ done uninstall-pkgDATA: @$(NORMAL_UNINSTALL) @list='$(pkg_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(pkgdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local clean-pkgLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgDATA install-pkgLTLIBRARIES install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pkgDATA uninstall-pkgLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-local clean-pkgLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgDATA \ install-pkgLTLIBRARIES install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-pkgDATA \ uninstall-pkgLTLIBRARIES clean-local: rm -f lcms.pyc # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/python/swig_lcms0000777000175300010010000000013611272606371015114 0ustar MartiNingunorm lcms_wrap.cxx lcms.py swig -Wall -I../include -python -shadow -c++ -o lcms_wrap.cxx lcms.i lcms-1.19/python/testbed/0000777000175300010010000000000011230104762014620 5ustar MartiNingunolcms-1.19/python/testbed/AdobeRGB1998.icc0000777000175300010010000000106011152216034017177 0ustar MartiNinguno0ADBEmntrRGB XYZ Ð 3;acspAPPLnoneöÖÓ-ADBE cprtü2desc0kwtptœbkpt°rTRCÄgTRCÔbTRCärXYZôgXYZbXYZtextCopyright 2000 Adobe Systems IncorporateddescAdobe RGB (1998)XYZ óQÌXYZ curv3curv3curv3XYZ œO¥üXYZ 4 ,•XYZ &1/¾œlcms-1.19/python/testbed/cam02.py0000777000175300010010000000067411152216034016105 0ustar MartiNinguno # # Sample: CIECAM02 appearance model # from lcms import * Wt = cmsCIEXYZ() Wt.X = 95.05 Wt.Y = 100 Wt.Z = 108.88 vc = cmsViewingConditions(Wt, 20, 20, AVG_SURROUND, 0.997) cam = cmsCIECAM02Init(vc) JCh = cmsJCh() XYZ = cmsCIEXYZ() XYZ.X = 19.01 XYZ.Y = 20 XYZ.Z = 21.78 print XYZ cmsCIECAM02Forward(cam, XYZ, JCh) print JCh cmsCIECAM02Reverse(cam, JCh, XYZ) print XYZ cmsCIECAM02Done(cam) lcms-1.19/python/testbed/cam97.py0000777000175300010010000000063411152216034016117 0ustar MartiNinguno # # Sample: CIECAM97s appearance model # from lcms import * Wt = cmsCIEXYZ() Wt.X = 95.05 Wt.Y = 100 Wt.Z = 108.88 vc = cmsViewingConditions(Wt, 20, 20, AVG_SURROUND, 0.997) cam = cmsCIECAM97sInit(vc) JCh = cmsJCh() XYZ = cmsCIEXYZ() XYZ.X = 19.01 XYZ.Y = 20 XYZ.Z = 21.78 print XYZ cmsCIECAM97sForward(cam, XYZ, JCh) print JCh cmsCIECAM97sReverse(cam, JCh, XYZ) print XYZ cmsCIECAM97sDone(cam) lcms-1.19/python/testbed/clamp.py0000777000175300010010000000045711152216034016276 0ustar MartiNinguno # # Sample: Gamut clamping # from lcms import * Lab = cmsCIELab(80, -200, 50) print "Original", Lab # # Desaturates color to bring it into gamut. # The gamut boundaries are specified as: # -120 <= a <= 120 # -130 <= b <= 130 cmsClampLab(Lab, 120, -120, 130, -130) print "Constrained", Lab lcms-1.19/python/testbed/constant.py0000777000175300010010000000066711152216034017036 0ustar MartiNinguno # # Sample: Constants # from lcms import * print "D50=", cmsD50_XYZ() print "D50=", cmsD50_xyY() Lab = cmsCIELab(70, -3, 45) print print Lab LCh = cmsCIELCh(0, 0, 0) cmsLab2LCh(LCh, Lab) print LCh Lab2 = cmsCIELab(70, 3, 45) print print Lab, Lab2 print "dE (Lab) =", cmsDeltaE(Lab, Lab2) print "dE (CIE94)=", cmsCIE94DeltaE(Lab, Lab2) print "dE (BFD) = ", cmsBFDdeltaE(Lab, Lab2) print "dE (CMC) = ", cmsCMCdeltaE(Lab, Lab2) lcms-1.19/python/testbed/createmsh.py0000777000175300010010000000151211152216034017146 0ustar MartiNinguno# # Sample: Creates and saves a matrix-shaper profile # from lcms import * Rec709Primaries = cmsCIExyYTRIPLE(cmsCIExyY(0.6400, 0.3300, 1.0), cmsCIExyY(0.3000, 0.6000, 1.0), cmsCIExyY(0.1500, 0.0600, 1.0)) Gamma22 = GAMMATABLE(2.2, 4096) D65 = cmsCIExyY() cmsWhitePointFromTemp(6504, D65) hVirtual_sRGB = cmsCreateRGBProfile(D65, Rec709Primaries, (Gamma22, Gamma22, Gamma22)); # # This should probably be bettered somehow... # icSigProfileDescriptionTag = icTagSignature(0x64657363) text = StrPointer("Sample sRGB profile") cmsAddTag(hVirtual_sRGB, icSigProfileDescriptionTag, text) cmsSaveProfile(hVirtual_sRGB, "Virtual_sRGB.icm") cmsCloseProfile(hVirtual_sRGB) lcms-1.19/python/testbed/gamma.py0000777000175300010010000000133011152216034016253 0ustar MartiNinguno# # Sample: Gamma tables # from lcms import * # # Allocate a gamma table # Gamma22 = GAMMATABLE(2.2) print Gamma22 # # Specify num. of sampled points # Gamma22 = GAMMATABLE(2.2, 1024) print Gamma22 # # Reverse a gamma table # Gamma28 = GAMMATABLE(2.8, 1024) Rev28 = cmsReverseGamma(1024, Gamma28) print Rev28 # # Joint a Gamma 2.8 with inverse of 2.4 # Joined = cmsJoinGamma(Gamma28, Gamma22) print Joined # # Same, specifying num. of points # Joined = cmsJoinGammaEx(Gamma28, Gamma22, 2048) print Joined # # "Smooth" a curve. Second parameter is smothness lambda # cmsSmoothGamma(Joined, 0.8) print Joined # # This should result on a line # Straight = cmsJoinGammaEx(Joined, Joined, 2048) print Straight lcms-1.19/python/testbed/info.py0000777000175300010010000000115411152216034016130 0ustar MartiNinguno # # Sample: Get info on profile # from lcms import * hsRGB = cmsOpenProfileFromFile("sRGB Color Space profile.icm", "r") print "Product name: ", cmsTakeProductName(hsRGB) print "Product desc: ", cmsTakeProductDesc(hsRGB) print "Info: ", cmsTakeProductInfo(hsRGB) Illuminant = cmsCIEXYZ(0, 0, 0) cmsTakeIluminant(Illuminant, hsRGB) print "Illuminant = ", Illuminant MediaWhite = cmsCIEXYZ(0, 0, 0) cmsTakeMediaWhitePoint(MediaWhite, hsRGB) print "Media White = ", MediaWhite BlackPoint = cmsCIEXYZ(0, 0, 0) cmsTakeMediaBlackPoint(BlackPoint, hsRGB) print "Black point = ", BlackPoint cmsCloseProfile(hsRGB) lcms-1.19/python/testbed/lab2adobe.py0000777000175300010010000000147611152216034017017 0ustar MartiNinguno # # Sample: Convert from Lab to AdobeRGB, perceptual intent # from lcms import * print "Enter Lab values" # # Create placeholders # Lab = cmsCIELab(0, 0, 0) LabEncoded = COLORW() RGB = COLORB() Lab.L = input("L?") Lab.a = input("a?") Lab.b = input("b?") # cmsFloat2LabEncoded(LabEncoded.w, Lab) # # Open profiles # hLab = cmsCreateLabProfile(None) hAdobe = cmsOpenProfileFromFile("AdobeRGB1998.icc", "r") # # The transform # xform = cmsCreateTransform(hLab, TYPE_Lab_DBL, hAdobe, TYPE_RGB_8, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC) cmsDoTransform(xform, Lab, RGB, 1) # # Print results # print Lab print "AdobeRGB = ", RGB[0], RGB[1], RGB[2] # # Free all stuff # cmsDeleteTransform(xform) cmsCloseProfile(hAdobe) cmsCloseProfile(hLab) lcms-1.19/python/testbed/sRGB Color Space Profile.icm0000777000175300010010000000611011152216034021543 0ustar MartiNinguno HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿlcms-1.19/python/testbed/sRGB2adobe.py0000777000175300010010000000123711152216034017051 0ustar MartiNinguno # # Sample: Convert from sRGB to AdobeRGB, perceptual intent # from lcms import * print "Enter sRGB values" # # Create placeholders # RGB = COLORB() RGB[0] = input("R?") RGB[1] = input("G?") RGB[2] = input("B?") # # Open profiles # hsRGB = cmsCreate_sRGBProfile() hAdobe = cmsOpenProfileFromFile("AdobeRGB1998.icc", "r") # # The transform # xform = cmsCreateTransform(hsRGB, TYPE_RGB_8, hAdobe, TYPE_RGB_8, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC) cmsDoTransform(xform, RGB, RGB, 1) # # Print results # print "AdobeRGB = ", RGB[0], RGB[1], RGB[2] # # Free all stuff # cmsDeleteTransform(xform) cmsCloseProfile(hAdobe) cmsCloseProfile(hsRGB) lcms-1.19/python/testbed/srgb2lab.py0000777000175300010010000000146111152216034016674 0ustar MartiNinguno # # Sample: Convert from sRGB to Lab (D50), perceptual intent # from lcms import * print "Enter sRGB values, 0..255" # # Create placeholder for colorant # color = COLORB() color[0] = input("R?") color[1] = input("G?") color[2] = input("B?") # # Create placeholder for Lab # Lab = cmsCIELab() # # Open profiles (does use built-ins) # hsRGB = cmsCreate_sRGBProfile() hLab = cmsCreateLabProfile(None) # # The transform # xform = cmsCreateTransform(hsRGB, TYPE_RGB_8, hLab, TYPE_Lab_DBL, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC) cmsDoTransform(xform, color, Lab, 1) # # Print results # print "sRGB = ", color[0], color[1], color[2] print Lab # # Free all stuff # cmsDeleteTransform(xform) cmsCloseProfile(hLab) cmsCloseProfile(hsRGB) lcms-1.19/python/testbed/srgb2xyz.py0000777000175300010010000000153511152216034016772 0ustar MartiNinguno # # Sample: Convert from sRGB to XYZ perceptual intent # from lcms import * print "Enter sRGB values, 0..255" # # Create placeholder for colorant # color = COLORB() color[0] = input("R?") color[1] = input("G?") color[2] = input("B?") # # Create placeholder for Lab # XYZ = cmsCIEXYZ() # # Open profiles (does use built-ins) # hsRGB = cmsCreate_sRGBProfile() hXYZ = cmsCreateXYZProfile() # # The transform # xform = cmsCreateTransform(hsRGB, TYPE_RGB_8, hXYZ, TYPE_XYZ_DBL, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC) cmsDoTransform(xform, color, XYZ, 1) # # Print results # print "sRGB = ", color[0], color[1], color[2] print XYZ xyY = cmsCIExyY(0, 0, 0) cmsXYZ2xyY(xyY, XYZ) print xyY # # Free all stuff # cmsDeleteTransform(xform) cmsCloseProfile(hXYZ) cmsCloseProfile(hsRGB) lcms-1.19/python/testbed/virtprf.py0000777000175300010010000000200011152216034016660 0ustar MartiNinguno# # Sample: Creates a virtual profile emulating sRGB # from lcms import * #hsRGB = cmsOpenProfileFromFile("sRGB Color Space profile.icm", "r") Rec709Primaries = cmsCIExyYTRIPLE(cmsCIExyY(0.6400, 0.3300, 1.0), cmsCIExyY(0.3000, 0.6000, 1.0), cmsCIExyY(0.1500, 0.0600, 1.0)) Gamma22 = GAMMATABLE(2.2, 4096) print Gamma22 D65 = cmsCIExyY() cmsWhitePointFromTemp(6504, D65) hVirtual_sRGB = cmsCreateRGBProfile(D65, Rec709Primaries, (Gamma22, Gamma22, Gamma22)); hsRGB = cmsCreate_sRGBProfile(); xform = cmsCreateTransform(hsRGB, TYPE_RGB_8, hVirtual_sRGB, TYPE_RGB_8, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC) color = COLORB() color[0] = 155 color[1] = 45 color[2] = 200 print color[0], color[1], color[2] cmsDoTransform(xform, color, color, 1) print color[0], color[1], color[2] cmsDeleteTransform(xform) cmsCloseProfile(hsRGB) cmsCloseProfile(hVirtual_sRGB) lcms-1.19/python/testbed/whtpnt.py0000777000175300010010000000052511152216034016522 0ustar MartiNinguno # # Sample: White point from temperature # from lcms import * Temp = input("Temperature §K? ") WhitexyY = cmsCIExyY(0, 0, 1) cmsWhitePointFromTemp(Temp, WhitexyY) WhiteXYZ = cmsCIEXYZ(0, 0, 0) cmsxyY2XYZ(WhiteXYZ, WhitexyY) print WhitexyY print WhiteXYZ Lab = cmsCIELab(0, 0, 0) cmsXYZ2Lab(None, Lab, WhiteXYZ) print "D50", Lab lcms-1.19/README.1ST0000777000175300010010000000551011272606371013150 0ustar MartiNinguno Read.me for release 1.19 ======================== Little cms Copyright (C) 1998-2009 Marti Maria 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 AUTHORS OR COPYRIGHT HOLDERS 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. The lcms library is now distributed under MIT PUBLIC LICENSE See file COPYING. for details This is the 17th. public release the engine. It has been tested across several versions before, but it is possible some bugs still arises. If so, sorry for the inconvenience, and please feel free to submit any suggestion/solution (if you can found it) at: info@littlecms.com Note that the aesthetics of resulting colors are due only to profiles, and not as consequence of the lcms package. The main site for the package is located at http://www.littlecms.com Littlecms has also a mailing list on: http://lists.sourceforge.net/lists/listinfo/lcms-user Looking forward the lcms project would grow in future, I will welcome any contribution/optimization/enhancement. Enjoy! About profiles ============== The demo of this package includes some profiles for colorspace conversions. I figure all of them are in public domain, but since some contains copyright notice, I will enumerate here the sources: Sun Microsystems Java SDK (widely available) Kodak public FTP site: ftp.kodak.com ICM Stress demo from microsoft. www.microsoft.com sRGB from sRGB site www.srgb.com If you found any of these not to be in public domain, please notify me. I will remove the offending profile as soon as posible. Additional files ================ ICC34.h is the header file the International Color Consortium has posted for version spec 3.4, with some minor modifications for improving portability. You can reach it at http://www.color.org lcms-1.19/samples/0000777000175300010010000000000011277271677013336 5ustar MartiNingunolcms-1.19/samples/icc2ps.10000777000175300010010000000173611272606371014601 0ustar MartiNinguno.\"Shiju P. Nair September 30, 2004 .TH ICC2PS 1 "September 30, 2004" .SH NAME icc2ps - little cms PostScript converter. .SH SYNOPSIS .B icc2ps .RI [ options ] .SH DESCRIPTION lcms is a standalone CMM engine, which deals with the color management. It implements a fast transformation between ICC profiles. .B icc2ps is little cms PostScript converter. .SH OPTIONS .TP .B \-b Black point compensation (CRD only). .TP .BI \-i\ profile Input profile: Generates Color Space Array (CSA). .TP .BI \-o\ profile .p Output profile: Generates Color Rendering Dictionary(CRD). .TP .B \-t <0,1,2,3> Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute). .TP .B \-u Do NOT generate resource name on CRD. .SH NOTES For suggestions, comments, bug reports etc. send mail to info@littlecms.com. .SH SEE ALSO .BR jpegicc (1), .BR tifficc (1), .BR icclink (1), .BR icctrans (1), .BR wtpt (1) .SH AUTHOR This manual page was written by Shiju p. Nair , for the Debian project. lcms-1.19/samples/icc2ps.c0000777000175300010010000001476111272606371014665 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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. // // THIS SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, // EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY // WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. // // IN NO EVENT SHALL MARTI MARIA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, // INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, // OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, // WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF // LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE // OF THIS SOFTWARE. // // Version 1.12 #include "lcms.h" #include // xgetopt() interface ----------------------------------------------------- extern int xoptind; extern char *xoptarg; extern int xopterr; extern char SW; int cdecl xgetopt(int argc, char *argv[], char *optionS); // ------------------------------------------------------------------------ static char *cInProf = NULL; static char *cOutProf = NULL; static int Intent = INTENT_PERCEPTUAL; static FILE* OutFile; static int BlackPointCompensation = FALSE; static int Undecorated = FALSE; static int PrecalcMode = 1; static int NumOfGridPoints = 0; static void FatalError(const char *frm, ...) { va_list args; va_start(args, frm); vfprintf(stderr, frm, args); va_end(args); exit(1); } // The toggles stuff static void HandleSwitches(int argc, char *argv[]) { int s; while ((s = xgetopt(argc,argv,"uUbBI:i:O:o:T:t:c:C:n:N:")) != EOF) { switch (s){ case 'i': case 'I': cInProf = xoptarg; break; case 'o': case 'O': cOutProf = xoptarg; break; case 'b': case 'B': BlackPointCompensation =TRUE; break; case 't': case 'T': Intent = atoi(xoptarg); if (Intent > 3) Intent = 3; if (Intent < 0) Intent = 0; break; case 'U': case 'u': Undecorated = TRUE; break; case 'c': case 'C': PrecalcMode = atoi(xoptarg); if (PrecalcMode < 0 || PrecalcMode > 2) FatalError("ERROR: Unknown precalc mode '%d'", PrecalcMode); break; case 'n': case 'N': if (PrecalcMode != 1) FatalError("Precalc mode already specified"); NumOfGridPoints = atoi(xoptarg); break; default: FatalError("Unknown option - run without args to see valid ones.\n"); } } } static void Help(void) { fprintf(stderr, "usage: icc2ps [flags]\n\n"); fprintf(stderr, "flags:\n\n"); fprintf(stderr, "%ci - Input profile: Generates Color Space Array (CSA)\n", SW); fprintf(stderr, "%co - Output profile: Generates Color Rendering Dictionary(CRD)\n", SW); fprintf(stderr, "%ct<0,1,2,3> - Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute)\n", SW); fprintf(stderr, "%cb - Black point compensation (CRD only)\n", SW); fprintf(stderr, "%cu - Do NOT generate resource name on CRD\n", SW); fprintf(stderr, "%cc<0,1,2> - Precission (0=LowRes, 1=Normal (default), 2=Hi-res) (CRD only)\n", SW); fprintf(stderr, "%cn - Alternate way to set precission, number of CLUT points (CRD only)\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "This program is intended to be a demo of the little cms\n" "engine. Both lcms and this program are freeware. You can\n" "obtain both in source code at http://www.littlecms.com\n" "For suggestions, comments, bug reports etc. send mail to\n" "info@littlecms.com\n\n"); exit(0); } static void GenerateCSA(void) { cmsHPROFILE hProfile = cmsOpenProfileFromFile(cInProf, "r"); size_t n; char* Buffer; n = cmsGetPostScriptCSA(hProfile, Intent, NULL, 0); if (n == 0) return; Buffer = (char*) _cmsMalloc(n + 1); cmsGetPostScriptCSA(hProfile, Intent, Buffer, n); Buffer[n] = 0; fprintf(OutFile, "%s", Buffer); _cmsFree(Buffer); cmsCloseProfile(hProfile); } static void GenerateCRD(void) { cmsHPROFILE hProfile = cmsOpenProfileFromFile(cOutProf, "r"); size_t n; char* Buffer; DWORD dwFlags = 0; if (BlackPointCompensation) dwFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION; if (Undecorated) dwFlags |= cmsFLAGS_NODEFAULTRESOURCEDEF; switch (PrecalcMode) { case 0: dwFlags |= cmsFLAGS_LOWRESPRECALC; break; case 2: dwFlags |= cmsFLAGS_HIGHRESPRECALC; break; case 1: if (NumOfGridPoints > 0) dwFlags |= cmsFLAGS_GRIDPOINTS(NumOfGridPoints); break; default: FatalError("ERROR: Unknown precalculation mode '%d'", PrecalcMode); } n = cmsGetPostScriptCRDEx(hProfile, Intent, dwFlags, NULL, 0); if (n == 0) return; Buffer = (char*) _cmsMalloc(n + 1); cmsGetPostScriptCRDEx(hProfile, Intent, dwFlags, Buffer, n); Buffer[n] = 0; fprintf(OutFile, "%s", Buffer); _cmsFree(Buffer); cmsCloseProfile(hProfile); } static int MyErrorHandler(int ErrorCode, const char *ErrorText) { FatalError("icc2ps: %s", ErrorText); return 0; } int main(int argc, char *argv[]) { int nargs; fprintf(stderr, "little cms PostScript converter - v1.5\n\n"); HandleSwitches(argc, argv); cmsSetErrorHandler(MyErrorHandler); nargs = (argc - xoptind); if (nargs != 0 && nargs != 1) Help(); if (nargs == 0) OutFile = stdout; else OutFile = fopen(argv[xoptind], "wt"); if (cInProf == NULL && cOutProf == NULL) Help(); if (cInProf != NULL) GenerateCSA(); if (cOutProf != NULL) GenerateCRD(); if (nargs == 1) { fclose(OutFile); } return 0; } lcms-1.19/samples/icclink.10000777000175300010010000000435611272606371015033 0ustar MartiNinguno.\"Shiju P. Nair September 30, 2004 .TH ICCLINK 1 "September 30, 2004" .SH NAME icclink - little cms device link generator. .SH SYNOPSIS .B icclink .RI [ options ] " " .SH DESCRIPTION lcms is a standalone CMM engine, which deals with the color management. It implements a fast transformation between ICC profiles. .B icclink is little cms device link generator. .P Links two or more profiles into a single devicelink profile. Colorspaces must be paired except Lab/XYZ, that can be interchanged. .SH OPTIONS .TP .B \-8 Creates 8-bit devicelink. .TP .B \-b Black point compensation. .TP .B \-c <0,1,2,3> Precission (0=LowRes, 1=Normal, 2=Hi-res). [defaults to 1] .TP .BI \-d\ description Description text (quotes can be used). .TP .B \-h <0,1,2,3> Show summary of options and examples. .TP .BI \-i\ profile Input profile (defaults to sRGB). .TP .B -k <0..400> Ink-limiting in % (CMYK only) .TP .BI \-o\ profile Output devicelink profile. [defaults to 'devicelink.icm'] .TP .B \-t <0,1,2,3> Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute). .TP .B \-x Creatively, guess deviceclass of resulting profile. .TP .nf Built-in profiles: *Lab -- D50-based CIEL*a*b (PCS) *XYZ -- CIE XYZ (PCS) *sRGB -- sRGB color space *Gray22- Monochrome of Gamma 2.2 *Lin2222- CMYK linearization of gamma 2.2 on each channel .fi .SH EXAMPLES .nf To create 'devicelink.icm' from a.icc to b.icc: icclink a.icc b.icc To create 'out.icc' from sRGB to cmyk.icc: icclink -o out.icc *sRGB cmyk.icc To create a sRGB input profile working in Lab: icclink -x -o sRGBLab.icc *sRGB *Lab To create a XYZ -> sRGB output profile: icclink -x -o sRGBLab.icc *XYZ *sRGB To create a abstract profile doing softproof for cmyk.icc: icclink -t1 -x -o softproof.icc *Lab cmyk.icc cmyk.icc *Lab To create a 'grayer' sRGB input profile: icclink -x -o grayer.icc *sRGB gray.icc gray.icc *Lab To embed ink limiting into a cmyk output profile: icclink -x -o cmyklimited.icc -k 250 cmyk.icc *Lab .fi .SH NOTES For suggestions, comments, bug reports etc. send mail to info@littlecms.com. .SH SEE ALSO .BR jpegicc (1), .BR tifficc (1), .BR icc2ps (1), .BR icctrans (1), .BR wtpt (1) .SH AUTHOR This manual page was written by Shiju p. Nair , for the Debian project. lcms-1.19/samples/icclink.c0000777000175300010010000002704511272606371015115 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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. // // THIS SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, // EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY // WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. // // IN NO EVENT SHALL MARTI MARIA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, // INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, // OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, // WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF // LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE // OF THIS SOFTWARE. // #include "lcms.h" #include // xgetopt() interface ----------------------------------------------------- extern int xoptind; extern char *xoptarg; extern int xopterr; extern char SW; int cdecl xgetopt(int argc, char *argv[], char *optionS); // ------------------------------------------------------------------------ static char* Description = "Devicelink profile"; static int Intent = INTENT_PERCEPTUAL; static char *cOutProf = "devicelink.icm"; static int PrecalcMode = 1; static int NumOfGridPoints = 0; static LCMSBOOL BlackPointCompensation = FALSE; static int BlackPreservation = 0; static double InkLimit = 400; static LCMSBOOL lUse8bits = FALSE; static LCMSBOOL TagResult = FALSE; static LCMSBOOL NoPrelinearization = FALSE; static void FatalError(const char *frm, ...) { va_list args; va_start(args, frm); vfprintf(stderr, frm, args); va_end(args); exit(1); } static void Help(int level) { switch(level) { default: case 0: fprintf(stderr, "\nLinks two or more profiles into a single devicelink profile.\n"); fprintf(stderr, "Colorspaces must be paired except Lab/XYZ, that can be interchanged.\n"); fprintf(stderr, "\n"); fprintf(stderr, "usage: icclink [flags] \n\n"); fprintf(stderr, "flags:\n\n"); fprintf(stderr, "%co - Output devicelink profile. [defaults to 'devicelink.icm']\n", SW); fprintf(stderr, "%ct<0,1,2,3> - Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute)\n", SW); fprintf(stderr, "%cc<0,1,2> - Precission (0=LowRes, 1=Normal, 2=Hi-res) [defaults to 1]\n", SW); fprintf(stderr, "%cn - Alternate way to set precission, number of CLUT points\n", SW); fprintf(stderr, "%cd - description text (quotes can be used)\n", SW); fprintf(stderr, "\n%cb - Black point compensation\n", SW); fprintf(stderr, "%cf<0,1,2> - Black preserving 0=off, 1=K ink only 2=K plane\n", SW); fprintf(stderr, "\n%ck<0..400> - Ink-limiting in %% (CMYK only)\n", SW); fprintf(stderr, "%c8 - Creates 8-bit devicelink\n", SW); fprintf(stderr, "%cx - Creatively, guess deviceclass of resulting profile.\n", SW); fprintf(stderr, "%cl - no prelinearization.\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%ch<0,1,2,3> - More help\n", SW); break; case 1: fprintf(stderr, "\nBuilt-in profiles:\n\n"); fprintf(stderr, "\t*Lab -- D50-based CIEL*a*b (PCS)\n" "\t*XYZ -- CIE XYZ (PCS)\n" "\t*sRGB -- sRGB color space\n" "\t*Gray22- Monochrome of Gamma 2.2\n" "\t*Lin2222- CMYK linearization of gamma 2.2 on each channel\n"); break; case 2: fprintf(stderr, "\nExamples:\n\n" "To create 'devicelink.icm' from a.icc to b.icc:\n" "\ticclink a.icc b.icc\n\n" "To create 'out.icc' from sRGB to cmyk.icc:\n" "\ticclink -o out.icc *sRGB cmyk.icc\n\n" "To create a sRGB input profile working in Lab:\n" "\ticclink -x -o sRGBLab.icc *sRGB *Lab\n\n" "To create a XYZ -> sRGB output profile:\n" "\ticclink -x -o sRGBLab.icc *XYZ *sRGB\n\n" "To create a abstract profile doing softproof for cmyk.icc:\n" "\ticclink -t1 -x -o softproof.icc *Lab cmyk.icc cmyk.icc *Lab\n\n" "To create a 'grayer' sRGB input profile:\n" "\ticclink -x -o grayer.icc *sRGB gray.icc gray.icc *Lab\n\n" "To embed ink limiting into a cmyk output profile:\n" "\ticclink -x -o cmyklimited.icc -k 250 cmyk.icc *Lab\n\n"); break; case 3: fprintf(stderr, "This program is intended to be a demo of the little cms\n" "engine. Both lcms and this program are freeware. You can\n" "obtain both in source code at http://www.littlecms.com\n" "For suggestions, comments, bug reports etc. send mail to\n" "info@littlecms.com\n\n"); } exit(0); } // The toggles stuff static void HandleSwitches(int argc, char *argv[]) { int s; while ((s = xgetopt(argc,argv,"xXH:h:8k:K:BbO:o:T:t:D:d:C:c:n:N:f:F:lL")) != EOF) { switch (s){ case '8': lUse8bits = TRUE; break; case 'd': case 'D': Description = xoptarg; break; case 'o': case 'O': cOutProf = xoptarg; break; case 't': case 'T': Intent = atoi(xoptarg); if (Intent > 3) Intent = 3; if (Intent < 0) Intent = 0; break; case 'c': case 'C': PrecalcMode = atoi(xoptarg); if (PrecalcMode < 0 || PrecalcMode > 2) FatalError("ERROR: Unknown precalc mode '%d'", PrecalcMode); break; case 'n': case 'N': if (PrecalcMode != 1) FatalError("Precalc mode already specified"); NumOfGridPoints = atoi(xoptarg); break; case 'b': case 'B': BlackPointCompensation = TRUE; break; case 'f': case 'F': BlackPreservation = atoi(xoptarg); if (BlackPreservation < 0 || BlackPreservation > 2) FatalError("ERROR: Unknown black preservation mode '%d'", BlackPreservation); break; case 'k': case 'K': InkLimit = atof(xoptarg); if (InkLimit < 0.0 || InkLimit > 400.0) FatalError("Ink limit must be 0%%..400%%"); break; case 'x': case 'X': TagResult = TRUE; break; case 'h': case 'H': Help(atoi(xoptarg)); break; case 'l': case 'L': NoPrelinearization = TRUE; break; default: FatalError("Unknown option - run without args to see valid ones.\n"); } } } static cmsHPROFILE OpenProfile(const char* File) { cmsHPROFILE h; if (!File) return cmsCreate_sRGBProfile(); if (stricmp(File, "*Lab") == 0) return cmsCreateLabProfile(NULL); if (stricmp(File, "*XYZ") == 0) return cmsCreateXYZProfile(); if (stricmp(File, "*srgb") == 0) return cmsCreate_sRGBProfile(); if (stricmp(File, "*Gray22") == 0) { LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); cmsHPROFILE hProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); cmsFreeGamma(Gamma); return hProfile; } if (stricmp(File, "*Lin2222") == 0) { LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); LPGAMMATABLE Gamma4[4]; cmsHPROFILE hProfile; Gamma4[0] = Gamma4[1] = Gamma4[2] = Gamma4[3] = Gamma; hProfile = cmsCreateLinearizationDeviceLink(icSigCmykData, Gamma4); cmsFreeGamma(Gamma); return hProfile; } h = cmsOpenProfileFromFile(File, "r"); if (cmsGetDeviceClass(h) == icSigNamedColorClass) FatalError("ERROR: Cannot make devicelink of named color profiles!"); return h; } static int MyErrorHandler(int ErrorCode, const char *ErrorText) { FatalError("icclink: %s", ErrorText); return 0; } int main(int argc, char *argv[]) { int i, nargs; cmsHPROFILE Profiles[257]; cmsHPROFILE hProfile; DWORD dwFlags = 0; cmsHTRANSFORM hTransform; fprintf(stderr, "little cms device link generator - v1.7\n"); HandleSwitches(argc, argv); cmsSetErrorHandler(MyErrorHandler); nargs = (argc - xoptind); if (nargs < 1) Help(0); if (nargs > 255) FatalError("ERROR: Holy profile! what are you trying to do with so many profiles?"); for (i=0; i < nargs; i++) { Profiles[i] = OpenProfile(argv[i + xoptind]); } switch (PrecalcMode) { case 0: dwFlags |= cmsFLAGS_LOWRESPRECALC; break; case 2: dwFlags |= cmsFLAGS_HIGHRESPRECALC; break; case 1: if (NumOfGridPoints > 0) dwFlags |= cmsFLAGS_GRIDPOINTS(NumOfGridPoints); break; default: FatalError("ERROR: Unknown precalculation mode '%d'", PrecalcMode); } if (BlackPointCompensation) dwFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION; if (BlackPreservation > 0) { dwFlags |= cmsFLAGS_PRESERVEBLACK; cmsSetCMYKPreservationStrategy(BlackPreservation-1); } if (TagResult) dwFlags |= cmsFLAGS_GUESSDEVICECLASS; if (NoPrelinearization) dwFlags |= cmsFLAGS_NOPRELINEARIZATION; if (InkLimit != 400.0) { cmsHPROFILE hInkLimit = cmsCreateInkLimitingDeviceLink( cmsGetColorSpace(Profiles[nargs-1]), InkLimit); Profiles[nargs++] = hInkLimit; } if (lUse8bits) dwFlags |= cmsFLAGS_NOPRELINEARIZATION; hTransform = cmsCreateMultiprofileTransform(Profiles, nargs, 0, 0, Intent, dwFlags); if (hTransform) { size_t size = sizeof(int) + nargs * sizeof(cmsPSEQDESC); LPcmsSEQ pseq = (LPcmsSEQ) _cmsMalloc(size); ZeroMemory(pseq, size); pseq ->n = nargs; for (i=0; i < nargs; i++) { strcpy(pseq ->seq[i].Manufacturer, cmsTakeManufacturer(Profiles[i])); strcpy(pseq ->seq[1].Model, cmsTakeModel(Profiles[i])); } hProfile = cmsTransform2DeviceLink(hTransform, dwFlags); cmsAddTag(hProfile, icSigProfileDescriptionTag, (LPVOID) Description); cmsAddTag(hProfile, icSigCopyrightTag, (LPVOID) "Generated by littlecms icclink. No copyright, use freely"); cmsAddTag(hProfile, icSigProfileSequenceDescTag, (LPVOID) pseq); if (lUse8bits) _cmsSetLUTdepth(hProfile, 8); if (_cmsSaveProfile(hProfile, cOutProf)) fprintf(stderr, "Ok"); else fprintf(stderr, "Error saving file!"); cmsCloseProfile(hProfile); _cmsFree(pseq); } cmsDeleteTransform(hTransform); for (i=0; i < nargs; i++) { cmsCloseProfile(Profiles[i]); } return 0; } lcms-1.19/samples/icctrans.10000777000175300010010000000236011272606371015216 0ustar MartiNinguno.\"Shiju P. Nair September 30, 2004 .TH ICCTRANS 1 "September 30, 2004" .SH NAME icctrans - little cms ColorSpace conversion calculator. .SH SYNOPSIS .B icctrans .RI [ options ] .SH DESCRIPTION lcms is a standalone CMM engine, which deals with the color management. It implements a fast transformation between ICC profiles. .B icctrans is lcms ColorSpace conversion calculator. .SH OPTIONS .TP .B \-% use percent % of ink. .TP .B \-b Black point compensation. .TP .B \-c <0,1,2,3> Precalculates transform. (0=Off, 1=Normal, 2=Hi-res, 3=LoRes) [defaults to 1] .TP .BI \-i\ profile Input profile (defaults to sRGB). .TP .B \-l Transform by device-link profile. .TP .B \-n Terse output, intended for pipe usage. .TP .BI \-o\ profile .p Output profile (defaults to sRGB). .TP .B \-t <0,1,2,3> Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute). .TP .B \-v Verbose. .TP .B \-w Use 16 bits. .TP .B \-x Hexadecimal. .TP You can use '*Lab' and '*xyz' as built-in profiles. .SH NOTES For suggestions, comments, bug reports etc. send mail to info@littlecms.com. .SH SEE ALSO .BR jpegicc (1), .BR tifficc (1), .BR icc2ps (1), .BR icclink (1), .BR wtpt (1) .SH AUTHOR This manual page was written by Shiju p. Nair , for the Debian project. lcms-1.19/samples/icctrans.c0000777000175300010010000007662611272606371015320 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" #include #include #ifndef NON_WINDOWS #include #endif // xgetopt() interface ----------------------------------------------------- extern int xoptind; extern char *xoptarg; extern int xopterr; extern char SW; int cdecl xgetopt(int argc, char *argv[], char *optionS); // ------------------------------------------------------------------------ // Stock profiles function extern cmsHPROFILE OpenStockProfile(const char* File); // Globals static LCMSBOOL InHexa = FALSE; static LCMSBOOL Verbose = FALSE; static LCMSBOOL GamutCheck = FALSE; static LCMSBOOL Width16 = FALSE; static LCMSBOOL BlackPointCompensation = FALSE; static LCMSBOOL PreserveBlack = FALSE; static LCMSBOOL lIsDeviceLink = FALSE; static LCMSBOOL lTerse = FALSE; static LCMSBOOL lQuantize = FALSE; static LCMSBOOL lUse255always = FALSE; static char *cInProf = NULL; static char *cOutProf = NULL; static char *cProofing = NULL; static char *IncludePart = NULL; static LCMSHANDLE hIT8in = NULL; // CGATS input static LCMSHANDLE hIT8out = NULL; // CGATS output static char CGATSPatch[1024]; // Actual Patch Name static char CGATSoutFilename[MAX_PATH]; static int Intent = INTENT_PERCEPTUAL; static int ProofingIntent = INTENT_PERCEPTUAL; static int PrecalcMode = 0; static int nMaxPatches; static cmsHPROFILE hInput, hOutput, hProof, hLab = NULL, hXYZ = NULL; static cmsHTRANSFORM hTrans, hTransXYZ, hTransLab; static icColorSpaceSignature InputColorSpace, OutputColorSpace; static cmsCIEXYZ xyz; static cmsCIELab Lab; static LPcmsNAMEDCOLORLIST InputColorant = NULL; static LPcmsNAMEDCOLORLIST OutputColorant = NULL; // isatty replacement #ifdef _MSC_VER #define xisatty(x) _isatty( _fileno( (x) ) ) #else #define xisatty(x) isatty( fileno( (x) ) ) #endif // Give up static void FatalError(const char *frm, ...) { va_list args; va_start(args, frm); vfprintf(stderr, frm, args); va_end(args); exit(1); } // Issue a message static void Warning(const char *frm, ...) { va_list args; va_start(args, frm); vfprintf(stderr, frm, args); va_end(args); } // The error handler static int MyErrorHandler(int ErrorCode, const char *ErrorText) { FatalError("icctrans: %s", ErrorText); return 0; } // Print usage to stderr static void Help(void) { fprintf(stderr, "usage: icctrans [flags] [CGATS input] [CGATS output]\n\n"); fprintf(stderr, "flags:\n\n"); fprintf(stderr, "%cv - Verbose (Print PCS as well)\n", SW); fprintf(stderr, "%cw - use 16 bits\n", SW); fprintf(stderr, "%c5 - don't use %% on inks (always 0..255, even on CMYK)\n", SW); fprintf(stderr, "%cx - Hexadecimal\n", SW); fprintf(stderr, "%cq - Quantize CGATS to 8 bits\n\n", SW); fprintf(stderr, "%ci - Input profile (defaults to sRGB)\n", SW); fprintf(stderr, "%co - Output profile (defaults to sRGB)\n", SW); fprintf(stderr, "%cl - Transform by device-link profile\n", SW); fprintf(stderr, "\nYou can use '*Lab', '*xyz' and others as built-in profiles\n\n"); fprintf(stderr, "%ct<0,1,2,3> Intent (0=Perceptual, 1=Rel.Col, 2=Saturation, 3=Abs.Col.)\n", SW); fprintf(stderr, "%cd<0..1> - Observer adaptation state (abs.col. only)\n\n", SW); fprintf(stderr, "%cb - Black point compensation\n", SW); fprintf(stderr, "%cf - Preserve black (CMYK only) 0=off, 1=black ink only, 2=full K plane\n", SW); fprintf(stderr, "%cc<0,1,2,3> Precalculates transform (0=Off, 1=Normal, 2=Hi-res, 3=LoRes)\n\n", SW); fprintf(stderr, "%cn - Terse output, intended for pipe usage\n", SW); fprintf(stderr, "%cp - Soft proof profile\n", SW); fprintf(stderr, "%cm<0,1,2,3> - Soft proof intent\n", SW); fprintf(stderr, "%cg - Marks out-of-gamut colors on softproof\n\n", SW); fprintf(stderr, "This program is intended to be a demo of the little cms\n" "engine. Both lcms and this program are freeware. You can\n" "obtain both in source code at http://www.littlecms.com\n" "For suggestions, comments, bug reports etc. send mail to\n" "info@littlecms.com\n\n"); exit(0); } // The toggles stuff static void HandleSwitches(int argc, char *argv[]) { int s; while ((s = xgetopt(argc,argv, "%C:c:VvQqWwxXhHbBnNI:i:O:o:T:t:L:l:p:P:m:M:gGF:f:d:D:!:5")) != EOF) { switch (s){ case '5': lUse255always = TRUE; break; case '!': IncludePart = xoptarg; break; case 'b': case 'B': BlackPointCompensation = TRUE; break; case 'c': case 'C': PrecalcMode = atoi(xoptarg); if (PrecalcMode < 0 || PrecalcMode > 3) FatalError("icctrans: Unknown precalc mode '%d'", PrecalcMode); break; case 'd': case 'D': { double ObserverAdaptationState = atof(xoptarg); if (ObserverAdaptationState != 0 && ObserverAdaptationState != 1.0) Warning("Adaptation states other that 0 or 1 are not yet implemented"); cmsSetAdaptationState(ObserverAdaptationState); } break; case 'f': case 'F': PreserveBlack = atoi(xoptarg); if (PreserveBlack < 0 || PreserveBlack > 2) FatalError("Unknown PreserveBlack '%d'", PreserveBlack); break; case 'g': case 'G': GamutCheck = TRUE; break; case 'i': case 'I': if (lIsDeviceLink) FatalError("icctrans: Device-link already specified"); cInProf = xoptarg; break; case 'l': case 'L': cInProf = xoptarg; lIsDeviceLink = TRUE; break; case 'm': case 'M': ProofingIntent = atoi(xoptarg); if (ProofingIntent > 3) ProofingIntent = 3; if (ProofingIntent < 0) ProofingIntent = 0; break; case 'n': case 'N': lTerse = TRUE; break; case 'o': case 'O': if (lIsDeviceLink) FatalError("icctrans: Device-link already specified"); cOutProf = xoptarg; break; case 'p': case 'P': cProofing = xoptarg; break; case 'q': case 'Q': lQuantize = TRUE; break; case 't': case 'T': Intent = atoi(xoptarg); if (Intent > 3) Intent = 3; if (Intent < 0) Intent = 0; break; case 'v': case 'V': Verbose = TRUE; break; case 'W': case 'w': Width16 = TRUE; break; case 'x': case 'X': InHexa = TRUE; break; default: FatalError("icctrans: Unknown option - run without args to see valid ones.\n"); } } } // Displays the colorant table static void PrintColorantTable(cmsHPROFILE hInput, icTagSignature Sig, const char* Title) { LPcmsNAMEDCOLORLIST list; int i; if (cmsIsTag(hInput, Sig)) { printf("%s:\n", Title); list = cmsReadColorantTable(hInput, Sig); for (i=0; i < list ->nColors; i++) printf("\t%s\n", list ->List[i].Name); cmsFreeNamedColorList(list); printf("\n"); } } // Creates all needed color transforms static void OpenTransforms(void) { DWORD dwIn, dwOut, dwFlags; dwFlags = 0; if (lIsDeviceLink) { hInput = cmsOpenProfileFromFile(cInProf, "r"); hOutput = NULL; InputColorSpace = cmsGetColorSpace(hInput); OutputColorSpace = cmsGetPCS(hInput); // Read colorant tables if present if (cmsIsTag(hInput, icSigColorantTableTag)) InputColorant = cmsReadColorantTable(hInput, icSigColorantTableTag); if (cmsIsTag(hInput, icSigColorantTableOutTag)) OutputColorant = cmsReadColorantTable(hInput, icSigColorantTableOutTag); } else { hInput = OpenStockProfile(cInProf); hOutput = OpenStockProfile(cOutProf); hProof = NULL; if (cmsIsTag(hInput, icSigColorantTableTag)) InputColorant = cmsReadColorantTable(hInput, icSigColorantTableTag); if (cmsIsTag(hOutput, icSigColorantTableTag)) OutputColorant = cmsReadColorantTable(hOutput, icSigColorantTableTag); if (cProofing != NULL) { hProof = OpenStockProfile(cProofing); dwFlags |= cmsFLAGS_SOFTPROOFING; } InputColorSpace = cmsGetColorSpace(hInput); OutputColorSpace = cmsGetColorSpace(hOutput); if (cmsGetDeviceClass(hInput) == icSigLinkClass || cmsGetDeviceClass(hOutput) == icSigLinkClass) FatalError("icctrans: Use %cl flag for devicelink profiles!\n", SW); } if (Verbose) { printf("From: %s\n", cmsTakeProductName(hInput)); printf("Desc: %s\n", cmsTakeProductDesc(hInput)); printf("Info: %s\n\n", cmsTakeProductInfo(hInput)); PrintColorantTable(hInput, icSigColorantTableTag, "Input colorant table"); PrintColorantTable(hInput, icSigColorantTableOutTag, "Input colorant out table"); if (hOutput) { printf("To : %s\n", cmsTakeProductName(hOutput)); printf("Desc: %s\n", cmsTakeProductDesc(hOutput)); printf("Info: %s\n\n", cmsTakeProductInfo(hOutput)); PrintColorantTable(hOutput, icSigColorantTableTag, "Output colorant table"); PrintColorantTable(hOutput, icSigColorantTableOutTag, "Input colorant out table"); } } dwIn = BYTES_SH(2) | CHANNELS_SH(_cmsChannelsOf(InputColorSpace)); dwOut = BYTES_SH(2) | CHANNELS_SH(_cmsChannelsOf(OutputColorSpace)); if (PreserveBlack) { dwFlags |= cmsFLAGS_PRESERVEBLACK; if (PrecalcMode == 0) PrecalcMode = 1; cmsSetCMYKPreservationStrategy(PreserveBlack-1); } switch (PrecalcMode) { case 0: dwFlags |= cmsFLAGS_NOTPRECALC; break; case 2: dwFlags |= cmsFLAGS_HIGHRESPRECALC; break; case 3: dwFlags |= cmsFLAGS_LOWRESPRECALC; break; case 1: break; default: FatalError("icctrans: Unknown precalculation mode '%d'", PrecalcMode); } if (BlackPointCompensation) dwFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION; if (GamutCheck) { if (hProof == NULL) FatalError("icctrans: I need proofing profile -p for gamut checking!"); cmsSetAlarmCodes(0xFF, 0xFF, 0xFF); dwFlags |= cmsFLAGS_GAMUTCHECK; } if (cmsGetDeviceClass(hInput) == icSigNamedColorClass) { dwIn = TYPE_NAMED_COLOR_INDEX; } hTrans = cmsCreateProofingTransform(hInput, dwIn, hOutput, dwOut, hProof, Intent, ProofingIntent, dwFlags); hTransXYZ = NULL; hTransLab = NULL; if (hOutput && Verbose) { hXYZ = cmsCreateXYZProfile(); hLab = cmsCreateLabProfile(NULL); hTransXYZ = cmsCreateTransform(hInput, dwIn, hXYZ, TYPE_XYZ_16, Intent, cmsFLAGS_NOTPRECALC); hTransLab = cmsCreateTransform(hInput, dwIn, hLab, TYPE_Lab_16, Intent, cmsFLAGS_NOTPRECALC); } } // Free open resources static void CloseTransforms(void) { if (InputColorant) cmsFreeNamedColorList(InputColorant); if (OutputColorant) cmsFreeNamedColorList(OutputColorant); cmsDeleteTransform(hTrans); if (hTransLab) cmsDeleteTransform(hTransLab); if (hTransXYZ) cmsDeleteTransform(hTransXYZ); cmsCloseProfile(hInput); if (hOutput) cmsCloseProfile(hOutput); if (hProof) cmsCloseProfile(hProof); if (hXYZ) cmsCloseProfile(hXYZ); if (hLab) cmsCloseProfile(hLab); } // Print a value, with a prefix, normalized to a given range static void PrintRange(const char* C, double v, double Range) { char Prefix[20]; Prefix[0] = 0; if (!lTerse) sprintf(Prefix, "%s=", C); if (InHexa) { if (Width16) printf("%s0x%x ", Prefix, (int) floor(v + .5)); else printf("%s0x%x ", Prefix, (int) floor(v / 257. + .5)); } else { double out = (v * Range) / 65535.0; if (lQuantize) out = floor(out + 0.5); printf("%s%.2f ", Prefix, out); } } static void Print255(const char* C, double v) { PrintRange(C, v, 255.0); } static void Print100(const char* C, double v) { PrintRange(C, v, lUse255always ? 255.0 : 100.0); } static void PrintCooked(const char* C, double v) { if (lQuantize) v = floor(v + 0.5); if (lTerse) printf("%.4f ", v); else printf("%s=%.4f ", C, v); } static void PrintResults(WORD Encoded[], icColorSpaceSignature ColorSpace) { int i; switch (ColorSpace) { case icSigXYZData: cmsXYZEncoded2Float(&xyz, Encoded); PrintCooked("X", xyz.X * 100.); PrintCooked("Y", xyz.Y * 100.); PrintCooked("Z", xyz.Z * 100.); break; case icSigLabData: cmsLabEncoded2Float(&Lab, Encoded); PrintCooked("L*", Lab.L); PrintCooked("a*", Lab.a); PrintCooked("b*", Lab.b); break; case icSigLuvData: Print255("L", Encoded[0]); Print255("u", Encoded[1]); Print255("v", Encoded[2]); break; case icSigYCbCrData: Print255("Y", Encoded[0]); Print255("Cb", Encoded[1]); Print255("Cr", Encoded[2]); break; case icSigYxyData: Print255("Y", Encoded[0]); Print255("x", Encoded[1]); Print255("y", Encoded[2]); break; case icSigRgbData: Print255("R", Encoded[0]); Print255("G", Encoded[1]); Print255("B", Encoded[2]); break; case icSigGrayData: Print255("G", Encoded[0]); break; case icSigHsvData: Print255("H", Encoded[0]); Print255("s", Encoded[1]); Print255("v", Encoded[2]); break; case icSigHlsData: Print255("H", Encoded[0]); Print255("l", Encoded[1]); Print255("s", Encoded[2]); break; case icSigCmykData: Print100("C", Encoded[0]); Print100("M", Encoded[1]); Print100("Y", Encoded[2]); Print100("K", Encoded[3]); break; case icSigCmyData: Print100("C", Encoded[0]); Print100("M", Encoded[1]); Print100("Y", Encoded[2]); break; default: for (i=0; i < _cmsChannelsOf(OutputColorSpace); i++) { char Buffer[256]; if (OutputColorant) sprintf(Buffer, "%s", OutputColorant->List[i].Name); else sprintf(Buffer, "Channel #%d", i + 1); Print255(Buffer, Encoded[i]); } } printf("\n"); } // Get input from user static void GetLine(char* Buffer) { scanf("%s", Buffer); if (toupper(Buffer[0]) == 'Q') { // Quit? CloseTransforms(); if (xisatty(stdin)) printf("Done.\n"); exit(0); } } // Ask for a value static double GetAnswer(const char* Prompt, double Range) { char Buffer[4096]; double val = 0.0; if (Range == 0.0) { // Range 0 means double value if (xisatty(stdin)) printf("%s? ", Prompt); GetLine(Buffer); return atof(Buffer); } else { if (InHexa) { // Hexadecimal int hexa; if (Width16) Range = 0xFFFF; else Range = 0xFF; if (xisatty(stdin)) printf("%s (0..%X)? ", Prompt, (int) Range); GetLine(Buffer); sscanf(Buffer, "%x", &hexa); val = hexa; } else { // Normal usage if (xisatty(stdin)) printf("%s (0..%d)? ", Prompt, (int) Range); GetLine(Buffer); sscanf(Buffer, "%lf", &val); } // Normalize to 0..0xffff if (val > Range) return 0xFFFF; return floor((val * 65535.0) / Range + 0.5); } } // Get a value in % static WORD Get100(const char* AskFor) { return (WORD) GetAnswer(AskFor, lUse255always ? 255.0 : 100.0); } // Get a simple value in 0..255 range static WORD GetVal(const char* AskFor) { return (WORD) GetAnswer(AskFor, 255.0); } // Get a double value static double GetDbl(const char* AskFor) { return GetAnswer(AskFor, 0.0); } // Get a named-color index static WORD GetIndex(void) { char Buffer[4096], Name[40], Prefix[40], Suffix[40]; int index, max; max = cmsNamedColorCount(hTrans)-1; if (xisatty(stdin)) printf("Color index (0..%d)? ", max); GetLine(Buffer); index = atoi(Buffer); if (index > max) FatalError("icctrans: Named color %d out of range!", index); cmsNamedColorInfo(hTrans, index, Name, Prefix, Suffix); printf("\n%s %s %s: ", Prefix, Name, Suffix); return index; } // Read values from a text file or terminal static void TakeTextValues(WORD Encoded[]) { if (xisatty(stdin)) printf("\nEnter values, 'q' to quit\n"); if (cmsGetDeviceClass(hInput) == icSigNamedColorClass) { Encoded[0] = GetIndex(); return; } switch (InputColorSpace) { case icSigXYZData: xyz.X = GetDbl("X"); xyz.Y = GetDbl("Y"); xyz.Z = GetDbl("Z"); cmsFloat2XYZEncoded(Encoded, &xyz); break; case icSigLabData: Lab.L = GetDbl("L*"); Lab.a = GetDbl("a*"); Lab.b = GetDbl("b*"); cmsFloat2LabEncoded(Encoded, &Lab); break; case icSigLuvData: Encoded[0] = GetVal("L"); Encoded[1] = GetVal("u"); Encoded[2] = GetVal("v"); break; case icSigYCbCrData: Encoded[0] = GetVal("Y"); Encoded[1] = GetVal("Cb"); Encoded[2] = GetVal("Cr"); break; case icSigYxyData: Encoded[0] = GetVal("Y"); Encoded[1] = GetVal("x"); Encoded[2] = GetVal("y"); break; case icSigRgbData: Encoded[0] = GetVal("R"); Encoded[1] = GetVal("G"); Encoded[2] = GetVal("B"); break; case icSigGrayData: Encoded[0] = GetVal("G"); break; case icSigHsvData: Encoded[0] = GetVal("H"); Encoded[1] = GetVal("s"); Encoded[2] = GetVal("v"); break; case icSigHlsData: Encoded[0] = GetVal("H"); Encoded[1] = GetVal("l"); Encoded[2] = GetVal("s"); break; case icSigCmykData: Encoded[0] = Get100("C"); Encoded[1] = Get100("M"); Encoded[2] = Get100("Y"); Encoded[3] = Get100("K"); break; case icSigCmyData: Encoded[0] = Get100("C"); Encoded[1] = Get100("M"); Encoded[2] = Get100("Y"); break; case icSigHexachromeData: Encoded[0] = Get100("C"); Encoded[1] = Get100("M"); Encoded[2] = Get100("Y"); Encoded[3] = Get100("K"); Encoded[4] = Get100("c"); Encoded[5] = Get100("m"); break; case icSig2colorData: case icSig3colorData: case icSig4colorData: case icSig5colorData: case icSig6colorData: case icSig7colorData: case icSig8colorData: case icSigMCH5Data: case icSigMCH7Data: case icSigMCH8Data: case icSigMCH9Data: case icSigMCHAData: case icSigMCHBData: case icSigMCHCData: case icSigMCHDData: case icSigMCHEData: case icSigMCHFData: { int i; for (i=0; i < _cmsChannelsOf(InputColorSpace); i++) { char Name[256]; if (InputColorant) sprintf(Name, "%s", InputColorant->List[i].Name); else sprintf(Name, "Channel #%d", i+1); Encoded[i] = GetVal(Name); } } break; default: FatalError("icctrans: Unsupported %d channel profile", _cmsChannelsOf(InputColorSpace)); } if (xisatty(stdin)) printf("\n"); } // Take a value from IT8 and scale it accordly to fill a WORD (0..FFFF) static WORD GetIT8Val(const char* Name, double Max) { double CGATSfactor = 65535.0 / Max; double res; const char* Val = cmsIT8GetData(hIT8in, CGATSPatch, Name); if (Val == NULL) FatalError("icctrans: Field '%s' not found", Name); res = atof(Val); if (res > Max) return 0xFFFF; return (WORD) floor(res * CGATSfactor + 0.5); } // Read input values from CGATS file. static void TakeCGATSValues(int nPatch, WORD Encoded[]) { // At first take the name if SAMPLE_ID is present if (cmsIT8GetPatchName(hIT8in, nPatch, CGATSPatch) == NULL) { FatalError("icctrans: Sorry, I need 'SAMPLE_ID' on input CGATS to operate."); } // Special handling for named color profiles. // Lookup the name in the names database (the transform) if (cmsGetDeviceClass(hInput) == icSigNamedColorClass) { int index = cmsNamedColorIndex(hTrans, CGATSPatch); if (index < 0) FatalError("icctrans: Named color '%s' not found in the profile", CGATSPatch); Encoded[0] = (WORD) index; return; } // Color is not a spot color, proceed. switch (InputColorSpace) { // Encoding should follow CGATS specification. case icSigXYZData: xyz.X = cmsIT8GetDataDbl(hIT8in, CGATSPatch, "XYZ_X") / 100.0; xyz.Y = cmsIT8GetDataDbl(hIT8in, CGATSPatch, "XYZ_Y") / 100.0; xyz.Z = cmsIT8GetDataDbl(hIT8in, CGATSPatch, "XYZ_Z") / 100.0; cmsFloat2XYZEncoded(Encoded, &xyz); break; case icSigLabData: Lab.L = cmsIT8GetDataDbl(hIT8in, CGATSPatch, "LAB_L"); Lab.a = cmsIT8GetDataDbl(hIT8in, CGATSPatch, "LAB_A"); Lab.b = cmsIT8GetDataDbl(hIT8in, CGATSPatch, "LAB_B"); cmsFloat2LabEncoded(Encoded, &Lab); break; case icSigRgbData: Encoded[0] = GetIT8Val("RGB_R", 255.0); Encoded[1] = GetIT8Val("RGB_G", 255.0); Encoded[2] = GetIT8Val("RGB_B", 255.0); break; case icSigGrayData: Encoded[0] = GetIT8Val("GRAY", 255.0); break; case icSigCmykData: Encoded[0] = GetIT8Val("CMYK_C", lUse255always ? 255.0 : 100.0); Encoded[1] = GetIT8Val("CMYK_M", lUse255always ? 255.0 : 100.0); Encoded[2] = GetIT8Val("CMYK_Y", lUse255always ? 255.0 : 100.0); Encoded[3] = GetIT8Val("CMYK_K", lUse255always ? 255.0 : 100.0); break; case icSigCmyData: Encoded[0] = GetIT8Val("CMY_C", lUse255always ? 255.0 : 100.0); Encoded[1] = GetIT8Val("CMY_M", lUse255always ? 255.0 : 100.0); Encoded[2] = GetIT8Val("CMY_Y", lUse255always ? 255.0 : 100.0); break; default: { int i; for (i=0; i < _cmsChannelsOf(InputColorSpace); i++) { char Buffer[255]; sprintf(Buffer, "CHAN_%d", i); Encoded[i] = GetIT8Val(Buffer, 255.0); } } } } static void SetCGATSfld(const char* Col, double Val) { if (lQuantize) Val = floor(Val + 0.5); if (!cmsIT8SetDataDbl(hIT8out, CGATSPatch, Col, Val)) { FatalError("icctrans: couldn't set '%s' on output cgats '%s'", Col, CGATSoutFilename); } } static void PutCGATSValues(int nPatch, WORD Encoded[]) { cmsIT8SetData(hIT8out, CGATSPatch, "SAMPLE_ID", CGATSPatch); switch (OutputColorSpace) { // Encoding should follow CGATS specification. case icSigXYZData: cmsXYZEncoded2Float(&xyz, Encoded); SetCGATSfld("XYZ_X", xyz.X * 100.0); SetCGATSfld("XYZ_Y", xyz.Y * 100.0); SetCGATSfld("XYZ_Z", xyz.Z * 100.0); break; case icSigLabData: cmsLabEncoded2Float(&Lab, Encoded); SetCGATSfld("LAB_L", Lab.L); SetCGATSfld("LAB_A", Lab.a); SetCGATSfld("LAB_B", Lab.b); break; case icSigRgbData: SetCGATSfld("RGB_R", Encoded[0] / 257.0); SetCGATSfld("RGB_G", Encoded[1] / 257.0); SetCGATSfld("RGB_B", Encoded[2] / 257.0); break; case icSigGrayData: SetCGATSfld("GRAY", Encoded[0] / 257.0); break; case icSigCmykData: SetCGATSfld("CMYK_C", (lUse255always ? 255.0 : 100.0) * Encoded[0] / 65535.0); SetCGATSfld("CMYK_M", (lUse255always ? 255.0 : 100.0) * Encoded[1] / 65535.0); SetCGATSfld("CMYK_Y", (lUse255always ? 255.0 : 100.0) * Encoded[2] / 65535.0); SetCGATSfld("CMYK_K", (lUse255always ? 255.0 : 100.0) * Encoded[3] / 65535.0); break; case icSigCmyData: SetCGATSfld("CMY_C", (lUse255always ? 255.0 : 100.0) * Encoded[0] / 65535.0); SetCGATSfld("CMY_M", (lUse255always ? 255.0 : 100.0) * Encoded[1] / 65535.0); SetCGATSfld("CMY_Y", (lUse255always ? 255.0 : 100.0) * Encoded[2] / 65535.0); break; default: { int i; for (i=1; i <= _cmsChannelsOf(OutputColorSpace); i++) { char Buffer[255]; sprintf(Buffer, "CHAN_%d", i); SetCGATSfld(Buffer, Encoded[i-1] / 257.0); } } } } // Print XYZ/Lab values on verbose mode static void PrintPCS(WORD Input[], WORD PCSxyz[], WORD PCSLab[]) { if (Verbose && hTransXYZ && hTransLab) { if (hTransXYZ) cmsDoTransform(hTransXYZ, Input, PCSxyz, 1); if (hTransLab) cmsDoTransform(hTransLab, Input, PCSLab, 1); PrintResults(PCSxyz, icSigXYZData); PrintResults(PCSLab, icSigLabData); } } // Create data format static void SetOutputDataFormat() { cmsIT8SetPropertyStr(hIT8out, "ORIGINATOR", "icctrans"); if (IncludePart != NULL) cmsIT8SetPropertyStr(hIT8out, ".INCLUDE", IncludePart); cmsIT8SetComment(hIT8out, "Data follows"); cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_SETS", nMaxPatches); switch (OutputColorSpace) { // Encoding should follow CGATS specification. case icSigXYZData: cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", 4); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8out, 1, "XYZ_X"); cmsIT8SetDataFormat(hIT8out, 2, "XYZ_Y"); cmsIT8SetDataFormat(hIT8out, 3, "XYZ_Z"); break; case icSigLabData: cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", 4); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8out, 1, "LAB_L"); cmsIT8SetDataFormat(hIT8out, 2, "LAB_A"); cmsIT8SetDataFormat(hIT8out, 3, "LAB_B"); break; case icSigRgbData: cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", 4); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8out, 1, "RGB_R"); cmsIT8SetDataFormat(hIT8out, 2, "RGB_G"); cmsIT8SetDataFormat(hIT8out, 3, "RGB_B"); break; case icSigGrayData: cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", 2); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8out, 1, "GRAY"); break; case icSigCmykData: cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", 5); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8out, 1, "CMYK_C"); cmsIT8SetDataFormat(hIT8out, 2, "CMYK_M"); cmsIT8SetDataFormat(hIT8out, 3, "CMYK_Y"); cmsIT8SetDataFormat(hIT8out, 4, "CMYK_K"); break; case icSigCmyData: cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", 4); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8out, 1, "CMY_C"); cmsIT8SetDataFormat(hIT8out, 2, "CMY_M"); cmsIT8SetDataFormat(hIT8out, 3, "CMY_Y"); break; default: { int i, n; char Buffer[255]; n = _cmsChannelsOf(OutputColorSpace); cmsIT8SetPropertyDbl(hIT8out, "NUMBER_OF_FIELDS", n+1); cmsIT8SetDataFormat(hIT8out, 0, "SAMPLE_ID"); for (i=1; i <= n; i++) { sprintf(Buffer, "CHAN_%d", i); cmsIT8SetDataFormat(hIT8out, i, Buffer); } } } } // Open CGATS if specified static void OpenCGATSFiles(int argc, char *argv[]) { int nParams = argc - xoptind; if (nParams >= 1) { hIT8in = cmsIT8LoadFromFile(argv[xoptind]); if (hIT8in == NULL) FatalError("icctrans: '%s' is not recognized as a CGATS file", argv[xoptind]); nMaxPatches = (int) cmsIT8GetPropertyDbl(hIT8in, "NUMBER_OF_SETS"); } if (nParams == 2) { hIT8out = cmsIT8Alloc(); SetOutputDataFormat(); strncpy(CGATSoutFilename, argv[xoptind+1], MAX_PATH-1); } if (nParams > 2) FatalError("icctrans: Too many CGATS files"); } // The main sink int main(int argc, char *argv[]) { WORD Input[MAXCHANNELS]; WORD Output[MAXCHANNELS]; WORD PCSLab[MAXCHANNELS]; WORD PCSxyz[MAXCHANNELS]; int nPatch = 0; cmsSetErrorHandler(MyErrorHandler); fprintf(stderr, "LittleCMS ColorSpace conversion calculator - v3.3\n\n"); if (argc == 1) Help(); HandleSwitches(argc, argv); // Open profiles, create transforms OpenTransforms(); // Open CGATS input if specified OpenCGATSFiles(argc, argv); for(;;) { if (hIT8in != NULL) { if (nPatch >= nMaxPatches) break; TakeCGATSValues(nPatch++, Input); } else { if (feof(stdin)) break; TakeTextValues(Input); } cmsDoTransform(hTrans, Input, Output, 1); if (hIT8out != NULL) { PutCGATSValues(nPatch, Output); } else { PrintResults(Output, OutputColorSpace); PrintPCS(Input, PCSxyz, PCSLab); } } CloseTransforms(); if (hIT8in) cmsIT8Free(hIT8in); if (hIT8out) { cmsIT8SaveToFile(hIT8out, CGATSoutFilename); cmsIT8Free(hIT8out); } return 0; } lcms-1.19/samples/Makefile.am0000777000175300010010000000156511272606371015370 0ustar MartiNinguno# # Makefile for building lcms sample programs # Originally Written by Bob Friesenhahn, June 2003 # Additions and bugs by Marti Maria Oct 2004 # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include bin_PROGRAMS = icctrans wtpt icc2ps icclink icctrans_LDADD = $(top_builddir)/src/liblcms.la icctrans_LDFLAGS = @LDFLAGS@ icctrans_SOURCES = icctrans.c xgetopt.c vprf.c icctrans_MANS = icctrans.1 wtpt_LDADD = $(top_builddir)/src/liblcms.la wtpt_LDFLAGS = @LDFLAGS@ wtpt_SOURCES = wtpt.c xgetopt.c icc2ps_LDADD = $(top_builddir)/src/liblcms.la icc2ps_LDFLAGS = @LDFLAGS@ icc2ps_SOURCES = icc2ps.c xgetopt.c icclink_LDADD = $(top_builddir)/src/liblcms.la icclink_LDFLAGS = @LDFLAGS@ icclink_SOURCES = icclink.c xgetopt.c vprf.c man_MANS = wtpt.1 icc2ps.1 icclink.1 EXTRA_DIST = $(man_MANS) lcms-1.19/samples/Makefile.in0000644000175300010010000004613711230106052015357 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for building lcms sample programs # Originally Written by Bob Friesenhahn, June 2003 # Additions and bugs by Marti Maria Oct 2004 VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = icctrans$(EXEEXT) wtpt$(EXEEXT) icc2ps$(EXEEXT) \ icclink$(EXEEXT) subdir = samples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_icc2ps_OBJECTS = icc2ps.$(OBJEXT) xgetopt.$(OBJEXT) icc2ps_OBJECTS = $(am_icc2ps_OBJECTS) icc2ps_DEPENDENCIES = $(top_builddir)/src/liblcms.la icc2ps_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(icc2ps_LDFLAGS) \ $(LDFLAGS) -o $@ am_icclink_OBJECTS = icclink.$(OBJEXT) xgetopt.$(OBJEXT) \ vprf.$(OBJEXT) icclink_OBJECTS = $(am_icclink_OBJECTS) icclink_DEPENDENCIES = $(top_builddir)/src/liblcms.la icclink_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(icclink_LDFLAGS) \ $(LDFLAGS) -o $@ am_icctrans_OBJECTS = icctrans.$(OBJEXT) xgetopt.$(OBJEXT) \ vprf.$(OBJEXT) icctrans_OBJECTS = $(am_icctrans_OBJECTS) icctrans_DEPENDENCIES = $(top_builddir)/src/liblcms.la icctrans_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(icctrans_LDFLAGS) \ $(LDFLAGS) -o $@ am_wtpt_OBJECTS = wtpt.$(OBJEXT) xgetopt.$(OBJEXT) wtpt_OBJECTS = $(am_wtpt_OBJECTS) wtpt_DEPENDENCIES = $(top_builddir)/src/liblcms.la wtpt_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(wtpt_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(icc2ps_SOURCES) $(icclink_SOURCES) $(icctrans_SOURCES) \ $(wtpt_SOURCES) DIST_SOURCES = $(icc2ps_SOURCES) $(icclink_SOURCES) \ $(icctrans_SOURCES) $(wtpt_SOURCES) man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include icctrans_LDADD = $(top_builddir)/src/liblcms.la icctrans_LDFLAGS = @LDFLAGS@ icctrans_SOURCES = icctrans.c xgetopt.c vprf.c icctrans_MANS = icctrans.1 wtpt_LDADD = $(top_builddir)/src/liblcms.la wtpt_LDFLAGS = @LDFLAGS@ wtpt_SOURCES = wtpt.c xgetopt.c icc2ps_LDADD = $(top_builddir)/src/liblcms.la icc2ps_LDFLAGS = @LDFLAGS@ icc2ps_SOURCES = icc2ps.c xgetopt.c icclink_LDADD = $(top_builddir)/src/liblcms.la icclink_LDFLAGS = @LDFLAGS@ icclink_SOURCES = icclink.c xgetopt.c vprf.c man_MANS = wtpt.1 icc2ps.1 icclink.1 EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign samples/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign samples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done icc2ps$(EXEEXT): $(icc2ps_OBJECTS) $(icc2ps_DEPENDENCIES) @rm -f icc2ps$(EXEEXT) $(icc2ps_LINK) $(icc2ps_OBJECTS) $(icc2ps_LDADD) $(LIBS) icclink$(EXEEXT): $(icclink_OBJECTS) $(icclink_DEPENDENCIES) @rm -f icclink$(EXEEXT) $(icclink_LINK) $(icclink_OBJECTS) $(icclink_LDADD) $(LIBS) icctrans$(EXEEXT): $(icctrans_OBJECTS) $(icctrans_DEPENDENCIES) @rm -f icctrans$(EXEEXT) $(icctrans_LINK) $(icctrans_OBJECTS) $(icctrans_LDADD) $(LIBS) wtpt$(EXEEXT): $(wtpt_OBJECTS) $(wtpt_DEPENDENCIES) @rm -f wtpt$(EXEEXT) $(wtpt_LINK) $(wtpt_OBJECTS) $(wtpt_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icc2ps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icclink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/icctrans.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vprf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wtpt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetopt.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-man1 install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-man \ uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/samples/makefile.simple0000777000175300010010000000165010531640654016316 0ustar MartiNingunoSHELL = /bin/sh CFLAGS = -g -O4 -Wall BASEDIR = $(DESTDIR)/usr BINDIR = $(BASEDIR)/bin all: icctrans wtpt icc2ps icclink icctrans: icctrans.c xgetopt.c vprf.c $(CC) $(CFLAGS) icctrans.c xgetopt.c vprf.c ../src/liblcms.a -I../include -o icctrans -lm wtpt: wtpt.c $(CC) $(CFLAGS) wtpt.c ../src/liblcms.a -I../include -o wtpt -lm icc2ps: icc2ps.c xgetopt.c $(CC) $(CFLAGS) icc2ps.c xgetopt.c ../src/liblcms.a -I../include -o icc2ps -lm icclink: icclink.c xgetopt.c $(CC) $(CFLAGS) icclink.c xgetopt.c ../src/liblcms.a -I../include -o icclink -lm install: icctrans icc2ps icclink -cp icctrans $(BINDIR) -cp icctrans.exe $(BINDIR) # Cygwin -cp icc2ps $(BINDIR) -cp icc2ps.exe $(BINDIR) # Cygwin -cp icclink $(BINDIR) -cp icclink.exe $(BINDIR) # Cygwin test: # Nothing to do for test target clean: -rm wtpt icctrans wtpt.exe icctrans.exe icc2ps icc2ps.exe icclink icclink.exe lcms-1.19/samples/mkcmy.c0000777000175300010010000001153711272606371014620 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2003 Marti Maria // // 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. // // THIS SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, // EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY // WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. // // IN NO EVENT SHALL MARTI MARIA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, // INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, // OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, // WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF // LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE // OF THIS SOFTWARE. // // Version 1.12 #include "lcms.h" typedef struct { cmsHPROFILE hLab; cmsHPROFILE hRGB; cmsHTRANSFORM Lab2RGB; cmsHTRANSFORM RGB2Lab; } CARGO, FAR* LPCARGO; static cmsCIExyY Cus; // Does create our perceptual CIE-Based RGB space static cmsHPROFILE CreateRGBSpace(void) { cmsHPROFILE hProfile; LPGAMMATABLE Gamma3[3]; cmsCIExyYTRIPLE CIEPrimaries = { {0.7355,0.2645 }, {0.2658,0.7243 }, {0.1669,0.0085}}; Gamma3[0] = Gamma3[1] = Gamma3[2] = cmsBuildGamma(4096, 4.5); hProfile = cmsCreateRGBProfile(&Cus, &CIEPrimaries, Gamma3); cmsFreeGamma(Gamma3[0]); return hProfile; } // Does create a linear ramp static LPGAMMATABLE CreateLinear() { LPGAMMATABLE Gamma = cmsAllocGamma(4096); LPWORD Table = Gamma ->GammaTable; int i; for (i=0; i < 4096; i++) { Table[i] = _cmsQuantizeVal(i, 4096); } return Gamma; } // Our space will be CIE primaries plus a gamma of 4.5 static int Forward(register WORD In[], register WORD Out[], register LPVOID Cargo) { LPCARGO C = (LPCARGO) Cargo; WORD RGB[3]; cmsDoTransform(C ->Lab2RGB, In, &RGB, 1); Out[0] = 0xFFFF - RGB[0]; // Our CMY is negative of RGB Out[1] = 0xFFFF - RGB[1]; Out[2] = 0xFFFF - RGB[2]; return TRUE; } static int Reverse(register WORD In[], register WORD Out[], register LPVOID Cargo) { LPCARGO C = (LPCARGO) Cargo; WORD RGB[3]; RGB[0] = 0xFFFF - In[0]; RGB[1] = 0xFFFF - In[1]; RGB[2] = 0xFFFF - In[2]; cmsDoTransform(C ->RGB2Lab, &RGB, Out, 1); return TRUE; } static void InitCargo(LPCARGO Cargo) { Cargo -> hLab = cmsCreateLabProfile(NULL); Cargo -> hRGB = CreateRGBSpace(); Cargo->Lab2RGB = cmsCreateTransform(Cargo->hLab, TYPE_Lab_16, Cargo ->hRGB, TYPE_RGB_16, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); Cargo->RGB2Lab = cmsCreateTransform(Cargo ->hRGB, TYPE_RGB_16, Cargo ->hLab, TYPE_Lab_16, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); } static void FreeCargo(LPCARGO Cargo) { cmsDeleteTransform(Cargo ->Lab2RGB); cmsDeleteTransform(Cargo ->RGB2Lab); cmsCloseProfile(Cargo ->hLab); cmsCloseProfile(Cargo ->hRGB); } int main(int argc, char *argv[]) { LPLUT AToB0, BToA0; LPGAMMATABLE PreLinear[3]; LPGAMMATABLE Lin; CARGO Cargo; cmsHPROFILE hProfile; cmsCIEXYZ wp; fprintf(stderr, "Creating lcmscmy.icm..."); wp.X = 55.6549; wp.Y = 59.0485; wp.Z = 72.5494; cmsXYZ2xyY(&Cus, &wp); InitCargo(&Cargo); hProfile = cmsCreateLabProfile(&Cus); // Create linearization Lin = CreateLinear(); PreLinear[0] = Lin; PreLinear[1] = Lin; PreLinear[2] = Lin; AToB0 = cmsAllocLUT(); BToA0 = cmsAllocLUT(); cmsAlloc3DGrid(AToB0, 33, 3, 3); cmsAlloc3DGrid(BToA0, 33, 3, 3); cmsSample3DGrid(AToB0, Reverse, &Cargo, 0); cmsSample3DGrid(BToA0, Forward, &Cargo, 0); cmsAllocLinearTable(AToB0, PreLinear, 1); cmsAllocLinearTable(BToA0, PreLinear, 2); cmsAddTag(hProfile, icSigAToB0Tag, AToB0); cmsAddTag(hProfile, icSigBToA0Tag, BToA0); cmsSetColorSpace(hProfile, icSigCmyData); cmsSetDeviceClass(hProfile, icSigOutputClass); cmsAddTag(hProfile, icSigProfileDescriptionTag, "Little cms CMY mixing"); cmsAddTag(hProfile, icSigCopyrightTag, "Copyright (c) Marti Maria, 2005. All rights reserved."); cmsAddTag(hProfile, icSigDeviceMfgDescTag, "Little cms"); cmsAddTag(hProfile, icSigDeviceModelDescTag, "CMY mixing"); _cmsSaveProfile(hProfile, "lcmscmy.icm"); cmsFreeGamma(Lin); cmsFreeLUT(AToB0); cmsFreeLUT(BToA0); cmsCloseProfile(hProfile); FreeCargo(&Cargo); fprintf(stderr, "Done.\n"); return 0; } lcms-1.19/samples/mkgrayer.c0000777000175300010010000000454011272606371015315 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2003 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" #define GRID_POINTS 33 static int Forward(register WORD In[], register WORD Out[], register LPVOID Cargo) { cmsCIELab Lab; cmsLabEncoded2Float(&Lab, In); Lab.a = Lab.b = 0; cmsFloat2LabEncoded(Out, &Lab); return TRUE; } int main(int argc, char *argv[]) { LPLUT AToB0; cmsHPROFILE hProfile; fprintf(stderr, "Creating grayer.icm..."); unlink("grayer.icm"); hProfile = cmsOpenProfileFromFile("grayer.icm", "w"); AToB0 = cmsAllocLUT(); cmsAlloc3DGrid(AToB0, GRID_POINTS, 3, 3); cmsSample3DGrid(AToB0, Forward, NULL, 0); cmsAddTag(hProfile, icSigAToB0Tag, AToB0); cmsSetColorSpace(hProfile, icSigLabData); cmsSetPCS(hProfile, icSigLabData); cmsSetDeviceClass(hProfile, icSigAbstractClass); cmsAddTag(hProfile, icSigProfileDescriptionTag, "Little cms Grayifier"); cmsAddTag(hProfile, icSigCopyrightTag, "Copyright (c) Marti Maria 2003. All rights reserved."); cmsAddTag(hProfile, icSigDeviceMfgDescTag, "Little cms"); cmsAddTag(hProfile, icSigDeviceModelDescTag, "Grayifier abstract profile"); cmsCloseProfile(hProfile); cmsFreeLUT(AToB0); fprintf(stderr, "Done.\n"); return 0; } lcms-1.19/samples/mktiff8.c0000777000175300010010000000630711272606371015047 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2003 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" static double DecodeAbTIFF(double ab) { if (ab <= 128.) ab += 127.; else ab -= 127.; return ab; } static LPGAMMATABLE CreateStep(void) { LPGAMMATABLE Gamma = cmsAllocGamma(4096); LPWORD Table = Gamma ->GammaTable; int i; double a; for (i=0; i < 4096; i++) { a = (double) i * 255. / 4095.; a = DecodeAbTIFF(a); Table[i] = (WORD) floor(a * 257. + 0.5); } return Gamma; } static LPGAMMATABLE CreateLinear() { LPGAMMATABLE Gamma = cmsAllocGamma(4096); LPWORD Table = Gamma ->GammaTable; int i; for (i=0; i < 4096; i++) { Table[i] = _cmsQuantizeVal(i, 4096); } return Gamma; } static int Identity(register WORD In[], register WORD Out[], register LPVOID Cargo) { Out[0] = In[0]; Out[1] = In[1]; Out[2] = In[2]; return TRUE; } int main(int argc, char *argv[]) { cmsHPROFILE hProfile; LPLUT AToB0, BToA0; LPGAMMATABLE PreLinear[3]; LPGAMMATABLE Lin, Step; fprintf(stderr, "Creating lcmstiff8.icm..."); unlink("lcmstiff8.icm"); hProfile = cmsOpenProfileFromFile("lcmstiff8.icm", "w"); // Create linearization Lin = CreateLinear(); Step = CreateStep(); PreLinear[0] = Lin; PreLinear[1] = Step; PreLinear[2] = Step; AToB0 = cmsAllocLUT(); BToA0 = cmsAllocLUT(); cmsAlloc3DGrid(AToB0, 2, 3, 3); cmsAlloc3DGrid(BToA0, 2, 3, 3); cmsSample3DGrid(AToB0, Identity, NULL, 0); cmsSample3DGrid(BToA0, Identity, NULL, 0); cmsAllocLinearTable(AToB0, PreLinear, 1); cmsAllocLinearTable(BToA0, PreLinear, 2); cmsAddTag(hProfile, icSigAToB0Tag, AToB0); cmsAddTag(hProfile, icSigBToA0Tag, BToA0); cmsAddTag(hProfile, icSigProfileDescriptionTag, "Little cms Tiff8 CIELab"); cmsAddTag(hProfile, icSigCopyrightTag, "Copyright (c) Marti Maria, 2003. All rights reserved."); cmsAddTag(hProfile, icSigDeviceMfgDescTag, "Little cms"); cmsAddTag(hProfile, icSigDeviceModelDescTag, "TIFF Lab8"); cmsCloseProfile(hProfile); cmsFreeGamma(Lin); cmsFreeGamma(Step); cmsFreeLUT(AToB0); cmsFreeLUT(BToA0); fprintf(stderr, "Done.\n"); return 0; } lcms-1.19/samples/vprf.c0000777000175300010010000000435511272606371014455 0ustar MartiNinguno // // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Virtual profiles are handled here. cmsHPROFILE OpenStockProfile(const char* File) { if (!File) return cmsCreate_sRGBProfile(); if (stricmp(File, "*Lab") == 0) return cmsCreateLabProfile(NULL); if (stricmp(File, "*Lab4") == 0) return cmsCreateLab4Profile(NULL); if (stricmp(File, "*LabD65") == 0) { cmsCIExyY D65xyY; cmsWhitePointFromTemp(6504, &D65xyY); return cmsCreateLabProfile(&D65xyY); } if (stricmp(File, "*XYZ") == 0) return cmsCreateXYZProfile(); if (stricmp(File, "*Gray22") == 0) { LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); cmsHPROFILE hProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); cmsFreeGamma(Gamma); return hProfile; } if (stricmp(File, "*srgb") == 0) return cmsCreate_sRGBProfile(); if (stricmp(File, "*null") == 0) return cmsCreateNULLProfile(); return cmsOpenProfileFromFile(File, "r"); } lcms-1.19/samples/wtpt.10000777000175300010010000000147211272606371014411 0ustar MartiNinguno.\"Shiju P. Nair September 30, 2004 .TH WTPT 1 "September 30, 2004" .SH NAME wtpt - Show media white of profiles, identifying black body locus. .SH SYNOPSIS .B wtpt .RI [ profile ] .SH DESCRIPTION lcms is a standalone CMM engine, which deals with the color management. It implements a fast transformation between ICC profiles. .B wtpt shows media white of profiles, identifying black body locus. .P If no parameters are given, then this program will ask for XYZ value of media white. If parameter given, it must be the profile to inspect. .SH NOTES For suggestions, comments, bug reports etc. send mail to info@littlecms.com .SH SEE ALSO .BR jpegicc (1), .BR tifficc (1), .BR icc2ps (1), .BR icclink (1), .BR icctrans (1) .SH AUTHOR This manual page was written by Shiju p. Nair , for the Debian project. lcms-1.19/samples/wtpt.c0000777000175300010010000000530511272606371014472 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // // Example: how to show white points of profiles #include "lcms.h" static void ShowWhitePoint(LPcmsCIEXYZ WtPt) { cmsCIELab Lab; cmsCIELCh LCh; cmsCIExyY xyY; char Buffer[1024]; _cmsIdentifyWhitePoint(Buffer, WtPt); printf("%s\n", Buffer); cmsXYZ2Lab(NULL, &Lab, WtPt); cmsLab2LCh(&LCh, &Lab); cmsXYZ2xyY(&xyY, WtPt); printf("XYZ=(%3.1f, %3.1f, %3.1f)\n", WtPt->X, WtPt->Y, WtPt->Z); printf("Lab=(%3.3f, %3.3f, %3.3f)\n", Lab.L, Lab.a, Lab.b); printf("(x,y)=(%3.3f, %3.3f)\n", xyY.x, xyY.y); printf("Hue=%3.2f, Chroma=%3.2f\n", LCh.h, LCh.C); printf("\n"); } int main (int argc, char *argv[]) { printf("Show media white of profiles, identifying black body locus. v2\n\n"); if (argc == 2) { cmsCIEXYZ WtPt; cmsHPROFILE hProfile = cmsOpenProfileFromFile(argv[1], "r"); printf("%s\n", cmsTakeProductName(hProfile)); cmsTakeMediaWhitePoint(&WtPt, hProfile); ShowWhitePoint(&WtPt); cmsCloseProfile(hProfile); } else { cmsCIEXYZ xyz; printf("usage:\n\nIf no parameters are given, then this program will\n"); printf("ask for XYZ value of media white. If parameter given, it must be\n"); printf("the profile to inspect.\n\n"); printf("X? "); scanf("%lf", &xyz.X); printf("Y? "); scanf("%lf", &xyz.Y); printf("Z? "); scanf("%lf", &xyz.Z); ShowWhitePoint(&xyz); } return 0; } lcms-1.19/samples/xgetopt.c0000777000175300010010000000327611272606371015173 0ustar MartiNinguno/* getopt.c */ #include #include #include int xoptind = 1; /* index of which argument is next */ char *xoptarg; /* pointer to argument of current option */ int xopterr = 0; /* allow error message */ static char *letP = NULL; /* remember next option char's location */ char SW = '-'; /* DOS switch character, either '-' or '/' */ /* Parse the command line options, System V style. Standard option syntax is: option ::= SW [optLetter]* [argLetter space* argument] */ int xgetopt(int argc, char *argv[], char *optionS) { unsigned char ch; char *optP; if (SW == 0) { SW = '/'; } if (argc > xoptind) { if (letP == NULL) { if ((letP = argv[xoptind]) == NULL || *(letP++) != SW) goto gopEOF; if (*letP == SW) { xoptind++; goto gopEOF; } } if (0 == (ch = *(letP++))) { xoptind++; goto gopEOF; } if (':' == ch || (optP = strchr(optionS, ch)) == NULL) goto gopError; if (':' == *(++optP)) { xoptind++; if (0 == *letP) { if (argc <= xoptind) goto gopError; letP = argv[xoptind++]; } xoptarg = letP; letP = NULL; } else { if (0 == *letP) { xoptind++; letP = NULL; } xoptarg = NULL; } return ch; } gopEOF: xoptarg = letP = NULL; return EOF; gopError: xoptarg = NULL; errno = EINVAL; if (xopterr) perror ("get command line option"); return ('?'); } lcms-1.19/src/0000777000175300010010000000000011277221121012434 5ustar MartiNingunolcms-1.19/src/cmscam02.c0000777000175300010010000003317111272606371014226 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // CIECAM 02 appearance model. Many thanks to Jordi Vilar for the debugging. #include "lcms.h" LCMSAPI LCMSHANDLE LCMSEXPORT cmsCIECAM02Init(LPcmsViewingConditions pVC); LCMSAPI void LCMSEXPORT cmsCIECAM02Done(LCMSHANDLE hModel); LCMSAPI void LCMSEXPORT cmsCIECAM02Forward(LCMSHANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut); LCMSAPI void LCMSEXPORT cmsCIECAM02Reverse(LCMSHANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut); // ---------- Implementation -------------------------------------------- typedef struct { double XYZ[3]; double RGB[3]; double RGBc[3]; double RGBp[3]; double RGBpa[3]; double a, b, h, e, H, A, J, Q, s, t, C, M; double abC[2]; double abs[2]; double abM[2]; } CAM02COLOR, *LPCAM02COLOR; typedef struct { CAM02COLOR adoptedWhite; double LA, Yb; double F, c, Nc; int surround; double n, Nbb, Ncb, z, FL, D; } cmsCIECAM02, *LPcmsCIECAM02; static double compute_n(LPcmsCIECAM02 pMod) { return(pMod -> Yb / pMod -> adoptedWhite.XYZ[1]); } static double compute_z(LPcmsCIECAM02 pMod) { return(1.48 + pow(pMod -> n, 0.5)); } static double computeNbb(LPcmsCIECAM02 pMod) { return(0.725 * pow((1.0 / pMod -> n), 0.2)); } static double computeFL(LPcmsCIECAM02 pMod) { double k, FL; k = 1.0 / ((5.0 * pMod->LA) + 1.0); FL = 0.2 * pow(k, 4.0) * (5.0 * pMod->LA) + 0.1 * (pow((1.0 - pow(k, 4.0)), 2.0)) * (pow((5.0 * pMod->LA), (1.0 / 3.0))); return FL; } static double computeD(LPcmsCIECAM02 pMod) { double D; D = pMod->F - (1.0/3.6)*(exp(((-pMod ->LA-42) / 92.0))); return D; } static CAM02COLOR XYZtoCAT02(CAM02COLOR clr) { clr.RGB[0] = (clr.XYZ[0] * 0.7328) + (clr.XYZ[1] * 0.4296) + (clr.XYZ[2] * -0.1624); clr.RGB[1] = (clr.XYZ[0] * -0.7036) + (clr.XYZ[1] * 1.6975) + (clr.XYZ[2] * 0.0061); clr.RGB[2] = (clr.XYZ[0] * 0.0030) + (clr.XYZ[1] * 0.0136) + (clr.XYZ[2] * 0.9834); return clr; } static CAM02COLOR ChromaticAdaptation(CAM02COLOR clr, LPcmsCIECAM02 pMod) { int i; for (i = 0; i < 3; i++) { clr.RGBc[i] = ((pMod -> adoptedWhite.XYZ[1] * (pMod->D / pMod -> adoptedWhite.RGB[i])) + (1.0 - pMod->D)) * clr.RGB[i]; } return clr; } static CAM02COLOR CAT02toHPE (CAM02COLOR clr) { double M[9]; M[0] =(( 0.38971 * 1.096124) + (0.68898 * 0.454369) + (-0.07868 * -0.009628)); M[1] =(( 0.38971 * -0.278869) + (0.68898 * 0.473533) + (-0.07868 * -0.005698)); M[2] =(( 0.38971 * 0.182745) + (0.68898 * 0.072098) + (-0.07868 * 1.015326)); M[3] =((-0.22981 * 1.096124) + (1.18340 * 0.454369) + ( 0.04641 * -0.009628)); M[4] =((-0.22981 * -0.278869) + (1.18340 * 0.473533) + ( 0.04641 * -0.005698)); M[5] =((-0.22981 * 0.182745) + (1.18340 * 0.072098) + ( 0.04641 * 1.015326)); M[6] =(-0.009628); M[7] =(-0.005698); M[8] =( 1.015326); clr.RGBp[0] = (clr.RGBc[0] * M[0]) + (clr.RGBc[1] * M[1]) + (clr.RGBc[2] * M[2]); clr.RGBp[1] = (clr.RGBc[0] * M[3]) + (clr.RGBc[1] * M[4]) + (clr.RGBc[2] * M[5]); clr.RGBp[2] = (clr.RGBc[0] * M[6]) + (clr.RGBc[1] * M[7]) + (clr.RGBc[2] * M[8]); return clr; } static CAM02COLOR NonlinearCompression(CAM02COLOR clr, LPcmsCIECAM02 pMod) { int i; double temp; for (i = 0; i < 3; i++) { if (clr.RGBp[i] < 0) { temp = pow((-1.0 * pMod->FL * clr.RGBp[i] / 100.0), 0.42); clr.RGBpa[i] = (-1.0 * 400.0 * temp) / (temp + 27.13) + 0.1; } else { temp = pow((pMod->FL * clr.RGBp[i] / 100.0), 0.42); clr.RGBpa[i] = (400.0 * temp) / (temp + 27.13) + 0.1; } } clr.A = (((2.0 * clr.RGBpa[0]) + clr.RGBpa[1] + (clr.RGBpa[2] / 20.0)) - 0.305) * pMod->Nbb; return clr; } static CAM02COLOR ComputeCorrelates(CAM02COLOR clr, LPcmsCIECAM02 pMod) { double a, b, temp, e, t, r2d, d2r; a = clr.RGBpa[0] - (12.0 * clr.RGBpa[1] / 11.0) + (clr.RGBpa[2] / 11.0); b = (clr.RGBpa[0] + clr.RGBpa[1] - (2.0 * clr.RGBpa[2])) / 9.0; r2d = (180.0 / 3.141592654); if (a == 0) { if (b == 0) clr.h = 0; else if (b > 0) clr.h = 90; else clr.h = 270; } else if (a > 0) { temp = b / a; if (b > 0) clr.h = (r2d * atan(temp)); else if (b == 0) clr.h = 0; else clr.h = (r2d * atan(temp)) + 360; } else { temp = b / a; clr.h = (r2d * atan(temp)) + 180; } d2r = (3.141592654 / 180.0); e = ((12500.0 / 13.0) * pMod->Nc * pMod->Ncb) * (cos((clr.h * d2r + 2.0)) + 3.8); if (clr.h < 20.14) { temp = ((clr.h + 122.47)/1.2) + ((20.14 - clr.h)/0.8); clr.H = 300 + (100*((clr.h + 122.47)/1.2)) / temp; } else if (clr.h < 90.0) { temp = ((clr.h - 20.14)/0.8) + ((90.00 - clr.h)/0.7); clr.H = (100*((clr.h - 20.14)/0.8)) / temp; } else if (clr.h < 164.25) { temp = ((clr.h - 90.00)/0.7) + ((164.25 - clr.h)/1.0); clr.H = 100 + ((100*((clr.h - 90.00)/0.7)) / temp); } else if (clr.h < 237.53) { temp = ((clr.h - 164.25)/1.0) + ((237.53 - clr.h)/1.2); clr.H = 200 + ((100*((clr.h - 164.25)/1.0)) / temp); } else { temp = ((clr.h - 237.53)/1.2) + ((360 - clr.h + 20.14)/0.8); clr.H = 300 + ((100*((clr.h - 237.53)/1.2)) / temp); } clr.J = 100.0 * pow((clr.A / pMod->adoptedWhite.A), (pMod->c * pMod->z)); clr.Q = (4.0 / pMod->c) * pow((clr.J / 100.0), 0.5) * (pMod->adoptedWhite.A + 4.0) * pow(pMod->FL, 0.25); t = (e * pow(((a * a) + (b * b)), 0.5)) / (clr.RGBpa[0] + clr.RGBpa[1] + ((21.0 / 20.0) * clr.RGBpa[2])); clr.C = pow(t, 0.9) * pow((clr.J / 100.0), 0.5) * pow((1.64 - pow(0.29, pMod->n)), 0.73); clr.M = clr.C * pow(pMod->FL, 0.25); clr.s = 100.0 * pow((clr.M / clr.Q), 0.5); return clr; } static CAM02COLOR InverseCorrelates(CAM02COLOR clr, LPcmsCIECAM02 pMod) { double t, e, p1, p2, p3, p4, p5, hr, d2r; d2r = 3.141592654 / 180.0; t = pow( (clr.C / (pow((clr.J / 100.0), 0.5) * (pow((1.64 - pow(0.29, pMod->n)), 0.73)))), (1.0 / 0.9) ); e = ((12500.0 / 13.0) * pMod->Nc * pMod->Ncb) * (cos((clr.h * d2r + 2.0)) + 3.8); clr.A = pMod->adoptedWhite.A * pow( (clr.J / 100.0), (1.0 / (pMod->c * pMod->z))); p1 = e / t; p2 = (clr.A / pMod->Nbb) + 0.305; p3 = 21.0 / 20.0; hr = clr.h * d2r; if (fabs(sin(hr)) >= fabs(cos(hr))) { p4 = p1 / sin(hr); clr.b = (p2 * (2.0 + p3) * (460.0 / 1403.0)) / (p4 + (2.0 + p3) * (220.0 / 1403.0) * (cos(hr) / sin(hr)) - (27.0 / 1403.0) + p3 * (6300.0 / 1403.0)); clr.a = clr.b * (cos(hr) / sin(hr)); } else { p5 = p1 / cos(hr); clr.a = (p2 * (2.0 + p3) * (460.0 / 1403.0)) / (p5 + (2.0 + p3) * (220.0 / 1403.0) - ((27.0 / 1403.0) - p3 * (6300.0 / 1403.0)) * (sin(hr) / cos(hr))); clr.b = clr.a * (sin(hr) / cos(hr)); } clr.RGBpa[0] = ((460.0 / 1403.0) * p2) + ((451.0 / 1403.0) * clr.a) + ((288.0 / 1403.0) * clr.b); clr.RGBpa[1] = ((460.0 / 1403.0) * p2) - ((891.0 / 1403.0) * clr.a) - ((261.0 / 1403.0) * clr.b); clr.RGBpa[2] = ((460.0 / 1403.0) * p2) - ((220.0 / 1403.0) * clr.a) - ((6300.0 / 1403.0) * clr.b); return clr; } static CAM02COLOR InverseNonlinearity(CAM02COLOR clr, LPcmsCIECAM02 pMod) { int i; double c1; for (i = 0; i < 3; i++) { if ((clr.RGBpa[i] - 0.1) < 0) c1 = -1; else c1 = 1; clr.RGBp[i] = c1 * (100.0 / pMod->FL) * pow(((27.13 * fabs(clr.RGBpa[i] - 0.1)) / (400.0 - fabs(clr.RGBpa[i] - 0.1))), (1.0 / 0.42)); } return clr; } static CAM02COLOR HPEtoCAT02(CAM02COLOR clr) { double M[9]; M[0] = (( 0.7328 * 1.910197) + (0.4296 * 0.370950)); M[1] = (( 0.7328 * -1.112124) + (0.4296 * 0.629054)); M[2] = (( 0.7328 * 0.201908) + (0.4296 * 0.000008) - 0.1624); M[3] = ((-0.7036 * 1.910197) + (1.6975 * 0.370950)); M[4] = ((-0.7036 * -1.112124) + (1.6975 * 0.629054)); M[5] = ((-0.7036 * 0.201908) + (1.6975 * 0.000008) + 0.0061); M[6] = (( 0.0030 * 1.910197) + (0.0136 * 0.370950)); M[7] = (( 0.0030 * -1.112124) + (0.0136 * 0.629054)); M[8] = (( 0.0030 * 0.201908) + (0.0136 * 0.000008) + 0.9834);; clr.RGBc[0] = (clr.RGBp[0] * M[0]) + (clr.RGBp[1] * M[1]) + (clr.RGBp[2] * M[2]); clr.RGBc[1] = (clr.RGBp[0] * M[3]) + (clr.RGBp[1] * M[4]) + (clr.RGBp[2] * M[5]); clr.RGBc[2] = (clr.RGBp[0] * M[6]) + (clr.RGBp[1] * M[7]) + (clr.RGBp[2] * M[8]); return (clr); } static CAM02COLOR InverseChromaticAdaptation(CAM02COLOR clr, LPcmsCIECAM02 pMod) { int i; for (i = 0; i < 3; i++) { clr.RGB[i] = clr.RGBc[i] / ((pMod->adoptedWhite.XYZ[1] * pMod->D / pMod->adoptedWhite.RGB[i]) + 1.0 - pMod->D); } return(clr); } static CAM02COLOR CAT02toXYZ(CAM02COLOR clr) { clr.XYZ[0] = (clr.RGB[0] * 1.096124) + (clr.RGB[1] * -0.278869) + (clr.RGB[2] * 0.182745); clr.XYZ[1] = (clr.RGB[0] * 0.454369) + (clr.RGB[1] * 0.473533) + (clr.RGB[2] * 0.072098); clr.XYZ[2] = (clr.RGB[0] * -0.009628) + (clr.RGB[1] * -0.005698) + (clr.RGB[2] * 1.015326); return(clr); } LCMSHANDLE LCMSEXPORT cmsCIECAM02Init(LPcmsViewingConditions pVC) { LPcmsCIECAM02 lpMod; if((lpMod = (LPcmsCIECAM02) _cmsMalloc(sizeof(cmsCIECAM02))) == NULL) { return (LCMSHANDLE) NULL; } ZeroMemory(lpMod, sizeof(cmsCIECAM02)); lpMod ->adoptedWhite.XYZ[0] = pVC ->whitePoint.X; lpMod ->adoptedWhite.XYZ[1] = pVC ->whitePoint.Y; lpMod ->adoptedWhite.XYZ[2] = pVC ->whitePoint.Z; lpMod -> LA = pVC ->La; lpMod -> Yb = pVC ->Yb; lpMod -> D = pVC ->D_value; lpMod -> surround = pVC ->surround; switch (lpMod -> surround) { case AVG_SURROUND_4: lpMod->F = 1.0; // Not included in CAM02 lpMod->c = 0.69; lpMod->Nc = 1.0; break; case CUTSHEET_SURROUND: lpMod->F = 0.8; lpMod->c = 0.41; lpMod->Nc = 0.8; break; case DARK_SURROUND: lpMod -> F = 0.8; lpMod -> c = 0.525; lpMod -> Nc = 0.8; break; case DIM_SURROUND: lpMod -> F = 0.9; lpMod -> c = 0.59; lpMod -> Nc = 0.95; break; default: // Average surround lpMod -> F = 1.0; lpMod -> c = 0.69; lpMod -> Nc = 1.0; } lpMod -> n = compute_n(lpMod); lpMod -> z = compute_z(lpMod); lpMod -> Nbb = computeNbb(lpMod); lpMod -> FL = computeFL(lpMod); if (lpMod -> D == D_CALCULATE || lpMod -> D == D_CALCULATE_DISCOUNT) { lpMod -> D = computeD(lpMod); } lpMod -> Ncb = lpMod -> Nbb; lpMod -> adoptedWhite = XYZtoCAT02(lpMod -> adoptedWhite); lpMod -> adoptedWhite = ChromaticAdaptation(lpMod -> adoptedWhite, lpMod); lpMod -> adoptedWhite = CAT02toHPE(lpMod -> adoptedWhite); lpMod -> adoptedWhite = NonlinearCompression(lpMod -> adoptedWhite, lpMod); return (LCMSHANDLE) lpMod; } void LCMSEXPORT cmsCIECAM02Done(LCMSHANDLE hModel) { LPcmsCIECAM02 lpMod = (LPcmsCIECAM02) (LPSTR) hModel; if (lpMod) _cmsFree(lpMod); } void LCMSEXPORT cmsCIECAM02Forward(LCMSHANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut) { CAM02COLOR clr; LPcmsCIECAM02 lpMod = (LPcmsCIECAM02) (LPSTR) hModel; clr.XYZ[0] = pIn ->X; clr.XYZ[1] = pIn ->Y; clr.XYZ[2] = pIn ->Z; clr = XYZtoCAT02(clr); clr = ChromaticAdaptation(clr, lpMod); clr = CAT02toHPE(clr); clr = NonlinearCompression(clr, lpMod); clr = ComputeCorrelates(clr, lpMod); pOut ->J = clr.J; pOut ->C = clr.C; pOut ->h = clr.h; } void LCMSEXPORT cmsCIECAM02Reverse(LCMSHANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut) { CAM02COLOR clr; LPcmsCIECAM02 lpMod = (LPcmsCIECAM02) (LPSTR) hModel; clr.J = pIn -> J; clr.C = pIn -> C; clr.h = pIn -> h; clr = InverseCorrelates(clr, lpMod); clr = InverseNonlinearity(clr, lpMod); clr = HPEtoCAT02(clr); clr = InverseChromaticAdaptation(clr, lpMod); clr = CAT02toXYZ(clr); pOut ->X = clr.XYZ[0]; pOut ->Y = clr.XYZ[1]; pOut ->Z = clr.XYZ[2]; } lcms-1.19/src/cmscam97.c0000777000175300010010000005026711272606371014251 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" /* typedef struct { double J; double C; double h; } cmsJCh, FAR* LPcmsJCh; #define AVG_SURROUND_4 0 #define AVG_SURROUND 1 #define DIM_SURROUND 2 #define DARK_SURROUND 3 #define CUTSHEET_SURROUND 4 typedef struct { cmsCIEXYZ whitePoint; double Yb; double La; int surround; double D_value; } cmsViewingConditions, FAR* LPcmsViewingConditions; LCMSAPI LCMSHANDLE LCMSEXPORT cmsCIECAM97sInit(LPcmsViewingConditions pVC); LCMSAPI void LCMSEXPORT cmsCIECAM97sDone(LCMSHANDLE hModel); LCMSAPI void LCMSEXPORT cmsCIECAM97sForward(LCMSHANDLE hModel, LPcmsCIEXYZ pIn, LPcmsJCh pOut); LCMSAPI void LCMSEXPORT cmsCIECAM97sReverse(LCMSHANDLE hModel, LPcmsJCh pIn, LPcmsCIEXYZ pOut); */ // ---------- Implementation -------------------------------------------- // #define USE_CIECAM97s2 1 #ifdef USE_CIECAM97s2 # define NOISE_CONSTANT 3.05 #else # define NOISE_CONSTANT 2.05 #endif /* The model input data are the adapting field luminance in cd/m2 (normally taken to be 20% of the luminance of white in the adapting field), LA , the relative tristimulus values of the stimulus, XYZ, the relative tristimulus values of white in the same viewing conditions, Xw Yw Zw , and the relative luminance of the background, Yb . Relative tristimulus values should be expressed on a scale from Y = 0 for a perfect black to Y = 100 for a perfect reflecting diffuser. Additionally, the parameters c, for the impact of surround, Nc , a chromatic induction factor, and F, a factor for degree of adaptation, must be selected according to the guidelines in table All CIE tristimulus values are obtained using the CIE 1931 Standard Colorimetric Observer (2°). */ typedef struct { cmsCIEXYZ WP; int surround; int calculate_D; double Yb; // rel. luminance of background cmsCIEXYZ RefWhite; double La; // The adapting field luminance in cd/m2 double c; // Impact of surround double Nc; // Chromatic induction factor double Fll; // Lightness contrast factor (Removed on rev 2) double F; // Degree of adaptation double k; double Fl; double Nbb; // The background and chromatic brightness induction factors. double Ncb; double z; // base exponential nonlinearity double n; // background induction factor double D; MAT3 MlamRigg; MAT3 MlamRigg_1; MAT3 Mhunt; MAT3 Mhunt_1; MAT3 Mhunt_x_MlamRigg_1; MAT3 MlamRigg_x_Mhunt_1; VEC3 RGB_subw; VEC3 RGB_subw_prime; double p; VEC3 RGB_subwc; VEC3 RGB_subaw_prime; double A_subw; double Q_subw; } cmsCIECAM97s,FAR *LPcmsCIECAM97s; // Free model structure LCMSAPI void LCMSEXPORT cmsCIECAM97sDone(LCMSHANDLE hModel) { LPcmsCIECAM97s lpMod = (LPcmsCIECAM97s) (LPSTR) hModel; if (lpMod) _cmsFree(lpMod); } // Partial discounting for adaptation degree computation static double discount(double d, double chan) { return (d * chan + 1 - d); } // This routine does model exponential nonlinearity on the short wavelenght // sensitive channel. On CIECAM97s rev 2 this has been reverted to linear. static void FwAdaptationDegree(LPcmsCIECAM97s lpMod, LPVEC3 RGBc, LPVEC3 RGB) { #ifdef USE_CIECAM97s2 RGBc->n[0] = RGB->n[0]* discount(lpMod->D, 100.0/lpMod->RGB_subw.n[0]); RGBc->n[1] = RGB->n[1]* discount(lpMod->D, 100.0/lpMod->RGB_subw.n[1]); RGBc->n[2] = RGB->n[2]* discount(lpMod->D, 100.0/lpMod->RGB_subw.n[2]); #else RGBc->n[0] = RGB->n[0]* discount(lpMod->D, 1.0/lpMod->RGB_subw.n[0]); RGBc->n[1] = RGB->n[1]* discount(lpMod->D, 1.0/lpMod->RGB_subw.n[1]); RGBc->n[2] = pow(fabs(RGB->n[2]), lpMod ->p) * discount(lpMod->D, (1.0/pow(lpMod->RGB_subw.n[2], lpMod->p))); // If B happens to be negative, Then Bc is also set to be negative if (RGB->n[2] < 0) RGBc->n[2] = -RGBc->n[2]; #endif } static void RvAdaptationDegree(LPcmsCIECAM97s lpMod, LPVEC3 RGBc, LPVEC3 RGB) { #ifdef USE_CIECAM97s2 RGBc->n[0] = RGB->n[0]/discount(lpMod->D, 100.0/lpMod->RGB_subw.n[0]); RGBc->n[1] = RGB->n[1]/discount(lpMod->D, 100.0/lpMod->RGB_subw.n[1]); RGBc->n[2] = RGB->n[2]/discount(lpMod->D, 100.0/lpMod->RGB_subw.n[2]); #else RGBc->n[0] = RGB->n[0]/discount(lpMod->D, 1.0/lpMod->RGB_subw.n[0]); RGBc->n[1] = RGB->n[1]/discount(lpMod->D, 1.0/lpMod->RGB_subw.n[1]); RGBc->n[2] = pow(fabs(RGB->n[2]), 1.0/lpMod->p)/pow(discount(lpMod->D, 1.0/pow(lpMod->RGB_subw.n[2], lpMod->p)), 1.0/lpMod->p); if (RGB->n[2] < 0) RGBc->n[2] = -RGBc->n[2]; #endif } static void PostAdaptationConeResponses(LPcmsCIECAM97s lpMod, LPVEC3 RGBa_prime, LPVEC3 RGBprime) { if (RGBprime->n[0]>=0.0) { RGBa_prime->n[0]=((40.0*pow(lpMod -> Fl * RGBprime->n[0]/100.0, 0.73))/(pow(lpMod -> Fl * RGBprime->n[0]/100.0, 0.73)+2))+1; } else { RGBa_prime->n[0]=((-40.0*pow((-lpMod -> Fl * RGBprime->n[0])/100.0, 0.73))/(pow((-lpMod -> Fl * RGBprime->n[0])/100.0, 0.73)+2))+1; } if (RGBprime->n[1]>=0.0) { RGBa_prime->n[1]=((40.0*pow(lpMod -> Fl * RGBprime->n[1]/100.0, 0.73))/(pow(lpMod -> Fl * RGBprime->n[1]/100.0, 0.73)+2))+1; } else { RGBa_prime->n[1]=((-40.0*pow((-lpMod -> Fl * RGBprime->n[1])/100.0, 0.73))/(pow((-lpMod -> Fl * RGBprime->n[1])/100.0, 0.73)+2))+1; } if (RGBprime->n[2]>=0.0) { RGBa_prime->n[2]=((40.0*pow(lpMod -> Fl * RGBprime->n[2]/100.0, 0.73))/(pow(lpMod -> Fl * RGBprime->n[2]/100.0, 0.73)+2))+1; } else { RGBa_prime->n[2]=((-40.0*pow((-lpMod -> Fl * RGBprime->n[2])/100.0, 0.73))/(pow((-lpMod -> Fl * RGBprime->n[2])/100.0, 0.73)+2))+1; } } // Compute hue quadrature, eccentricity factor, e static void ComputeHueQuadrature(double h, double* H, double* e) { #define IRED 0 #define IYELLOW 1 #define IGREEN 2 #define IBLUE 3 double e_tab[] = {0.8, 0.7, 1.0, 1.2}; double H_tab[] = { 0, 100, 200, 300}; int p1, p2; double e1, e2, h1, h2; if (h >= 20.14 && h < 90.0) { // Red p1 = IRED; p2 = IYELLOW; } else if (h >= 90.0 && h < 164.25) { // Yellow p1 = IYELLOW; p2 = IGREEN; } else if (h >= 164.25 && h < 237.53) { // Green p1 = IGREEN; p2 = IBLUE; } else { // Blue p1 = IBLUE; p2 = IRED; } e1 = e_tab[p1]; e2 = e_tab[p2]; h1 = H_tab[p1]; h2 = H_tab[p2]; *e = e1 + ((e2-e1)*(h-h1)/(h2 - h1)); *H = h1 + (100. * (h - h1) / e1) / ((h - h1)/e1 + (h2 - h) / e2); #undef IRED #undef IYELLOW #undef IGREEN #undef IBLUE } LCMSAPI LCMSHANDLE LCMSEXPORT cmsCIECAM97sInit(LPcmsViewingConditions pVC) { LPcmsCIECAM97s lpMod; VEC3 tmp; if((lpMod = (LPcmsCIECAM97s) _cmsMalloc(sizeof(cmsCIECAM97s))) == NULL) { return (LCMSHANDLE) NULL; } lpMod->WP.X = pVC->whitePoint.X; lpMod->WP.Y = pVC->whitePoint.Y; lpMod->WP.Z = pVC->whitePoint.Z; lpMod->Yb = pVC->Yb; lpMod->La = pVC->La; lpMod->surround = pVC->surround; lpMod->RefWhite.X = 100.0; lpMod->RefWhite.Y = 100.0; lpMod->RefWhite.Z = 100.0; #ifdef USE_CIECAM97s2 VEC3init(&lpMod->MlamRigg.v[0], 0.8562, 0.3372, -0.1934); VEC3init(&lpMod->MlamRigg.v[1], -0.8360, 1.8327, 0.0033); VEC3init(&lpMod->MlamRigg.v[2], 0.0357,-0.0469, 1.0112); VEC3init(&lpMod->MlamRigg_1.v[0], 0.9874, -0.1768, 0.1894); VEC3init(&lpMod->MlamRigg_1.v[1], 0.4504, 0.4649, 0.0846); VEC3init(&lpMod->MlamRigg_1.v[2],-0.0139, 0.0278, 0.9861); #else // Bradford transform: Lam-Rigg cone responses VEC3init(&lpMod->MlamRigg.v[0], 0.8951, 0.2664, -0.1614); VEC3init(&lpMod->MlamRigg.v[1], -0.7502, 1.7135, 0.0367); VEC3init(&lpMod->MlamRigg.v[2], 0.0389, -0.0685, 1.0296); // Inverse of Lam-Rigg VEC3init(&lpMod->MlamRigg_1.v[0], 0.98699, -0.14705, 0.15996); VEC3init(&lpMod->MlamRigg_1.v[1], 0.43231, 0.51836, 0.04929); VEC3init(&lpMod->MlamRigg_1.v[2], -0.00853, 0.04004, 0.96849); #endif // Hunt-Pointer-Estevez cone responses VEC3init(&lpMod->Mhunt.v[0], 0.38971, 0.68898, -0.07868); VEC3init(&lpMod->Mhunt.v[1], -0.22981, 1.18340, 0.04641); VEC3init(&lpMod->Mhunt.v[2], 0.0, 0.0, 1.0); // Inverse of Hunt-Pointer-Estevez VEC3init(&lpMod->Mhunt_1.v[0], 1.91019, -1.11214, 0.20195); VEC3init(&lpMod->Mhunt_1.v[1], 0.37095, 0.62905, 0.0); VEC3init(&lpMod->Mhunt_1.v[2], 0.0, 0.0, 1.0); if (pVC->D_value == -1.0) lpMod->calculate_D = 1; else if (pVC->D_value == -2.0) lpMod->calculate_D = 2; else { lpMod->calculate_D = 0; lpMod->D = pVC->D_value; } // Table I (revised) switch (lpMod->surround) { case AVG_SURROUND_4: lpMod->F = 1.0; lpMod->c = 0.69; lpMod->Fll = 0.0; // Not included on Rev 2 lpMod->Nc = 1.0; break; case AVG_SURROUND: lpMod->F = 1.0; lpMod->c = 0.69; lpMod->Fll = 1.0; lpMod->Nc = 1.0; break; case DIM_SURROUND: lpMod->F = 0.99; lpMod->c = 0.59; lpMod->Fll = 1.0; lpMod->Nc = 0.95; break; case DARK_SURROUND: lpMod->F = 0.9; lpMod->c = 0.525; lpMod->Fll = 1.0; lpMod->Nc = 0.8; break; case CUTSHEET_SURROUND: lpMod->F = 0.9; lpMod->c = 0.41; lpMod->Fll = 1.0; lpMod->Nc = 0.8; break; default: lpMod->F = 1.0; lpMod->c = 0.69; lpMod->Fll = 1.0; lpMod->Nc = 1.0; break; } lpMod->k = 1 / (5 * lpMod->La + 1); lpMod->Fl = lpMod->La * pow(lpMod->k, 4) + 0.1*pow(1 - pow(lpMod->k, 4), 2.0) * pow(5*lpMod->La, 1.0/3.0); if (lpMod->calculate_D > 0) { lpMod->D = lpMod->F * (1 - 1 / (1 + 2*pow(lpMod->La, 0.25) + pow(lpMod->La, 2)/300.0)); if (lpMod->calculate_D > 1) lpMod->D = (lpMod->D + 1.0) / 2; } // RGB_subw = [MlamRigg][WP/YWp] #ifdef USE_CIECAM97s2 MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &lpMod -> WP); #else VEC3divK(&tmp, (LPVEC3) &lpMod -> WP, lpMod->WP.Y); MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp); #endif MAT3per(&lpMod -> Mhunt_x_MlamRigg_1, &lpMod -> Mhunt, &lpMod->MlamRigg_1 ); MAT3per(&lpMod -> MlamRigg_x_Mhunt_1, &lpMod -> MlamRigg, &lpMod -> Mhunt_1 ); // p is used on forward model lpMod->p = pow(lpMod->RGB_subw.n[2], 0.0834); FwAdaptationDegree(lpMod, &lpMod->RGB_subwc, &lpMod->RGB_subw); #if USE_CIECAM97s2 MAT3eval(&lpMod->RGB_subw_prime, &lpMod->Mhunt_x_MlamRigg_1, &lpMod -> RGB_subwc); #else VEC3perK(&tmp, &lpMod -> RGB_subwc, lpMod->WP.Y); MAT3eval(&lpMod->RGB_subw_prime, &lpMod->Mhunt_x_MlamRigg_1, &tmp); #endif lpMod->n = lpMod-> Yb / lpMod-> WP.Y; lpMod->z = 1 + lpMod->Fll * sqrt(lpMod->n); lpMod->Nbb = lpMod->Ncb = 0.725 / pow(lpMod->n, 0.2); PostAdaptationConeResponses(lpMod, &lpMod->RGB_subaw_prime, &lpMod->RGB_subw_prime); lpMod->A_subw=lpMod->Nbb*(2.0*lpMod->RGB_subaw_prime.n[0]+lpMod->RGB_subaw_prime.n[1]+lpMod->RGB_subaw_prime.n[2]/20.0-NOISE_CONSTANT); return (LCMSHANDLE) lpMod; } // // The forward model: XYZ -> JCh // LCMSAPI void LCMSEXPORT cmsCIECAM97sForward(LCMSHANDLE hModel, LPcmsCIEXYZ inPtr, LPcmsJCh outPtr) { LPcmsCIECAM97s lpMod = (LPcmsCIECAM97s) (LPSTR) hModel; double a, b, h, s, H1val, es, A; VEC3 In, RGB, RGBc, RGBprime, RGBa_prime; if (inPtr -> Y <= 0.0) { outPtr -> J = outPtr -> C = outPtr -> h = 0.0; return; } // An initial chromatic adaptation transform is used to go from the source // viewing conditions to corresponding colours under the equal-energy-illuminant // reference viewing conditions. This is handled differently on rev 2 VEC3init(&In, inPtr -> X, inPtr -> Y, inPtr -> Z); // 2.1 #ifdef USE_CIECAM97s2 // Since the chromatic adaptation transform has been linearized, it // is no longer required to divide the stimulus tristimulus values // by their own Y tristimulus value prior to the chromatic adaptation. #else VEC3divK(&In, &In, inPtr -> Y); #endif MAT3eval(&RGB, &lpMod -> MlamRigg, &In); // 2.2 FwAdaptationDegree(lpMod, &RGBc, &RGB); // The post-adaptation signals for both the sample and the white are then // transformed from the sharpened cone responses to the Hunt-Pointer-Estevez // cone responses. #ifdef USE_CIECAM97s2 #else VEC3perK(&RGBc, &RGBc, inPtr->Y); #endif MAT3eval(&RGBprime, &lpMod->Mhunt_x_MlamRigg_1, &RGBc); // The post-adaptation cone responses (for both the stimulus and the white) // are then calculated. PostAdaptationConeResponses(lpMod, &RGBa_prime, &RGBprime); // Preliminary red-green and yellow-blue opponent dimensions are calculated a = RGBa_prime.n[0] - (12.0 * RGBa_prime.n[1] / 11.0) + RGBa_prime.n[2]/11.0; b = (RGBa_prime.n[0] + RGBa_prime.n[1] - 2.0 * RGBa_prime.n[2]) / 9.0; // The CIECAM97s hue angle, h, is then calculated h = (180.0/M_PI)*(atan2(b, a)); while (h < 0) h += 360.0; outPtr->h = h; // hue quadrature and eccentricity factors, e, are calculated ComputeHueQuadrature(h, &H1val, &es); // ComputeHueQuadrature(h, &H1val, &h1, &e1, &h2, &e2, &es); // The achromatic response A A = lpMod->Nbb * (2.0 * RGBa_prime.n[0] + RGBa_prime.n[1] + RGBa_prime.n[2]/20.0 - NOISE_CONSTANT); // CIECAM97s Lightness J outPtr -> J = 100.0 * pow(A / lpMod->A_subw, lpMod->c * lpMod->z); // CIECAM97s saturation s s = (50 * hypot (a, b) * 100 * es * (10.0/13.0) * lpMod-> Nc * lpMod->Ncb) / (RGBa_prime.n[0] + RGBa_prime.n[1] + 1.05 * RGBa_prime.n[2]); // CIECAM97s Chroma C #ifdef USE_CIECAM97s2 // Eq. 26 has been modified to allow accurate prediction of the Munsell chroma scales. outPtr->C = 0.7487 * pow(s, 0.973) * pow(outPtr->J/100.0, 0.945 * lpMod->n) * (1.64 - pow(0.29, lpMod->n)); #else outPtr->C = 2.44 * pow(s, 0.69) * pow(outPtr->J/100.0, 0.67 * lpMod->n) * (1.64 - pow(0.29, lpMod->n)); #endif } // // The reverse model JCh -> XYZ // LCMSAPI void LCMSEXPORT cmsCIECAM97sReverse(LCMSHANDLE hModel, LPcmsJCh inPtr, LPcmsCIEXYZ outPtr) { LPcmsCIECAM97s lpMod = (LPcmsCIECAM97s) (LPSTR) hModel; double J, C, h, A, H1val, es, s, a, b; double tan_h, sec_h; double R_suba_prime, G_suba_prime, B_suba_prime; double R_prime, G_prime, B_prime; double Y_subc, Y_prime, B_term; VEC3 tmp; VEC3 RGB_prime, RGB_subc_Y; VEC3 Y_over_Y_subc_RGB; VEC3 XYZ_primeprime_over_Y_subc; #ifdef USE_CIECAM92s2 VEC3 RGBY; VEC3 Out; #endif J = inPtr->J; h = inPtr->h; C = inPtr->C; if (J <= 0) { outPtr->X = 0.0; outPtr->Y = 0.0; outPtr->Z = 0.0; return; } // (2) From J Obtain A A = pow(J/100.0, 1/(lpMod->c * lpMod->z)) * lpMod->A_subw; // (3), (4), (5) Using H Determine h1, h2, e1, e2 // e1 and h1 are the values of e and h for the unique hue having the // nearest lower valur of h and e2 and h2 are the values of e and h for // the unique hue having the nearest higher value of h. ComputeHueQuadrature(h, &H1val, &es); // (7) Calculate s s = pow(C / (2.44 * pow(J/100.0, 0.67*lpMod->n) * (1.64 - pow(0.29, lpMod->n))) , (1./0.69)); // (8) Calculate a and b. // NOTE: sqrt(1 + tan^2) == sec(h) tan_h = tan ((M_PI/180.)*(h)); sec_h = sqrt(1 + tan_h * tan_h); if ((h > 90) && (h < 270)) sec_h = -sec_h; a = s * ( A/lpMod->Nbb + NOISE_CONSTANT) / ( sec_h * 50000.0 * es * lpMod->Nc * lpMod->Ncb/ 13.0 + s * (11.0 / 23.0 + (108.0/23.0) * tan_h)); b = a * tan_h; //(9) Calculate R'a G'a and B'a R_suba_prime = (20.0/61.0) * (A/lpMod->Nbb + NOISE_CONSTANT) + (41.0/61.0) * (11.0/23.0) * a + (288.0/61.0) / 23.0 * b; G_suba_prime = (20.0/61.0) * (A/lpMod->Nbb + NOISE_CONSTANT) - (81.0/61.0) * (11.0/23.0) * a - (261.0/61.0) / 23.0 * b; B_suba_prime = (20.0/61.0) * (A/lpMod->Nbb + NOISE_CONSTANT) - (20.0/61.0) * (11.0/23.0) * a - (20.0/61.0) * (315.0/23.0) * b; // (10) Calculate R', G' and B' if ((R_suba_prime - 1) < 0) { R_prime = -100.0 * pow((2.0 - 2.0 * R_suba_prime) / (39.0 + R_suba_prime), 1.0/0.73); } else { R_prime = 100.0 * pow((2.0 * R_suba_prime - 2.0) / (41.0 - R_suba_prime), 1.0/0.73); } if ((G_suba_prime - 1) < 0) { G_prime = -100.0 * pow((2.0 - 2.0 * G_suba_prime) / (39.0 + G_suba_prime), 1.0/0.73); } else { G_prime = 100.0 * pow((2.0 * G_suba_prime - 2.0) / (41.0 - G_suba_prime), 1.0/0.73); } if ((B_suba_prime - 1) < 0) { B_prime = -100.0 * pow((2.0 - 2.0 * B_suba_prime) / (39.0 + B_suba_prime), 1.0/0.73); } else { B_prime = 100.0 * pow((2.0 * B_suba_prime - 2.0) / (41.0 - B_suba_prime), 1.0/0.73); } // (11) Calculate RcY, GcY and BcY VEC3init(&RGB_prime, R_prime, G_prime, B_prime); VEC3divK(&tmp, &RGB_prime, lpMod -> Fl); MAT3eval(&RGB_subc_Y, &lpMod->MlamRigg_x_Mhunt_1, &tmp); #ifdef USE_CIECAM97s2 // (12) RvAdaptationDegree(lpMod, &RGBY, &RGB_subc_Y); MAT3eval(&Out, &lpMod->MlamRigg_1, &RGBY); outPtr -> X = Out.n[0]; outPtr -> Y = Out.n[1]; outPtr -> Z = Out.n[2]; #else // (12) Calculate Yc Y_subc = 0.43231*RGB_subc_Y.n[0]+0.51836*RGB_subc_Y.n[1]+0.04929*RGB_subc_Y.n[2]; // (13) Calculate (Y/Yc)R, (Y/Yc)G and (Y/Yc)B VEC3divK(&RGB_subc_Y, &RGB_subc_Y, Y_subc); RvAdaptationDegree(lpMod, &Y_over_Y_subc_RGB, &RGB_subc_Y); // (14) Calculate Y' Y_prime = 0.43231*(Y_over_Y_subc_RGB.n[0]*Y_subc) + 0.51836*(Y_over_Y_subc_RGB.n[1]*Y_subc) + 0.04929 * (Y_over_Y_subc_RGB.n[2]*Y_subc); if (Y_prime < 0 || Y_subc < 0) { // Discard to near black point outPtr -> X = 0; outPtr -> Y = 0; outPtr -> Z = 0; return; } B_term = pow(Y_prime / Y_subc, (1.0 / lpMod->p) - 1); // (15) Calculate X'', Y'' and Z'' Y_over_Y_subc_RGB.n[2] /= B_term; MAT3eval(&XYZ_primeprime_over_Y_subc, &lpMod->MlamRigg_1, &Y_over_Y_subc_RGB); outPtr->X = XYZ_primeprime_over_Y_subc.n[0] * Y_subc; outPtr->Y = XYZ_primeprime_over_Y_subc.n[1] * Y_subc; outPtr->Z = XYZ_primeprime_over_Y_subc.n[2] * Y_subc; #endif } lcms-1.19/src/cmscam97.c.rej0000777000175300010010000000113211062743715015014 0ustar MartiNinguno*************** *** 420,428 **** // RGB_subw = [MlamRigg][WP/YWp] #ifdef USE_CIECAM97s2 - MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, (LPVEC3) &lpMod -> WP); #else - VEC3divK(&tmp, (LPVEC3) &lpMod -> WP, lpMod->WP.Y); MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp); #endif --- 420,428 ---- // RGB_subw = [MlamRigg][WP/YWp] #ifdef USE_CIECAM97s2 + MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &lpMod -> WP); #else + VEC3divK(&tmp, &lpMod -> WP, lpMod->WP.Y); MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp); #endif lcms-1.19/src/cmscgats.c0000777000175300010010000021706711272606371014435 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // // IT8.7 / CGATS.17-200x handling #include "lcms.h" LCMSAPI LCMSHANDLE LCMSEXPORT cmsIT8Alloc(void); LCMSAPI void LCMSEXPORT cmsIT8Free(LCMSHANDLE IT8); // Tables LCMSAPI int LCMSEXPORT cmsIT8TableCount(LCMSHANDLE IT8); LCMSAPI int LCMSEXPORT cmsIT8SetTable(LCMSHANDLE IT8, int nTable); // Persistence LCMSAPI LCMSHANDLE LCMSEXPORT cmsIT8LoadFromFile(const char* cFileName); LCMSAPI LCMSHANDLE LCMSEXPORT cmsIT8LoadFromMem(void *Ptr, size_t len); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SaveToFile(LCMSHANDLE IT8, const char* cFileName); // Properties LCMSAPI const char* LCMSEXPORT cmsIT8GetSheetType(LCMSHANDLE hIT8); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetSheetType(LCMSHANDLE hIT8, const char* Type); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetComment(LCMSHANDLE hIT8, const char* cComment); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyStr(LCMSHANDLE hIT8, const char* cProp, const char *Str); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyDbl(LCMSHANDLE hIT8, const char* cProp, double Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyHex(LCMSHANDLE hIT8, const char* cProp, int Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char* cSubProp, const char *Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetPropertyUncooked(LCMSHANDLE hIT8, const char* Key, const char* Buffer); LCMSAPI const char* LCMSEXPORT cmsIT8GetProperty(LCMSHANDLE hIT8, const char* cProp); LCMSAPI double LCMSEXPORT cmsIT8GetPropertyDbl(LCMSHANDLE hIT8, const char* cProp); LCMSAPI const char* LCMSEXPORT cmsIT8GetPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char *cSubProp); LCMSAPI int LCMSEXPORT cmsIT8EnumProperties(LCMSHANDLE IT8, const char ***PropertyNames); LCMSAPI int LCMSEXPORT cmsIT8EnumPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char*** SubpropertyNames); // Datasets LCMSAPI const char* LCMSEXPORT cmsIT8GetPatchName(LCMSHANDLE hIT8, int nPatch, char* buffer); LCMSAPI const char* LCMSEXPORT cmsIT8GetDataRowCol(LCMSHANDLE IT8, int row, int col); LCMSAPI double LCMSEXPORT cmsIT8GetDataRowColDbl(LCMSHANDLE IT8, int col, int row); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataRowCol(LCMSHANDLE hIT8, int row, int col, const char* Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataRowColDbl(LCMSHANDLE hIT8, int row, int col, double Val); LCMSAPI const char* LCMSEXPORT cmsIT8GetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample); LCMSAPI double LCMSEXPORT cmsIT8GetDataDbl(LCMSHANDLE IT8, const char* cPatch, const char* cSample); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample, const char *Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataDbl(LCMSHANDLE hIT8, const char* cPatch, const char* cSample, double Val); LCMSAPI LCMSBOOL LCMSEXPORT cmsIT8SetDataFormat(LCMSHANDLE IT8, int n, const char *Sample); LCMSAPI int LCMSEXPORT cmsIT8EnumDataFormat(LCMSHANDLE IT8, char ***SampleNames); LCMSAPI void LCMSEXPORT cmsIT8DefineDblFormat(LCMSHANDLE IT8, const char* Formatter); LCMSAPI int LCMSEXPORT cmsIT8SetTableByLabel(LCMSHANDLE hIT8, const char* cSet, const char* cField, const char* ExpectedType); // ------------------------------------------------------------- Implementation #define SIZEOFLONGMINUS1 (sizeof(long)-1) #define ALIGNLONG(x) (((x)+SIZEOFLONGMINUS1) & ~(SIZEOFLONGMINUS1)) // #define STRICT_CGATS 1 #define MAXID 128 // Max lenght of identifier #define MAXSTR 1024 // Max lenght of string #define MAXTABLES 255 // Max Number of tables in a single stream #define MAXINCLUDE 20 // Max number of nested includes #define DEFAULT_DBL_FORMAT "%.10g" // Double formatting #include #include #ifndef NON_WINDOWS #include #define DIR_CHAR '\\' #else #define DIR_CHAR '/' #endif // Symbols typedef enum { SNONE, SINUM, // Integer SDNUM, // Real SIDENT, // Identifier SSTRING, // string SCOMMENT, // comment SEOLN, // End of line SEOF, // End of stream SSYNERROR, // Syntax error found on stream // Keywords SBEGIN_DATA, SBEGIN_DATA_FORMAT, SEND_DATA, SEND_DATA_FORMAT, SKEYWORD, SDATA_FORMAT_ID, SINCLUDE } SYMBOL; // How to write the value typedef enum { WRITE_UNCOOKED, WRITE_STRINGIFY, WRITE_HEXADECIMAL, WRITE_BINARY, WRITE_PAIR } WRITEMODE; // Linked list of variable names typedef struct _KeyVal { struct _KeyVal* Next; char* Keyword; // Name of variable struct _KeyVal* NextSubkey; // If key is a dictionary, points to the next item char* Subkey; // If key is a dictionary, points to the subkey name char* Value; // Points to value WRITEMODE WriteAs; // How to write the value } KEYVALUE, *LPKEYVALUE; // Linked list of memory chunks (Memory sink) typedef struct _OwnedMem { struct _OwnedMem* Next; void * Ptr; // Point to value } OWNEDMEM, *LPOWNEDMEM; // Suballocator typedef struct _SubAllocator { LPBYTE Block; size_t BlockSize; size_t Used; } SUBALLOCATOR, *LPSUBALLOCATOR; // Table. Each individual table can hold properties and rows & cols typedef struct _Table { int nSamples, nPatches; // Cols, Rows int SampleID; // Pos of ID LPKEYVALUE HeaderList; // The properties char** DataFormat; // The binary stream descriptor char** Data; // The binary stream } TABLE, *LPTABLE; // File stream being parsed typedef struct _FileContext { char FileName[MAX_PATH]; // File name if being readed from file FILE* Stream; // File stream or NULL if holded in memory } FILECTX, *LPFILECTX; // This struct hold all information about an openened // IT8 handler. Only one dataset is allowed. typedef struct { char SheetType[MAXSTR]; int TablesCount; // How many tables in this stream int nTable; // The actual table TABLE Tab[MAXTABLES]; // Memory management LPOWNEDMEM MemorySink; // The storage backend SUBALLOCATOR Allocator; // String suballocator -- just to keep it fast // Parser state machine SYMBOL sy; // Current symbol int ch; // Current character int inum; // integer value double dnum; // real value char id[MAXID]; // identifier char str[MAXSTR]; // string // Allowed keywords & datasets. They have visibility on whole stream LPKEYVALUE ValidKeywords; LPKEYVALUE ValidSampleID; char* Source; // Points to loc. being parsed int lineno; // line counter for error reporting LPFILECTX FileStack[MAXINCLUDE]; // Stack of files being parsed int IncludeSP; // Include Stack Pointer char* MemoryBlock; // The stream if holded in memory char DoubleFormatter[MAXID]; // Printf-like 'double' formatter } IT8, *LPIT8; typedef struct { FILE* stream; // For save-to-file behaviour LPBYTE Base; LPBYTE Ptr; // For save-to-mem behaviour size_t Used; size_t Max; } SAVESTREAM, FAR* LPSAVESTREAM; // ------------------------------------------------------ IT8 parsing routines // A keyword typedef struct { const char *id; SYMBOL sy; } KEYWORD; // The keyword->symbol translation table. Sorting is required. static const KEYWORD TabKeys[] = { {"$INCLUDE", SINCLUDE}, {".INCLUDE", SINCLUDE}, {"BEGIN_DATA", SBEGIN_DATA }, {"BEGIN_DATA_FORMAT", SBEGIN_DATA_FORMAT }, {"DATA_FORMAT_IDENTIFIER", SDATA_FORMAT_ID}, {"END_DATA", SEND_DATA}, {"END_DATA_FORMAT", SEND_DATA_FORMAT}, {"KEYWORD", SKEYWORD} }; #define NUMKEYS (sizeof(TabKeys)/sizeof(KEYWORD)) // Predefined properties // A property typedef struct { const char *id; WRITEMODE as; } PROPERTY; static PROPERTY PredefinedProperties[] = { {"NUMBER_OF_FIELDS", WRITE_UNCOOKED}, // Required - NUMBER OF FIELDS {"NUMBER_OF_SETS", WRITE_UNCOOKED}, // Required - NUMBER OF SETS {"ORIGINATOR", WRITE_STRINGIFY}, // Required - Identifies the specific system, organization or individual that created the data file. {"FILE_DESCRIPTOR", WRITE_STRINGIFY}, // Required - Describes the purpose or contents of the data file. {"CREATED", WRITE_STRINGIFY}, // Required - Indicates date of creation of the data file. {"DESCRIPTOR", WRITE_STRINGIFY}, // Required - Describes the purpose or contents of the data file. {"DIFFUSE_GEOMETRY", WRITE_STRINGIFY}, // The diffuse geometry used. Allowed values are "sphere" or "opal". {"MANUFACTURER", WRITE_STRINGIFY}, {"MANUFACTURE", WRITE_STRINGIFY}, // Some broken Fuji targets does store this value {"PROD_DATE", WRITE_STRINGIFY}, // Identifies year and month of production of the target in the form yyyy:mm. {"SERIAL", WRITE_STRINGIFY}, // Uniquely identifies individual physical target. {"MATERIAL", WRITE_STRINGIFY}, // Identifies the material on which the target was produced using a code // uniquely identifying th e material. This is intend ed to be used for IT8.7 // physical targets only (i.e . IT8.7/1 a nd IT8.7/2). {"INSTRUMENTATION", WRITE_STRINGIFY}, // Used to report the specific instrumentation used (manufacturer and // model number) to generate the data reported. This data will often // provide more information about the particular data collected than an // extensive list of specific details. This is particularly important for // spectral data or data derived from spectrophotometry. {"MEASUREMENT_SOURCE", WRITE_STRINGIFY}, // Illumination used for spectral measurements. This data helps provide // a guide to the potential for issues of paper fluorescence, etc. {"PRINT_CONDITIONS", WRITE_STRINGIFY}, // Used to define the characteristics of the printed sheet being reported. // Where standard conditions have been defined (e.g., SWOP at nominal) // named conditions may suffice. Otherwise, detailed information is // needed. {"SAMPLE_BACKING", WRITE_STRINGIFY}, // Identifies the backing material used behind the sample during // measurement. Allowed values are “black”, “white”, or {"na". {"CHISQ_DOF", WRITE_STRINGIFY}, // Degrees of freedom associated with the Chi squared statistic // new in recent specs: {"MEASUREMENT_GEOMETRY", WRITE_STRINGIFY}, // The type of measurement, either reflection or transmission, should be indicated // along with details of the geometry and the aperture size and shape. For example, // for transmission measurements it is important to identify 0/diffuse, diffuse/0, // opal or integrating sphere, etc. For reflection it is important to identify 0/45, // 45/0, sphere (specular included or excluded), etc. {"FILTER", WRITE_STRINGIFY}, // Identifies the use of physical filter(s) during measurement. Typically used to // denote the use of filters such as none, D65, Red, Green or Blue. {"POLARIZATION", WRITE_STRINGIFY}, // Identifies the use of a physical polarization filter during measurement. Allowed // values are {"yes”, “white”, “none” or “na”. {"WEIGHTING_FUNCTION", WRITE_PAIR}, // Indicates such functions as: the CIE standard observer functions used in the // calculation of various data parameters (2 degree and 10 degree), CIE standard // illuminant functions used in the calculation of various data parameters (e.g., D50, // D65, etc.), density status response, etc. If used there shall be at least one // name-value pair following the WEIGHTING_FUNCTION tag/keyword. The first attribute // in the set shall be {"name" and shall identify the particular parameter used. // The second shall be {"value" and shall provide the value associated with that name. // For ASCII data, a string containing the Name and Value attribute pairs shall follow // the weighting function keyword. A semi-colon separates attribute pairs from each // other and within the attribute the name and value are separated by a comma. {"COMPUTATIONAL_PARAMETER", WRITE_PAIR}, // Parameter that is used in computing a value from measured data. Name is the name // of the calculation, parameter is the name of the parameter used in the calculation // and value is the value of the parameter. {"TARGET_TYPE", WRITE_STRINGIFY}, // The type of target being measured, e.g. IT8.7/1, IT8.7/3, user defined, etc. {"COLORANT", WRITE_STRINGIFY}, // Identifies the colorant(s) used in creating the target. {"TABLE_DESCRIPTOR", WRITE_STRINGIFY}, // Describes the purpose or contents of a data table. {"TABLE_NAME", WRITE_STRINGIFY} // Provides a short name for a data table. }; #define NUMPREDEFINEDPROPS (sizeof(PredefinedProperties)/sizeof(PROPERTY)) // Predefined sample types on dataset static const char* PredefinedSampleID[] = { "SAMPLE_ID", // Identifies sample that data represents "STRING", // Identifies label, or other non-machine readable value. // Value must begin and end with a " symbol "CMYK_C", // Cyan component of CMYK data expressed as a percentage "CMYK_M", // Magenta component of CMYK data expressed as a percentage "CMYK_Y", // Yellow component of CMYK data expressed as a percentage "CMYK_K", // Black component of CMYK data expressed as a percentage "D_RED", // Red filter density "D_GREEN", // Green filter density "D_BLUE", // Blue filter density "D_VIS", // Visual filter density "D_MAJOR_FILTER", // Major filter d ensity "RGB_R", // Red component of RGB data "RGB_G", // Green component of RGB data "RGB_B", // Blue com ponent of RGB data "SPECTRAL_NM", // Wavelength of measurement expressed in nanometers "SPECTRAL_PCT", // Percentage reflectance/transmittance "SPECTRAL_DEC", // Reflectance/transmittance "XYZ_X", // X component of tristimulus data "XYZ_Y", // Y component of tristimulus data "XYZ_Z", // Z component of tristimulus data "XYY_X" // x component of chromaticity data "XYY_Y", // y component of chromaticity data "XYY_CAPY", // Y component of tristimulus data "LAB_L", // L* component of Lab data "LAB_A", // a* component of Lab data "LAB_B", // b* component of Lab data "LAB_C", // C*ab component of Lab data "LAB_H", // hab component of Lab data "LAB_DE", // CIE dE "LAB_DE_94", // CIE dE using CIE 94 "LAB_DE_CMC", // dE using CMC "LAB_DE_2000", // CIE dE using CIE DE 2000 "MEAN_DE", // Mean Delta E (LAB_DE) of samples compared to batch average // (Used for data files for ANSI IT8.7/1 and IT8.7/2 targets) "STDEV_X", // Standard deviation of X (tristimulus data) "STDEV_Y", // Standard deviation of Y (tristimulus data) "STDEV_Z", // Standard deviation of Z (tristimulus data) "STDEV_L", // Standard deviation of L* "STDEV_A", // Standard deviation of a* "STDEV_B", // Standard deviation of b* "STDEV_DE", // Standard deviation of CIE dE "CHI_SQD_PAR"}; // The average of the standard deviations of L*, a* and b*. It is // used to derive an estimate of the chi-squared parameter which is // recommended as the predictor of the variability of dE #define NUMPREDEFINEDSAMPLEID (sizeof(PredefinedSampleID)/sizeof(char *)) //Forward declaration of some internal functions static void* AllocChunk(LPIT8 it8, size_t size); // Checks if c is a separator static LCMSBOOL isseparator(int c) { return (c == ' ') || (c == '\t') || (c == '\r'); } // Checks whatever if c is a valid identifier char static LCMSBOOL ismiddle(int c) { return (!isseparator(c) && (c != '#') && (c !='\"') && (c != '\'') && (c > 32) && (c < 127)); } // Checks whatsever if c is a valid identifier middle char. static LCMSBOOL isidchar(int c) { return isalnum(c) || ismiddle(c); } // Checks whatsever if c is a valid identifier first char. static LCMSBOOL isfirstidchar(int c) { return !isdigit(c) && ismiddle(c); } // checks whether the supplied path looks like an absolute path // NOTE: this function doesn't checks if the path exists or even if it's legal static LCMSBOOL isabsolutepath(const char *path) { if(path == NULL) return FALSE; if(path[0] == DIR_CHAR) return TRUE; #ifndef NON_WINDOWS if(isalpha(path[0]) && path[1] == ':') return TRUE; #endif return FALSE; } // Makes a file path based on a given reference path // NOTE: buffer is assumed to point to at least MAX_PATH bytes // NOTE: both relPath and basePath are assumed to be no more than MAX_PATH characters long (including the null terminator!) // NOTE: this function doesn't check if the path exists or even if it's legal static LCMSBOOL _cmsMakePath(const char *relPath, const char *basePath, char *buffer) { if (!isabsolutepath(relPath)) { char *tail; strncpy(buffer, basePath, MAX_PATH-1); tail = strrchr(buffer, DIR_CHAR); if (tail != NULL) { size_t len = tail - buffer; strncpy(tail + 1, relPath, MAX_PATH - len -1); // TODO: if combined path is longer than MAX_PATH, this should return FALSE! return TRUE; } } strncpy(buffer, relPath, MAX_PATH - 1); buffer[MAX_PATH-1] = 0; return TRUE; } // Make sure no exploit is being even tried static const char* NoMeta(const char* str) { if (strchr(str, '%') != NULL) return "**** CORRUPTED FORMAT STRING ***"; return str; } // Syntax error static LCMSBOOL SynError(LPIT8 it8, const char *Txt, ...) { char Buffer[256], ErrMsg[1024]; va_list args; va_start(args, Txt); vsnprintf(Buffer, 255, Txt, args); Buffer[255] = 0; va_end(args); snprintf(ErrMsg, 1023, "%s: Line %d, %s", it8->FileStack[it8 ->IncludeSP]->FileName, it8->lineno, Buffer); ErrMsg[1023] = 0; it8->sy = SSYNERROR; cmsSignalError(LCMS_ERRC_ABORTED, "%s", ErrMsg); return FALSE; } // Check if current symbol is same as specified. issue an error else. static LCMSBOOL Check(LPIT8 it8, SYMBOL sy, const char* Err) { if (it8 -> sy != sy) return SynError(it8, NoMeta(Err)); return TRUE; } // Read Next character from stream static void NextCh(LPIT8 it8) { if (it8 -> FileStack[it8 ->IncludeSP]->Stream) { it8 ->ch = fgetc(it8 ->FileStack[it8 ->IncludeSP]->Stream); if (feof(it8 -> FileStack[it8 ->IncludeSP]->Stream)) { if (it8 ->IncludeSP > 0) { fclose(it8 ->FileStack[it8->IncludeSP--]->Stream); it8 -> ch = ' '; // Whitespace to be ignored } else it8 ->ch = 0; // EOF } } else { it8->ch = *it8->Source; if (it8->ch) it8->Source++; } } // Try to see if current identifier is a keyword, if so return the referred symbol static SYMBOL BinSrchKey(const char *id) { int l = 1; int r = NUMKEYS; int x, res; while (r >= l) { x = (l+r)/2; res = stricmp(id, TabKeys[x-1].id); if (res == 0) return TabKeys[x-1].sy; if (res < 0) r = x - 1; else l = x + 1; } return SNONE; } // 10 ^n static double xpow10(int n) { return pow(10, (double) n); } // Reads a Real number, tries to follow from integer number static void ReadReal(LPIT8 it8, int inum) { it8->dnum = (double) inum; while (isdigit(it8->ch)) { it8->dnum = it8->dnum * 10.0 + (it8->ch - '0'); NextCh(it8); } if (it8->ch == '.') { // Decimal point double frac = 0.0; // fraction int prec = 0; // precission NextCh(it8); // Eats dec. point while (isdigit(it8->ch)) { frac = frac * 10.0 + (it8->ch - '0'); prec++; NextCh(it8); } it8->dnum = it8->dnum + (frac / xpow10(prec)); } // Exponent, example 34.00E+20 if (toupper(it8->ch) == 'E') { int e; int sgn; NextCh(it8); sgn = 1; if (it8->ch == '-') { sgn = -1; NextCh(it8); } else if (it8->ch == '+') { sgn = +1; NextCh(it8); } e = 0; while (isdigit(it8->ch)) { if ((double) e * 10L < INT_MAX) e = e * 10 + (it8->ch - '0'); NextCh(it8); } e = sgn*e; it8 -> dnum = it8 -> dnum * xpow10(e); } } // Reads next symbol static void InSymbol(LPIT8 it8) { register char *idptr; register int k; SYMBOL key; int sng; do { while (isseparator(it8->ch)) NextCh(it8); if (isfirstidchar(it8->ch)) { // Identifier k = 0; idptr = it8->id; do { if (++k < MAXID) *idptr++ = (char) it8->ch; NextCh(it8); } while (isidchar(it8->ch)); *idptr = '\0'; key = BinSrchKey(it8->id); if (key == SNONE) it8->sy = SIDENT; else it8->sy = key; } else // Is a number? if (isdigit(it8->ch) || it8->ch == '.' || it8->ch == '-' || it8->ch == '+') { int sign = 1; if (it8->ch == '-') { sign = -1; NextCh(it8); } it8->inum = 0; it8->sy = SINUM; if (it8->ch == '0') { // 0xnnnn (Hexa) or 0bnnnn (Binary) NextCh(it8); if (toupper(it8->ch) == 'X') { int j; NextCh(it8); while (isxdigit(it8->ch)) { it8->ch = toupper(it8->ch); if (it8->ch >= 'A' && it8->ch <= 'F') j = it8->ch -'A'+10; else j = it8->ch - '0'; if ((long) it8->inum * 16L > (long) INT_MAX) { SynError(it8, "Invalid hexadecimal number"); return; } it8->inum = it8->inum * 16 + j; NextCh(it8); } return; } if (toupper(it8->ch) == 'B') { // Binary int j; NextCh(it8); while (it8->ch == '0' || it8->ch == '1') { j = it8->ch - '0'; if ((long) it8->inum * 2L > (long) INT_MAX) { SynError(it8, "Invalid binary number"); return; } it8->inum = it8->inum * 2 + j; NextCh(it8); } return; } } while (isdigit(it8->ch)) { if ((long) it8->inum * 10L > (long) INT_MAX) { ReadReal(it8, it8->inum); it8->sy = SDNUM; it8->dnum *= sign; return; } it8->inum = it8->inum * 10 + (it8->ch - '0'); NextCh(it8); } if (it8->ch == '.') { ReadReal(it8, it8->inum); it8->sy = SDNUM; it8->dnum *= sign; return; } it8 -> inum *= sign; // Special case. Numbers followed by letters are taken as identifiers if (isidchar(it8 ->ch)) { if (it8 ->sy == SINUM) { sprintf(it8->id, "%d", it8->inum); } else { sprintf(it8->id, it8 ->DoubleFormatter, it8->dnum); } k = (int) strlen(it8 ->id); idptr = it8 ->id + k; do { if (++k < MAXID) *idptr++ = (char) it8->ch; NextCh(it8); } while (isidchar(it8->ch)); *idptr = '\0'; it8->sy = SIDENT; } return; } else switch ((int) it8->ch) { // EOF marker -- ignore it case '\x1a': NextCh(it8); break; // Eof stream markers case 0: case -1: it8->sy = SEOF; break; // Next line case '\n': NextCh(it8); it8->sy = SEOLN; it8->lineno++; break; // Comment case '#': NextCh(it8); while (it8->ch && it8->ch != '\n') NextCh(it8); it8->sy = SCOMMENT; break; // String. case '\'': case '\"': idptr = it8->str; sng = it8->ch; k = 0; NextCh(it8); while (k < MAXSTR && it8->ch != sng) { if (it8->ch == '\n'|| it8->ch == '\r') k = MAXSTR+1; else { *idptr++ = (char) it8->ch; NextCh(it8); k++; } } it8->sy = SSTRING; *idptr = '\0'; NextCh(it8); break; default: SynError(it8, "Unrecognized character: 0x%x", it8 ->ch); return; } } while (it8->sy == SCOMMENT); // Handle the include special token if (it8 -> sy == SINCLUDE) { LPFILECTX FileNest; if(it8 -> IncludeSP >= (MAXINCLUDE-1)) { SynError(it8, "Too many recursion levels"); return; } InSymbol(it8); if (!Check(it8, SSTRING, "Filename expected")) return; FileNest = it8 -> FileStack[it8 -> IncludeSP + 1]; if(FileNest == NULL) { FileNest = it8 ->FileStack[it8 -> IncludeSP + 1] = (LPFILECTX)AllocChunk(it8, sizeof(FILECTX)); //if(FileNest == NULL) // TODO: how to manage out-of-memory conditions? } if(_cmsMakePath(it8->str, it8->FileStack[it8->IncludeSP]->FileName, FileNest->FileName) == FALSE) { SynError(it8, "File path too long"); return; } FileNest->Stream = fopen(FileNest->FileName, "rt"); if (FileNest->Stream == NULL) { SynError(it8, "File %s not found", FileNest->FileName); return; } it8->IncludeSP++; it8 ->ch = ' '; InSymbol(it8); } } // Checks end of line separator static LCMSBOOL CheckEOLN(LPIT8 it8) { if (!Check(it8, SEOLN, "Expected separator")) return FALSE; while (it8 -> sy == SEOLN) InSymbol(it8); return TRUE; } // Skip a symbol static void Skip(LPIT8 it8, SYMBOL sy) { if (it8->sy == sy && it8->sy != SEOF) InSymbol(it8); } // Skip multiple EOLN static void SkipEOLN(LPIT8 it8) { while (it8->sy == SEOLN) { InSymbol(it8); } } // Returns a string holding current value static LCMSBOOL GetVal(LPIT8 it8, char* Buffer, size_t max, const char* ErrorTitle) { switch (it8->sy) { case SIDENT: strncpy(Buffer, it8->id, max); Buffer[max-1]=0; break; case SINUM: snprintf(Buffer, max, "%d", it8 -> inum); break; case SDNUM: snprintf(Buffer, max, it8->DoubleFormatter, it8 -> dnum); break; case SSTRING: strncpy(Buffer, it8->str, max); Buffer[max-1] = 0; break; default: return SynError(it8, "%s", ErrorTitle); } Buffer[max] = 0; return TRUE; } // ---------------------------------------------------------- Table static LPTABLE GetTable(LPIT8 it8) { if ((it8 -> nTable >= it8 ->TablesCount) || (it8 -> nTable < 0)) { SynError(it8, "Table %d out of sequence", it8 -> nTable); return it8 -> Tab; } return it8 ->Tab + it8 ->nTable; } // ---------------------------------------------------------- Memory management // Frees an allocator and owned memory void LCMSEXPORT cmsIT8Free(LCMSHANDLE hIT8) { LPIT8 it8 = (LPIT8) hIT8; if (it8 == NULL) return; if (it8->MemorySink) { LPOWNEDMEM p; LPOWNEDMEM n; for (p = it8->MemorySink; p != NULL; p = n) { n = p->Next; if (p->Ptr) _cmsFree(p->Ptr); _cmsFree(p); } } if (it8->MemoryBlock) _cmsFree(it8->MemoryBlock); _cmsFree(it8); } // Allocates a chunk of data, keep linked list static void* AllocBigBlock(LPIT8 it8, size_t size) { LPOWNEDMEM ptr1; void* ptr = _cmsMalloc(size); if (ptr) { ZeroMemory(ptr, size); ptr1 = (LPOWNEDMEM) _cmsMalloc(sizeof(OWNEDMEM)); if (ptr1 == NULL) { _cmsFree(ptr); return NULL; } ZeroMemory(ptr1, sizeof(OWNEDMEM)); ptr1-> Ptr = ptr; ptr1-> Next = it8 -> MemorySink; it8 -> MemorySink = ptr1; } return ptr; } // Suballocator. static void* AllocChunk(LPIT8 it8, size_t size) { size_t free = it8 ->Allocator.BlockSize - it8 ->Allocator.Used; LPBYTE ptr; size = ALIGNLONG(size); if (size > free) { if (it8 -> Allocator.BlockSize == 0) it8 -> Allocator.BlockSize = 20*1024; else it8 ->Allocator.BlockSize *= 2; if (it8 ->Allocator.BlockSize < size) it8 ->Allocator.BlockSize = size; it8 ->Allocator.Used = 0; it8 ->Allocator.Block = (LPBYTE) AllocBigBlock(it8, it8 ->Allocator.BlockSize); } ptr = it8 ->Allocator.Block + it8 ->Allocator.Used; it8 ->Allocator.Used += size; return (void*) ptr; } // Allocates a string static char *AllocString(LPIT8 it8, const char* str) { size_t Size = strlen(str)+1; char *ptr; ptr = (char *) AllocChunk(it8, Size); if (ptr) strncpy (ptr, str, Size-1); return ptr; } // Searches through linked list static LCMSBOOL IsAvailableOnList(LPKEYVALUE p, const char* Key, const char* Subkey, LPKEYVALUE* LastPtr) { if (LastPtr) *LastPtr = p; for (; p != NULL; p = p->Next) { if (LastPtr) *LastPtr = p; if (*Key != '#') { // Comments are ignored if (stricmp(Key, p->Keyword) == 0) break; } } if (p == NULL) return FALSE; if (Subkey == 0) return TRUE; for (; p != NULL; p = p->NextSubkey) { if (LastPtr) *LastPtr = p; if (stricmp(Subkey, p->Subkey) == 0) return TRUE; } return FALSE; } // Add a property into a linked list static LPKEYVALUE AddToList(LPIT8 it8, LPKEYVALUE* Head, const char *Key, const char *Subkey, const char* xValue, WRITEMODE WriteAs) { LPKEYVALUE p; // Check if property is already in list (this is an error) if (IsAvailableOnList(*Head, Key, Subkey, &p)) { // This may work for editing properties // return SynError(it8, "duplicate key <%s>", Key); } else { LPKEYVALUE last = p; // Allocate the container p = (LPKEYVALUE) AllocChunk(it8, sizeof(KEYVALUE)); if (p == NULL) { SynError(it8, "AddToList: out of memory"); return NULL; } // Store name and value p->Keyword = AllocString(it8, Key); p->Subkey = (Subkey == NULL) ? NULL : AllocString(it8, Subkey); // Keep the container in our list if (*Head == NULL) *Head = p; else { if(Subkey != 0 && last != 0) { last->NextSubkey = p; // If Subkey is not null, then last is the last property with the same key, // but not necessarily is the last property in the list, so we need to move // to the actual list end while(last->Next != 0) last = last->Next; } last->Next = p; } p->Next = NULL; p->NextSubkey = NULL; } p->WriteAs = WriteAs; if (xValue != NULL) { p->Value = AllocString(it8, xValue); } else { p->Value = NULL; } return p; } static LPKEYVALUE AddAvailableProperty(LPIT8 it8, const char* Key, WRITEMODE as) { return AddToList(it8, &it8->ValidKeywords, Key, NULL, NULL, as); } static LPKEYVALUE AddAvailableSampleID(LPIT8 it8, const char* Key) { return AddToList(it8, &it8->ValidSampleID, Key, NULL, NULL, WRITE_UNCOOKED); } static void AllocTable(LPIT8 it8) { LPTABLE t; t = it8 ->Tab + it8 ->TablesCount; t->HeaderList = NULL; t->DataFormat = NULL; t->Data = NULL; it8 ->TablesCount++; } int LCMSEXPORT cmsIT8SetTable(LCMSHANDLE IT8, int nTable) { LPIT8 it8 = (LPIT8) IT8; if (nTable >= it8 ->TablesCount) { if (nTable == it8 ->TablesCount) { AllocTable(it8); } else { SynError(it8, "Table %d is out of sequence", nTable); return -1; } } it8 ->nTable = nTable; return nTable; } // Init an empty container LCMSHANDLE LCMSEXPORT cmsIT8Alloc(void) { LPIT8 it8; int i; it8 = (LPIT8) malloc(sizeof(IT8)); if (it8 == NULL) return NULL; ZeroMemory(it8, sizeof(IT8)); AllocTable(it8); it8->MemoryBlock = NULL; it8->MemorySink = NULL; it8 ->nTable = 0; it8->Allocator.Used = 0; it8->Allocator.Block = NULL; it8->Allocator.BlockSize = 0; it8->ValidKeywords = NULL; it8->ValidSampleID = NULL; it8 -> sy = SNONE; it8 -> ch = ' '; it8 -> Source = NULL; it8 -> inum = 0; it8 -> dnum = 0.0; it8->FileStack[0] = (LPFILECTX)AllocChunk(it8, sizeof(FILECTX)); it8->IncludeSP = 0; it8 -> lineno = 1; strcpy(it8->DoubleFormatter, DEFAULT_DBL_FORMAT); strcpy(it8->SheetType, "CGATS.17"); // Initialize predefined properties & data for (i=0; i < NUMPREDEFINEDPROPS; i++) AddAvailableProperty(it8, PredefinedProperties[i].id, PredefinedProperties[i].as); for (i=0; i < NUMPREDEFINEDSAMPLEID; i++) AddAvailableSampleID(it8, PredefinedSampleID[i]); return (LCMSHANDLE) it8; } const char* LCMSEXPORT cmsIT8GetSheetType(LCMSHANDLE hIT8) { LPIT8 it8 = (LPIT8) hIT8; return it8 ->SheetType; } LCMSBOOL LCMSEXPORT cmsIT8SetSheetType(LCMSHANDLE hIT8, const char* Type) { LPIT8 it8 = (LPIT8) hIT8; strncpy(it8 ->SheetType, Type, MAXSTR-1); it8 ->SheetType[MAXSTR-1] = 0; return TRUE; } LCMSBOOL LCMSEXPORT cmsIT8SetComment(LCMSHANDLE hIT8, const char* Val) { LPIT8 it8 = (LPIT8) hIT8; if (!Val) return FALSE; if (!*Val) return FALSE; return AddToList(it8, &GetTable(it8)->HeaderList, "# ", NULL, Val, WRITE_UNCOOKED) != NULL; } // Sets a property LCMSBOOL LCMSEXPORT cmsIT8SetPropertyStr(LCMSHANDLE hIT8, const char* Key, const char *Val) { LPIT8 it8 = (LPIT8) hIT8; if (!Val) return FALSE; if (!*Val) return FALSE; return AddToList(it8, &GetTable(it8)->HeaderList, Key, NULL, Val, WRITE_STRINGIFY) != NULL; } LCMSBOOL LCMSEXPORT cmsIT8SetPropertyDbl(LCMSHANDLE hIT8, const char* cProp, double Val) { LPIT8 it8 = (LPIT8) hIT8; char Buffer[1024]; sprintf(Buffer, it8->DoubleFormatter, Val); return AddToList(it8, &GetTable(it8)->HeaderList, cProp, NULL, Buffer, WRITE_UNCOOKED) != NULL; } LCMSBOOL LCMSEXPORT cmsIT8SetPropertyHex(LCMSHANDLE hIT8, const char* cProp, int Val) { LPIT8 it8 = (LPIT8) hIT8; char Buffer[1024]; sprintf(Buffer, "%d", Val); return AddToList(it8, &GetTable(it8)->HeaderList, cProp, NULL, Buffer, WRITE_HEXADECIMAL) != NULL; } LCMSBOOL LCMSEXPORT cmsIT8SetPropertyUncooked(LCMSHANDLE hIT8, const char* Key, const char* Buffer) { LPIT8 it8 = (LPIT8) hIT8; return AddToList(it8, &GetTable(it8)->HeaderList, Key, NULL, Buffer, WRITE_UNCOOKED) != NULL; } LCMSBOOL LCMSEXPORT cmsIT8SetPropertyMulti(LCMSHANDLE hIT8, const char* Key, const char* SubKey, const char *Buffer) { LPIT8 it8 = (LPIT8) hIT8; return AddToList(it8, &GetTable(it8)->HeaderList, Key, SubKey, Buffer, WRITE_PAIR) != NULL; } // Gets a property const char* LCMSEXPORT cmsIT8GetProperty(LCMSHANDLE hIT8, const char* Key) { LPIT8 it8 = (LPIT8) hIT8; LPKEYVALUE p; if (IsAvailableOnList(GetTable(it8) -> HeaderList, Key, NULL, &p)) { return p -> Value; } return NULL; } double LCMSEXPORT cmsIT8GetPropertyDbl(LCMSHANDLE hIT8, const char* cProp) { const char *v = cmsIT8GetProperty(hIT8, cProp); if (v) return atof(v); else return 0.0; } const char* LCMSEXPORT cmsIT8GetPropertyMulti(LCMSHANDLE hIT8, const char* Key, const char *SubKey) { LPIT8 it8 = (LPIT8) hIT8; LPKEYVALUE p; if (IsAvailableOnList(GetTable(it8) -> HeaderList, Key, SubKey, &p)) { return p -> Value; } return NULL; } // ----------------------------------------------------------------- Datasets static void AllocateDataFormat(LPIT8 it8) { LPTABLE t = GetTable(it8); if (t -> DataFormat) return; // Already allocated t -> nSamples = (int) cmsIT8GetPropertyDbl(it8, "NUMBER_OF_FIELDS"); if (t -> nSamples <= 0) { SynError(it8, "AllocateDataFormat: Unknown NUMBER_OF_FIELDS"); t -> nSamples = 10; } t -> DataFormat = (char**) AllocChunk (it8, (t->nSamples + 1) * sizeof(char *)); if (t->DataFormat == NULL) { SynError(it8, "AllocateDataFormat: Unable to allocate dataFormat array"); } } static const char *GetDataFormat(LPIT8 it8, int n) { LPTABLE t = GetTable(it8); if (t->DataFormat) return t->DataFormat[n]; return NULL; } static LCMSBOOL SetDataFormat(LPIT8 it8, int n, const char *label) { LPTABLE t = GetTable(it8); #ifdef STRICT_CGATS if (!IsAvailableOnList(it8-> ValidSampleID, label, NULL, NULL)) { SynError(it8, "Invalid data format '%s'.", label); return FALSE; } #endif if (!t->DataFormat) AllocateDataFormat(it8); if (n > t -> nSamples) { SynError(it8, "More than NUMBER_OF_FIELDS fields."); return FALSE; } if (t->DataFormat) { t->DataFormat[n] = AllocString(it8, label); } return TRUE; } LCMSBOOL LCMSEXPORT cmsIT8SetDataFormat(LCMSHANDLE h, int n, const char *Sample) { LPIT8 it8 = (LPIT8) h; return SetDataFormat(it8, n, Sample); } static void AllocateDataSet(LPIT8 it8) { LPTABLE t = GetTable(it8); if (t -> Data) return; // Already allocated t-> nSamples = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_FIELDS")); t-> nPatches = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_SETS")); t-> Data = (char**)AllocChunk (it8, (t->nSamples + 1) * (t->nPatches + 1) *sizeof (char*)); if (t->Data == NULL) { SynError(it8, "AllocateDataSet: Unable to allocate data array"); } } static char* GetData(LPIT8 it8, int nSet, int nField) { LPTABLE t = GetTable(it8); int nSamples = t -> nSamples; int nPatches = t -> nPatches; if (nSet >= nPatches || nField >= nSamples) return NULL; if (!t->Data) return NULL; return t->Data [nSet * nSamples + nField]; } static LCMSBOOL SetData(LPIT8 it8, int nSet, int nField, const char *Val) { LPTABLE t = GetTable(it8); if (!t->Data) AllocateDataSet(it8); if (!t->Data) return FALSE; if (nSet > t -> nPatches || nSet < 0) { return SynError(it8, "Patch %d out of range, there are %d patches", nSet, t -> nPatches); } if (nField > t ->nSamples || nField < 0) { return SynError(it8, "Sample %d out of range, there are %d samples", nField, t ->nSamples); } t->Data [nSet * t -> nSamples + nField] = AllocString(it8, Val); return TRUE; } // --------------------------------------------------------------- File I/O // Writes a string to file static void WriteStr(LPSAVESTREAM f, const char *str) { size_t len; if (str == NULL) str = " "; // Lenghth to write len = strlen(str); f ->Used += len; if (f ->stream) { // Should I write it to a file? fwrite(str, 1, len, f->stream); } else { // Or to a memory block? if (f ->Base) { // Am I just counting the bytes? if (f ->Used > f ->Max) { cmsSignalError(LCMS_ERRC_ABORTED, "Write to memory overflows in CGATS parser"); return; } CopyMemory(f ->Ptr, str, len); f->Ptr += len; } } } // Write formatted static void Writef(LPSAVESTREAM f, const char* frm, ...) { char Buffer[4096]; va_list args; va_start(args, frm); vsnprintf(Buffer, 4095, frm, args); Buffer[4095] = 0; WriteStr(f, Buffer); va_end(args); } // Writes full header static void WriteHeader(LPIT8 it8, LPSAVESTREAM fp) { LPKEYVALUE p; LPTABLE t = GetTable(it8); for (p = t->HeaderList; (p != NULL); p = p->Next) { if (*p ->Keyword == '#') { char* Pt; WriteStr(fp, "#\n# "); for (Pt = p ->Value; *Pt; Pt++) { Writef(fp, "%c", *Pt); if (*Pt == '\n') { WriteStr(fp, "# "); } } WriteStr(fp, "\n#\n"); continue; } if (!IsAvailableOnList(it8-> ValidKeywords, p->Keyword, NULL, NULL)) { #ifdef STRICT_CGATS WriteStr(fp, "KEYWORD\t\""); WriteStr(fp, p->Keyword); WriteStr(fp, "\"\n"); #endif AddAvailableProperty(it8, p->Keyword, WRITE_UNCOOKED); } WriteStr(fp, p->Keyword); if (p->Value) { switch (p ->WriteAs) { case WRITE_UNCOOKED: Writef(fp, "\t%s", p ->Value); break; case WRITE_STRINGIFY: Writef(fp, "\t\"%s\"", p->Value ); break; case WRITE_HEXADECIMAL: Writef(fp, "\t0x%X", atoi(p ->Value)); break; case WRITE_BINARY: Writef(fp, "\t0x%B", atoi(p ->Value)); break; case WRITE_PAIR: Writef(fp, "\t\"%s,%s\"", p->Subkey, p->Value); break; default: SynError(it8, "Unknown write mode %d", p ->WriteAs); return; } } WriteStr (fp, "\n"); } } // Writes the data format static void WriteDataFormat(LPSAVESTREAM fp, LPIT8 it8) { int i, nSamples; LPTABLE t = GetTable(it8); if (!t -> DataFormat) return; WriteStr(fp, "BEGIN_DATA_FORMAT\n"); WriteStr(fp, " "); nSamples = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_FIELDS")); for (i = 0; i < nSamples; i++) { WriteStr(fp, t->DataFormat[i]); WriteStr(fp, ((i == (nSamples-1)) ? "\n" : "\t")); } WriteStr (fp, "END_DATA_FORMAT\n"); } // Writes data array static void WriteData(LPSAVESTREAM fp, LPIT8 it8) { int i, j; LPTABLE t = GetTable(it8); if (!t->Data) return; WriteStr (fp, "BEGIN_DATA\n"); t->nPatches = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_SETS")); for (i = 0; i < t-> nPatches; i++) { WriteStr(fp, " "); for (j = 0; j < t->nSamples; j++) { char *ptr = t->Data[i*t->nSamples+j]; if (ptr == NULL) WriteStr(fp, "\"\""); else { // If value contains whitespace, enclose within quote if (strchr(ptr, ' ') != NULL) { WriteStr(fp, "\""); WriteStr(fp, ptr); WriteStr(fp, "\""); } else WriteStr(fp, ptr); } WriteStr(fp, ((j == (t->nSamples-1)) ? "\n" : "\t")); } } WriteStr (fp, "END_DATA\n"); } // Saves whole file LCMSBOOL LCMSEXPORT cmsIT8SaveToFile(LCMSHANDLE hIT8, const char* cFileName) { SAVESTREAM sd; int i; LPIT8 it8 = (LPIT8) hIT8; ZeroMemory(&sd, sizeof(SAVESTREAM)); sd.stream = fopen(cFileName, "wt"); if (!sd.stream) return FALSE; WriteStr(&sd, it8->SheetType); WriteStr(&sd, "\n"); for (i=0; i < it8 ->TablesCount; i++) { cmsIT8SetTable(hIT8, i); WriteHeader(it8, &sd); WriteDataFormat(&sd, it8); WriteData(&sd, it8); } fclose(sd.stream); return TRUE; } // Saves to memory LCMSBOOL LCMSEXPORT cmsIT8SaveToMem(LCMSHANDLE hIT8, void *MemPtr, size_t* BytesNeeded) { SAVESTREAM sd; int i; LPIT8 it8 = (LPIT8) hIT8; ZeroMemory(&sd, sizeof(SAVESTREAM)); sd.stream = NULL; sd.Base = (LPBYTE) MemPtr; sd.Ptr = sd.Base; sd.Used = 0; if (sd.Base) sd.Max = *BytesNeeded; // Write to memory? else sd.Max = 0; // Just counting the needed bytes WriteStr(&sd, it8->SheetType); WriteStr(&sd, "\n"); for (i=0; i < it8 ->TablesCount; i++) { cmsIT8SetTable(hIT8, i); WriteHeader(it8, &sd); WriteDataFormat(&sd, it8); WriteData(&sd, it8); } sd.Used++; // The \0 at the very end if (sd.Base) sd.Ptr = 0; *BytesNeeded = sd.Used; return TRUE; } // -------------------------------------------------------------- Higer level parsing static LCMSBOOL DataFormatSection(LPIT8 it8) { int iField = 0; LPTABLE t = GetTable(it8); InSymbol(it8); // Eats "BEGIN_DATA_FORMAT" CheckEOLN(it8); while (it8->sy != SEND_DATA_FORMAT && it8->sy != SEOLN && it8->sy != SEOF && it8->sy != SSYNERROR) { if (it8->sy != SIDENT) { return SynError(it8, "Sample type expected"); } if (!SetDataFormat(it8, iField, it8->id)) return FALSE; iField++; InSymbol(it8); SkipEOLN(it8); } SkipEOLN(it8); Skip(it8, SEND_DATA_FORMAT); SkipEOLN(it8); if (iField != t ->nSamples) { SynError(it8, "Count mismatch. NUMBER_OF_FIELDS was %d, found %d\n", t ->nSamples, iField); } return TRUE; } static LCMSBOOL DataSection (LPIT8 it8) { int iField = 0; int iSet = 0; char Buffer[MAXSTR]; LPTABLE t = GetTable(it8); InSymbol(it8); // Eats "BEGIN_DATA" CheckEOLN(it8); if (!t->Data) AllocateDataSet(it8); while (it8->sy != SEND_DATA && it8->sy != SEOF) { if (iField >= t -> nSamples) { iField = 0; iSet++; } if (it8->sy != SEND_DATA && it8->sy != SEOF) { if (!GetVal(it8, Buffer, 255, "Sample data expected")) return FALSE; if (!SetData(it8, iSet, iField, Buffer)) return FALSE; iField++; InSymbol(it8); SkipEOLN(it8); } } SkipEOLN(it8); Skip(it8, SEND_DATA); SkipEOLN(it8); // Check for data completion. if ((iSet+1) != t -> nPatches) return SynError(it8, "Count mismatch. NUMBER_OF_SETS was %d, found %d\n", t ->nPatches, iSet+1); return TRUE; } static LCMSBOOL HeaderSection(LPIT8 it8) { char VarName[MAXID]; char Buffer[MAXSTR]; LPKEYVALUE Key; while (it8->sy != SEOF && it8->sy != SSYNERROR && it8->sy != SBEGIN_DATA_FORMAT && it8->sy != SBEGIN_DATA) { switch (it8 -> sy) { case SKEYWORD: InSymbol(it8); if (!GetVal(it8, Buffer, MAXSTR-1, "Keyword expected")) return FALSE; if (!AddAvailableProperty(it8, Buffer, WRITE_UNCOOKED)) return FALSE; InSymbol(it8); break; case SDATA_FORMAT_ID: InSymbol(it8); if (!GetVal(it8, Buffer, MAXSTR-1, "Keyword expected")) return FALSE; if (!AddAvailableSampleID(it8, Buffer)) return FALSE; InSymbol(it8); break; case SIDENT: strncpy(VarName, it8->id, MAXID-1); VarName[MAXID-1] = 0; if (!IsAvailableOnList(it8-> ValidKeywords, VarName, NULL, &Key)) { #ifdef STRICT_CGATS return SynError(it8, "Undefined keyword '%s'", VarName); #else Key = AddAvailableProperty(it8, VarName, WRITE_UNCOOKED); if (Key == NULL) return FALSE; #endif } InSymbol(it8); if (!GetVal(it8, Buffer, MAXSTR-1, "Property data expected")) return FALSE; if(Key->WriteAs != WRITE_PAIR) { AddToList(it8, &GetTable(it8)->HeaderList, VarName, NULL, Buffer, (it8->sy == SSTRING) ? WRITE_STRINGIFY : WRITE_UNCOOKED); } else { const char *Subkey; char *Nextkey; if (it8->sy != SSTRING) return SynError(it8, "Invalid value '%s' for property '%s'.", Buffer, VarName); // chop the string as a list of "subkey, value" pairs, using ';' as a separator for(Subkey = Buffer; Subkey != NULL; Subkey = Nextkey) { char *Value, *temp; // identify token pair boundary Nextkey = (char*) strchr(Subkey, ';'); if(Nextkey) *Nextkey++ = '\0'; // for each pair, split the subkey and the value Value = (char*) strrchr(Subkey, ','); if(Value == NULL) return SynError(it8, "Invalid value for property '%s'.", VarName); // gobble the spaces before the coma, and the coma itself temp = Value++; do *temp-- = '\0'; while(temp >= Subkey && *temp == ' '); // gobble any space at the right temp = Value + strlen(Value) - 1; while(*temp == ' ') *temp-- = '\0'; // trim the strings from the left Subkey += strspn(Subkey, " "); Value += strspn(Value, " "); if(Subkey[0] == 0 || Value[0] == 0) return SynError(it8, "Invalid value for property '%s'.", VarName); AddToList(it8, &GetTable(it8)->HeaderList, VarName, Subkey, Value, WRITE_PAIR); } } InSymbol(it8); break; case SEOLN: break; default: return SynError(it8, "expected keyword or identifier"); } SkipEOLN(it8); } return TRUE; } static LCMSBOOL ParseIT8(LPIT8 it8, LCMSBOOL nosheet) { char* SheetTypePtr = it8 ->SheetType; if (nosheet == 0) { // First line is a very special case. while (isseparator(it8->ch)) NextCh(it8); while (it8->ch != '\r' && it8 ->ch != '\n' && it8->ch != '\t' && it8 -> ch != -1) { *SheetTypePtr++= (char) it8 ->ch; NextCh(it8); } } *SheetTypePtr = 0; InSymbol(it8); SkipEOLN(it8); while (it8-> sy != SEOF && it8-> sy != SSYNERROR) { switch (it8 -> sy) { case SBEGIN_DATA_FORMAT: if (!DataFormatSection(it8)) return FALSE; break; case SBEGIN_DATA: if (!DataSection(it8)) return FALSE; if (it8 -> sy != SEOF) { AllocTable(it8); it8 ->nTable = it8 ->TablesCount - 1; } break; case SEOLN: SkipEOLN(it8); break; default: if (!HeaderSection(it8)) return FALSE; } } return (it8 -> sy != SSYNERROR); } // Init usefull pointers static void CookPointers(LPIT8 it8) { int idField, i; char* Fld; int j; int nOldTable = it8 ->nTable; for (j=0; j < it8 ->TablesCount; j++) { LPTABLE t = it8 ->Tab + j; t -> SampleID = 0; it8 ->nTable = j; for (idField = 0; idField < t -> nSamples; idField++) { if (t ->DataFormat == NULL) { SynError(it8, "Undefined DATA_FORMAT"); return; } Fld = t->DataFormat[idField]; if (!Fld) continue; if (stricmp(Fld, "SAMPLE_ID") == 0) { t -> SampleID = idField; for (i=0; i < t -> nPatches; i++) { char *Data = GetData(it8, i, idField); if (Data) { char Buffer[256]; strncpy(Buffer, Data, 255); Buffer[255] = 0; if (strlen(Buffer) <= strlen(Data)) strcpy(Data, Buffer); else SetData(it8, i, idField, Buffer); } } } // "LABEL" is an extension. It keeps references to forward tables if ((stricmp(Fld, "LABEL") == 0) || Fld[0] == '$' ) { // Search for table references... for (i=0; i < t -> nPatches; i++) { char *Label = GetData(it8, i, idField); if (Label) { int k; // This is the label, search for a table containing // this property for (k=0; k < it8 ->TablesCount; k++) { LPTABLE Table = it8 ->Tab + k; LPKEYVALUE p; if (IsAvailableOnList(Table->HeaderList, Label, NULL, &p)) { // Available, keep type and table char Buffer[256]; char *Type = p ->Value; int nTable = k; snprintf(Buffer, 255, "%s %d %s", Label, nTable, Type ); SetData(it8, i, idField, Buffer); } } } } } } } it8 ->nTable = nOldTable; } // Try to infere if the file is a CGATS/IT8 file at all. Read first line // that should be something like some printable characters plus a \n static int IsMyBlock(LPBYTE Buffer, size_t n) { int cols = 1, space = 0, quot = 0; size_t i; if (n < 10) return FALSE; // Too small if (n > 132) n = 132; for (i = 1; i < n; i++) { switch(Buffer[i]) { case '\n': case '\r': return quot == 1 || cols > 2 ? 0 : cols; case '\t': case ' ': if(!quot && !space) space = 1; break; case '\"': quot = !quot; break; default: if (Buffer[i] < 32) return 0; if (Buffer[i] > 127) return 0; cols += space; space = 0; break; } } return FALSE; } static int IsMyFile(const char* FileName) { FILE *fp; size_t Size; BYTE Ptr[133]; fp = fopen(FileName, "rt"); if (!fp) { cmsSignalError(LCMS_ERRC_ABORTED, "File '%s' not found", FileName); return FALSE; } Size = fread(Ptr, 1, 132, fp); fclose(fp); Ptr[Size] = '\0'; return IsMyBlock(Ptr, Size); } // ---------------------------------------------------------- Exported routines LCMSHANDLE LCMSEXPORT cmsIT8LoadFromMem(void *Ptr, size_t len) { LCMSHANDLE hIT8; LPIT8 it8; int type = IsMyBlock((LPBYTE) Ptr, len); if (type == 0) return NULL; hIT8 = cmsIT8Alloc(); if (!hIT8) return NULL; it8 = (LPIT8) hIT8; it8 ->MemoryBlock = (char*) _cmsMalloc(len + 1); strncpy(it8 ->MemoryBlock, (const char*) Ptr, len); it8 ->MemoryBlock[len] = 0; strncpy(it8->FileStack[0]->FileName, "", MAX_PATH-1); it8-> Source = it8 -> MemoryBlock; if (!ParseIT8(it8, type-1)) { cmsIT8Free(hIT8); return FALSE; } CookPointers(it8); it8 ->nTable = 0; _cmsFree(it8->MemoryBlock); it8 -> MemoryBlock = NULL; return hIT8; } LCMSHANDLE LCMSEXPORT cmsIT8LoadFromFile(const char* cFileName) { LCMSHANDLE hIT8; LPIT8 it8; int type = IsMyFile(cFileName); if (type == 0) return NULL; hIT8 = cmsIT8Alloc(); it8 = (LPIT8) hIT8; if (!hIT8) return NULL; it8 ->FileStack[0]->Stream = fopen(cFileName, "rt"); if (!it8 ->FileStack[0]->Stream) { cmsIT8Free(hIT8); return NULL; } strncpy(it8->FileStack[0]->FileName, cFileName, MAX_PATH-1); it8->FileStack[0]->FileName[MAX_PATH-1] = 0; if (!ParseIT8(it8, type-1)) { fclose(it8 ->FileStack[0]->Stream); cmsIT8Free(hIT8); return NULL; } CookPointers(it8); it8 ->nTable = 0; fclose(it8 ->FileStack[0]->Stream); return hIT8; } int LCMSEXPORT cmsIT8EnumDataFormat(LCMSHANDLE hIT8, char ***SampleNames) { LPIT8 it8 = (LPIT8) hIT8; LPTABLE t = GetTable(it8); *SampleNames = t -> DataFormat; return t -> nSamples; } int LCMSEXPORT cmsIT8EnumProperties(LCMSHANDLE hIT8, const char ***PropertyNames) { LPIT8 it8 = (LPIT8) hIT8; LPKEYVALUE p; int n; const char **Props; LPTABLE t = GetTable(it8); // Pass#1 - count properties n = 0; for (p = t -> HeaderList; p != NULL; p = p->Next) { n++; } Props = (const char **) AllocChunk(it8, sizeof(char *) * n); // Pass#2 - Fill pointers n = 0; for (p = t -> HeaderList; p != NULL; p = p->Next) { Props[n++] = p -> Keyword; } *PropertyNames = Props; return n; } int LCMSEXPORT cmsIT8EnumPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char ***SubpropertyNames) { LPIT8 it8 = (LPIT8) hIT8; LPKEYVALUE p, tmp; int n; const char **Props; LPTABLE t = GetTable(it8); if(!IsAvailableOnList(t->HeaderList, cProp, NULL, &p)) { *SubpropertyNames = 0; return 0; } // Pass#1 - count properties n = 0; for (tmp = p; tmp != NULL; tmp = tmp->NextSubkey) { if(tmp->Subkey != NULL) n++; } Props = (const char **) AllocChunk(it8, sizeof(char *) * n); // Pass#2 - Fill pointers n = 0; for (tmp = p; tmp != NULL; tmp = tmp->NextSubkey) { if(tmp->Subkey != NULL) Props[n++] = p ->Subkey; } *SubpropertyNames = Props; return n; } static int LocatePatch(LPIT8 it8, const char* cPatch) { int i; const char *data; LPTABLE t = GetTable(it8); for (i=0; i < t-> nPatches; i++) { data = GetData(it8, i, t->SampleID); if (data != NULL) { if (stricmp(data, cPatch) == 0) return i; } } // SynError(it8, "Couldn't find patch '%s'\n", cPatch); return -1; } static int LocateEmptyPatch(LPIT8 it8) { int i; const char *data; LPTABLE t = GetTable(it8); for (i=0; i < t-> nPatches; i++) { data = GetData(it8, i, t->SampleID); if (data == NULL) return i; } return -1; } static int LocateSample(LPIT8 it8, const char* cSample) { int i; const char *fld; LPTABLE t = GetTable(it8); for (i=0; i < t->nSamples; i++) { fld = GetDataFormat(it8, i); if (stricmp(fld, cSample) == 0) return i; } // SynError(it8, "Couldn't find data field %s\n", cSample); return -1; } int LCMSEXPORT cmsIT8GetDataFormat(LCMSHANDLE hIT8, const char* cSample) { LPIT8 it8 = (LPIT8) hIT8; return LocateSample(it8, cSample); } const char* LCMSEXPORT cmsIT8GetDataRowCol(LCMSHANDLE hIT8, int row, int col) { LPIT8 it8 = (LPIT8) hIT8; return GetData(it8, row, col); } double LCMSEXPORT cmsIT8GetDataRowColDbl(LCMSHANDLE hIT8, int row, int col) { const char* Buffer; Buffer = cmsIT8GetDataRowCol(hIT8, row, col); if (Buffer) { return atof(Buffer); } else return 0; } LCMSBOOL LCMSEXPORT cmsIT8SetDataRowCol(LCMSHANDLE hIT8, int row, int col, const char* Val) { LPIT8 it8 = (LPIT8) hIT8; return SetData(it8, row, col, Val); } LCMSBOOL LCMSEXPORT cmsIT8SetDataRowColDbl(LCMSHANDLE hIT8, int row, int col, double Val) { LPIT8 it8 = (LPIT8) hIT8; char Buff[256]; sprintf(Buff, it8->DoubleFormatter, Val); return SetData(it8, row, col, Buff); } const char* LCMSEXPORT cmsIT8GetData(LCMSHANDLE hIT8, const char* cPatch, const char* cSample) { LPIT8 it8 = (LPIT8) hIT8; int iField, iSet; iField = LocateSample(it8, cSample); if (iField < 0) { return NULL; } iSet = LocatePatch(it8, cPatch); if (iSet < 0) { return NULL; } return GetData(it8, iSet, iField); } double LCMSEXPORT cmsIT8GetDataDbl(LCMSHANDLE it8, const char* cPatch, const char* cSample) { const char* Buffer; Buffer = cmsIT8GetData(it8, cPatch, cSample); if (Buffer) { return atof(Buffer); } else { return 0; } } LCMSBOOL LCMSEXPORT cmsIT8SetData(LCMSHANDLE hIT8, const char* cPatch, const char* cSample, const char *Val) { LPIT8 it8 = (LPIT8) hIT8; int iField, iSet; LPTABLE t = GetTable(it8); iField = LocateSample(it8, cSample); if (iField < 0) return FALSE; if (t-> nPatches == 0) { AllocateDataFormat(it8); AllocateDataSet(it8); CookPointers(it8); } if (stricmp(cSample, "SAMPLE_ID") == 0) { iSet = LocateEmptyPatch(it8); if (iSet < 0) { return SynError(it8, "Couldn't add more patches '%s'\n", cPatch); } iField = t -> SampleID; } else { iSet = LocatePatch(it8, cPatch); if (iSet < 0) { return FALSE; } } return SetData(it8, iSet, iField, Val); } LCMSBOOL LCMSEXPORT cmsIT8SetDataDbl(LCMSHANDLE hIT8, const char* cPatch, const char* cSample, double Val) { LPIT8 it8 = (LPIT8) hIT8; char Buff[256]; snprintf(Buff, 255, it8->DoubleFormatter, Val); return cmsIT8SetData(hIT8, cPatch, cSample, Buff); } // Buffer should get MAXSTR at least const char* LCMSEXPORT cmsIT8GetPatchName(LCMSHANDLE hIT8, int nPatch, char* buffer) { LPIT8 it8 = (LPIT8) hIT8; LPTABLE t = GetTable(it8); char* Data = GetData(it8, nPatch, t->SampleID); if (!Data) return NULL; if (!buffer) return Data; strncpy(buffer, Data, MAXSTR-1); buffer[MAXSTR-1] = 0; return buffer; } int LCMSEXPORT cmsIT8GetPatchByName(LCMSHANDLE hIT8, const char *cPatch) { return LocatePatch((LPIT8)hIT8, cPatch); } int LCMSEXPORT cmsIT8TableCount(LCMSHANDLE hIT8) { LPIT8 it8 = (LPIT8) hIT8; return it8 ->TablesCount; } // This handles the "LABEL" extension. // Label, nTable, Type int LCMSEXPORT cmsIT8SetTableByLabel(LCMSHANDLE hIT8, const char* cSet, const char* cField, const char* ExpectedType) { const char* cLabelFld; char Type[256], Label[256]; int nTable; if (cField != NULL && *cField == 0) cField = "LABEL"; if (cField == NULL) cField = "LABEL"; cLabelFld = cmsIT8GetData(hIT8, cSet, cField); if (!cLabelFld) return -1; if (sscanf(cLabelFld, "%255s %d %255s", Label, &nTable, Type) != 3) return -1; if (ExpectedType != NULL && *ExpectedType == 0) ExpectedType = NULL; if (ExpectedType) { if (stricmp(Type, ExpectedType) != 0) return -1; } return cmsIT8SetTable(hIT8, nTable); } LCMSBOOL LCMSEXPORT cmsIT8SetIndexColumn(LCMSHANDLE hIT8, const char* cSample) { LPIT8 it8 = (LPIT8) hIT8; int pos = LocateSample(it8, cSample); if(pos == -1) return FALSE; it8->Tab[it8->nTable].SampleID = pos; return TRUE; } void LCMSEXPORT cmsIT8DefineDblFormat(LCMSHANDLE hIT8, const char* Formatter) { LPIT8 it8 = (LPIT8) hIT8; if (Formatter == NULL) strcpy(it8->DoubleFormatter, DEFAULT_DBL_FORMAT); else strcpy(it8->DoubleFormatter, Formatter); } lcms-1.19/src/cmscnvrt.c0000777000175300010010000005403611272606371014463 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" /* This module provides conversion stages for handling intents. The chain of evaluation in a transform is: PCS1 PCS2 PCS3 PCS4 |From | |From | |Conversion | |Preview | |Gamut | |Conversion | |To | |To | |Input|->|Device|->|Stage 1 |->|handling|->|Checking|->|Stage 2 |->|Device|->|output | -------- ------- ------------- --------- ---------- ------------- ------- --------- AToB0 prew0 gamut BToA0 Formatting LUT Adjusting LUT LUT Adjusting LUT Formatting Intent Intent 1 intent intent Intent 2 Intent Some of these LUT may be missing There are two intents involved here, the intent of the transform itself, and the intent the proof is being done, if is the case. Since the first intent is to be applied to preview, is the proofing intent. The second intent identifies the transform intent. Input data of any stage is taked as relative colorimetric always. NOTES: V4 states than perceptual & saturation intents between mixed v2 & v4 profiles should scale PCS from a black point equal to ZERO in v2 profiles to the reference media black of perceptual v4 PCS. Since I found many v2 profiles to be using a perceptual intent with black point not zero at all, I'm implementing that as a black point compensation from whatever black from perceptal intent to the reference media black for v4 profiles. */ int cdecl cmsChooseCnvrt(int Absolute, int Phase1, LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPMAT3 ChromaticAdaptationMatrixIn, int Phase2, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 ChromaticAdaptationMatrixOut, int DoBlackPointCompensation, double AdaptationState, _cmsADJFN *fn1, LPWMAT3 wm, LPWVEC3 wof); // ------------------------------------------------------------------------- // D50 - Widely used LCMSAPI LPcmsCIEXYZ LCMSEXPORT cmsD50_XYZ(void) { static cmsCIEXYZ D50XYZ = {D50X, D50Y, D50Z}; return &D50XYZ; } LCMSAPI LPcmsCIExyY LCMSEXPORT cmsD50_xyY(void) { static cmsCIExyY D50xyY; cmsXYZ2xyY(&D50xyY, cmsD50_XYZ()); return &D50xyY; } // ---------------- From LUT to LUT -------------------------- // Calculate m, offset Relativ -> Absolute undoing any chromatic // adaptation done by the profile. #ifdef _MSC_VER #pragma warning(disable : 4100 4505) #endif // join scalings to obtain: // relative input to absolute and then to relative output static void Rel2RelStepAbsCoefs(double AdaptationState, LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPMAT3 ChromaticAdaptationMatrixIn, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 ChromaticAdaptationMatrixOut, LPMAT3 m, LPVEC3 of) { VEC3 WtPtIn, WtPtInAdapted; VEC3 WtPtOut, WtPtOutAdapted; MAT3 Scale, m1, m2, m3; VEC3init(&WtPtIn, WhitePointIn->X, WhitePointIn->Y, WhitePointIn->Z); MAT3eval(&WtPtInAdapted, ChromaticAdaptationMatrixIn, &WtPtIn); VEC3init(&WtPtOut, WhitePointOut->X, WhitePointOut->Y, WhitePointOut->Z); MAT3eval(&WtPtOutAdapted, ChromaticAdaptationMatrixOut, &WtPtOut); VEC3init(&Scale.v[0], WtPtInAdapted.n[0] / WtPtOutAdapted.n[0], 0, 0); VEC3init(&Scale.v[1], 0, WtPtInAdapted.n[1] / WtPtOutAdapted.n[1], 0); VEC3init(&Scale.v[2], 0, 0, WtPtInAdapted.n[2] / WtPtOutAdapted.n[2]); // Adaptation state if (AdaptationState == 1.0) { // Observer is fully adapted. Keep chromatic adaptation CopyMemory(m, &Scale, sizeof(MAT3)); } else { // Observer is not adapted, undo the chromatic adaptation m1 = *ChromaticAdaptationMatrixIn; MAT3inverse(&m1, &m2); MAT3per(&m3, &m2, &Scale); MAT3per(m, &m3, ChromaticAdaptationMatrixOut); } VEC3init(of, 0.0, 0.0, 0.0); } // The (in)famous black point compensation. Right now implemented as // a linear scaling in XYZ static void ComputeBlackPointCompensationFactors(LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 m, LPVEC3 of) { cmsCIEXYZ RelativeBlackPointIn, RelativeBlackPointOut; double ax, ay, az, bx, by, bz, tx, ty, tz; // At first, convert both black points to relative. cmsAdaptToIlluminant(&RelativeBlackPointIn, WhitePointIn, IlluminantIn, BlackPointIn); cmsAdaptToIlluminant(&RelativeBlackPointOut, WhitePointOut, IlluminantOut, BlackPointOut); // Now we need to compute a matrix plus an offset m and of such of // [m]*bpin + off = bpout // [m]*D50 + off = D50 // // This is a linear scaling in the form ax+b, where // a = (bpout - D50) / (bpin - D50) // b = - D50* (bpout - bpin) / (bpin - D50) tx = RelativeBlackPointIn.X - IlluminantIn ->X; ty = RelativeBlackPointIn.Y - IlluminantIn ->Y; tz = RelativeBlackPointIn.Z - IlluminantIn ->Z; ax = (RelativeBlackPointOut.X - IlluminantOut ->X) / tx; ay = (RelativeBlackPointOut.Y - IlluminantOut ->Y) / ty; az = (RelativeBlackPointOut.Z - IlluminantOut ->Z) / tz; bx = - IlluminantOut -> X * (RelativeBlackPointOut.X - RelativeBlackPointIn.X) / tx; by = - IlluminantOut -> Y * (RelativeBlackPointOut.Y - RelativeBlackPointIn.Y) / ty; bz = - IlluminantOut -> Z * (RelativeBlackPointOut.Z - RelativeBlackPointIn.Z) / tz; MAT3identity(m); m->v[VX].n[0] = ax; m->v[VY].n[1] = ay; m->v[VZ].n[2] = az; VEC3init(of, bx, by, bz); } // Return TRUE if both m and of are empy -- "m" being identity and "of" being 0 static LCMSBOOL IdentityParameters(LPWMAT3 m, LPWVEC3 of) { WVEC3 wv0; VEC3initF(&wv0, 0, 0, 0); if (!MAT3isIdentity(m, 0.00001)) return FALSE; if (!VEC3equal(of, &wv0, 0.00001)) return FALSE; return TRUE; } // ----------------------------------------- Inter PCS conversions // XYZ to XYZ linear scaling. Aso used on Black point compensation static void XYZ2XYZ(WORD In[], WORD Out[], LPWMAT3 m, LPWVEC3 of) { WVEC3 a, r; a.n[0] = In[0] << 1; a.n[1] = In[1] << 1; a.n[2] = In[2] << 1; MAT3evalW(&r, m, &a); Out[0] = _cmsClampWord((r.n[VX] + of->n[VX]) >> 1); Out[1] = _cmsClampWord((r.n[VY] + of->n[VY]) >> 1); Out[2] = _cmsClampWord((r.n[VZ] + of->n[VZ]) >> 1); } // XYZ to Lab, scaling first static void XYZ2Lab(WORD In[], WORD Out[], LPWMAT3 m, LPWVEC3 of) { WORD XYZ[3]; XYZ2XYZ(In, XYZ, m, of); cmsXYZ2LabEncoded(XYZ, Out); } // Lab to XYZ, then scalling static void Lab2XYZ(WORD In[], WORD Out[], LPWMAT3 m, LPWVEC3 of) { WORD XYZ[3]; cmsLab2XYZEncoded(In, XYZ); XYZ2XYZ(XYZ, Out, m, of); } // Lab to XYZ, scalling and then, back to Lab static void Lab2XYZ2Lab(WORD In[], WORD Out[], LPWMAT3 m, LPWVEC3 of) { WORD XYZ[3], XYZ2[3]; cmsLab2XYZEncoded(In, XYZ); XYZ2XYZ(XYZ, XYZ2, m, of); cmsXYZ2LabEncoded(XYZ2, Out); } // ------------------------------------------------------------------ // Dispatcher for XYZ Relative LUT static int FromXYZRelLUT(int Absolute, LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPMAT3 ChromaticAdaptationMatrixIn, int Phase2, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 ChromaticAdaptationMatrixOut, int DoBlackPointCompensation, double AdaptationState, _cmsADJFN *fn1, LPMAT3 m, LPVEC3 of) { switch (Phase2) { // From relative XYZ to Relative XYZ. case XYZRel: if (Absolute) { // From input relative to absolute, and then // back to output relative Rel2RelStepAbsCoefs(AdaptationState, BlackPointIn, WhitePointIn, IlluminantIn, ChromaticAdaptationMatrixIn, BlackPointOut, WhitePointOut, IlluminantOut, ChromaticAdaptationMatrixOut, m, of); *fn1 = XYZ2XYZ; } else { // XYZ Relative to XYZ relative, no op required *fn1 = NULL; if (DoBlackPointCompensation) { *fn1 = XYZ2XYZ; ComputeBlackPointCompensationFactors(BlackPointIn, WhitePointIn, IlluminantIn, BlackPointOut, WhitePointOut, IlluminantOut, m, of); } } break; // From relative XYZ to Relative Lab case LabRel: // First pass XYZ to absolute, then to relative and // finally to Lab. I use here D50 for output in order // to prepare the "to Lab" conversion. if (Absolute) { Rel2RelStepAbsCoefs(AdaptationState, BlackPointIn, WhitePointIn, IlluminantIn, ChromaticAdaptationMatrixIn, BlackPointOut, WhitePointOut, IlluminantOut, ChromaticAdaptationMatrixOut, m, of); *fn1 = XYZ2Lab; } else { // Just Convert to Lab MAT3identity(m); VEC3init(of, 0, 0, 0); *fn1 = XYZ2Lab; if (DoBlackPointCompensation) { ComputeBlackPointCompensationFactors(BlackPointIn, WhitePointIn, IlluminantIn, BlackPointOut, WhitePointOut, IlluminantOut, m, of); } } break; default: return FALSE; } return TRUE; } // From Lab Relative type LUT static int FromLabRelLUT(int Absolute, LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPMAT3 ChromaticAdaptationMatrixIn, int Phase2, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 ChromaticAdaptationMatrixOut, int DoBlackPointCompensation, double AdaptationState, _cmsADJFN *fn1, LPMAT3 m, LPVEC3 of) { switch (Phase2) { // From Lab Relative to XYZ Relative, very usual case case XYZRel: if (Absolute) { // Absolute intent // From lab relative, to XYZ absolute, and then, // back to XYZ relative Rel2RelStepAbsCoefs(AdaptationState, BlackPointIn, WhitePointIn, cmsD50_XYZ(), ChromaticAdaptationMatrixIn, BlackPointOut, WhitePointOut, IlluminantOut, ChromaticAdaptationMatrixOut, m, of); *fn1 = Lab2XYZ; } else { // From Lab relative, to XYZ relative. *fn1 = Lab2XYZ; if (DoBlackPointCompensation) { ComputeBlackPointCompensationFactors(BlackPointIn, WhitePointIn, IlluminantIn, BlackPointOut, WhitePointOut, IlluminantOut, m, of); } } break; case LabRel: if (Absolute) { // First pass to XYZ using the input illuminant // * InIlluminant / D50, then to absolute. Then // to relative, but for input Rel2RelStepAbsCoefs(AdaptationState, BlackPointIn, WhitePointIn, IlluminantIn, ChromaticAdaptationMatrixIn, BlackPointOut, WhitePointOut, cmsD50_XYZ(), ChromaticAdaptationMatrixOut, m, of); *fn1 = Lab2XYZ2Lab; } else { // Lab -> Lab relative don't need any adjust unless // black point compensation *fn1 = NULL; if (DoBlackPointCompensation) { *fn1 = Lab2XYZ2Lab; ComputeBlackPointCompensationFactors(BlackPointIn, WhitePointIn, IlluminantIn, BlackPointOut, WhitePointOut, IlluminantOut, m, of); } } break; default: return FALSE; } return TRUE; } // This function does calculate the necessary conversion operations // needed from transpassing data from a LUT to a LUT. The conversion // is modeled as a pointer of function and two coefficients, a and b // The function is actually called only if not null pointer is provided, // and the two paramaters are passed in. There are several types of // conversions, but basically they do a linear scalling and a interchange // Main dispatcher int cmsChooseCnvrt(int Absolute, int Phase1, LPcmsCIEXYZ BlackPointIn, LPcmsCIEXYZ WhitePointIn, LPcmsCIEXYZ IlluminantIn, LPMAT3 ChromaticAdaptationMatrixIn, int Phase2, LPcmsCIEXYZ BlackPointOut, LPcmsCIEXYZ WhitePointOut, LPcmsCIEXYZ IlluminantOut, LPMAT3 ChromaticAdaptationMatrixOut, int DoBlackPointCompensation, double AdaptationState, _cmsADJFN *fn1, LPWMAT3 wm, LPWVEC3 wof) { int rc; MAT3 m; VEC3 of; MAT3identity(&m); VEC3init(&of, 0, 0, 0); switch (Phase1) { // Input LUT is giving XYZ relative values. case XYZRel: rc = FromXYZRelLUT(Absolute, BlackPointIn, WhitePointIn, IlluminantIn, ChromaticAdaptationMatrixIn, Phase2, BlackPointOut, WhitePointOut, IlluminantOut, ChromaticAdaptationMatrixOut, DoBlackPointCompensation, AdaptationState, fn1, &m, &of); break; // Input LUT is giving Lab relative values case LabRel: rc = FromLabRelLUT(Absolute, BlackPointIn, WhitePointIn, IlluminantIn, ChromaticAdaptationMatrixIn, Phase2, BlackPointOut, WhitePointOut, IlluminantOut, ChromaticAdaptationMatrixOut, DoBlackPointCompensation, AdaptationState, fn1, &m, &of); break; // Unrecognized combination default: cmsSignalError(LCMS_ERRC_ABORTED, "(internal) Phase error"); return FALSE; } MAT3toFix(wm, &m); VEC3toFix(wof, &of); // Do some optimization -- discard conversion if identity parameters. if (*fn1 == XYZ2XYZ || *fn1 == Lab2XYZ2Lab) { if (IdentityParameters(wm, wof)) *fn1 = NULL; } return rc; } lcms-1.19/src/cmserr.c0000777000175300010010000000627511277220504014114 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // As a rule, only the functions visible from API can signal // errors. void cdecl cmsSignalError(int ErrorCode, const char *ErrorText, ...); int LCMSEXPORT cmsErrorAction(int lAbort); void LCMSEXPORT cmsSetErrorHandler(cmsErrorHandlerFunction Fn); // ****************************************************************** static int nDoAbort = LCMS_ERROR_ABORT; static cmsErrorHandlerFunction UserErrorHandler = (cmsErrorHandlerFunction) NULL; int LCMSEXPORT cmsErrorAction(int nAction) { int nOld = nDoAbort; nDoAbort = nAction; return nOld; } void LCMSEXPORT cmsSetErrorHandler(cmsErrorHandlerFunction Fn) { UserErrorHandler = Fn; } // Default error handler void cmsSignalError(int ErrorCode, const char *ErrorText, ...) { va_list args; if (nDoAbort == LCMS_ERROR_IGNORE) return; va_start(args, ErrorText); if (UserErrorHandler != NULL) { char Buffer[1024]; vsnprintf(Buffer, 1023, ErrorText, args); va_end(args); if (UserErrorHandler(ErrorCode, Buffer)) { return; } } #if defined( __CONSOLE__ ) || defined( NON_WINDOWS ) || defined(UNICODE) fprintf(stderr, "lcms: Error #%d; ", ErrorCode); vfprintf(stderr, ErrorText, args); fprintf(stderr, "\n"); va_end(args); if (nDoAbort == LCMS_ERROR_ABORT) exit(1); #else { char Buffer1[1024]; char Buffer2[256]; snprintf(Buffer1, 767, "Error #%x; ", ErrorCode); vsnprintf(Buffer2, 255, ErrorText, args); strcat(Buffer1, Buffer2); MessageBox(NULL, Buffer1, "Little cms", MB_OK|MB_ICONSTOP|MB_TASKMODAL); va_end(args); if (nDoAbort == LCMS_ERROR_ABORT) { #ifdef __BORLANDC__ _cexit(); #endif FatalAppExit(0, "lcms is terminating application"); } } #endif } lcms-1.19/src/cmsgamma.c0000777000175300010010000006052711272606371014413 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Gamma handling. LPGAMMATABLE LCMSEXPORT cmsAllocGamma(int nEntries); void LCMSEXPORT cmsFreeGamma(LPGAMMATABLE Gamma); void LCMSEXPORT cmsFreeGammaTriple(LPGAMMATABLE Gamma[3]); LPGAMMATABLE LCMSEXPORT cmsBuildGamma(int nEntries, double Gamma); LPGAMMATABLE LCMSEXPORT cmsDupGamma(LPGAMMATABLE Src); LPGAMMATABLE LCMSEXPORT cmsReverseGamma(int nResultSamples, LPGAMMATABLE InGamma); LPGAMMATABLE LCMSEXPORT cmsBuildParametricGamma(int nEntries, int Type, double Params[]); LPGAMMATABLE LCMSEXPORT cmsJoinGamma(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma); LPGAMMATABLE LCMSEXPORT cmsJoinGammaEx(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma, int nPoints); LCMSBOOL LCMSEXPORT cmsSmoothGamma(LPGAMMATABLE Tab, double lambda); LCMSBOOL cdecl _cmsSmoothEndpoints(LPWORD Table, int nPoints); // Sampled curves LPSAMPLEDCURVE cdecl cmsAllocSampledCurve(int nItems); void cdecl cmsFreeSampledCurve(LPSAMPLEDCURVE p); void cdecl cmsEndpointsOfSampledCurve(LPSAMPLEDCURVE p, double* Min, double* Max); void cdecl cmsClampSampledCurve(LPSAMPLEDCURVE p, double Min, double Max); LCMSBOOL cdecl cmsSmoothSampledCurve(LPSAMPLEDCURVE Tab, double SmoothingLambda); void cdecl cmsRescaleSampledCurve(LPSAMPLEDCURVE p, double Min, double Max, int nPoints); LPSAMPLEDCURVE cdecl cmsJoinSampledCurves(LPSAMPLEDCURVE X, LPSAMPLEDCURVE Y, int nResultingPoints); double LCMSEXPORT cmsEstimateGamma(LPGAMMATABLE t); double LCMSEXPORT cmsEstimateGammaEx(LPWORD GammaTable, int nEntries, double Thereshold); // ---------------------------------------------------------------------------------------- #define MAX_KNOTS 4096 typedef float vec[MAX_KNOTS+1]; // Ciclic-redundant-check for assuring table is a true representation of parametric curve // The usual polynomial, which is used for AAL5, FDDI, and probably Ethernet #define QUOTIENT 0x04c11db7 static unsigned int Crc32(unsigned int result, LPVOID ptr, int len) { int i,j; BYTE octet; LPBYTE data = (LPBYTE) ptr; for (i=0; i < len; i++) { octet = *data++; for (j=0; j < 8; j++) { if (result & 0x80000000) { result = (result << 1) ^ QUOTIENT ^ (octet >> 7); } else { result = (result << 1) ^ (octet >> 7); } octet <<= 1; } } return result; } // Get CRC of gamma table unsigned int _cmsCrc32OfGammaTable(LPGAMMATABLE Table) { unsigned int crc = ~0U; crc = Crc32(crc, &Table -> Seed.Type, sizeof(int)); crc = Crc32(crc, Table ->Seed.Params, sizeof(double)*10); crc = Crc32(crc, &Table ->nEntries, sizeof(int)); crc = Crc32(crc, Table ->GammaTable, sizeof(WORD) * Table -> nEntries); return ~crc; } LPGAMMATABLE LCMSEXPORT cmsAllocGamma(int nEntries) { LPGAMMATABLE p; size_t size; if (nEntries > 65530 || nEntries <= 0) { cmsSignalError(LCMS_ERRC_ABORTED, "Couldn't create gammatable of more than 65530 entries"); return NULL; } size = sizeof(GAMMATABLE) + (sizeof(WORD) * (nEntries-1)); p = (LPGAMMATABLE) _cmsMalloc(size); if (!p) return NULL; ZeroMemory(p, size); p -> Seed.Type = 0; p -> nEntries = nEntries; return p; } void LCMSEXPORT cmsFreeGamma(LPGAMMATABLE Gamma) { if (Gamma) _cmsFree(Gamma); } void LCMSEXPORT cmsFreeGammaTriple(LPGAMMATABLE Gamma[3]) { cmsFreeGamma(Gamma[0]); cmsFreeGamma(Gamma[1]); cmsFreeGamma(Gamma[2]); Gamma[0] = Gamma[1] = Gamma[2] = NULL; } // Duplicate a gamma table LPGAMMATABLE LCMSEXPORT cmsDupGamma(LPGAMMATABLE In) { LPGAMMATABLE Ptr; size_t size; Ptr = cmsAllocGamma(In -> nEntries); if (Ptr == NULL) return NULL; size = sizeof(GAMMATABLE) + (sizeof(WORD) * (In -> nEntries-1)); CopyMemory(Ptr, In, size); return Ptr; } // Handle gamma using interpolation tables. The resulting curves can become // very stange, but are pleasent to eye. LPGAMMATABLE LCMSEXPORT cmsJoinGamma(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma) { register int i; L16PARAMS L16In, L16Out; LPWORD InPtr, OutPtr; LPGAMMATABLE p; p = cmsAllocGamma(256); if (!p) return NULL; cmsCalcL16Params(InGamma -> nEntries, &L16In); InPtr = InGamma -> GammaTable; cmsCalcL16Params(OutGamma -> nEntries, &L16Out); OutPtr = OutGamma-> GammaTable; for (i=0; i < 256; i++) { WORD wValIn, wValOut; wValIn = cmsLinearInterpLUT16(RGB_8_TO_16(i), InPtr, &L16In); wValOut = cmsReverseLinearInterpLUT16(wValIn, OutPtr, &L16Out); p -> GammaTable[i] = wValOut; } return p; } // New method, using smoothed parametric curves. This works FAR better. // We want to get // // y = f(g^-1(x)) ; f = ingamma, g = outgamma // // And this can be parametrized as // // y = f(t) // x = g(t) LPGAMMATABLE LCMSEXPORT cmsJoinGammaEx(LPGAMMATABLE InGamma, LPGAMMATABLE OutGamma, int nPoints) { LPSAMPLEDCURVE x, y, r; LPGAMMATABLE res; x = cmsConvertGammaToSampledCurve(InGamma, nPoints); y = cmsConvertGammaToSampledCurve(OutGamma, nPoints); r = cmsJoinSampledCurves(y, x, nPoints); // Does clean "hair" cmsSmoothSampledCurve(r, 0.001); cmsClampSampledCurve(r, 0.0, 65535.0); cmsFreeSampledCurve(x); cmsFreeSampledCurve(y); res = cmsConvertSampledCurveToGamma(r, 65535.0); cmsFreeSampledCurve(r); return res; } // Reverse a gamma table LPGAMMATABLE LCMSEXPORT cmsReverseGamma(int nResultSamples, LPGAMMATABLE InGamma) { register int i; L16PARAMS L16In; LPWORD InPtr; LPGAMMATABLE p; // Try to reverse it analytically whatever possible if (InGamma -> Seed.Type > 0 && InGamma -> Seed.Type <= 5 && _cmsCrc32OfGammaTable(InGamma) == InGamma -> Seed.Crc32) { return cmsBuildParametricGamma(nResultSamples, -(InGamma -> Seed.Type), InGamma ->Seed.Params); } // Nope, reverse the table p = cmsAllocGamma(nResultSamples); if (!p) return NULL; cmsCalcL16Params(InGamma -> nEntries, &L16In); InPtr = InGamma -> GammaTable; for (i=0; i < nResultSamples; i++) { WORD wValIn, wValOut; wValIn = _cmsQuantizeVal(i, nResultSamples); wValOut = cmsReverseLinearInterpLUT16(wValIn, InPtr, &L16In); p -> GammaTable[i] = wValOut; } return p; } // Parametric curves // // Parameters goes as: Gamma, a, b, c, d, e, f // Type is the ICC type +1 // if type is negative, then the curve is analyticaly inverted LPGAMMATABLE LCMSEXPORT cmsBuildParametricGamma(int nEntries, int Type, double Params[]) { LPGAMMATABLE Table; double R, Val, dval, e; int i; int ParamsByType[] = { 0, 1, 3, 4, 5, 7 }; Table = cmsAllocGamma(nEntries); if (NULL == Table) return NULL; Table -> Seed.Type = Type; CopyMemory(Table ->Seed.Params, Params, ParamsByType[abs(Type)] * sizeof(double)); for (i=0; i < nEntries; i++) { R = (double) i / (nEntries-1); switch (Type) { // X = Y ^ Gamma case 1: Val = pow(R, Params[0]); break; // Type 1 Reversed: X = Y ^1/gamma case -1: Val = pow(R, 1/Params[0]); break; // CIE 122-1966 // Y = (aX + b)^Gamma | X >= -b/a // Y = 0 | else case 2: if (R >= -Params[2] / Params[1]) { e = Params[1]*R + Params[2]; if (e > 0) Val = pow(e, Params[0]); else Val = 0; } else Val = 0; break; // Type 2 Reversed // X = (Y ^1/g - b) / a case -2: Val = (pow(R, 1.0/Params[0]) - Params[2]) / Params[1]; if (Val < 0) Val = 0; break; // IEC 61966-3 // Y = (aX + b)^Gamma | X <= -b/a // Y = c | else case 3: if (R >= -Params[2] / Params[1]) { e = Params[1]*R + Params[2]; Val = pow(e, Params[0]) + Params[3]; } else Val = Params[3]; break; // Type 3 reversed // X=((Y-c)^1/g - b)/a | (Y>=c) // X=-b/a | (Y= Params[3]) { e = R - Params[3]; Val = (pow(e, 1/Params[0]) - Params[2]) / Params[1]; if (Val < 0) Val = 0; } else { Val = -Params[2] / Params[1]; } break; // IEC 61966-2.1 (sRGB) // Y = (aX + b)^Gamma | X >= d // Y = cX | X < d case 4: if (R >= Params[4]) { e = Params[1]*R + Params[2]; if (e > 0) Val = pow(e, Params[0]); else Val = 0; } else Val = R * Params[3]; break; // Type 4 reversed // X=((Y^1/g-b)/a) | Y >= (ad+b)^g // X=Y/c | Y< (ad+b)^g case -4: if (R >= pow(Params[1] * Params[4] + Params[2], Params[0])) { Val = (pow(R, 1.0/Params[0]) - Params[2]) / Params[1]; } else { Val = R / Params[3]; } break; // Y = (aX + b)^Gamma + e | X <= d // Y = cX + f | else case 5: if (R >= Params[4]) { e = Params[1]*R + Params[2]; Val = pow(e, Params[0]) + Params[5]; } else Val = R*Params[3] + Params[6]; break; // Reversed type 5 // X=((Y-e)1/g-b)/a | Y >=(ad+b)^g+e) // X=(Y-f)/c | else case -5: if (R >= pow(Params[1] * Params[4], Params[0]) + Params[5]) { Val = pow(R - Params[5], 1/Params[0]) - Params[2] / Params[1]; } else { Val = (R - Params[6]) / Params[3]; } break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Unsupported parametric curve type=%d", abs(Type)-1); cmsFreeGamma(Table); return NULL; } // Saturate dval = Val * 65535.0 + .5; if (dval > 65535.) dval = 65535.0; if (dval < 0) dval = 0; Table->GammaTable[i] = (WORD) floor(dval); } Table -> Seed.Crc32 = _cmsCrc32OfGammaTable(Table); return Table; } // Build a gamma table based on gamma constant LPGAMMATABLE LCMSEXPORT cmsBuildGamma(int nEntries, double Gamma) { return cmsBuildParametricGamma(nEntries, 1, &Gamma); } // From: Eilers, P.H.C. (1994) Smoothing and interpolation with finite // differences. in: Graphic Gems IV, Heckbert, P.S. (ed.), Academic press. // // Smoothing and interpolation with second differences. // // Input: weights (w), data (y): vector from 1 to m. // Input: smoothing parameter (lambda), length (m). // Output: smoothed vector (z): vector from 1 to m. static void smooth2(vec w, vec y, vec z, float lambda, int m) { int i, i1, i2; vec c, d, e; d[1] = w[1] + lambda; c[1] = -2 * lambda / d[1]; e[1] = lambda /d[1]; z[1] = w[1] * y[1]; d[2] = w[2] + 5 * lambda - d[1] * c[1] * c[1]; c[2] = (-4 * lambda - d[1] * c[1] * e[1]) / d[2]; e[2] = lambda / d[2]; z[2] = w[2] * y[2] - c[1] * z[1]; for (i = 3; i < m - 1; i++) { i1 = i - 1; i2 = i - 2; d[i]= w[i] + 6 * lambda - c[i1] * c[i1] * d[i1] - e[i2] * e[i2] * d[i2]; c[i] = (-4 * lambda -d[i1] * c[i1] * e[i1])/ d[i]; e[i] = lambda / d[i]; z[i] = w[i] * y[i] - c[i1] * z[i1] - e[i2] * z[i2]; } i1 = m - 2; i2 = m - 3; d[m - 1] = w[m - 1] + 5 * lambda -c[i1] * c[i1] * d[i1] - e[i2] * e[i2] * d[i2]; c[m - 1] = (-2 * lambda - d[i1] * c[i1] * e[i1]) / d[m - 1]; z[m - 1] = w[m - 1] * y[m - 1] - c[i1] * z[i1] - e[i2] * z[i2]; i1 = m - 1; i2 = m - 2; d[m] = w[m] + lambda - c[i1] * c[i1] * d[i1] - e[i2] * e[i2] * d[i2]; z[m] = (w[m] * y[m] - c[i1] * z[i1] - e[i2] * z[i2]) / d[m]; z[m - 1] = z[m - 1] / d[m - 1] - c[m - 1] * z[m]; for (i = m - 2; 1<= i; i--) z[i] = z[i] / d[i] - c[i] * z[i + 1] - e[i] * z[i + 2]; } // Smooths a curve sampled at regular intervals LCMSBOOL LCMSEXPORT cmsSmoothGamma(LPGAMMATABLE Tab, double lambda) { vec w, y, z; int i, nItems, Zeros, Poles; if (cmsIsLinear(Tab->GammaTable, Tab->nEntries)) return FALSE; // Nothing to do nItems = Tab -> nEntries; if (nItems > MAX_KNOTS) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsSmoothGamma: too many points."); return FALSE; } ZeroMemory(w, nItems * sizeof(float)); ZeroMemory(y, nItems * sizeof(float)); ZeroMemory(z, nItems * sizeof(float)); for (i=0; i < nItems; i++) { y[i+1] = (float) Tab -> GammaTable[i]; w[i+1] = 1.0; } smooth2(w, y, z, (float) lambda, nItems); // Do some reality - checking... Zeros = Poles = 0; for (i=nItems; i > 1; --i) { if (z[i] == 0.) Zeros++; if (z[i] >= 65535.) Poles++; if (z[i] < z[i-1]) return FALSE; // Non-Monotonic } if (Zeros > (nItems / 3)) return FALSE; // Degenerated, mostly zeros if (Poles > (nItems / 3)) return FALSE; // Degenerated, mostly poles // Seems ok for (i=0; i < nItems; i++) { // Clamp to WORD float v = z[i+1]; if (v < 0) v = 0; if (v > 65535.) v = 65535.; Tab -> GammaTable[i] = (WORD) floor(v + .5); } return TRUE; } // Check if curve is exponential, return gamma if so. double LCMSEXPORT cmsEstimateGammaEx(LPWORD GammaTable, int nEntries, double Thereshold) { double gamma, sum, sum2; double n, x, y, Std; int i; sum = sum2 = n = 0; // Does exclude endpoints for (i=1; i < nEntries - 1; i++) { x = (double) i / (nEntries - 1); y = (double) GammaTable[i] / 65535.; // Avoid 7% on lower part to prevent // artifacts due to linear ramps if (y > 0. && y < 1. && x > 0.07) { gamma = log(y) / log(x); sum += gamma; sum2 += gamma * gamma; n++; } } // Take a look on SD to see if gamma isn't exponential at all Std = sqrt((n * sum2 - sum * sum) / (n*(n-1))); if (Std > Thereshold) return -1.0; return (sum / n); // The mean } double LCMSEXPORT cmsEstimateGamma(LPGAMMATABLE t) { return cmsEstimateGammaEx(t->GammaTable, t->nEntries, 0.7); } // -----------------------------------------------------------------Sampled curves // Allocate a empty curve LPSAMPLEDCURVE cmsAllocSampledCurve(int nItems) { LPSAMPLEDCURVE pOut; pOut = (LPSAMPLEDCURVE) _cmsMalloc(sizeof(SAMPLEDCURVE)); if (pOut == NULL) return NULL; if((pOut->Values = (double *) _cmsMalloc(nItems * sizeof(double))) == NULL) { _cmsFree(pOut); return NULL; } pOut->nItems = nItems; ZeroMemory(pOut->Values, nItems * sizeof(double)); return pOut; } void cmsFreeSampledCurve(LPSAMPLEDCURVE p) { _cmsFree((LPVOID) p -> Values); _cmsFree((LPVOID) p); } // Does duplicate a sampled curve LPSAMPLEDCURVE cmsDupSampledCurve(LPSAMPLEDCURVE p) { LPSAMPLEDCURVE out; out = cmsAllocSampledCurve(p -> nItems); if (!out) return NULL; CopyMemory(out ->Values, p ->Values, p->nItems * sizeof(double)); return out; } // Take min, max of curve void cmsEndpointsOfSampledCurve(LPSAMPLEDCURVE p, double* Min, double* Max) { int i; *Min = 65536.; *Max = 0.; for (i=0; i < p -> nItems; i++) { double v = p -> Values[i]; if (v < *Min) *Min = v; if (v > *Max) *Max = v; } if (*Min < 0) *Min = 0; if (*Max > 65535.0) *Max = 65535.0; } // Clamps to Min, Max void cmsClampSampledCurve(LPSAMPLEDCURVE p, double Min, double Max) { int i; for (i=0; i < p -> nItems; i++) { double v = p -> Values[i]; if (v < Min) v = Min; if (v > Max) v = Max; p -> Values[i] = v; } } // Smooths a curve sampled at regular intervals LCMSBOOL cmsSmoothSampledCurve(LPSAMPLEDCURVE Tab, double lambda) { vec w, y, z; int i, nItems; nItems = Tab -> nItems; if (nItems > MAX_KNOTS) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsSmoothSampledCurve: too many points."); return FALSE; } ZeroMemory(w, nItems * sizeof(float)); ZeroMemory(y, nItems * sizeof(float)); ZeroMemory(z, nItems * sizeof(float)); for (i=0; i < nItems; i++) { float value = (float) Tab -> Values[i]; y[i+1] = value; w[i+1] = (float) ((value < 0.0) ? 0 : 1); } smooth2(w, y, z, (float) lambda, nItems); for (i=0; i < nItems; i++) { Tab -> Values[i] = z[i+1];; } return TRUE; } // Scale a value v, within domain Min .. Max // to a domain 0..(nPoints-1) static double ScaleVal(double v, double Min, double Max, int nPoints) { double a, b; if (v <= Min) return 0; if (v >= Max) return (nPoints-1); a = (double) (nPoints - 1) / (Max - Min); b = a * Min; return (a * v) - b; } // Does rescale a sampled curve to fit in a 0..(nPoints-1) domain void cmsRescaleSampledCurve(LPSAMPLEDCURVE p, double Min, double Max, int nPoints) { int i; for (i=0; i < p -> nItems; i++) { double v = p -> Values[i]; p -> Values[i] = ScaleVal(v, Min, Max, nPoints); } } // Joins two sampled curves for X and Y. Curves should be sorted. LPSAMPLEDCURVE cmsJoinSampledCurves(LPSAMPLEDCURVE X, LPSAMPLEDCURVE Y, int nResultingPoints) { int i, j; LPSAMPLEDCURVE out; double MinX, MinY, MaxX, MaxY; double x, y, x1, y1, x2, y2, a, b; out = cmsAllocSampledCurve(nResultingPoints); if (out == NULL) return NULL; if (X -> nItems != Y -> nItems) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsJoinSampledCurves: invalid curve."); cmsFreeSampledCurve(out); return NULL; } // Get endpoints of sampled curves cmsEndpointsOfSampledCurve(X, &MinX, &MaxX); cmsEndpointsOfSampledCurve(Y, &MinY, &MaxY); // Set our points out ->Values[0] = MinY; for (i=1; i < nResultingPoints; i++) { // Scale t to x domain x = (i * (MaxX - MinX) / (nResultingPoints-1)) + MinX; // Find interval in which j is within (always up, // since fn should be monotonic at all) j = 1; while ((j < X ->nItems - 1) && X ->Values[j] < x) j++; // Now x is within X[j-1], X[j] x1 = X ->Values[j-1]; x2 = X ->Values[j]; y1 = Y ->Values[j-1]; y2 = Y ->Values[j]; // Interpolate the value a = (y1 - y2) / (x1 - x2); b = y1 - a * x1; y = a* x + b; out ->Values[i] = y; } cmsClampSampledCurve(out, MinY, MaxY); return out; } // Convert between curve types LPGAMMATABLE cmsConvertSampledCurveToGamma(LPSAMPLEDCURVE Sampled, double Max) { LPGAMMATABLE Gamma; int i, nPoints; nPoints = Sampled ->nItems; Gamma = cmsAllocGamma(nPoints); for (i=0; i < nPoints; i++) { Gamma->GammaTable[i] = (WORD) floor(ScaleVal(Sampled ->Values[i], 0, Max, 65536) + .5); } return Gamma; } // Inverse of anterior LPSAMPLEDCURVE cmsConvertGammaToSampledCurve(LPGAMMATABLE Gamma, int nPoints) { LPSAMPLEDCURVE Sampled; L16PARAMS L16; int i; WORD wQuant, wValIn; if (nPoints > 4096) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsConvertGammaToSampledCurve: too many points (max=4096)"); return NULL; } cmsCalcL16Params(Gamma -> nEntries, &L16); Sampled = cmsAllocSampledCurve(nPoints); for (i=0; i < nPoints; i++) { wQuant = _cmsQuantizeVal(i, nPoints); wValIn = cmsLinearInterpLUT16(wQuant, Gamma ->GammaTable, &L16); Sampled ->Values[i] = (float) wValIn; } return Sampled; } // Smooth endpoints (used in Black/White compensation) LCMSBOOL _cmsSmoothEndpoints(LPWORD Table, int nEntries) { vec w, y, z; int i, Zeros, Poles; if (cmsIsLinear(Table, nEntries)) return FALSE; // Nothing to do if (nEntries > MAX_KNOTS) { cmsSignalError(LCMS_ERRC_ABORTED, "_cmsSmoothEndpoints: too many points."); return FALSE; } ZeroMemory(w, nEntries * sizeof(float)); ZeroMemory(y, nEntries * sizeof(float)); ZeroMemory(z, nEntries * sizeof(float)); for (i=0; i < nEntries; i++) { y[i+1] = (float) Table[i]; w[i+1] = 1.0; } w[1] = 65535.0; w[nEntries] = 65535.0; smooth2(w, y, z, (float) nEntries, nEntries); // Do some reality - checking... Zeros = Poles = 0; for (i=nEntries; i > 1; --i) { if (z[i] == 0.) Zeros++; if (z[i] >= 65535.) Poles++; if (z[i] < z[i-1]) return FALSE; // Non-Monotonic } if (Zeros > (nEntries / 3)) return FALSE; // Degenerated, mostly zeros if (Poles > (nEntries / 3)) return FALSE; // Degenerated, mostly poles // Seems ok for (i=0; i < nEntries; i++) { // Clamp to WORD float v = z[i+1]; if (v < 0) v = 0; if (v > 65535.) v = 65535.; Table[i] = (WORD) floor(v + .5); } return TRUE; } lcms-1.19/src/cmsgmt.c0000777000175300010010000010656711272606371014125 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" /* Gamut check by default is a catching of 0xFFFF/0xFFFF/0xFFFF PCS values, used internally by lcms to hold invalid values. Matrix LUT's, operates in a way that unencodeable values are marked as this combination, if PCS is XYZ, this is a very high value since encoding is a 1.15 fixed point, something like 1.9997, 1.9997, 1.9997 not a very common color after all. Lab PCS is not to be a problem, since L>100 are truely undefined. There is a posibility than ICC comitee defines L>100 as a valid means to use highlights, then it will be lost. (1.10 - Actually ICC did it, so this should be checked for full ICC 4.0 support) */ LCMSBOOL _cmsEndPointsBySpace(icColorSpaceSignature Space, WORD **White, WORD **Black, int *nOutputs) { // Only most common spaces static WORD RGBblack[4] = { 0, 0, 0 }; static WORD RGBwhite[4] = { 0xffff, 0xffff, 0xffff }; static WORD CMYKblack[4] = { 0xffff, 0xffff, 0xffff, 0xffff }; // 400% of ink static WORD CMYKwhite[4] = { 0, 0, 0, 0 }; static WORD LABblack[4] = { 0, 0x8000, 0x8000 }; static WORD LABwhite[4] = { 0xFF00, 0x8000, 0x8000 }; static WORD CMYblack[4] = { 0xffff, 0xffff, 0xffff }; static WORD CMYwhite[4] = { 0, 0, 0 }; static WORD Grayblack[4] = { 0 }; static WORD GrayWhite[4] = { 0xffff }; switch (Space) { case icSigGrayData: if (White) *White = GrayWhite; if (Black) *Black = Grayblack; if (nOutputs) *nOutputs = 1; return TRUE; case icSigRgbData: if (White) *White = RGBwhite; if (Black) *Black = RGBblack; if (nOutputs) *nOutputs = 3; return TRUE; case icSigLabData: if (White) *White = LABwhite; if (Black) *Black = LABblack; if (nOutputs) *nOutputs = 3; return TRUE; case icSigCmykData: if (White) *White = CMYKwhite; if (Black) *Black = CMYKblack; if (nOutputs) *nOutputs = 4; return TRUE; case icSigCmyData: if (White) *White = CMYwhite; if (Black) *Black = CMYblack; if (nOutputs) *nOutputs = 3; return TRUE; default:; } return FALSE; } WORD *_cmsWhiteBySpace(icColorSpaceSignature Space) { WORD *White= NULL, *Black = NULL; int Dummy; static WORD Default[MAXCHANNELS]; if (_cmsEndPointsBySpace(Space, &White, &Black, &Dummy)) return White; return Default; } WORD Clamp_L(Fixed32 in) { if (in == 0xFFFF) return 0xFFFFU; // Marker if (in > 0xFF00) return 0xFF00U; // L* = 100.0 return (WORD) in; } #define ENCODE_AB(x) (WORD) (((x) + 128.0) * 256.0 + 0.5) WORD Clamp_ab(Fixed32 in) { if (in == 0xFFFF) return 0xFFFFU; // Marker if (in < 0) return ENCODE_AB(-128.0); // Max negative number if (in > 0xFFFF) return ENCODE_AB(+127.9961); // Max positive number return (WORD) in; } // Returns dE on two Lab values double LCMSEXPORT cmsDeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2) { double dL, da, db; if (Lab1 -> L < 0 || Lab2 -> L < 0) return 65536.; if (Lab1 -> a < -200 || Lab1 -> a > 200) return 65536.; if (Lab1 -> b < -200 || Lab1 -> b > 200) return 65536.; if (Lab2 -> a < -200 || Lab2 -> a > 200) return 65536.; if (Lab2 -> b < -200 || Lab2 -> b > 200) return 65536.; if (Lab1 ->L == 0 && Lab2 ->L == 0) return 0; dL = fabs(Lab1 -> L - Lab2 -> L); da = fabs(Lab1 -> a - Lab2 -> a); db = fabs(Lab1 -> b - Lab2 -> b); return pow(dL*dL + da * da + db * db, 0.5); } // Square static double Sqr(double v) { return v * v; } // Return the CIE94 Delta E double LCMSEXPORT cmsCIE94DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2) { cmsCIELCh LCh1, LCh2; double dE, dL, dC, dh, dhsq; double c12, sc, sh; if (Lab1 ->L == 0 && Lab2 ->L == 0) return 0; dL = fabs(Lab1 ->L - Lab2 ->L); cmsLab2LCh(&LCh1, Lab1); cmsLab2LCh(&LCh2, Lab2); dC = fabs(LCh1.C - LCh2.C); dE = cmsDeltaE(Lab1, Lab2); dhsq = Sqr(dE) - Sqr(dL) - Sqr(dC); if (dhsq < 0) dh = 0; else dh = pow(dhsq, 0.5); c12 = sqrt(LCh1.C * LCh2.C); sc = 1.0 + (0.048 * c12); sh = 1.0 + (0.014 * c12); return sqrt(Sqr(dL) + Sqr(dC) / Sqr(sc) + Sqr(dh) / Sqr(sh)); } // Auxiliary static double ComputeLBFD(LPcmsCIELab Lab) { double yt; if (Lab->L > 7.996969) yt = (Sqr((Lab->L+16)/116)*((Lab->L+16)/116))*100; else yt = 100 * (Lab->L / 903.3); return (54.6 * (LOGE * (log(yt + 1.5))) - 9.6); } // bfd - gets BFD(1:1) difference between Lab1, Lab2 double LCMSEXPORT cmsBFDdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2) { double lbfd1,lbfd2,AveC,Aveh,dE,deltaL, deltaC,deltah,dc,t,g,dh,rh,rc,rt,bfd; cmsCIELCh LCh1, LCh2; if (Lab1 ->L == 0 && Lab2 ->L == 0) return 0; lbfd1 = ComputeLBFD(Lab1); lbfd2 = ComputeLBFD(Lab2); deltaL = lbfd2 - lbfd1; cmsLab2LCh(&LCh1, Lab1); cmsLab2LCh(&LCh2, Lab2); deltaC = LCh2.C - LCh1.C; AveC = (LCh1.C+LCh2.C)/2; Aveh = (LCh1.h+LCh2.h)/2; dE = cmsDeltaE(Lab1, Lab2); if (Sqr(dE)>(Sqr(Lab2->L-Lab1->L)+Sqr(deltaC))) deltah = sqrt(Sqr(dE)-Sqr(Lab2->L-Lab1->L)-Sqr(deltaC)); else deltah =0; dc = 0.035 * AveC / (1 + 0.00365 * AveC)+0.521; g = sqrt(Sqr(Sqr(AveC))/(Sqr(Sqr(AveC))+14000)); t = 0.627+(0.055*cos((Aveh-254)/(180/M_PI))- 0.040*cos((2*Aveh-136)/(180/M_PI))+ 0.070*cos((3*Aveh-31)/(180/M_PI))+ 0.049*cos((4*Aveh+114)/(180/M_PI))- 0.015*cos((5*Aveh-103)/(180/M_PI))); dh = dc*(g*t+1-g); rh = -0.260*cos((Aveh-308)/(180/M_PI))- 0.379*cos((2*Aveh-160)/(180/M_PI))- 0.636*cos((3*Aveh+254)/(180/M_PI))+ 0.226*cos((4*Aveh+140)/(180/M_PI))- 0.194*cos((5*Aveh+280)/(180/M_PI)); rc = sqrt((AveC*AveC*AveC*AveC*AveC*AveC)/((AveC*AveC*AveC*AveC*AveC*AveC)+70000000)); rt = rh*rc; bfd = sqrt(Sqr(deltaL)+Sqr(deltaC/dc)+Sqr(deltah/dh)+(rt*(deltaC/dc)*(deltah/dh))); return bfd; } // cmc - CMC(1:1) difference between Lab1, Lab2 double LCMSEXPORT cmsCMCdeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2) { double dE,dL,dC,dh,sl,sc,sh,t,f,cmc; cmsCIELCh LCh1, LCh2; if (Lab1 ->L == 0 && Lab2 ->L == 0) return 0; cmsLab2LCh(&LCh1, Lab1); cmsLab2LCh(&LCh2, Lab2); dL = Lab2->L-Lab1->L; dC = LCh2.C-LCh1.C; dE = cmsDeltaE(Lab1, Lab2); if (Sqr(dE)>(Sqr(dL)+Sqr(dC))) dh = sqrt(Sqr(dE)-Sqr(dL)-Sqr(dC)); else dh =0; if ((LCh1.h > 164) && (LCh1.h<345)) t = 0.56 + fabs(0.2 * cos(((LCh1.h + 168)/(180/M_PI)))); else t = 0.36 + fabs(0.4 * cos(((LCh1.h + 35 )/(180/M_PI)))); sc = 0.0638 * LCh1.C / (1 + 0.0131 * LCh1.C) + 0.638; sl = 0.040975 * Lab1->L /(1 + 0.01765 * Lab1->L); if (Lab1->L<16) sl = 0.511; f = sqrt((LCh1.C * LCh1.C * LCh1.C * LCh1.C)/((LCh1.C * LCh1.C * LCh1.C * LCh1.C)+1900)); sh = sc*(t*f+1-f); cmc = sqrt(Sqr(dL/sl)+Sqr(dC/sc)+Sqr(dh/sh)); return cmc; } static double atan2deg(double b, double a) { double h; if (a == 0 && b == 0) h = 0; else h = atan2(a, b); h *= (180. / M_PI); while (h > 360.) h -= 360.; while ( h < 0) h += 360.; return h; } static double RADIANES(double deg) { return (deg * M_PI) / 180.; } // dE2000 The weightings KL, KC and KH can be modified to reflect the relative // importance of lightness, chroma and hue in different industrial applications double LCMSEXPORT cmsCIE2000DeltaE(LPcmsCIELab Lab1, LPcmsCIELab Lab2, double Kl, double Kc, double Kh) { double L1 = Lab1->L; double a1 = Lab1->a; double b1 = Lab1->b; double C = sqrt( Sqr(a1) + Sqr(b1) ); double Ls = Lab2 ->L; double as = Lab2 ->a; double bs = Lab2 ->b; double Cs = sqrt( Sqr(as) + Sqr(bs) ); double G = 0.5 * ( 1 - sqrt(pow((C + Cs) / 2 , 7.0) / (pow((C + Cs) / 2, 7.0) + pow(25.0, 7.0) ) )); double a_p = (1 + G ) * a1; double b_p = b1; double C_p = sqrt( Sqr(a_p) + Sqr(b_p)); double h_p = atan2deg(a_p, b_p); double a_ps = (1 + G) * as; double b_ps = bs; double C_ps = sqrt(Sqr(a_ps) + Sqr(b_ps)); double h_ps = atan2deg(a_ps, b_ps); double meanC_p =(C_p + C_ps) / 2; double hps_plus_hp = h_ps + h_p; double hps_minus_hp = h_ps - h_p; double meanh_p = fabs(hps_minus_hp) <= 180.000001 ? (hps_plus_hp)/2 : (hps_plus_hp) < 360 ? (hps_plus_hp + 360)/2 : (hps_plus_hp - 360)/2; double delta_h = (hps_minus_hp) <= -180.000001 ? (hps_minus_hp + 360) : (hps_minus_hp) > 180 ? (hps_minus_hp - 360) : (hps_minus_hp); double delta_L = (Ls - L1); double delta_C = (C_ps - C_p ); double delta_H =2 * sqrt(C_ps*C_p) * sin(RADIANES(delta_h) / 2); double T = 1 - 0.17 * cos(RADIANES(meanh_p-30)) + 0.24 * cos(RADIANES(2*meanh_p)) + 0.32 * cos(RADIANES(3*meanh_p + 6)) - 0.2 * cos(RADIANES(4*meanh_p - 63)); double Sl = 1 + (0.015 * Sqr((Ls + L1) /2- 50) )/ sqrt(20 + Sqr( (Ls+L1)/2 - 50) ); double Sc = 1 + 0.045 * (C_p + C_ps)/2; double Sh = 1 + 0.015 * ((C_ps + C_p)/2) * T; double delta_ro = 30 * exp( -Sqr(((meanh_p - 275 ) / 25))); double Rc = 2 * sqrt(( pow(meanC_p, 7.0) )/( pow(meanC_p, 7.0) + pow(25.0, 7.0))); double Rt = -sin(2 * RADIANES(delta_ro)) * Rc; double deltaE00 = sqrt( Sqr(delta_L /(Sl * Kl)) + Sqr(delta_C/(Sc * Kc)) + Sqr(delta_H/(Sh * Kh)) + Rt*(delta_C/(Sc * Kc)) * (delta_H / (Sh * Kh))); return deltaE00; } // Carefully, clamp on CIELab space. void LCMSEXPORT cmsClampLab(LPcmsCIELab Lab, double amax, double amin, double bmax, double bmin) { // Whole Luma surface to zero if (Lab -> L < 0) { Lab-> L = Lab->a = Lab-> b = 0.0; return; } // Clamp white, DISCARD HIGHLIGHTS. This is done // in such way because icc spec doesn't allow the // use of L>100 as a highlight means. if (Lab->L > 100) Lab -> L = 100; // Check out gamut prism, on a, b faces if (Lab -> a < amin || Lab->a > amax|| Lab -> b < bmin || Lab->b > bmax) { cmsCIELCh LCh; double h, slope; // Falls outside a, b limits. Transports to LCh space, // and then do the clipping if (Lab -> a == 0.0) { // Is hue exactly 90? // atan will not work, so clamp here Lab -> b = Lab->b < 0 ? bmin : bmax; return; } cmsLab2LCh(&LCh, Lab); slope = Lab -> b / Lab -> a; h = LCh.h; // There are 4 zones if ((h >= 0. && h < 45.) || (h >= 315 && h <= 360.)) { // clip by amax Lab -> a = amax; Lab -> b = amax * slope; } else if (h >= 45. && h < 135) { // clip by bmax Lab -> b = bmax; Lab -> a = bmax / slope; } else if (h >= 135 && h < 225) { // clip by amin Lab -> a = amin; Lab -> b = amin * slope; } else if (h >= 225 && h < 315) { // clip by bmin Lab -> b = bmin; Lab -> a = bmin / slope; } else cmsSignalError(LCMS_ERRC_ABORTED, "Invalid angle"); } } // Several utilities ------------------------------------------------------- // Translate from our colorspace to ICC representation icColorSpaceSignature LCMSEXPORT _cmsICCcolorSpace(int OurNotation) { switch (OurNotation) { case 1: case PT_GRAY: return icSigGrayData; case 2: case PT_RGB: return icSigRgbData; case PT_CMY: return icSigCmyData; case PT_CMYK: return icSigCmykData; case PT_YCbCr:return icSigYCbCrData; case PT_YUV: return icSigLuvData; case PT_XYZ: return icSigXYZData; case PT_Lab: return icSigLabData; case PT_YUVK: return icSigLuvKData; case PT_HSV: return icSigHsvData; case PT_HLS: return icSigHlsData; case PT_Yxy: return icSigYxyData; case PT_HiFi: return icSigHexachromeData; case PT_HiFi7: return icSigHeptachromeData; case PT_HiFi8: return icSigOctachromeData; case PT_HiFi9: return icSigMCH9Data; case PT_HiFi10: return icSigMCHAData; case PT_HiFi11: return icSigMCHBData; case PT_HiFi12: return icSigMCHCData; case PT_HiFi13: return icSigMCHDData; case PT_HiFi14: return icSigMCHEData; case PT_HiFi15: return icSigMCHFData; default: return icMaxEnumData; } } int LCMSEXPORT _cmsLCMScolorSpace(icColorSpaceSignature ProfileSpace) { switch (ProfileSpace) { case icSigGrayData: return PT_GRAY; case icSigRgbData: return PT_RGB; case icSigCmyData: return PT_CMY; case icSigCmykData: return PT_CMYK; case icSigYCbCrData:return PT_YCbCr; case icSigLuvData: return PT_YUV; case icSigXYZData: return PT_XYZ; case icSigLabData: return PT_Lab; case icSigLuvKData: return PT_YUVK; case icSigHsvData: return PT_HSV; case icSigHlsData: return PT_HLS; case icSigYxyData: return PT_Yxy; case icSig6colorData: case icSigHexachromeData: return PT_HiFi; case icSigHeptachromeData: case icSig7colorData: return PT_HiFi7; case icSigOctachromeData: case icSig8colorData: return PT_HiFi8; case icSigMCH9Data: case icSig9colorData: return PT_HiFi9; case icSigMCHAData: case icSig10colorData: return PT_HiFi10; case icSigMCHBData: case icSig11colorData: return PT_HiFi11; case icSigMCHCData: case icSig12colorData: return PT_HiFi12; case icSigMCHDData: case icSig13colorData: return PT_HiFi13; case icSigMCHEData: case icSig14colorData: return PT_HiFi14; case icSigMCHFData: case icSig15colorData: return PT_HiFi15; default: return icMaxEnumData; } } int LCMSEXPORT _cmsChannelsOf(icColorSpaceSignature ColorSpace) { switch (ColorSpace) { case icSigGrayData: return 1; case icSig2colorData: return 2; case icSigXYZData: case icSigLabData: case icSigLuvData: case icSigYCbCrData: case icSigYxyData: case icSigRgbData: case icSigHsvData: case icSigHlsData: case icSigCmyData: case icSig3colorData: return 3; case icSigLuvKData: case icSigCmykData: case icSig4colorData: return 4; case icSigMCH5Data: case icSig5colorData: return 5; case icSigHexachromeData: case icSig6colorData: return 6; case icSigHeptachromeData: case icSig7colorData: return 7; case icSigOctachromeData: case icSig8colorData: return 8; case icSigMCH9Data: case icSig9colorData: return 9; case icSigMCHAData: case icSig10colorData: return 10; case icSigMCHBData: case icSig11colorData: return 11; case icSigMCHCData: case icSig12colorData: return 12; case icSigMCHDData: case icSig13colorData: return 13; case icSigMCHEData: case icSig14colorData: return 14; case icSigMCHFData: case icSig15colorData: return 15; default: return 3; } } // v2 L=100 is supposed to be placed on 0xFF00. There is no reasonable // number of gridpoints that would make exact match. However, a // prelinearization of 258 entries, would map 0xFF00 on entry 257. // This is almost what we need, unfortunately, the rest of entries // should be scaled by (255*257/256) and this is not exact. // // An intermediate solution would be to use 257 entries. This does not // map 0xFF00 exactly on a node, but so close that the dE induced is // negligible. AND the rest of curve is exact. static void CreateLabPrelinearization(LPGAMMATABLE LabTable[]) { int i; LabTable[0] = cmsAllocGamma(257); LabTable[1] = cmsBuildGamma(257, 1.0); LabTable[2] = cmsBuildGamma(257, 1.0); // L* uses 257 entries. Entry 256 holds 0xFFFF, so, the effective range // is 0..0xFF00. Last entry (257) is also collapsed to 0xFFFF // From 0 to 0xFF00 for (i=0; i < 256; i++) LabTable[0]->GammaTable[i] = RGB_8_TO_16(i); // Repeat last for 0xFFFF LabTable[0] ->GammaTable[256] = 0xFFFF; } // Used by gamut & softproofing typedef struct { cmsHTRANSFORM hInput; // From whatever input color space. NULL for Lab cmsHTRANSFORM hForward, hReverse; // Transforms going from Lab to colorant and back double Thereshold; // The thereshold after which is considered out of gamut } GAMUTCHAIN,FAR* LPGAMUTCHAIN; // This sampler does compute gamut boundaries by comparing original // values with a transform going back and forth. Values above ERR_THERESHOLD // of maximum are considered out of gamut. #define ERR_THERESHOLD 5 static int GamutSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { LPGAMUTCHAIN t = (LPGAMUTCHAIN) Cargo; WORD Proof[MAXCHANNELS], Check[MAXCHANNELS]; WORD Proof2[MAXCHANNELS], Check2[MAXCHANNELS]; cmsCIELab LabIn1, LabOut1; cmsCIELab LabIn2, LabOut2; double dE1, dE2, ErrorRatio; // Assume in-gamut by default. dE1 = 0.; dE2 = 0; ErrorRatio = 1.0; // Any input space? I can use In[] no matter channels // because is just one pixel if (t -> hInput != NULL) cmsDoTransform(t -> hInput, In, In, 1); // converts from PCS to colorant. This always // does return in-gamut values, cmsDoTransform(t -> hForward, In, Proof, 1); // Now, do the inverse, from colorant to PCS. cmsDoTransform(t -> hReverse, Proof, Check, 1); // Try again, but this time taking Check as input cmsDoTransform(t -> hForward, Check, Proof2, 1); cmsDoTransform(t -> hReverse, Proof2, Check2, 1); // Does the transform returns out-of-gamut? if (Check[0] == 0xFFFF && Check[1] == 0xFFFF && Check[2] == 0xFFFF) Out[0] = 0xFF00; // Out of gamut! else { // Transport encoded values cmsLabEncoded2Float(&LabIn1, In); cmsLabEncoded2Float(&LabOut1, Check); // Take difference of direct value dE1 = cmsDeltaE(&LabIn1, &LabOut1); cmsLabEncoded2Float(&LabIn2, Check); cmsLabEncoded2Float(&LabOut2, Check2); // Take difference of converted value dE2 = cmsDeltaE(&LabIn2, &LabOut2); // if dE1 is small and dE2 is small, value is likely to be in gamut if (dE1 < t->Thereshold && dE2 < t->Thereshold) Out[0] = 0; else // if dE1 is small and dE2 is big, undefined. Assume in gamut if (dE1 < t->Thereshold && dE2 > t->Thereshold) Out[0] = 0; else // dE1 is big and dE2 is small, clearly out of gamut if (dE1 > t->Thereshold && dE2 < t->Thereshold) Out[0] = (WORD) _cmsQuickFloor((dE1 - t->Thereshold) + .5); else { // dE1 is big and dE2 is also big, could be due to perceptual mapping // so take error ratio if (dE2 == 0.0) ErrorRatio = dE1; else ErrorRatio = dE1 / dE2; if (ErrorRatio > t->Thereshold) Out[0] = (WORD) _cmsQuickFloor((ErrorRatio - t->Thereshold) + .5); else Out[0] = 0; } } return TRUE; } // Does compute a gamut LUT going back and forth across // pcs -> relativ. colorimetric intent -> pcs // the dE obtained is then annotated on the LUT. // values truely out of gamut, are clipped to dE = 0xFFFE // and values changed are supposed to be handled by // any gamut remapping, so, are out of gamut as well. // // **WARNING: This algorithm does assume that gamut // remapping algorithms does NOT move in-gamut colors, // of course, many perceptual and saturation intents does // not work in such way, but relativ. ones should. static LPLUT ComputeGamutWithInput(cmsHPROFILE hInput, cmsHPROFILE hProfile, int Intent) { cmsHPROFILE hLab; LPLUT Gamut; DWORD dwFormat; GAMUTCHAIN Chain; int nErrState, nChannels, nGridpoints; LPGAMMATABLE Trans[3]; icColorSpaceSignature ColorSpace; ZeroMemory(&Chain, sizeof(GAMUTCHAIN)); hLab = cmsCreateLabProfile(NULL); // Safeguard against early abortion nErrState = cmsErrorAction(LCMS_ERROR_IGNORE); // The figure of merit. On matrix-shaper profiles, should be almost zero as // the conversion is pretty exact. On LUT based profiles, different resolutions // of input and output CLUT may result in differences. if (!cmsIsIntentSupported(hProfile, Intent, LCMS_USED_AS_INPUT) && !cmsIsIntentSupported(hProfile, Intent, LCMS_USED_AS_OUTPUT)) Chain.Thereshold = 1.0; else Chain.Thereshold = ERR_THERESHOLD; ColorSpace = cmsGetColorSpace(hProfile); // If input profile specified, create a transform from such profile to Lab if (hInput != NULL) { nChannels = _cmsChannelsOf(ColorSpace); nGridpoints = _cmsReasonableGridpointsByColorspace(ColorSpace, cmsFLAGS_HIGHRESPRECALC); dwFormat = (CHANNELS_SH(nChannels)|BYTES_SH(2)); Chain.hInput = cmsCreateTransform(hInput, dwFormat, hLab, TYPE_Lab_16, Intent, cmsFLAGS_NOTPRECALC); } else { // Input transform=NULL (Lab) Used to compute the gamut tag // This table will take 53 points to give some accurancy, // 53 * 53 * 53 * 2 = 291K nChannels = 3; // For Lab nGridpoints = 53; Chain.hInput = NULL; dwFormat = (CHANNELS_SH(_cmsChannelsOf(ColorSpace))|BYTES_SH(2)); } // Does create the forward step Chain.hForward = cmsCreateTransform(hLab, TYPE_Lab_16, hProfile, dwFormat, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); // Does create the backwards step Chain.hReverse = cmsCreateTransform(hProfile, dwFormat, hLab, TYPE_Lab_16, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); // Restores error handler previous state cmsErrorAction(nErrState); // All ok? if (Chain.hForward && Chain.hReverse) { // Go on, try to compute gamut LUT from PCS. // This consist on a single channel containing // dE when doing a transform back and forth on // the colorimetric intent. Gamut = cmsAllocLUT(); Gamut = cmsAlloc3DGrid(Gamut, nGridpoints, nChannels, 1); // If no input, then this is a gamut tag operated by Lab, // so include pertinent prelinearization if (hInput == NULL) { CreateLabPrelinearization(Trans); cmsAllocLinearTable(Gamut, Trans, 1); cmsFreeGammaTriple(Trans); } cmsSample3DGrid(Gamut, GamutSampler, (LPVOID) &Chain, Gamut ->wFlags); } else Gamut = NULL; // Didn't work... // Free all needed stuff. if (Chain.hInput) cmsDeleteTransform(Chain.hInput); if (Chain.hForward) cmsDeleteTransform(Chain.hForward); if (Chain.hReverse) cmsDeleteTransform(Chain.hReverse); cmsCloseProfile(hLab); // And return computed hull return Gamut; } // Wrapper LPLUT _cmsComputeGamutLUT(cmsHPROFILE hProfile, int Intent) { return ComputeGamutWithInput(NULL, hProfile, Intent); } // This routine does compute the gamut check CLUT. This CLUT goes from whatever // input space to the 0 or != 0 gamut check. LPLUT _cmsPrecalculateGamutCheck(cmsHTRANSFORM h) { _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) h; return ComputeGamutWithInput(p->InputProfile, p ->PreviewProfile, p->Intent); } // SoftProofing. Convert from Lab to device, then back to Lab, // any gamut remapping is applied static int SoftProofSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { LPGAMUTCHAIN t = (LPGAMUTCHAIN) Cargo; WORD Colorant[MAXCHANNELS]; // From pcs to colorant cmsDoTransform(t -> hForward, In, Colorant, 1); // Now, do the inverse, from colorant to pcs. cmsDoTransform(t -> hReverse, Colorant, Out, 1); return TRUE; } // Does return Softproofing LUT on desired intent LPLUT _cmsComputeSoftProofLUT(cmsHPROFILE hProfile, int nIntent) { cmsHPROFILE hLab; LPLUT SoftProof; DWORD dwFormat; GAMUTCHAIN Chain; int nErrState; LPGAMMATABLE Trans[3]; // LUTs are never abs. colorimetric, is the transform who // is responsible of generating white point displacement if (nIntent == INTENT_ABSOLUTE_COLORIMETRIC) nIntent = INTENT_RELATIVE_COLORIMETRIC; ZeroMemory(&Chain, sizeof(GAMUTCHAIN)); hLab = cmsCreateLabProfile(NULL); // ONLY 4 channels dwFormat = (CHANNELS_SH(4)|BYTES_SH(2)); // Safeguard against early abortion nErrState = cmsErrorAction(LCMS_ERROR_IGNORE); // Does create the first step Chain.hForward = cmsCreateTransform(hLab, TYPE_Lab_16, hProfile, dwFormat, nIntent, cmsFLAGS_NOTPRECALC); // Does create the last step Chain.hReverse = cmsCreateTransform(hProfile, dwFormat, hLab, TYPE_Lab_16, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); // Restores error handler previous state cmsErrorAction(nErrState); // All ok? if (Chain.hForward && Chain.hReverse) { // This is Lab -> Lab, so 33 point should hold anything SoftProof = cmsAllocLUT(); SoftProof = cmsAlloc3DGrid(SoftProof, 33, 3, 3); CreateLabPrelinearization(Trans); cmsAllocLinearTable(SoftProof, Trans, 1); cmsFreeGammaTriple(Trans); cmsSample3DGrid(SoftProof, SoftProofSampler, (LPVOID) &Chain, SoftProof->wFlags); } else SoftProof = NULL; // Didn't work... // Free all needed stuff. if (Chain.hForward) cmsDeleteTransform(Chain.hForward); if (Chain.hReverse) cmsDeleteTransform(Chain.hReverse); cmsCloseProfile(hLab); return SoftProof; } static int MostlyLinear(WORD Table[], int nEntries) { register int i; int diff; for (i=5; i < nEntries; i++) { diff = abs((int) Table[i] - (int) _cmsQuantizeVal(i, nEntries)); if (diff > 0x0300) return 0; } return 1; } static void SlopeLimiting(WORD Table[], int nEntries) { int At = (int) floor((double) nEntries * 0.02 + 0.5); // Cutoff at 2% double Val, Slope; int i; Val = Table[At]; Slope = Val / At; for (i=0; i < At; i++) Table[i] = (WORD) floor(i * Slope + 0.5); } // Check for monotonicity. static LCMSBOOL IsMonotonic(LPGAMMATABLE t) { int n = t -> nEntries; int i, last; last = t ->GammaTable[n-1]; for (i = n-2; i >= 0; --i) { if (t ->GammaTable[i] > last) return FALSE; else last = t ->GammaTable[i]; } return TRUE; } // Check for endpoints static LCMSBOOL HasProperEndpoints(LPGAMMATABLE t) { if (t ->GammaTable[0] != 0) return FALSE; if (t ->GammaTable[t ->nEntries-1] != 0xFFFF) return FALSE; return TRUE; } #define PRELINEARIZATION_POINTS 4096 // Fixes the gamma balancing of transform. Thanks to Mike Chaney // for pointing this subtle bug. void _cmsComputePrelinearizationTablesFromXFORM(cmsHTRANSFORM h[], int nTransforms, LPLUT Grid) { LPGAMMATABLE Trans[MAXCHANNELS]; unsigned int t, i, v; int j; WORD In[MAXCHANNELS], Out[MAXCHANNELS]; LCMSBOOL lIsSuitable; _LPcmsTRANSFORM InputXForm = (_LPcmsTRANSFORM) h[0]; _LPcmsTRANSFORM OutputXForm = (_LPcmsTRANSFORM) h[nTransforms-1]; // First space is *Lab, use our specialized curves for v2 Lab if (InputXForm ->EntryColorSpace == icSigLabData && OutputXForm->ExitColorSpace != icSigLabData) { CreateLabPrelinearization(Trans); cmsAllocLinearTable(Grid, Trans, 1); cmsFreeGammaTriple(Trans); return; } // Do nothing on all but Gray/RGB to Gray/RGB transforms if (((InputXForm ->EntryColorSpace != icSigRgbData) && (InputXForm ->EntryColorSpace != icSigGrayData)) || ((OutputXForm->ExitColorSpace != icSigRgbData) && (OutputXForm->ExitColorSpace != icSigGrayData))) return; for (t = 0; t < Grid -> InputChan; t++) Trans[t] = cmsAllocGamma(PRELINEARIZATION_POINTS); for (i=0; i < PRELINEARIZATION_POINTS; i++) { v = _cmsQuantizeVal(i, PRELINEARIZATION_POINTS); for (t=0; t < Grid -> InputChan; t++) In[t] = (WORD) v; cmsDoTransform(h[0], In, Out, 1); for (j=1; j < nTransforms; j++) cmsDoTransform(h[j], Out, Out, 1); for (t=0; t < Grid -> InputChan; t++) Trans[t] ->GammaTable[i] = Out[t]; } // Check transfer curves lIsSuitable = TRUE; for (t=0; (lIsSuitable && (t < Grid->InputChan)); t++) { // Exclude if already linear if (MostlyLinear(Trans[t]->GammaTable, PRELINEARIZATION_POINTS)) lIsSuitable = FALSE; // Exclude if non-monotonic if (!IsMonotonic(Trans[t])) lIsSuitable = FALSE; // Exclude if weird endpoints if (!HasProperEndpoints(Trans[t])) lIsSuitable = FALSE; /* // Exclude if transfer function is not smooth enough // to be modelled as a gamma function, or the gamma is reversed if (cmsEstimateGamma(Trans[t]) < 1.0) lIsSuitable = FALSE; */ } if (lIsSuitable) { for (t = 0; t < Grid ->InputChan; t++) SlopeLimiting(Trans[t]->GammaTable, Trans[t]->nEntries); } if (lIsSuitable) cmsAllocLinearTable(Grid, Trans, 1); for (t = 0; t < Grid ->InputChan; t++) cmsFreeGamma(Trans[t]); } // Compute K -> L* relationship. Flags may include black point compensation. In this case, // the relationship is assumed from the profile with BPC to a black point zero. static LPGAMMATABLE ComputeKToLstar(cmsHPROFILE hProfile, int nPoints, int Intent, DWORD dwFlags) { LPGAMMATABLE out; int i; WORD cmyk[4], wLab[3]; cmsHPROFILE hLab = cmsCreateLabProfile(NULL); cmsHTRANSFORM xform = cmsCreateTransform(hProfile, TYPE_CMYK_16, hLab, TYPE_Lab_16, Intent, (dwFlags|cmsFLAGS_NOTPRECALC)); out = cmsAllocGamma(nPoints); for (i=0; i < nPoints; i++) { cmyk[0] = 0; cmyk[1] = 0; cmyk[2] = 0; cmyk[3] = _cmsQuantizeVal(i, nPoints); cmsDoTransform(xform, cmyk, wLab, 1); out->GammaTable[i] = (WORD) (0xFFFF - wLab[0]); } cmsDeleteTransform(xform); cmsCloseProfile(hLab); return out; } // Compute Black tone curve on a CMYK -> CMYK transform. This is done by // using the proof direction on both profiles to find K->L* relationship // then joining both curves. dwFlags may include black point compensation. LPGAMMATABLE _cmsBuildKToneCurve(cmsHTRANSFORM hCMYK2CMYK, int nPoints) { LPGAMMATABLE in, out; LPGAMMATABLE KTone; _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) hCMYK2CMYK; // Make sure CMYK -> CMYK if (p -> EntryColorSpace != icSigCmykData || p -> ExitColorSpace != icSigCmykData) return NULL; // Create individual curves. BPC works also as each K to L* is // computed as a BPC to zero black point in case of L* in = ComputeKToLstar(p ->InputProfile, nPoints, p->Intent, p -> dwOriginalFlags); out = ComputeKToLstar(p ->OutputProfile, nPoints, p->Intent, p -> dwOriginalFlags); // Build the relationship KTone = cmsJoinGamma(in, out); cmsFreeGamma(in); cmsFreeGamma(out); // Make sure it is monotonic if (!IsMonotonic(KTone)) { cmsFreeGamma(KTone); return NULL; } return KTone; } lcms-1.19/src/cmsintrp.c0000777000175300010010000007126411277221121014454 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // Interpolation #include "lcms.h" void cmsCalcL16Params(int nSamples, LPL16PARAMS p) { p -> nSamples = nSamples; p -> Domain = (WORD) (nSamples - 1); p -> nInputs = p -> nOutputs = 1; } // Eval gray LUT having only one input channel static void Eval1Input(WORD StageABC[], WORD StageLMN[], WORD LutTable[], LPL16PARAMS p16) { Fixed32 fk; Fixed32 k0, k1, rk, K0, K1; int OutChan; fk = ToFixedDomain((Fixed32) StageABC[0] * p16 -> Domain); k0 = FIXED_TO_INT(fk); rk = (WORD) FIXED_REST_TO_INT(fk); k1 = k0 + (StageABC[0] != 0xFFFFU ? 1 : 0); K0 = p16 -> opta1 * k0; K1 = p16 -> opta1 * k1; for (OutChan=0; OutChan < p16->nOutputs; OutChan++) { StageLMN[OutChan] = (WORD) FixedLERP(rk, LutTable[K0+OutChan], LutTable[K1+OutChan]); } } // For more that 3 inputs (i.e., CMYK) // evaluate two 3-dimensional interpolations and then linearly interpolate between them. static void Eval4Inputs(WORD StageABC[], WORD StageLMN[], WORD LutTable[], LPL16PARAMS p16) { Fixed32 fk; Fixed32 k0, rk; int K0, K1; LPWORD T; int i; WORD Tmp1[MAXCHANNELS], Tmp2[MAXCHANNELS]; fk = ToFixedDomain((Fixed32) StageABC[0] * p16 -> Domain); k0 = FIXED_TO_INT(fk); rk = FIXED_REST_TO_INT(fk); K0 = p16 -> opta4 * k0; K1 = p16 -> opta4 * (k0 + (StageABC[0] != 0xFFFFU ? 1 : 0)); p16 -> nInputs = 3; T = LutTable + K0; cmsTetrahedralInterp16(StageABC + 1, Tmp1, T, p16); T = LutTable + K1; cmsTetrahedralInterp16(StageABC + 1, Tmp2, T, p16); p16 -> nInputs = 4; for (i=0; i < p16 -> nOutputs; i++) { StageLMN[i] = (WORD) FixedLERP(rk, Tmp1[i], Tmp2[i]); } } static void Eval5Inputs(WORD StageABC[], WORD StageLMN[], WORD LutTable[], LPL16PARAMS p16) { Fixed32 fk; Fixed32 k0, rk; int K0, K1; LPWORD T; int i; WORD Tmp1[MAXCHANNELS], Tmp2[MAXCHANNELS]; fk = ToFixedDomain((Fixed32) StageABC[0] * p16 -> Domain); k0 = FIXED_TO_INT(fk); rk = FIXED_REST_TO_INT(fk); K0 = p16 -> opta5 * k0; K1 = p16 -> opta5 * (k0 + (StageABC[0] != 0xFFFFU ? 1 : 0)); p16 -> nInputs = 4; T = LutTable + K0; Eval4Inputs(StageABC + 1, Tmp1, T, p16); T = LutTable + K1; Eval4Inputs(StageABC + 1, Tmp2, T, p16); p16 -> nInputs = 5; for (i=0; i < p16 -> nOutputs; i++) { StageLMN[i] = (WORD) FixedLERP(rk, Tmp1[i], Tmp2[i]); } } static void Eval6Inputs(WORD StageABC[], WORD StageLMN[], WORD LutTable[], LPL16PARAMS p16) { Fixed32 fk; Fixed32 k0, rk; int K0, K1; LPWORD T; int i; WORD Tmp1[MAXCHANNELS], Tmp2[MAXCHANNELS]; fk = ToFixedDomain((Fixed32) StageABC[0] * p16 -> Domain); k0 = FIXED_TO_INT(fk); rk = FIXED_REST_TO_INT(fk); K0 = p16 -> opta6 * k0; K1 = p16 -> opta6 * (k0 + (StageABC[0] != 0xFFFFU ? 1 : 0)); p16 -> nInputs = 5; T = LutTable + K0; Eval5Inputs(StageABC + 1, Tmp1, T, p16); T = LutTable + K1; Eval5Inputs(StageABC + 1, Tmp2, T, p16); p16 -> nInputs = 6; for (i=0; i < p16 -> nOutputs; i++) { StageLMN[i] = (WORD) FixedLERP(rk, Tmp1[i], Tmp2[i]); } } static void Eval7Inputs(WORD StageABC[], WORD StageLMN[], WORD LutTable[], LPL16PARAMS p16) { Fixed32 fk; Fixed32 k0, rk; int K0, K1; LPWORD T; int i; WORD Tmp1[MAXCHANNELS], Tmp2[MAXCHANNELS]; fk = ToFixedDomain((Fixed32) StageABC[0] * p16 -> Domain); k0 = FIXED_TO_INT(fk); rk = FIXED_REST_TO_INT(fk); K0 = p16 -> opta7 * k0; K1 = p16 -> opta7 * (k0 + (StageABC[0] != 0xFFFFU ? 1 : 0)); p16 -> nInputs = 6; T = LutTable + K0; Eval6Inputs(StageABC + 1, Tmp1, T, p16); T = LutTable + K1; Eval6Inputs(StageABC + 1, Tmp2, T, p16); p16 -> nInputs = 7; for (i=0; i < p16 -> nOutputs; i++) { StageLMN[i] = (WORD) FixedLERP(rk, Tmp1[i], Tmp2[i]); } } static void Eval8Inputs(WORD StageABC[], WORD StageLMN[], WORD LutTable[], LPL16PARAMS p16) { Fixed32 fk; Fixed32 k0, rk; int K0, K1; LPWORD T; int i; WORD Tmp1[MAXCHANNELS], Tmp2[MAXCHANNELS]; fk = ToFixedDomain((Fixed32) StageABC[0] * p16 -> Domain); k0 = FIXED_TO_INT(fk); rk = FIXED_REST_TO_INT(fk); K0 = p16 -> opta8 * k0; K1 = p16 -> opta8 * (k0 + (StageABC[0] != 0xFFFFU ? 1 : 0)); p16 -> nInputs = 7; T = LutTable + K0; Eval7Inputs(StageABC + 1, Tmp1, T, p16); T = LutTable + K1; Eval7Inputs(StageABC + 1, Tmp2, T, p16); p16 -> nInputs = 8; for (i=0; i < p16 -> nOutputs; i++) { StageLMN[i] = (WORD) FixedLERP(rk, Tmp1[i], Tmp2[i]); } } // Fills optimization parameters void cmsCalcCLUT16ParamsEx(int nSamples, int InputChan, int OutputChan, LCMSBOOL lUseTetrahedral, LPL16PARAMS p) { int clutPoints; cmsCalcL16Params(nSamples, p); p -> nInputs = InputChan; p -> nOutputs = OutputChan; clutPoints = p -> Domain + 1; p -> opta1 = p -> nOutputs; // Z p -> opta2 = p -> opta1 * clutPoints; // Y p -> opta3 = p -> opta2 * clutPoints; // X p -> opta4 = p -> opta3 * clutPoints; // Used only in 4 inputs LUT p -> opta5 = p -> opta4 * clutPoints; // Used only in 5 inputs LUT p -> opta6 = p -> opta5 * clutPoints; // Used only on 6 inputs LUT p -> opta7 = p -> opta6 * clutPoints; // Used only on 7 inputs LUT p -> opta8 = p -> opta7 * clutPoints; // Used only on 8 inputs LUT switch (InputChan) { case 1: // Gray LUT p ->Interp3D = Eval1Input; break; case 3: // RGB et al if (lUseTetrahedral) { p ->Interp3D = cmsTetrahedralInterp16; } else p ->Interp3D = cmsTrilinearInterp16; break; case 4: // CMYK LUT p ->Interp3D = Eval4Inputs; break; case 5: // 5 Inks p ->Interp3D = Eval5Inputs; break; case 6: // 6 Inks p -> Interp3D = Eval6Inputs; break; case 7: // 7 inks p ->Interp3D = Eval7Inputs; break; case 8: // 8 inks p ->Interp3D = Eval8Inputs; break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Unsupported restoration (%d channels)", InputChan); } } void cmsCalcCLUT16Params(int nSamples, int InputChan, int OutputChan, LPL16PARAMS p) { cmsCalcCLUT16ParamsEx(nSamples, InputChan, OutputChan, FALSE, p); } #ifdef USE_FLOAT // Floating-point version WORD cmsLinearInterpLUT16(WORD Value, WORD LutTable[], LPL16PARAMS p) { double y1, y0; double y; double val2, rest; int cell0, cell1; // if last value... if (Value == 0xffff) return LutTable[p -> Domain]; val2 = p -> Domain * ((double) Value / 65535.0); cell0 = (int) floor(val2); cell1 = (int) ceil(val2); // Rest is 16 LSB bits rest = val2 - cell0; y0 = LutTable[cell0] ; y1 = LutTable[cell1] ; y = y0 + (y1 - y0) * rest; return (WORD) floor(y+.5); } #endif // // Linear interpolation (Fixed-point optimized, but C source) // #ifdef USE_C WORD cmsLinearInterpLUT16(WORD Value1, WORD LutTable[], LPL16PARAMS p) { WORD y1, y0; WORD y; int dif, a1; int cell0, rest; int val3, Value; // if last value... Value = Value1; if (Value == 0xffff) return LutTable[p -> Domain]; val3 = p -> Domain * Value; val3 = ToFixedDomain(val3); // To fixed 15.16 cell0 = FIXED_TO_INT(val3); // Cell is 16 MSB bits rest = FIXED_REST_TO_INT(val3); // Rest is 16 LSB bits y0 = LutTable[cell0] ; y1 = LutTable[cell0+1] ; dif = (int) y1 - y0; // dif is in domain -ffff ... ffff if (dif >= 0) { a1 = ToFixedDomain(dif * rest); a1 += 0x8000; } else { a1 = ToFixedDomain((- dif) * rest); a1 -= 0x8000; a1 = -a1; } y = (WORD) (y0 + FIXED_TO_INT(a1)); return y; } #endif // Linear interpolation (asm by hand optimized) #ifdef USE_ASSEMBLER #ifdef _MSC_VER #pragma warning(disable : 4033) #pragma warning(disable : 4035) #endif WORD cmsLinearInterpLUT16(WORD Value, WORD LutTable[], LPL16PARAMS p) { int xDomain = p -> Domain; if (Value == 0xffff) return LutTable[p -> Domain]; else ASM { xor eax, eax mov ax, word ptr ss:Value mov edx, ss:xDomain mul edx // val3 = p -> Domain * Value; shld edx, eax, 16 // Convert it to fixed 15.16 shl eax, 16 // * 65536 / 65535 mov ebx, 0x0000ffff div ebx mov ecx, eax sar ecx, 16 // ecx = cell0 mov edx, eax // rest = (val2 & 0xFFFFU) and edx, 0x0000ffff // edx = rest mov ebx, ss:LutTable lea eax, dword ptr [ebx+2*ecx] // Ptr to LUT xor ebx, ebx mov bx, word ptr [eax] // EBX = y0 movzx eax, word ptr [eax+2] // EAX = y1 sub eax, ebx // EAX = y1-y0 js IsNegative mul edx // EAX = EAX * rest shld edx, eax, 16 // Pass it to fixed sal eax, 16 // * 65536 / 65535 mov ecx, 0x0000ffff div ecx add eax, 0x8000 // Rounding sar eax, 16 add eax, ebx // Done! jmp end IsNegative: neg eax mul edx // EAX = EAX * rest shld edx, eax, 16 // Pass it to fixed sal eax, 16 // * 65536 / 65535 mov ecx, 0x0000ffff div ecx sub eax, 0x8000 neg eax sar eax, 16 add eax, ebx // Done! end: } RET((WORD) _EAX); } #ifdef _MSC_VER #pragma warning(default : 4033) #pragma warning(default : 4035) #endif #endif Fixed32 cmsLinearInterpFixed(WORD Value1, WORD LutTable[], LPL16PARAMS p) { Fixed32 y1, y0; int cell0; int val3, Value; // if last value... Value = Value1; if (Value == 0xffffU) return LutTable[p -> Domain]; val3 = p -> Domain * Value; val3 = ToFixedDomain(val3); // To fixed 15.16 cell0 = FIXED_TO_INT(val3); // Cell is 16 MSB bits y0 = LutTable[cell0] ; y1 = LutTable[cell0+1] ; return y0 + FixedMul((y1 - y0), (val3 & 0xFFFFL)); } // Reverse Lineal interpolation (16 bits) // Im using a sort of binary search here, this is not a time-critical function WORD cmsReverseLinearInterpLUT16(WORD Value, WORD LutTable[], LPL16PARAMS p) { register int l = 1; register int r = 0x10000; register int x = 0, res; // 'int' Give spacing for negative values int NumZeroes, NumPoles; int cell0, cell1; double val2; double y0, y1, x0, x1; double a, b, f; // July/27 2001 - Expanded to handle degenerated curves with an arbitrary // number of elements containing 0 at the begining of the table (Zeroes) // and another arbitrary number of poles (FFFFh) at the end. // First the zero and pole extents are computed, then value is compared. NumZeroes = 0; while (LutTable[NumZeroes] == 0 && NumZeroes < p -> Domain) NumZeroes++; // There are no zeros at the beginning and we are trying to find a zero, so // return anything. It seems zero would be the less destructive choice if (NumZeroes == 0 && Value == 0) return 0; NumPoles = 0; while (LutTable[p -> Domain - NumPoles] == 0xFFFF && NumPoles < p -> Domain) NumPoles++; // Does the curve belong to this case? if (NumZeroes > 1 || NumPoles > 1) { int a, b; // Identify if value fall downto 0 or FFFF zone if (Value == 0) return 0; // if (Value == 0xFFFF) return 0xFFFF; // else restrict to valid zone a = ((NumZeroes-1) * 0xFFFF) / p->Domain; b = ((p -> Domain - NumPoles) * 0xFFFF) / p ->Domain; l = a - 1; r = b + 1; } // Seems not a degenerated case... apply binary search while (r > l) { x = (l + r) / 2; res = (int) cmsLinearInterpLUT16((WORD) (x - 1), LutTable, p); if (res == Value) { // Found exact match. return (WORD) (x - 1); } if (res > Value) r = x - 1; else l = x + 1; } // Not found, should we interpolate? // Get surrounding nodes val2 = p -> Domain * ((double) (x - 1) / 65535.0); cell0 = (int) floor(val2); cell1 = (int) ceil(val2); if (cell0 == cell1) return (WORD) x; y0 = LutTable[cell0] ; x0 = (65535.0 * cell0) / p ->Domain; y1 = LutTable[cell1] ; x1 = (65535.0 * cell1) / p ->Domain; a = (y1 - y0) / (x1 - x0); b = y0 - a * x0; if (fabs(a) < 0.01) return (WORD) x; f = ((Value - b) / a); if (f < 0.0) return (WORD) 0; if (f >= 65535.0) return (WORD) 0xFFFF; return (WORD) floor(f + 0.5); } // Trilinear interpolation (16 bits) - float version #ifdef USE_FLOAT void cmsTrilinearInterp16(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p) { # define LERP(a,l,h) (double) ((l)+(((h)-(l))*(a))) # define DENS(X, Y, Z) (double) (LutTable[TotalOut*((Z)+clutPoints*((Y)+clutPoints*(X)))+OutChan]) double px, py, pz; int x0, y0, z0, x1, y1, z1; int clutPoints, TotalOut, OutChan; double fx, fy, fz, d000, d001, d010, d011, d100, d101, d110, d111, dx00, dx01, dx10, dx11, dxy0, dxy1, dxyz; clutPoints = p -> Domain + 1; TotalOut = p -> nOutputs; px = ((double) Input[0] * (p->Domain)) / 65535.0; py = ((double) Input[1] * (p->Domain)) / 65535.0; pz = ((double) Input[2] * (p->Domain)) / 65535.0; x0 = (int) _cmsQuickFloor(px); fx = px - (double) x0; y0 = (int) _cmsQuickFloor(py); fy = py - (double) y0; z0 = (int) _cmsQuickFloor(pz); fz = pz - (double) z0; x1 = x0 + (Input[0] != 0xFFFFU ? 1 : 0); y1 = y0 + (Input[1] != 0xFFFFU ? 1 : 0); z1 = z0 + (Input[2] != 0xFFFFU ? 1 : 0); for (OutChan = 0; OutChan < TotalOut; OutChan++) { d000 = DENS(x0, y0, z0); d001 = DENS(x0, y0, z1); d010 = DENS(x0, y1, z0); d011 = DENS(x0, y1, z1); d100 = DENS(x1, y0, z0); d101 = DENS(x1, y0, z1); d110 = DENS(x1, y1, z0); d111 = DENS(x1, y1, z1); dx00 = LERP(fx, d000, d100); dx01 = LERP(fx, d001, d101); dx10 = LERP(fx, d010, d110); dx11 = LERP(fx, d011, d111); dxy0 = LERP(fy, dx00, dx10); dxy1 = LERP(fy, dx01, dx11); dxyz = LERP(fz, dxy0, dxy1); Output[OutChan] = (WORD) floor(dxyz + .5); } # undef LERP # undef DENS } #endif #ifndef USE_FLOAT // Trilinear interpolation (16 bits) - optimized version void cmsTrilinearInterp16(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p) { #define DENS(i,j,k) (LutTable[(i)+(j)+(k)+OutChan]) #define LERP(a,l,h) (WORD) (l+ ROUND_FIXED_TO_INT(((h-l)*a))) int OutChan, TotalOut; Fixed32 fx, fy, fz; register int rx, ry, rz; int x0, y0, z0; register int X0, X1, Y0, Y1, Z0, Z1; int d000, d001, d010, d011, d100, d101, d110, d111, dx00, dx01, dx10, dx11, dxy0, dxy1, dxyz; TotalOut = p -> nOutputs; fx = ToFixedDomain((int) Input[0] * p -> Domain); x0 = FIXED_TO_INT(fx); rx = FIXED_REST_TO_INT(fx); // Rest in 0..1.0 domain fy = ToFixedDomain((int) Input[1] * p -> Domain); y0 = FIXED_TO_INT(fy); ry = FIXED_REST_TO_INT(fy); fz = ToFixedDomain((int) Input[2] * p -> Domain); z0 = FIXED_TO_INT(fz); rz = FIXED_REST_TO_INT(fz); X0 = p -> opta3 * x0; X1 = X0 + (Input[0] == 0xFFFFU ? 0 : p->opta3); Y0 = p -> opta2 * y0; Y1 = Y0 + (Input[1] == 0xFFFFU ? 0 : p->opta2); Z0 = p -> opta1 * z0; Z1 = Z0 + (Input[2] == 0xFFFFU ? 0 : p->opta1); for (OutChan = 0; OutChan < TotalOut; OutChan++) { d000 = DENS(X0, Y0, Z0); d001 = DENS(X0, Y0, Z1); d010 = DENS(X0, Y1, Z0); d011 = DENS(X0, Y1, Z1); d100 = DENS(X1, Y0, Z0); d101 = DENS(X1, Y0, Z1); d110 = DENS(X1, Y1, Z0); d111 = DENS(X1, Y1, Z1); dx00 = LERP(rx, d000, d100); dx01 = LERP(rx, d001, d101); dx10 = LERP(rx, d010, d110); dx11 = LERP(rx, d011, d111); dxy0 = LERP(ry, dx00, dx10); dxy1 = LERP(ry, dx01, dx11); dxyz = LERP(rz, dxy0, dxy1); Output[OutChan] = (WORD) dxyz; } # undef LERP # undef DENS } #endif #ifdef USE_FLOAT #define DENS(X, Y, Z) (double) (LutTable[TotalOut*((Z)+clutPoints*((Y)+clutPoints*(X)))+OutChan]) // Tetrahedral interpolation, using Sakamoto algorithm. void cmsTetrahedralInterp16(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p) { double px, py, pz; int x0, y0, z0, x1, y1, z1; double fx, fy, fz; double c1=0, c2=0, c3=0; int clutPoints, OutChan, TotalOut; clutPoints = p -> Domain + 1; TotalOut = p -> nOutputs; px = ((double) Input[0] * p->Domain) / 65535.0; py = ((double) Input[1] * p->Domain) / 65535.0; pz = ((double) Input[2] * p->Domain) / 65535.0; x0 = (int) _cmsQuickFloor(px); fx = (px - (double) x0); y0 = (int) _cmsQuickFloor(py); fy = (py - (double) y0); z0 = (int) _cmsQuickFloor(pz); fz = (pz - (double) z0); x1 = x0 + (Input[0] != 0xFFFFU ? 1 : 0); y1 = y0 + (Input[1] != 0xFFFFU ? 1 : 0); z1 = z0 + (Input[2] != 0xFFFFU ? 1 : 0); for (OutChan=0; OutChan < TotalOut; OutChan++) { // These are the 6 Tetrahedral if (fx >= fy && fy >= fz) { c1 = DENS(x1, y0, z0) - DENS(x0, y0, z0); c2 = DENS(x1, y1, z0) - DENS(x1, y0, z0); c3 = DENS(x1, y1, z1) - DENS(x1, y1, z0); } else if (fx >= fz && fz >= fy) { c1 = DENS(x1, y0, z0) - DENS(x0, y0, z0); c2 = DENS(x1, y1, z1) - DENS(x1, y0, z1); c3 = DENS(x1, y0, z1) - DENS(x1, y0, z0); } else if (fz >= fx && fx >= fy) { c1 = DENS(x1, y0, z1) - DENS(x0, y0, z1); c2 = DENS(x1, y1, z1) - DENS(x1, y0, z1); c3 = DENS(x0, y0, z1) - DENS(x0, y0, z0); } else if (fy >= fx && fx >= fz) { c1 = DENS(x1, y1, z0) - DENS(x0, y1, z0); c2 = DENS(x0, y1, z0) - DENS(x0, y0, z0); c3 = DENS(x1, y1, z1) - DENS(x1, y1, z0); } else if (fy >= fz && fz >= fx) { c1 = DENS(x1, y1, z1) - DENS(x0, y1, z1); c2 = DENS(x0, y1, z0) - DENS(x0, y0, z0); c3 = DENS(x0, y1, z1) - DENS(x0, y1, z0); } else if (fz >= fy && fy >= fx) { c1 = DENS(x1, y1, z1) - DENS(x0, y1, z1); c2 = DENS(x0, y1, z1) - DENS(x0, y0, z1); c3 = DENS(x0, y0, z1) - DENS(x0, y0, z0); } else { c1 = c2 = c3 = 0; // assert(FALSE); } Output[OutChan] = (WORD) floor((double) DENS(x0,y0,z0) + c1 * fx + c2 * fy + c3 * fz + .5); } } #undef DENS #else #define DENS(i,j,k) (LutTable[(i)+(j)+(k)+OutChan]) void cmsTetrahedralInterp16(WORD Input[], WORD Output[], WORD LutTable1[], LPL16PARAMS p) { Fixed32 fx, fy, fz; Fixed32 rx, ry, rz; int x0, y0, z0; Fixed32 c0, c1, c2, c3, Rest; int OutChan; Fixed32 X0, X1, Y0, Y1, Z0, Z1; int TotalOut = p -> nOutputs; register LPWORD LutTable = LutTable1; fx = ToFixedDomain((int) Input[0] * p -> Domain); fy = ToFixedDomain((int) Input[1] * p -> Domain); fz = ToFixedDomain((int) Input[2] * p -> Domain); x0 = FIXED_TO_INT(fx); y0 = FIXED_TO_INT(fy); z0 = FIXED_TO_INT(fz); rx = FIXED_REST_TO_INT(fx); ry = FIXED_REST_TO_INT(fy); rz = FIXED_REST_TO_INT(fz); X0 = p -> opta3 * x0; X1 = X0 + (Input[0] == 0xFFFFU ? 0 : p->opta3); Y0 = p -> opta2 * y0; Y1 = Y0 + (Input[1] == 0xFFFFU ? 0 : p->opta2); Z0 = p -> opta1 * z0; Z1 = Z0 + (Input[2] == 0xFFFFU ? 0 : p->opta1); // These are the 6 Tetrahedral for (OutChan=0; OutChan < TotalOut; OutChan++) { c0 = DENS(X0, Y0, Z0); if (rx >= ry && ry >= rz) { c1 = DENS(X1, Y0, Z0) - c0; c2 = DENS(X1, Y1, Z0) - DENS(X1, Y0, Z0); c3 = DENS(X1, Y1, Z1) - DENS(X1, Y1, Z0); } else if (rx >= rz && rz >= ry) { c1 = DENS(X1, Y0, Z0) - c0; c2 = DENS(X1, Y1, Z1) - DENS(X1, Y0, Z1); c3 = DENS(X1, Y0, Z1) - DENS(X1, Y0, Z0); } else if (rz >= rx && rx >= ry) { c1 = DENS(X1, Y0, Z1) - DENS(X0, Y0, Z1); c2 = DENS(X1, Y1, Z1) - DENS(X1, Y0, Z1); c3 = DENS(X0, Y0, Z1) - c0; } else if (ry >= rx && rx >= rz) { c1 = DENS(X1, Y1, Z0) - DENS(X0, Y1, Z0); c2 = DENS(X0, Y1, Z0) - c0; c3 = DENS(X1, Y1, Z1) - DENS(X1, Y1, Z0); } else if (ry >= rz && rz >= rx) { c1 = DENS(X1, Y1, Z1) - DENS(X0, Y1, Z1); c2 = DENS(X0, Y1, Z0) - c0; c3 = DENS(X0, Y1, Z1) - DENS(X0, Y1, Z0); } else if (rz >= ry && ry >= rx) { c1 = DENS(X1, Y1, Z1) - DENS(X0, Y1, Z1); c2 = DENS(X0, Y1, Z1) - DENS(X0, Y0, Z1); c3 = DENS(X0, Y0, Z1) - c0; } else { c1 = c2 = c3 = 0; // assert(FALSE); } Rest = c1 * rx + c2 * ry + c3 * rz; // There is a lot of math hidden in this expression. The rest is in fixed domain // and the result in 0..ffff domain. So the complete expression should be // ROUND_FIXED_TO_INT(ToFixedDomain(Rest)) But that can be optimized as (Rest + 0x7FFF) / 0xFFFF Output[OutChan] = (WORD) (c0 + ((Rest + 0x7FFF) / 0xFFFF)); } } #undef DENS #endif // A optimized interpolation for 8-bit input. #define DENS(i,j,k) (LutTable[(i)+(j)+(k)+OutChan]) void cmsTetrahedralInterp8(WORD Input[], WORD Output[], WORD LutTable[], LPL16PARAMS p) { int r, g, b; Fixed32 rx, ry, rz; Fixed32 c1, c2, c3, Rest; int OutChan; register Fixed32 X0, X1, Y0, Y1, Z0, Z1; int TotalOut = p -> nOutputs; register LPL8PARAMS p8 = p ->p8; r = Input[0] >> 8; g = Input[1] >> 8; b = Input[2] >> 8; X0 = X1 = p8->X0[r]; Y0 = Y1 = p8->Y0[g]; Z0 = Z1 = p8->Z0[b]; X1 += (r == 255) ? 0 : p ->opta3; Y1 += (g == 255) ? 0 : p ->opta2; Z1 += (b == 255) ? 0 : p ->opta1; rx = p8 ->rx[r]; ry = p8 ->ry[g]; rz = p8 ->rz[b]; // These are the 6 Tetrahedral for (OutChan=0; OutChan < TotalOut; OutChan++) { if (rx >= ry && ry >= rz) { c1 = DENS(X1, Y0, Z0) - DENS(X0, Y0, Z0); c2 = DENS(X1, Y1, Z0) - DENS(X1, Y0, Z0); c3 = DENS(X1, Y1, Z1) - DENS(X1, Y1, Z0); } else if (rx >= rz && rz >= ry) { c1 = DENS(X1, Y0, Z0) - DENS(X0, Y0, Z0); c2 = DENS(X1, Y1, Z1) - DENS(X1, Y0, Z1); c3 = DENS(X1, Y0, Z1) - DENS(X1, Y0, Z0); } else if (rz >= rx && rx >= ry) { c1 = DENS(X1, Y0, Z1) - DENS(X0, Y0, Z1); c2 = DENS(X1, Y1, Z1) - DENS(X1, Y0, Z1); c3 = DENS(X0, Y0, Z1) - DENS(X0, Y0, Z0); } else if (ry >= rx && rx >= rz) { c1 = DENS(X1, Y1, Z0) - DENS(X0, Y1, Z0); c2 = DENS(X0, Y1, Z0) - DENS(X0, Y0, Z0); c3 = DENS(X1, Y1, Z1) - DENS(X1, Y1, Z0); } else if (ry >= rz && rz >= rx) { c1 = DENS(X1, Y1, Z1) - DENS(X0, Y1, Z1); c2 = DENS(X0, Y1, Z0) - DENS(X0, Y0, Z0); c3 = DENS(X0, Y1, Z1) - DENS(X0, Y1, Z0); } else if (rz >= ry && ry >= rx) { c1 = DENS(X1, Y1, Z1) - DENS(X0, Y1, Z1); c2 = DENS(X0, Y1, Z1) - DENS(X0, Y0, Z1); c3 = DENS(X0, Y0, Z1) - DENS(X0, Y0, Z0); } else { c1 = c2 = c3 = 0; // assert(FALSE); } Rest = c1 * rx + c2 * ry + c3 * rz; Output[OutChan] = (WORD) (DENS(X0,Y0,Z0) + ((Rest + 0x7FFF) / 0xFFFF)); } } #undef DENS lcms-1.19/src/cmsio0.c0000777000175300010010000004511311272606371014012 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // // Generic I/O, tag dictionary management, profile struct #include "lcms.h" // Memory-based stream --------------------------------------------------- typedef struct { LPBYTE Block; // Points to allocated memory size_t Size; // Size of allocated memory size_t Pointer; // Points to current location int FreeBlockOnClose; // As title } FILEMEM; static LPVOID MemoryOpen(LPBYTE Block, size_t Size, char Mode) { FILEMEM* fm = (FILEMEM*) _cmsMalloc(sizeof(FILEMEM)); if (fm == NULL) return NULL; ZeroMemory(fm, sizeof(FILEMEM)); if (Mode == 'r') { fm ->Block = (LPBYTE) _cmsMalloc(Size); if (fm ->Block == NULL) { _cmsFree(fm); return NULL; } CopyMemory(fm->Block, Block, Size); fm ->FreeBlockOnClose = TRUE; } else { fm ->Block = Block; fm ->FreeBlockOnClose = FALSE; } fm ->Size = Size; fm ->Pointer = 0; return (LPVOID) fm; } static size_t MemoryRead(LPVOID buffer, size_t size, size_t count, struct _lcms_iccprofile_struct* Icc) { FILEMEM* ResData = (FILEMEM*) Icc ->stream; LPBYTE Ptr; size_t len = size * count; size_t extent = ResData -> Pointer + len; if (len == 0) { return 0; } if (len / size != count) { cmsSignalError(LCMS_ERRC_ABORTED, "Read from memory error. Integer overflow with count / size."); return 0; } if (extent < len || extent < ResData -> Pointer) { cmsSignalError(LCMS_ERRC_ABORTED, "Read from memory error. Integer overflow with len."); return 0; } if (ResData -> Pointer + len > ResData -> Size) { len = (ResData -> Size - ResData -> Pointer); cmsSignalError(LCMS_ERRC_ABORTED, "Read from memory error. Got %d bytes, block should be of %d bytes", len * size, count * size); return 0; } Ptr = ResData -> Block; Ptr += ResData -> Pointer; CopyMemory(buffer, Ptr, len); ResData -> Pointer += (int) len; return count; } // SEEK_CUR is assumed static LCMSBOOL MemorySeek(struct _lcms_iccprofile_struct* Icc, size_t offset) { FILEMEM* ResData = (FILEMEM*) Icc ->stream; if (offset > ResData ->Size) { cmsSignalError(LCMS_ERRC_ABORTED, "Pointer error; probably corrupted file"); return TRUE; } ResData ->Pointer = (DWORD) offset; return FALSE; } // FTell static size_t MemoryTell(struct _lcms_iccprofile_struct* Icc) { FILEMEM* ResData = (FILEMEM*) Icc ->stream; return ResData -> Pointer; } // Writes data to memory, also keeps used space for further reference. NO CHECK IS PERFORMED static LCMSBOOL MemoryWrite(struct _lcms_iccprofile_struct* Icc, size_t size, void *Ptr) { FILEMEM* ResData = (FILEMEM*) Icc ->stream; if (size == 0) return TRUE; if (ResData != NULL) CopyMemory(ResData ->Block + Icc ->UsedSpace, Ptr, size); Icc->UsedSpace += size; return TRUE; } static LCMSBOOL MemoryClose(struct _lcms_iccprofile_struct* Icc) { FILEMEM* ResData = (FILEMEM*) Icc ->stream; if (ResData ->FreeBlockOnClose) { if (ResData ->Block) _cmsFree(ResData ->Block); } _cmsFree(ResData); return 0; } // File-based stream ------------------------------------------------------- static LPVOID FileOpen(const char* filename) { return (void*) fopen(filename, "rb"); } static size_t FileRead(void *buffer, size_t size, size_t count, struct _lcms_iccprofile_struct* Icc) { size_t nReaded = fread(buffer, size, count, (FILE*) Icc->stream); if (nReaded != count) { cmsSignalError(LCMS_ERRC_ABORTED, "Read error. Got %d bytes, block should be of %d bytes", nReaded * size, count * size); return 0; } return nReaded; } static LCMSBOOL FileSeek(struct _lcms_iccprofile_struct* Icc, size_t offset) { if (fseek((FILE*) Icc ->stream, (long) offset, SEEK_SET) != 0) { cmsSignalError(LCMS_ERRC_ABORTED, "Seek error; probably corrupted file"); return TRUE; } return FALSE; } static size_t FileTell(struct _lcms_iccprofile_struct* Icc) { return ftell((FILE*) Icc ->stream); } // Writes data to stream, also keeps used space for further reference static LCMSBOOL FileWrite(struct _lcms_iccprofile_struct* Icc, size_t size, LPVOID Ptr) { if (size == 0) return TRUE; Icc->UsedSpace += size; if (Icc->stream == NULL) { return TRUE; } return (fwrite(Ptr, size, 1, (FILE*) Icc->stream) == 1); } static LCMSBOOL FileClose(struct _lcms_iccprofile_struct* Icc) { return fclose((FILE*) Icc ->stream); } // ---------------------------------------------------------------------------------------------------- // Creates an empty structure holding all required parameters cmsHPROFILE _cmsCreateProfilePlaceholder(void) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) _cmsMalloc(sizeof(LCMSICCPROFILE)); if (Icc == NULL) return NULL; // Empty values ZeroMemory(Icc, sizeof(LCMSICCPROFILE)); // Make sure illuminant is correct Icc ->Illuminant = *cmsD50_XYZ(); // Set it to empty Icc -> TagCount = 0; // Return the handle return (cmsHPROFILE) Icc; } // Return the number of tags icInt32Number LCMSEXPORT cmsGetTagCount(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return Icc->TagCount; } // Return the tag signature of a given tag number icTagSignature LCMSEXPORT cmsGetTagSignature(cmsHPROFILE hProfile, icInt32Number n) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; if (n < 0 || n > Icc->TagCount) return (icTagSignature) 0; // Mark as not available return Icc ->TagNames[n]; } // Search for a specific tag in tag dictionary // Returns position or -1 if tag not found icInt32Number _cmsSearchTag(LPLCMSICCPROFILE Profile, icTagSignature sig, LCMSBOOL lSignalError) { icInt32Number i; if (sig == 0) return -1; // 0 identifies a special tag holding raw memory. for (i=0; i < Profile -> TagCount; i++) { if (sig == Profile -> TagNames[i]) return i; } if (lSignalError) cmsSignalError(LCMS_ERRC_ABORTED, "Tag '%lx' not found", sig); return -1; } // Check existance LCMSBOOL LCMSEXPORT cmsIsTag(cmsHPROFILE hProfile, icTagSignature sig) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; return _cmsSearchTag(Icc, sig, FALSE) >= 0; } // Search for a particular tag, replace if found or add new one else LPVOID _cmsInitTag(LPLCMSICCPROFILE Icc, icTagSignature sig, size_t size, const void* Init) { LPVOID Ptr; icInt32Number i; i = _cmsSearchTag(Icc, sig, FALSE); if (i >=0) { if (Icc -> TagPtrs[i]) _cmsFree(Icc -> TagPtrs[i]); } else { i = Icc -> TagCount; Icc -> TagCount++; if (Icc ->TagCount >= MAX_TABLE_TAG) { cmsSignalError(LCMS_ERRC_ABORTED, "Too many tags (%d)", MAX_TABLE_TAG); Icc ->TagCount = MAX_TABLE_TAG-1; return NULL; } } Ptr = _cmsMalloc(size); if (Ptr == NULL) return NULL; CopyMemory(Ptr, Init, size); Icc ->TagNames[i] = sig; Icc ->TagSizes[i] = size; Icc ->TagPtrs[i] = Ptr; return Ptr; } // Creates a profile from file read placeholder LPLCMSICCPROFILE _cmsCreateProfileFromFilePlaceholder(const char* FileName) { LPLCMSICCPROFILE NewIcc; LPVOID ICCfile = FileOpen(FileName); if (ICCfile == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "File '%s' not found", FileName); return NULL; } NewIcc = (LPLCMSICCPROFILE) _cmsCreateProfilePlaceholder(); if (NewIcc == NULL) return NULL; strncpy(NewIcc -> PhysicalFile, FileName, MAX_PATH-1); NewIcc -> PhysicalFile[MAX_PATH-1] = 0; NewIcc ->stream = ICCfile; NewIcc ->Read = FileRead; NewIcc ->Seek = FileSeek; NewIcc ->Tell = FileTell; NewIcc ->Close = FileClose; NewIcc ->Write = NULL; NewIcc ->IsWrite = FALSE; return NewIcc; } // Creates a profile from memory read placeholder LPLCMSICCPROFILE _cmsCreateProfileFromMemPlaceholder(LPVOID MemPtr, DWORD dwSize) { LPLCMSICCPROFILE NewIcc; LPVOID ICCfile = MemoryOpen((LPBYTE) MemPtr, (size_t) dwSize, 'r'); if (ICCfile == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Couldn't allocate %ld bytes for profile", dwSize); return NULL; } NewIcc = (LPLCMSICCPROFILE) _cmsCreateProfilePlaceholder(); if (NewIcc == NULL) return NULL; NewIcc -> PhysicalFile[0] = 0; NewIcc ->stream = ICCfile; NewIcc ->Read = MemoryRead; NewIcc ->Seek = MemorySeek; NewIcc ->Tell = MemoryTell; NewIcc ->Close = MemoryClose; NewIcc ->Write = NULL; NewIcc ->IsWrite = FALSE; return NewIcc; } // Turn a placeholder into file writter void _cmsSetSaveToDisk(LPLCMSICCPROFILE Icc, const char* FileName) { if (FileName == NULL) { Icc ->stream = NULL; } else { Icc ->stream = fopen(FileName, "wb"); if (Icc ->stream == NULL) cmsSignalError(LCMS_ERRC_ABORTED, "Couldn't write to file '%s'", FileName); } Icc ->Write = FileWrite; // Save to disk Icc ->Close = FileClose; } // Turn a placeholder into memory writter void _cmsSetSaveToMemory(LPLCMSICCPROFILE Icc, LPVOID MemPtr, size_t dwSize) { if (MemPtr == NULL) { Icc ->stream = NULL; } else { Icc ->stream = (FILEMEM*) MemoryOpen((LPBYTE) MemPtr, dwSize, 'w'); if (Icc ->stream == NULL) cmsSignalError(LCMS_ERRC_ABORTED, "Couldn't write to memory"); } Icc ->Write = MemoryWrite; Icc ->Close = MemoryClose; } // ----------------------------------------------------------------------- Set/Get several struct members LCMSBOOL LCMSEXPORT cmsTakeMediaWhitePoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; *Dest = Icc -> MediaWhitePoint; return TRUE; } LCMSBOOL LCMSEXPORT cmsTakeMediaBlackPoint(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; *Dest = Icc -> MediaBlackPoint; return TRUE; } LCMSBOOL LCMSEXPORT cmsTakeIluminant(LPcmsCIEXYZ Dest, cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; *Dest = Icc -> Illuminant; return TRUE; } int LCMSEXPORT cmsTakeRenderingIntent(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return (int) Icc -> RenderingIntent; } void LCMSEXPORT cmsSetRenderingIntent(cmsHPROFILE hProfile, int RenderingIntent) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> RenderingIntent = (icRenderingIntent) RenderingIntent; } DWORD LCMSEXPORT cmsTakeHeaderFlags(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return (DWORD) Icc -> flags; } void LCMSEXPORT cmsSetHeaderFlags(cmsHPROFILE hProfile, DWORD Flags) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> flags = (icUInt32Number) Flags; } DWORD LCMSEXPORT cmsTakeHeaderAttributes(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return (DWORD) Icc -> attributes; } void LCMSEXPORT cmsSetHeaderAttributes(cmsHPROFILE hProfile, DWORD Flags) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> attributes = (icUInt32Number) Flags; } const BYTE* LCMSEXPORT cmsTakeProfileID(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return Icc ->ProfileID; } void LCMSEXPORT cmsSetProfileID(cmsHPROFILE hProfile, LPBYTE ProfileID) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; CopyMemory(Icc -> ProfileID, ProfileID, 16); } LCMSBOOL LCMSEXPORT cmsTakeCreationDateTime(struct tm *Dest, cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; CopyMemory(Dest, &Icc ->Created, sizeof(struct tm)); return TRUE; } icColorSpaceSignature LCMSEXPORT cmsGetPCS(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return Icc -> PCS; } void LCMSEXPORT cmsSetPCS(cmsHPROFILE hProfile, icColorSpaceSignature pcs) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> PCS = pcs; } icColorSpaceSignature LCMSEXPORT cmsGetColorSpace(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return Icc -> ColorSpace; } void LCMSEXPORT cmsSetColorSpace(cmsHPROFILE hProfile, icColorSpaceSignature sig) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> ColorSpace = sig; } icProfileClassSignature LCMSEXPORT cmsGetDeviceClass(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return Icc -> DeviceClass; } DWORD LCMSEXPORT cmsGetProfileICCversion(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; return (DWORD) Icc -> Version; } void LCMSEXPORT cmsSetProfileICCversion(cmsHPROFILE hProfile, DWORD Version) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> Version = Version; } void LCMSEXPORT cmsSetDeviceClass(cmsHPROFILE hProfile, icProfileClassSignature sig) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; Icc -> DeviceClass = sig; } // -------------------------------------------------------------------------------------------------------------- static int SizeOfGammaTab(LPGAMMATABLE In) { return sizeof(GAMMATABLE) + (In -> nEntries - 1)*sizeof(WORD); } // Creates a phantom tag holding a memory block static LPVOID DupBlock(LPLCMSICCPROFILE Icc, LPVOID Block, size_t size) { if (Block != NULL && size > 0) return _cmsInitTag(Icc, (icTagSignature) 0, size, Block); else return NULL; } // This is tricky, since LUT structs does have pointers LCMSBOOL LCMSEXPORT _cmsAddLUTTag(cmsHPROFILE hProfile, icTagSignature sig, const void* lut) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; LPLUT Orig, Stored; unsigned int i; // The struct itself Orig = (LPLUT) lut; Stored = (LPLUT) _cmsInitTag(Icc, (icTagSignature) sig, sizeof(LUT), lut); // dup' the memory blocks for (i=0; i < Orig ->InputChan; i++) Stored -> L1[i] = (LPWORD) DupBlock(Icc, (LPWORD) Orig ->L1[i], sizeof(WORD) * Orig ->In16params.nSamples); for (i=0; i < Orig ->OutputChan; i++) Stored -> L2[i] = (LPWORD) DupBlock(Icc, (LPWORD) Orig ->L2[i], sizeof(WORD) * Orig ->Out16params.nSamples); Stored -> T = (LPWORD) DupBlock(Icc, (LPWORD) Orig ->T, Orig -> Tsize); // Zero any additional pointer Stored ->CLut16params.p8 = NULL; return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddXYZTag(cmsHPROFILE hProfile, icTagSignature sig, const cmsCIEXYZ* XYZ) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, sizeof(cmsCIEXYZ), XYZ); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddTextTag(cmsHPROFILE hProfile, icTagSignature sig, const char* Text) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, strlen(Text)+1, (LPVOID) Text); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddGammaTag(cmsHPROFILE hProfile, icTagSignature sig, LPGAMMATABLE TransferFunction) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, SizeOfGammaTab(TransferFunction), TransferFunction); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddChromaticityTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsCIExyYTRIPLE Chrm) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, sizeof(cmsCIExyYTRIPLE), Chrm); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddSequenceDescriptionTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsSEQ pseq) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, sizeof(int) + pseq -> n * sizeof(cmsPSEQDESC), pseq); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddNamedColorTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, sizeof(cmsNAMEDCOLORLIST) + (nc ->nColors - 1) * sizeof(cmsNAMEDCOLOR), nc); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddDateTimeTag(cmsHPROFILE hProfile, icTagSignature sig, struct tm *DateTime) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, sizeof(struct tm), DateTime); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddColorantTableTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, sizeof(cmsNAMEDCOLORLIST) + (nc ->nColors - 1) * sizeof(cmsNAMEDCOLOR), nc); return TRUE; } LCMSBOOL LCMSEXPORT _cmsAddChromaticAdaptationTag(cmsHPROFILE hProfile, icTagSignature sig, const cmsCIEXYZ* mat) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; _cmsInitTag(Icc, sig, 3*sizeof(cmsCIEXYZ), mat); return TRUE; } lcms-1.19/src/cmsio1.c0000777000175300010010000031536711277220223014017 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // ICC profile serialization #include "lcms.h" // ----------------------------------------------------------------- Tag Serialization // Alignment of ICC file format uses 4 bytes DWORD #define ALIGNLONG(x) (((x)+3) & ~(3)) // Aligns to DWORD boundary static int GlobalLanguageCode; // Language & country descriptors, for ICC 4.0 support static int GlobalCountryCode; #ifdef __BEOS__ # define USE_CUSTOM_SWAB 1 #endif #ifdef USE_CUSTOM_SWAB // Replacement to swab function, thanks to YNOP // for providing the BeOS port // // from: @(#)swab.c 5.10 (Berkeley) 3/6/91 static void xswab(const void *from, void *to, size_t len) { register unsigned long temp; register int n; register char *fp, *tp; n = (len >> 1) + 1; fp = (char *)from; tp = (char *)to; #define STEP temp = *fp++,*tp++ = *fp++,*tp++ = temp /* round to multiple of 8 */ while ((--n) & 07) STEP; n >>= 3; while (--n >= 0) { STEP; STEP; STEP; STEP; STEP; STEP; STEP; STEP; } #undef STEP } #else #define xswab swab #endif // // Little-Endian to Big-Endian // #ifdef USE_BIG_ENDIAN #define AdjustEndianess16(a) #define AdjustEndianess32(a) #define AdjustEndianessArray16(a, b) #else static void AdjustEndianess16(LPBYTE pByte) { BYTE tmp; tmp = pByte[0]; pByte[0] = pByte[1]; pByte[1] = tmp; } static void AdjustEndianess32(LPBYTE pByte) { BYTE temp1; BYTE temp2; temp1 = *pByte++; temp2 = *pByte++; *(pByte-1) = *pByte; *pByte++ = temp2; *(pByte-3) = *pByte; *pByte = temp1; } // swap bytes in a array of words static void AdjustEndianessArray16(LPWORD p, size_t num_words) { xswab((char*) p, (char*)p, (int) num_words * sizeof(WORD)); } #endif // Transports to properly encoded values - note that icc profiles does use // big endian notation. static icInt32Number TransportValue32(icInt32Number Value) { icInt32Number Temp = Value; AdjustEndianess32((LPBYTE) &Temp); return Temp; } static WORD TransportValue16(WORD Value) { WORD Temp = Value; AdjustEndianess16((LPBYTE) &Temp); return Temp; } // from Fixed point 8.8 to double static double Convert8Fixed8(WORD fixed8) { BYTE msb, lsb; lsb = (BYTE) (fixed8 & 0xff); msb = (BYTE) (((WORD) fixed8 >> 8) & 0xff); return (double) ((double) msb + ((double) lsb / 256.0)); } // from Fixed point 15.16 to double static double Convert15Fixed16(icS15Fixed16Number fix32) { double floater, sign, mid, hack; int Whole, FracPart; AdjustEndianess32((LPBYTE) &fix32); sign = (fix32 < 0 ? -1 : 1); fix32 = abs(fix32); Whole = LOWORD(fix32 >> 16); FracPart = LOWORD(fix32 & 0x0000ffffL); hack = 65536.0; mid = (double) FracPart / hack; floater = (double) Whole + mid; return sign * floater; } // Auxiliar-- read base and return type static icTagTypeSignature ReadBase(LPLCMSICCPROFILE Icc) { icTagBase Base; if (Icc -> Read(&Base, sizeof(icTagBase), 1, Icc) != 1) return (icTagTypeSignature) 0; AdjustEndianess32((LPBYTE) &Base.sig); return Base.sig; } static void DecodeDateTimeNumber(const icDateTimeNumber *Source, struct tm *Dest) { Dest->tm_sec = TransportValue16(Source->seconds); Dest->tm_min = TransportValue16(Source->minutes); Dest->tm_hour = TransportValue16(Source->hours); Dest->tm_mday = TransportValue16(Source->day); Dest->tm_mon = TransportValue16(Source->month) - 1; Dest->tm_year = TransportValue16(Source->year) - 1900; Dest->tm_wday = -1; Dest->tm_yday = -1; Dest->tm_isdst = 0; } static void EncodeDateTimeNumber(icDateTimeNumber *Dest, const struct tm *Source) { Dest->seconds = TransportValue16((WORD) Source->tm_sec); Dest->minutes = TransportValue16((WORD) Source->tm_min); Dest->hours = TransportValue16((WORD) Source->tm_hour); Dest->day = TransportValue16((WORD) Source->tm_mday); Dest->month = TransportValue16((WORD) (Source->tm_mon + 1)); Dest->year = TransportValue16((WORD) (Source->tm_year + 1900)); } // Jun-21-2000: Some profiles (those that comes with W2K) comes // with the media white (media black?) x 100. Add a sanity check static void NormalizeXYZ(LPcmsCIEXYZ Dest) { while (Dest -> X > 2. && Dest -> Y > 2. && Dest -> Z > 2.) { Dest -> X /= 10.; Dest -> Y /= 10.; Dest -> Z /= 10.; } } // Evaluates a XYZ tristimulous across chromatic adaptation matrix static void EvalCHRM(LPcmsCIEXYZ Dest, LPMAT3 Chrm, LPcmsCIEXYZ Src) { VEC3 d, s; s.n[VX] = Src -> X; s.n[VY] = Src -> Y; s.n[VZ] = Src -> Z; MAT3eval(&d, Chrm, &s); Dest ->X = d.n[VX]; Dest ->Y = d.n[VY]; Dest ->Z = d.n[VZ]; } // Read profile header and validate it static LPLCMSICCPROFILE ReadHeader(LPLCMSICCPROFILE Icc, LCMSBOOL lIsFromMemory) { icTag Tag; icHeader Header; icInt32Number TagCount, i; icUInt32Number extent; if (Icc -> Read(&Header, sizeof(icHeader), 1, Icc) != 1) goto ErrorCleanup; // Convert endian AdjustEndianess32((LPBYTE) &Header.size); AdjustEndianess32((LPBYTE) &Header.cmmId); AdjustEndianess32((LPBYTE) &Header.version); AdjustEndianess32((LPBYTE) &Header.deviceClass); AdjustEndianess32((LPBYTE) &Header.colorSpace); AdjustEndianess32((LPBYTE) &Header.pcs); AdjustEndianess32((LPBYTE) &Header.magic); AdjustEndianess32((LPBYTE) &Header.flags); AdjustEndianess32((LPBYTE) &Header.attributes[0]); AdjustEndianess32((LPBYTE) &Header.renderingIntent); // Validate it if (Header.magic != icMagicNumber) goto ErrorCleanup; if (Icc ->Read(&TagCount, sizeof(icInt32Number), 1, Icc) != 1) goto ErrorCleanup; AdjustEndianess32((LPBYTE) &TagCount); Icc -> DeviceClass = Header.deviceClass; Icc -> ColorSpace = Header.colorSpace; Icc -> PCS = Header.pcs; Icc -> RenderingIntent = (icRenderingIntent) Header.renderingIntent; Icc -> flags = Header.flags; Icc -> attributes = Header.attributes[0]; Icc -> Illuminant.X = Convert15Fixed16(Header.illuminant.X); Icc -> Illuminant.Y = Convert15Fixed16(Header.illuminant.Y); Icc -> Illuminant.Z = Convert15Fixed16(Header.illuminant.Z); Icc -> Version = Header.version; // Get creation date/time DecodeDateTimeNumber(&Header.date, &Icc ->Created); // Fix illuminant, some profiles are broken in this field! Icc ->Illuminant = *cmsD50_XYZ(); // The profile ID are 16 raw bytes CopyMemory(Icc ->ProfileID, Header.reserved, 16); // Get rid of possible wrong profiles NormalizeXYZ(&Icc -> Illuminant); // Read tag directory if (TagCount > MAX_TABLE_TAG || TagCount < 0) { cmsSignalError(LCMS_ERRC_ABORTED, "Too many tags (%d)", TagCount); goto ErrorCleanup; } Icc -> TagCount = TagCount; for (i=0; i < TagCount; i++) { if (Icc ->Read(&Tag, sizeof(icTag), 1, Icc) != 1) goto ErrorCleanup; AdjustEndianess32((LPBYTE) &Tag.offset); AdjustEndianess32((LPBYTE) &Tag.size); AdjustEndianess32((LPBYTE) &Tag.sig); // Signature // Perform some sanity check. Offset + size should fall inside file. extent = Tag.offset + Tag.size; if (extent > Header.size || extent < Tag.offset) goto ErrorCleanup; Icc -> TagNames[i] = Tag.sig; Icc -> TagOffsets[i] = Tag.offset; Icc -> TagSizes[i] = Tag.size; } return Icc; ErrorCleanup: Icc ->Close(Icc); if (lIsFromMemory) cmsSignalError(LCMS_ERRC_ABORTED, "Corrupted memory profile"); else cmsSignalError(LCMS_ERRC_ABORTED, "Corrupted profile: '%s'", Icc->PhysicalFile); _cmsFree(Icc); return NULL; } static unsigned int uipow(unsigned int a, unsigned int b) { unsigned int rv = 1; for (; b > 0; b--) rv *= a; return rv; } // Convert between notations. #define TO16_TAB(x) (WORD) (((x) << 8) | (x)) // LUT8 can come only in Lab space. There is a fatal flaw in // converting from Lut8 to Lut16. Due to particular encoding // of Lab, different actions should be taken from input and // output Lab8 LUTS. For input, is as easy as applying a << 8, // since numbers comes in fixed point. However, for output LUT // things goes a bit more complex.... LUT 16 is supposed to // have a domain of 0..ff00, so we should remap the LUT in order // to get things working. Affected signatures are B2Axx tags, // preview and gamut. // I do solve it by multiplying input matrix by: // // | 0xffff/0xff00 0 0 | // | 0 0xffff/0xff00 0 | // | 0 0 0xffff/0xff00 | // // The input values got then remapped to adequate domain static void FixLUT8(LPLUT Lut, icTagSignature sig, size_t nTabSize) { MAT3 Fixup, Original, Result; LPWORD PtrW; size_t i; switch (sig) { case icSigBToA0Tag: case icSigBToA1Tag: case icSigBToA2Tag: case icSigGamutTag: case icSigPreview0Tag: case icSigPreview1Tag: case icSigPreview2Tag: VEC3init(&Fixup.v[0], (double) 0xFFFF/0xFF00, 0, 0); VEC3init(&Fixup.v[1], 0, (double) 0xFFFF/0xFF00, 0); VEC3init(&Fixup.v[2], 0, 0, (double) 0xFFFF/0xFF00); MAT3fromFix(&Original, &Lut->Matrix); MAT3per(&Result, &Original, &Fixup); MAT3toFix(&Lut->Matrix, &Result); Lut -> wFlags |= LUT_HASMATRIX; break; // For input, clear low part since this has to be // Lab in fixed point default: PtrW = Lut -> T; for (i = 0; i < nTabSize; i++) { *PtrW++ &= 0xFF00; } } } // On Lab -> Lab abstract or Lab identities, fix both sides of LUT static void FixLUT8bothSides(LPLUT Lut, size_t nTabSize) { MAT3 Fixup, Original, Result; LPWORD PtrW; size_t i; VEC3init(&Fixup.v[0], (double) 0xFFFF/0xFF00, 0, 0); VEC3init(&Fixup.v[1], 0, (double) 0xFFFF/0xFF00, 0); VEC3init(&Fixup.v[2], 0, 0, (double) 0xFFFF/0xFF00); MAT3fromFix(&Original, &Lut->Matrix); MAT3per(&Result, &Original, &Fixup); MAT3toFix(&Lut->Matrix, &Result); Lut -> wFlags |= LUT_HASMATRIX; PtrW = Lut -> T; for (i = 0; i < nTabSize; i++) { *PtrW++ &= 0xFF00; } } // The infamous LUT 8 static LCMSBOOL ReadLUT8(LPLCMSICCPROFILE Icc, LPLUT NewLUT, icTagSignature sig) { icLut8 LUT8; LPBYTE Temp; size_t nTabSize; unsigned int i, j; unsigned int AllLinear; LPWORD PtrW; if (Icc ->Read(&LUT8, sizeof(icLut8) - SIZEOF_UINT8_ALIGNED, 1, Icc) != 1) return FALSE; NewLUT -> wFlags = LUT_HASTL1|LUT_HASTL2|LUT_HAS3DGRID; NewLUT -> cLutPoints = LUT8.clutPoints; NewLUT -> InputChan = LUT8.inputChan; NewLUT -> OutputChan = LUT8.outputChan; NewLUT -> InputEntries = 256; NewLUT -> OutputEntries = 256; // Do some checking if (!_cmsValidateLUT(NewLUT)) { return FALSE; } AdjustEndianess32((LPBYTE) &LUT8.e00); AdjustEndianess32((LPBYTE) &LUT8.e01); AdjustEndianess32((LPBYTE) &LUT8.e02); AdjustEndianess32((LPBYTE) &LUT8.e10); AdjustEndianess32((LPBYTE) &LUT8.e11); AdjustEndianess32((LPBYTE) &LUT8.e12); AdjustEndianess32((LPBYTE) &LUT8.e20); AdjustEndianess32((LPBYTE) &LUT8.e21); AdjustEndianess32((LPBYTE) &LUT8.e22); // Matrix handling NewLUT -> Matrix.v[0].n[0] = (Fixed32) LUT8.e00; NewLUT -> Matrix.v[0].n[1] = (Fixed32) LUT8.e01; NewLUT -> Matrix.v[0].n[2] = (Fixed32) LUT8.e02; NewLUT -> Matrix.v[1].n[0] = (Fixed32) LUT8.e10; NewLUT -> Matrix.v[1].n[1] = (Fixed32) LUT8.e11; NewLUT -> Matrix.v[1].n[2] = (Fixed32) LUT8.e12; NewLUT -> Matrix.v[2].n[0] = (Fixed32) LUT8.e20; NewLUT -> Matrix.v[2].n[1] = (Fixed32) LUT8.e21; NewLUT -> Matrix.v[2].n[2] = (Fixed32) LUT8.e22; // Only operates if not identity... if ((NewLUT -> InputChan == 3) && !MAT3isIdentity(&NewLUT -> Matrix, 0.0001)) { NewLUT -> wFlags |= LUT_HASMATRIX; } // Copy input tables Temp = (LPBYTE) _cmsMalloc(256); if (Temp == NULL) return FALSE; AllLinear = 0; for (i=0; i < NewLUT -> InputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * 256); if (PtrW == NULL) { _cmsFree(Temp); return FALSE; } NewLUT -> L1[i] = PtrW; if (Icc ->Read(Temp, 1, 256, Icc) != 256) { _cmsFree(Temp); return FALSE; } for (j=0; j < 256; j++) PtrW[j] = TO16_TAB(Temp[j]); AllLinear += cmsIsLinear(NewLUT -> L1[i], NewLUT -> InputEntries); } // Linear input, so ignore full step if (AllLinear == NewLUT -> InputChan) { NewLUT -> wFlags &= ~LUT_HASTL1; } _cmsFree(Temp); // Copy 3D CLUT nTabSize = (NewLUT -> OutputChan * uipow(NewLUT->cLutPoints, NewLUT->InputChan)); if (nTabSize > 0) { PtrW = (LPWORD) _cmsCalloc(sizeof(WORD), nTabSize); if (PtrW == NULL) return FALSE; Temp = (LPBYTE) _cmsMalloc(nTabSize); if (Temp == NULL) { _cmsFree(PtrW); return FALSE; } if (Icc ->Read(Temp, 1, nTabSize, Icc) != nTabSize) { _cmsFree(Temp); _cmsFree(PtrW); return FALSE; } NewLUT -> T = PtrW; NewLUT -> Tsize = (unsigned int) (nTabSize * sizeof(WORD)); for (i = 0; i < nTabSize; i++) { *PtrW++ = TO16_TAB(Temp[i]); } _cmsFree(Temp); } else { NewLUT ->T = NULL; NewLUT ->Tsize = 0; NewLUT ->wFlags &= ~LUT_HAS3DGRID; } // Copy output tables Temp = (LPBYTE) _cmsMalloc(256); if (Temp == NULL) { return FALSE; } AllLinear = 0; for (i=0; i < NewLUT -> OutputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * 256); if (PtrW == NULL) { _cmsFree(Temp); return FALSE; } NewLUT -> L2[i] = PtrW; if (Icc ->Read(Temp, 1, 256, Icc) != 256) { _cmsFree(Temp); return FALSE; } for (j=0; j < 256; j++) PtrW[j] = TO16_TAB(Temp[j]); AllLinear += cmsIsLinear(NewLUT -> L2[i], 256); } // Linear input, so ignore full step if (AllLinear == NewLUT -> OutputChan) { NewLUT -> wFlags &= ~LUT_HASTL2; } _cmsFree(Temp); cmsCalcL16Params(NewLUT -> InputEntries, &NewLUT -> In16params); cmsCalcL16Params(NewLUT -> OutputEntries, &NewLUT -> Out16params); cmsCalcCLUT16Params(NewLUT -> cLutPoints, NewLUT -> InputChan, NewLUT -> OutputChan, &NewLUT -> CLut16params); // Fixup if (Icc ->PCS == icSigLabData) { // Abstract or Lab identity if (Icc -> ColorSpace == icSigLabData) FixLUT8bothSides(NewLUT, nTabSize); else FixLUT8(NewLUT, sig, nTabSize); // Now some additional fixup. Lab encoding on 8 bit makes // impossible to place gray axis on a exact node. However, // some profiles does claim to do that. Poor lcms will try // to detect such condition and fix up "on the fly". switch (sig) { case icSigBToA0Tag: case icSigBToA1Tag: case icSigBToA2Tag: case icSigGamutTag: case icSigPreview0Tag: case icSigPreview1Tag: case icSigPreview2Tag: { LPWORD WhiteLab, ExpectedWhite; WORD WhiteFixed[MAXCHANNELS], WhiteUnfixed[MAXCHANNELS]; int j, nChannels; double Dist, DistFixed, DistUnfixed; _cmsEndPointsBySpace(icSigLabData, &WhiteLab, NULL, NULL); if (_cmsEndPointsBySpace(Icc -> ColorSpace, &ExpectedWhite, NULL, &nChannels)) { // 1.- Find white obtained by both combinations NewLUT -> FixGrayAxes = FALSE; cmsEvalLUT(NewLUT, WhiteLab, WhiteUnfixed); NewLUT -> FixGrayAxes = TRUE; cmsEvalLUT(NewLUT, WhiteLab, WhiteFixed); // 2.- Which method gives closer white? DistFixed = DistUnfixed = 0; for (j=0; j < nChannels; j++) { Dist = ExpectedWhite[j] - WhiteFixed[j]; DistFixed += Dist*Dist; Dist = ExpectedWhite[j] - WhiteUnfixed[j]; DistUnfixed += Dist*Dist; } // 3.- Decide method if (sqrt(DistFixed) < sqrt(DistUnfixed)) NewLUT -> FixGrayAxes = TRUE; else NewLUT -> FixGrayAxes = FALSE; } } break; default:; } } return TRUE; } // Case LUT 16 static LCMSBOOL ReadLUT16(LPLCMSICCPROFILE Icc, LPLUT NewLUT) { icLut16 LUT16; size_t nTabSize; unsigned int i; unsigned int AllLinear; LPWORD PtrW; if (Icc ->Read(&LUT16, sizeof(icLut16)- SIZEOF_UINT16_ALIGNED, 1, Icc) != 1) return FALSE; NewLUT -> wFlags = LUT_HASTL1 | LUT_HASTL2 | LUT_HAS3DGRID; NewLUT -> cLutPoints = LUT16.clutPoints; NewLUT -> InputChan = LUT16.inputChan; NewLUT -> OutputChan = LUT16.outputChan; AdjustEndianess16((LPBYTE) &LUT16.inputEnt); AdjustEndianess16((LPBYTE) &LUT16.outputEnt); NewLUT -> InputEntries = LUT16.inputEnt; NewLUT -> OutputEntries = LUT16.outputEnt; if (!_cmsValidateLUT(NewLUT)) { return FALSE; } // Matrix handling AdjustEndianess32((LPBYTE) &LUT16.e00); AdjustEndianess32((LPBYTE) &LUT16.e01); AdjustEndianess32((LPBYTE) &LUT16.e02); AdjustEndianess32((LPBYTE) &LUT16.e10); AdjustEndianess32((LPBYTE) &LUT16.e11); AdjustEndianess32((LPBYTE) &LUT16.e12); AdjustEndianess32((LPBYTE) &LUT16.e20); AdjustEndianess32((LPBYTE) &LUT16.e21); AdjustEndianess32((LPBYTE) &LUT16.e22); NewLUT -> Matrix.v[0].n[0] = (Fixed32) LUT16.e00; NewLUT -> Matrix.v[0].n[1] = (Fixed32) LUT16.e01; NewLUT -> Matrix.v[0].n[2] = (Fixed32) LUT16.e02; NewLUT -> Matrix.v[1].n[0] = (Fixed32) LUT16.e10; NewLUT -> Matrix.v[1].n[1] = (Fixed32) LUT16.e11; NewLUT -> Matrix.v[1].n[2] = (Fixed32) LUT16.e12; NewLUT -> Matrix.v[2].n[0] = (Fixed32) LUT16.e20; NewLUT -> Matrix.v[2].n[1] = (Fixed32) LUT16.e21; NewLUT -> Matrix.v[2].n[2] = (Fixed32) LUT16.e22; // Only operates if not identity... if ((NewLUT -> InputChan == 3) && !MAT3isIdentity(&NewLUT -> Matrix, 0.0001)) { NewLUT -> wFlags |= LUT_HASMATRIX; } // Copy input tables AllLinear = 0; for (i=0; i < NewLUT -> InputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewLUT -> InputEntries); if (PtrW == NULL) return FALSE; NewLUT -> L1[i] = PtrW; if (Icc ->Read(PtrW, sizeof(WORD), NewLUT -> InputEntries, Icc) != NewLUT -> InputEntries) { return FALSE; } AdjustEndianessArray16(PtrW, NewLUT -> InputEntries); AllLinear += cmsIsLinear(NewLUT -> L1[i], NewLUT -> InputEntries); } // Linear input, so ignore full step if (AllLinear == NewLUT -> InputChan) { NewLUT -> wFlags &= ~LUT_HASTL1; } // Copy 3D CLUT nTabSize = (NewLUT -> OutputChan * uipow(NewLUT->cLutPoints, NewLUT->InputChan)); if (nTabSize > 0) { PtrW = (LPWORD) _cmsCalloc(sizeof(WORD), nTabSize); if (PtrW == NULL) return FALSE; NewLUT -> T = PtrW; NewLUT -> Tsize = (unsigned int) (nTabSize * sizeof(WORD)); if (Icc -> Read(PtrW, sizeof(WORD), nTabSize, Icc) != nTabSize) { return FALSE; } AdjustEndianessArray16(NewLUT -> T, nTabSize); } else { NewLUT ->T = NULL; NewLUT ->Tsize = 0; NewLUT -> wFlags &= ~LUT_HAS3DGRID; } // Copy output tables AllLinear = 0; for (i=0; i < NewLUT -> OutputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewLUT -> OutputEntries); if (PtrW == NULL) { return FALSE; } NewLUT -> L2[i] = PtrW; if (Icc ->Read(PtrW, sizeof(WORD), NewLUT -> OutputEntries, Icc) != NewLUT -> OutputEntries) { return FALSE; } AdjustEndianessArray16(PtrW, NewLUT -> OutputEntries); AllLinear += cmsIsLinear(NewLUT -> L2[i], NewLUT -> OutputEntries); } // Linear output, ignore step if (AllLinear == NewLUT -> OutputChan) { NewLUT -> wFlags &= ~LUT_HASTL2; } cmsCalcL16Params(NewLUT -> InputEntries, &NewLUT -> In16params); cmsCalcL16Params(NewLUT -> OutputEntries, &NewLUT -> Out16params); cmsCalcCLUT16Params(NewLUT -> cLutPoints, NewLUT -> InputChan, NewLUT -> OutputChan, &NewLUT -> CLut16params); return TRUE; } // This is a shared routine for reading curves. It can handle v2 curves // as linear, single gamma and table-based as well as v4 parametric curves. static LPGAMMATABLE ReadCurve(LPLCMSICCPROFILE Icc) { icUInt32Number Count; LPGAMMATABLE NewGamma; icTagTypeSignature BaseType; int n; BaseType = ReadBase(Icc); switch (BaseType) { case ((icTagTypeSignature) 0x9478ee00): // Monaco 2 profiler is BROKEN! case icSigCurveType: if (Icc ->Read(&Count, sizeof(icUInt32Number), 1, Icc) != 1) return NULL; AdjustEndianess32((LPBYTE) &Count); switch (Count) { case 0: // Linear. NewGamma = cmsAllocGamma(2); if (!NewGamma) return NULL; NewGamma -> GammaTable[0] = 0; NewGamma -> GammaTable[1] = 0xFFFF; return NewGamma; case 1: // Specified as the exponent of gamma function { WORD SingleGammaFixed; if (Icc ->Read(&SingleGammaFixed, sizeof(WORD), 1, Icc) != 1) return NULL; AdjustEndianess16((LPBYTE) &SingleGammaFixed); return cmsBuildGamma(4096, Convert8Fixed8(SingleGammaFixed)); } default: { // Curve NewGamma = cmsAllocGamma(Count); if (!NewGamma) return NULL; if (Icc ->Read(NewGamma -> GammaTable, sizeof(WORD), Count, Icc) != Count) return NULL; AdjustEndianessArray16(NewGamma -> GammaTable, Count); return NewGamma; } } break; // Parametric curves case icSigParametricCurveType: { int ParamsByType[] = { 1, 3, 4, 5, 7 }; double Params[10]; icS15Fixed16Number Num; icUInt32Number Reserved; icUInt16Number Type; int i; if (Icc -> Read(&Type, sizeof(icUInt16Number), 1, Icc) != 1) return NULL; if (Icc -> Read(&Reserved, sizeof(icUInt16Number), 1, Icc) != 1) return NULL; AdjustEndianess16((LPBYTE) &Type); if (Type > 4) { cmsSignalError(LCMS_ERRC_ABORTED, "Unknown parametric curve type '%d' found.", Type); return NULL; } ZeroMemory(Params, 10* sizeof(double)); n = ParamsByType[Type]; for (i=0; i < n; i++) { Num = 0; if (Icc -> Read(&Num, sizeof(icS15Fixed16Number), 1, Icc) != 1) return NULL; Params[i] = Convert15Fixed16(Num); } NewGamma = cmsBuildParametricGamma(4096, Type+1, Params); return NewGamma; } default: cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature '%lx' found.", BaseType); return NULL; } } // Similar to anterior, but curve is reversed static LPGAMMATABLE ReadCurveReversed(LPLCMSICCPROFILE Icc) { icTagTypeSignature BaseType; LPGAMMATABLE NewGamma, ReturnGamma; icUInt32Number Count; int n; BaseType = ReadBase(Icc); switch (BaseType) { case 0x9478ee00L: // Monaco 2 profiler is BROKEN! case icSigCurveType: if (Icc -> Read(&Count, sizeof(icUInt32Number), 1, Icc) != 1) return NULL; AdjustEndianess32((LPBYTE) &Count); switch (Count) { case 0: // Linear, reverse is same. NewGamma = cmsAllocGamma(2); if (!NewGamma) return NULL; NewGamma -> GammaTable[0] = 0; NewGamma -> GammaTable[1] = 0xFFFF; return NewGamma; case 1: { WORD SingleGammaFixed; if (Icc -> Read(&SingleGammaFixed, sizeof(WORD), 1, Icc) != 1) return NULL; AdjustEndianess16((LPBYTE) &SingleGammaFixed); return cmsBuildGamma(4096, 1./Convert8Fixed8(SingleGammaFixed)); } default: { // Curve. Do our best to trying to reverse the curve NewGamma = cmsAllocGamma(Count); if (!NewGamma) return NULL; if (Icc -> Read(NewGamma -> GammaTable, sizeof(WORD), Count, Icc) != Count) return NULL; AdjustEndianessArray16(NewGamma -> GammaTable, Count); if (Count < 256) Count = 256; // Reverse of simple curve has not necesarely to be simple ReturnGamma = cmsReverseGamma(Count, NewGamma); cmsFreeGamma(NewGamma); return ReturnGamma; } } break; // Parametric curves case icSigParametricCurveType: { int ParamsByType[] = { 1, 3, 4, 5, 7 }; double Params[10]; icS15Fixed16Number Num; icUInt32Number Reserved; icUInt16Number Type; int i; if (Icc -> Read(&Type, sizeof(icUInt16Number), 1, Icc) != 1) return NULL; if (Icc -> Read(&Reserved, sizeof(icUInt16Number), 1, Icc) != 1) return NULL; AdjustEndianess16((LPBYTE) &Type); if (Type > 4) { cmsSignalError(LCMS_ERRC_ABORTED, "Unknown parametric curve type '%d' found.", Type); return NULL; } ZeroMemory(Params, 10* sizeof(double)); n = ParamsByType[Type]; for (i=0; i < n; i++) { if (Icc -> Read(&Num, sizeof(icS15Fixed16Number), 1, Icc) != 1) return NULL; Params[i] = Convert15Fixed16(Num); } // Negative type as a mark of reversed curve NewGamma = cmsBuildParametricGamma(4096, -(Type+1), Params); return NewGamma; } default: cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature '%lx' found.", BaseType); return NULL; } } // V4 stuff. Read matrix for LutAtoB and LutBtoA static LCMSBOOL ReadMatrixOffset(LPLCMSICCPROFILE Icc, size_t Offset, LPLUT NewLUT, DWORD dwFlags) { icS15Fixed16Number All[12]; int i; MAT3 m; VEC3 o; if (Icc -> Seek(Icc, Offset)) return FALSE; if (Icc ->Read(All, sizeof(icS15Fixed16Number), 12, Icc) != 12) return FALSE; for (i=0; i < 12; i++) AdjustEndianess32((LPBYTE) &All[i]); m.v[0].n[0] = FIXED_TO_DOUBLE((Fixed32) All[0]); m.v[0].n[1] = FIXED_TO_DOUBLE((Fixed32) All[1]); m.v[0].n[2] = FIXED_TO_DOUBLE((Fixed32) All[2]); m.v[1].n[0] = FIXED_TO_DOUBLE((Fixed32) All[3]); m.v[1].n[1] = FIXED_TO_DOUBLE((Fixed32) All[4]); m.v[1].n[2] = FIXED_TO_DOUBLE((Fixed32) All[5]); m.v[2].n[0] = FIXED_TO_DOUBLE((Fixed32) All[6]); m.v[2].n[1] = FIXED_TO_DOUBLE((Fixed32) All[7]); m.v[2].n[2] = FIXED_TO_DOUBLE((Fixed32) All[8]); o.n[0] = FIXED_TO_DOUBLE((Fixed32) All[9]); o.n[1] = FIXED_TO_DOUBLE((Fixed32) All[10]); o.n[2] = FIXED_TO_DOUBLE((Fixed32) All[11]); cmsSetMatrixLUT4(NewLUT, &m, &o, dwFlags); return TRUE; } // V4 stuff. Read CLUT part for LutAtoB and LutBtoA static LCMSBOOL ReadCLUT(LPLCMSICCPROFILE Icc, size_t Offset, LPLUT NewLUT) { unsigned int j; icCLutStruct CLUT; if (Icc -> Seek(Icc, Offset)) return FALSE; if (Icc ->Read(&CLUT, sizeof(icCLutStruct), 1, Icc) != 1) return FALSE; for (j=1; j < NewLUT ->InputChan; j++) { if (CLUT.gridPoints[0] != CLUT.gridPoints[j]) { cmsSignalError(LCMS_ERRC_ABORTED, "CLUT with different granulatity is currently unsupported."); return FALSE; } } if (cmsAlloc3DGrid(NewLUT, CLUT.gridPoints[0], NewLUT ->InputChan, NewLUT ->OutputChan) == NULL) return FALSE; // Precission can be 1 or 2 bytes if (CLUT.prec == 1) { BYTE v; unsigned int i; for (i=0; i < NewLUT->Tsize / sizeof(WORD); i++) { if (Icc ->Read(&v, sizeof(BYTE), 1, Icc) != 1) return FALSE; NewLUT->T[i] = TO16_TAB(v); } } else if (CLUT.prec == 2) { size_t n = NewLUT->Tsize / sizeof(WORD); if (Icc ->Read(NewLUT ->T, sizeof(WORD), n, Icc) != n) return FALSE; AdjustEndianessArray16(NewLUT ->T, NewLUT->Tsize / sizeof(WORD)); } else { cmsSignalError(LCMS_ERRC_ABORTED, "Unknow precission of '%d'", CLUT.prec); return FALSE; } return TRUE; } static void ResampleCurves(LPGAMMATABLE Curves[], int nCurves) { int i; LPSAMPLEDCURVE sc; for (i=0; i < nCurves; i++) { sc = cmsConvertGammaToSampledCurve(Curves[i], 4096); cmsFreeGamma(Curves[i]); Curves[i] = cmsConvertSampledCurveToGamma(sc, 0xFFFF); cmsFreeSampledCurve(sc); } } static void SkipAlignment(LPLCMSICCPROFILE Icc) { BYTE Buffer[4]; size_t At = Icc ->Tell(Icc); int BytesToNextAlignedPos = (int) (At % 4); Icc ->Read(Buffer, 1, BytesToNextAlignedPos, Icc); } // Read a set of curves from specific offset static LCMSBOOL ReadSetOfCurves(LPLCMSICCPROFILE Icc, size_t Offset, LPLUT NewLUT, int nLocation) { LPGAMMATABLE Curves[MAXCHANNELS]; unsigned int i, nCurves; if (Icc -> Seek(Icc, Offset)) return FALSE; if (nLocation == 1 || nLocation == 3) nCurves = NewLUT ->InputChan; else nCurves = NewLUT ->OutputChan; ZeroMemory(Curves, sizeof(Curves)); for (i=0; i < nCurves; i++) { Curves[i] = ReadCurve(Icc); if (Curves[i] == NULL) goto Error; SkipAlignment(Icc); } // March-26'08: some V4 profiles may have different sampling // rates, in this case resample all curves to maximum for (i=1; i < nCurves; i++) { if (Curves[i]->nEntries != Curves[0]->nEntries) { ResampleCurves(Curves, nCurves); break; } } NewLUT = cmsAllocLinearTable(NewLUT, Curves, nLocation); if (NewLUT == NULL) goto Error; for (i=0; i < nCurves; i++) cmsFreeGamma(Curves[i]); return TRUE; Error: for (i=0; i < nCurves; i++) if (Curves[i]) cmsFreeGamma(Curves[i]); return FALSE; } // V4 stuff. LutAtoB type // // [L1] -> [CLUT] -> [L4] -> [Mat4] -> [Ofs4] -> [L2] // // Mat, Mat3, Ofs3, L3 are missing // L1 = A curves // L4 = M curves // L2 = B curves static LCMSBOOL ReadLUT_A2B(LPLCMSICCPROFILE Icc, LPLUT NewLUT, size_t BaseOffset, icTagSignature sig) { icLutAtoB LUT16; if (Icc ->Read(&LUT16, sizeof(icLutAtoB), 1, Icc) != 1) return FALSE; NewLUT -> InputChan = LUT16.inputChan; NewLUT -> OutputChan = LUT16.outputChan; // Validate the NewLUT here to avoid excessive number of channels // (leading to stack-based buffer overflow in ReadSetOfCurves). // Needs revalidation after table size is filled in. if (!_cmsValidateLUT(NewLUT)) { return FALSE; } AdjustEndianess32((LPBYTE) &LUT16.offsetB); AdjustEndianess32((LPBYTE) &LUT16.offsetMat); AdjustEndianess32((LPBYTE) &LUT16.offsetM); AdjustEndianess32((LPBYTE) &LUT16.offsetC); AdjustEndianess32((LPBYTE) &LUT16.offsetA); if (LUT16.offsetB != 0) ReadSetOfCurves(Icc, BaseOffset + LUT16.offsetB, NewLUT, 2); if (LUT16.offsetMat != 0) ReadMatrixOffset(Icc, BaseOffset + LUT16.offsetMat, NewLUT, LUT_HASMATRIX4); if (LUT16.offsetM != 0) ReadSetOfCurves(Icc, BaseOffset + LUT16.offsetM, NewLUT, 4); if (LUT16.offsetC != 0) ReadCLUT(Icc, BaseOffset + LUT16.offsetC, NewLUT); if (LUT16.offsetA!= 0) ReadSetOfCurves(Icc, BaseOffset + LUT16.offsetA, NewLUT, 1); // Convert to v2 PCS if (Icc ->PCS == icSigLabData) { switch (sig) { case icSigAToB0Tag: case icSigAToB1Tag: case icSigAToB2Tag: case icSigGamutTag: case icSigPreview0Tag: case icSigPreview1Tag: case icSigPreview2Tag: NewLUT ->wFlags |= LUT_V4_INPUT_EMULATE_V2; break; default:; } } return TRUE; } // V4 stuff. LutBtoA type static LCMSBOOL ReadLUT_B2A(LPLCMSICCPROFILE Icc, LPLUT NewLUT, size_t BaseOffset, icTagSignature sig) { icLutBtoA LUT16; if (Icc ->Read(&LUT16, sizeof(icLutBtoA), 1, Icc) != 1) return FALSE; NewLUT -> InputChan = LUT16.inputChan; NewLUT -> OutputChan = LUT16.outputChan; // Validate the NewLUT here to avoid excessive number of channels // (leading to stack-based buffer overflow in ReadSetOfCurves). // Needs revalidation after table size is filled in. if (!_cmsValidateLUT(NewLUT)) { return FALSE; } AdjustEndianess32((LPBYTE) &LUT16.offsetB); AdjustEndianess32((LPBYTE) &LUT16.offsetMat); AdjustEndianess32((LPBYTE) &LUT16.offsetM); AdjustEndianess32((LPBYTE) &LUT16.offsetC); AdjustEndianess32((LPBYTE) &LUT16.offsetA); if (LUT16.offsetB != 0) ReadSetOfCurves(Icc, BaseOffset + LUT16.offsetB, NewLUT, 1); if (LUT16.offsetMat != 0) ReadMatrixOffset(Icc, BaseOffset + LUT16.offsetMat, NewLUT, LUT_HASMATRIX3); if (LUT16.offsetM != 0) ReadSetOfCurves(Icc, BaseOffset + LUT16.offsetM, NewLUT, 3); if (LUT16.offsetC != 0) ReadCLUT(Icc, BaseOffset + LUT16.offsetC, NewLUT); if (LUT16.offsetA!= 0) ReadSetOfCurves(Icc, BaseOffset + LUT16.offsetA, NewLUT, 2); // Convert to v2 PCS if (Icc ->PCS == icSigLabData) { switch (sig) { case icSigBToA0Tag: case icSigBToA1Tag: case icSigBToA2Tag: case icSigGamutTag: case icSigPreview0Tag: case icSigPreview1Tag: case icSigPreview2Tag: NewLUT ->wFlags |= LUT_V4_OUTPUT_EMULATE_V2; break; default:; } } return TRUE; } // CLUT main reader LPLUT LCMSEXPORT cmsReadICCLut(cmsHPROFILE hProfile, icTagSignature sig) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; icTagTypeSignature BaseType; int n; size_t offset; LPLUT NewLUT; n = _cmsSearchTag(Icc, sig, TRUE); if (n < 0) return NULL; // If is in memory, the LUT is already there, so throw a copy if (Icc -> TagPtrs[n]) { return cmsDupLUT((LPLUT) Icc ->TagPtrs[n]); } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return NULL; BaseType = ReadBase(Icc); NewLUT = cmsAllocLUT(); if (!NewLUT) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsAllocLUT() failed"); return NULL; } switch (BaseType) { case icSigLut8Type: if (!ReadLUT8(Icc, NewLUT, sig)) { cmsFreeLUT(NewLUT); return NULL; } break; case icSigLut16Type: if (!ReadLUT16(Icc, NewLUT)) { cmsFreeLUT(NewLUT); return NULL; } break; case icSiglutAtoBType: if (!ReadLUT_A2B(Icc, NewLUT, offset, sig)) { cmsFreeLUT(NewLUT); return NULL; } break; case icSiglutBtoAType: if (!ReadLUT_B2A(Icc, NewLUT, offset, sig)) { cmsFreeLUT(NewLUT); return NULL; } break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature %lx found.", BaseType); cmsFreeLUT(NewLUT); return NULL; } return NewLUT; } // Sets the language & country preferences. Used only in ICC 4.0 profiles void LCMSEXPORT cmsSetLanguage(const char LanguageCode[4], const char CountryCode[4]) { int LanguageCodeInt = *(int *) LanguageCode; int CountryCodeInt = *(int *) CountryCode; AdjustEndianess32((LPBYTE) &LanguageCodeInt); AdjustEndianess32((LPBYTE) &CountryCodeInt); GlobalLanguageCode = LanguageCodeInt; GlobalCountryCode = CountryCodeInt; } // Some tags (e.g, 'pseq') can have text tags embedded. This function // handles such special case. Returns -1 on error, or the number of bytes left on success. static int ReadEmbeddedTextTag(LPLCMSICCPROFILE Icc, size_t size, char* Name, size_t size_max) { icTagTypeSignature BaseType; BaseType = ReadBase(Icc); size -= sizeof(icTagBase); switch (BaseType) { case icSigTextDescriptionType: { icUInt32Number AsciiCount; icUInt32Number i, UnicodeCode, UnicodeCount; icUInt16Number ScriptCodeCode, Dummy; icUInt8Number ScriptCodeCount; if (Icc ->Read(&AsciiCount, sizeof(icUInt32Number), 1, Icc) != 1) return -1; if (size < sizeof(icUInt32Number)) return (int) size; size -= sizeof(icUInt32Number); AdjustEndianess32((LPBYTE) &AsciiCount); Icc ->Read(Name, 1, (AsciiCount >= size_max) ? (size_max-1) : AsciiCount, Icc); if (size < AsciiCount) return (int) size; size -= AsciiCount; // Skip Unicode code if (Icc ->Read(&UnicodeCode, sizeof(icUInt32Number), 1, Icc) != 1) return -1; if (size < sizeof(icUInt32Number)) return (int) size; size -= sizeof(icUInt32Number); if (Icc ->Read(&UnicodeCount, sizeof(icUInt32Number), 1, Icc) != 1) return -1; if (size < sizeof(icUInt32Number)) return (int) size; size -= sizeof(icUInt32Number); AdjustEndianess32((LPBYTE) &UnicodeCount); if (UnicodeCount > size) return (int) size; for (i=0; i < UnicodeCount; i++) { size_t nread = Icc ->Read(&Dummy, sizeof(icUInt16Number), 1, Icc); if (nread != 1) return (int) size; size -= sizeof(icUInt16Number); } // Skip ScriptCode code if (Icc ->Read(&ScriptCodeCode, sizeof(icUInt16Number), 1, Icc) != 1) return -1; size -= sizeof(icUInt16Number); if (Icc ->Read(&ScriptCodeCount, sizeof(icUInt8Number), 1, Icc) != 1) return -1; size -= sizeof(icUInt8Number); // Should remain 67 bytes as filler if (size < 67) return (int) size; for (i=0; i < 67; i++) { size_t nread = Icc ->Read(&Dummy, sizeof(icUInt8Number), 1, Icc); if (nread != 1) return (int) size; size --; } } break; case icSigCopyrightTag: // Broken profiles from agfa does store copyright info in such type case icSigTextType: { char Dummy; size_t i, Missing = 0; if (size >= size_max) { Missing = size - size_max + 1; size = size_max - 1; } if (Icc -> Read(Name, 1, size, Icc) != size) return -1; for (i=0; i < Missing; i++) Icc -> Read(&Dummy, 1, 1, Icc); } break; // MultiLocalizedUnicodeType, V4 only case icSigMultiLocalizedUnicodeType: { icUInt32Number Count, RecLen; icUInt16Number Language, Country; icUInt32Number ThisLen, ThisOffset; size_t Offset = 0; size_t Len = 0; size_t i; wchar_t* wchar = L""; if (Icc ->Read(&Count, sizeof(icUInt32Number), 1, Icc) != 1) return -1; AdjustEndianess32((LPBYTE) &Count); if (Icc ->Read(&RecLen, sizeof(icUInt32Number), 1, Icc) != 1) return -1; AdjustEndianess32((LPBYTE) &RecLen); if (RecLen != 12) { cmsSignalError(LCMS_ERRC_ABORTED, "multiLocalizedUnicodeType of len != 12 is not supported."); return -1; } for (i=0; i < Count; i++) { if (Icc ->Read(&Language, sizeof(icUInt16Number), 1, Icc) != 1) return -1; AdjustEndianess16((LPBYTE) &Language); if (Icc ->Read(&Country, sizeof(icUInt16Number), 1, Icc) != 1) return -1; AdjustEndianess16((LPBYTE) &Country); if (Icc ->Read(&ThisLen, sizeof(icUInt32Number), 1, Icc) != 1) return -1; AdjustEndianess32((LPBYTE) &ThisLen); if (Icc ->Read(&ThisOffset, sizeof(icUInt32Number), 1, Icc) != 1) return -1; AdjustEndianess32((LPBYTE) &ThisOffset); if (Language == GlobalLanguageCode || Offset == 0) { Len = ThisLen; Offset = ThisOffset; if (Country == GlobalCountryCode) break; // Found } } if (Offset == 0) { strcpy(Name, "(no info)"); break; } // Compute true offset Offset -= 12 * Count + 8 + sizeof(icTagBase); // Skip unused bytes for (i=0; i < Offset; i++) { char Discard; if (Icc ->Read(&Discard, 1, 1, Icc) != 1) return -1; } // Bound len if (Len < 0) Len = 0; if (Len > 20*1024) Len = 20 * 1024; wchar = (wchar_t*) _cmsMalloc(Len*sizeof(wchar_t)+2); if (!wchar) return -1; if (Icc ->Read(wchar, 1, Len, Icc) != Len) return -1; AdjustEndianessArray16((LPWORD) wchar, Len / 2); wchar[Len / 2] = L'\0'; i = wcstombs(Name, wchar, size_max ); if (i == ((size_t) -1)) { Name[0] = 0; // Error } _cmsFree((void*) wchar); } break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature %lx found.", BaseType); return -1; } return (int) size; } // Take an ASCII item. Takes at most size_max bytes int LCMSEXPORT cmsReadICCTextEx(cmsHPROFILE hProfile, icTagSignature sig, char *Name, size_t size_max) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; size_t offset, size; int n; n = _cmsSearchTag(Icc, sig, TRUE); if (n < 0) return -1; size = Icc -> TagSizes[n]; if (Icc -> TagPtrs[n]) { if (size > size_max) size = size_max; CopyMemory(Name, Icc -> TagPtrs[n], size); return (int) Icc -> TagSizes[n]; } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return -1; if (ReadEmbeddedTextTag(Icc, size, Name, size_max) < 0) return -1; return (int) size; } // Keep compatibility with older versions int LCMSEXPORT cmsReadICCText(cmsHPROFILE hProfile, icTagSignature sig, char *Text) { return cmsReadICCTextEx(hProfile, sig, Text, LCMS_DESC_MAX); } // Take an XYZ item static int ReadICCXYZ(cmsHPROFILE hProfile, icTagSignature sig, LPcmsCIEXYZ Value, LCMSBOOL lIsFatal) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; icTagTypeSignature BaseType; size_t offset; int n; icXYZNumber XYZ; n = _cmsSearchTag(Icc, sig, FALSE); if (n < 0) return -1; if (Icc -> TagPtrs[n]) { CopyMemory(Value, Icc -> TagPtrs[n], Icc -> TagSizes[n]); return (int) Icc -> TagSizes[n]; } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return -1; BaseType = ReadBase(Icc); switch (BaseType) { case 0x7c3b10cL: // Some apple broken embedded profiles does not have correct type case icSigXYZType: Icc ->Read(&XYZ, sizeof(icXYZNumber), 1, Icc); Value -> X = Convert15Fixed16(XYZ.X); Value -> Y = Convert15Fixed16(XYZ.Y); Value -> Z = Convert15Fixed16(XYZ.Z); break; // Aug/21-2001 - Monaco 2 does have WRONG values. default: if (lIsFatal) cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature %lx found.", BaseType); return -1; } return 1; } // Read a icSigS15Fixed16ArrayType (currently only a 3x3 matrix) static int ReadICCXYZArray(cmsHPROFILE hProfile, icTagSignature sig, LPMAT3 v) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; icTagTypeSignature BaseType; size_t offset, sz; int i, n; icXYZNumber XYZ[3]; cmsCIEXYZ XYZdbl[3]; n = _cmsSearchTag(Icc, sig, FALSE); if (n < 0) return -1; // Not found if (Icc -> TagPtrs[n]) { CopyMemory(v, Icc -> TagPtrs[n], Icc -> TagSizes[n]); return (int) Icc -> TagSizes[n]; } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return -1; BaseType = ReadBase(Icc); switch (BaseType) { case icSigS15Fixed16ArrayType: sz = Icc ->TagSizes[n] / sizeof(icXYZNumber); if (sz != 3) { cmsSignalError(LCMS_ERRC_ABORTED, "Bad array size of %d entries.", sz); return -1; } Icc ->Read(XYZ, sizeof(icXYZNumber), 3, Icc); for (i=0; i < 3; i++) { XYZdbl[i].X = Convert15Fixed16(XYZ[i].X); XYZdbl[i].Y = Convert15Fixed16(XYZ[i].Y); XYZdbl[i].Z = Convert15Fixed16(XYZ[i].Z); } CopyMemory(v, XYZdbl, 3*sizeof(cmsCIEXYZ)); break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature %lx found.", BaseType); return -1; } return sizeof(MAT3); } // Primaries are to be in xyY notation LCMSBOOL LCMSEXPORT cmsTakeColorants(LPcmsCIEXYZTRIPLE Dest, cmsHPROFILE hProfile) { if (ReadICCXYZ(hProfile, icSigRedColorantTag, &Dest -> Red, TRUE) < 0) return FALSE; if (ReadICCXYZ(hProfile, icSigGreenColorantTag, &Dest -> Green, TRUE) < 0) return FALSE; if (ReadICCXYZ(hProfile, icSigBlueColorantTag, &Dest -> Blue, TRUE) < 0) return FALSE; return TRUE; } LCMSBOOL cmsReadICCMatrixRGB2XYZ(LPMAT3 r, cmsHPROFILE hProfile) { cmsCIEXYZTRIPLE Primaries; if (!cmsTakeColorants(&Primaries, hProfile)) return FALSE; VEC3init(&r -> v[0], Primaries.Red.X, Primaries.Green.X, Primaries.Blue.X); VEC3init(&r -> v[1], Primaries.Red.Y, Primaries.Green.Y, Primaries.Blue.Y); VEC3init(&r -> v[2], Primaries.Red.Z, Primaries.Green.Z, Primaries.Blue.Z); return TRUE; } // Always return a suitable matrix LCMSBOOL cmsReadChromaticAdaptationMatrix(LPMAT3 r, cmsHPROFILE hProfile) { if (ReadICCXYZArray(hProfile, icSigChromaticAdaptationTag, r) < 0) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; // For display profiles, revert to bradford. Else take identity. MAT3identity(r); // Emissive devices have non-identity chad if ((cmsGetDeviceClass(hProfile) == icSigDisplayClass) || cmsTakeHeaderFlags(hProfile) & icTransparency) { // NULL for cone defaults to Bradford, from media to D50 cmsAdaptationMatrix(r, NULL, &Icc ->MediaWhitePoint, &Icc ->Illuminant); } } return TRUE; } LPGAMMATABLE LCMSEXPORT cmsReadICCGamma(cmsHPROFILE hProfile, icTagSignature sig) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; size_t offset; int n; n = _cmsSearchTag(Icc, sig, TRUE); if (n < 0) return NULL; if (Icc -> TagPtrs[n]) { return cmsDupGamma((LPGAMMATABLE) Icc -> TagPtrs[n]); } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return NULL; return ReadCurve(Icc); } // Some ways have analytical revese. This function accounts for that LPGAMMATABLE LCMSEXPORT cmsReadICCGammaReversed(cmsHPROFILE hProfile, icTagSignature sig) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; size_t offset; int n; n = _cmsSearchTag(Icc, sig, TRUE); if (n < 0) return NULL; if (Icc -> TagPtrs[n]) { return cmsReverseGamma(256, (LPGAMMATABLE) Icc -> TagPtrs[n]); } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return NULL; return ReadCurveReversed(Icc); } // Check Named color header static LCMSBOOL CheckHeader(LPcmsNAMEDCOLORLIST v, icNamedColor2* nc2) { if (v ->Prefix[0] == 0 && v ->Suffix[0] == 0 && v ->ColorantCount == 0) return TRUE; if (stricmp(v ->Prefix, (const char*) nc2 ->prefix) != 0) return FALSE; if (stricmp(v ->Suffix, (const char*) nc2 ->suffix) != 0) return FALSE; return ((int) v ->ColorantCount == (int) nc2 ->nDeviceCoords); } // Read named color list int cmsReadICCnamedColorList(cmsHTRANSFORM xform, cmsHPROFILE hProfile, icTagSignature sig) { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; int n; icTagTypeSignature BaseType; size_t offset; n = _cmsSearchTag(Icc, sig, TRUE); if (n < 0) return 0; if (Icc -> TagPtrs[n]) { // This replaces actual named color list. size_t size = Icc -> TagSizes[n]; if (v ->NamedColorList) cmsFreeNamedColorList(v ->NamedColorList); v -> NamedColorList = (LPcmsNAMEDCOLORLIST) _cmsMalloc(size); CopyMemory(v -> NamedColorList, Icc ->TagPtrs[n], size); return v ->NamedColorList->nColors; } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return 0; BaseType = ReadBase(Icc); switch (BaseType) { // I never have seen one of these. Probably is not worth of implementing. case icSigNamedColorType: { cmsSignalError(LCMS_ERRC_WARNING, "Ancient named color profiles are not supported."); return 0; } // The named color struct case icSigNamedColor2Type: { icNamedColor2 nc2; unsigned int i, j; if (Icc -> Read(&nc2, sizeof(icNamedColor2) - SIZEOF_UINT8_ALIGNED, 1, Icc) != 1) return 0; AdjustEndianess32((LPBYTE) &nc2.vendorFlag); AdjustEndianess32((LPBYTE) &nc2.count); AdjustEndianess32((LPBYTE) &nc2.nDeviceCoords); if (!CheckHeader(v->NamedColorList, &nc2)) { cmsSignalError(LCMS_ERRC_WARNING, "prefix/suffix/device for named color profiles mismatch."); return 0; } if (nc2.nDeviceCoords > MAXCHANNELS) { cmsSignalError(LCMS_ERRC_WARNING, "Too many device coordinates."); return 0; } strncpy(v ->NamedColorList->Prefix, (const char*) nc2.prefix, 32); strncpy(v ->NamedColorList->Suffix, (const char*) nc2.suffix, 32); v ->NamedColorList->Prefix[32] = v->NamedColorList->Suffix[32] = 0; v ->NamedColorList ->ColorantCount = nc2.nDeviceCoords; for (i=0; i < nc2.count; i++) { WORD PCS[3]; WORD Colorant[MAXCHANNELS]; char Root[33]; ZeroMemory(Colorant, sizeof(WORD) * MAXCHANNELS); Icc -> Read(Root, 1, 32, Icc); Icc -> Read(PCS, 3, sizeof(WORD), Icc); for (j=0; j < 3; j++) AdjustEndianess16((LPBYTE) &PCS[j]); Icc -> Read(Colorant, sizeof(WORD), nc2.nDeviceCoords, Icc); for (j=0; j < nc2.nDeviceCoords; j++) AdjustEndianess16((LPBYTE) &Colorant[j]); cmsAppendNamedColor(v, Root, PCS, Colorant); } return v ->NamedColorList->nColors; } break; default: cmsSignalError(LCMS_ERRC_WARNING, "Bad tag signature '%lx' found.", BaseType); return 0; } // It would never reach here // return 0; } // Read colorant tables LPcmsNAMEDCOLORLIST LCMSEXPORT cmsReadColorantTable(cmsHPROFILE hProfile, icTagSignature sig) { icInt32Number n; icUInt32Number Count, i; size_t offset; icTagTypeSignature BaseType; LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; LPcmsNAMEDCOLORLIST List; n = _cmsSearchTag(Icc, sig, FALSE); if (n < 0) return NULL; // Not found if (Icc -> TagPtrs[n]) { size_t size = Icc -> TagSizes[n]; void* v = _cmsMalloc(size); if (v == NULL) return NULL; CopyMemory(v, Icc -> TagPtrs[n], size); return (LPcmsNAMEDCOLORLIST) v; } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return NULL; BaseType = ReadBase(Icc); if (BaseType != icSigColorantTableType) { cmsSignalError(LCMS_ERRC_ABORTED, "Bad tag signature '%lx' found.", BaseType); return NULL; } if (Icc ->Read(&Count, sizeof(icUInt32Number), 1, Icc) != 1) return NULL; AdjustEndianess32((LPBYTE) &Count); if (Count > MAXCHANNELS) { cmsSignalError(LCMS_ERRC_ABORTED, "Too many colorants '%lx'", Count); return NULL; } List = cmsAllocNamedColorList(Count); for (i=0; i < Count; i++) { if (!Icc ->Read(List->List[i].Name, 1, 32 , Icc)) goto Error; if (!Icc ->Read(List->List[i].PCS, sizeof(icUInt16Number), 3, Icc)) goto Error; AdjustEndianessArray16(List->List[i].PCS, 3); } return List; Error: cmsFreeNamedColorList(List); return NULL; } // Uncooked manufacturer const char* LCMSEXPORT cmsTakeManufacturer(cmsHPROFILE hProfile) { static char Manufacturer[LCMS_DESC_MAX] = ""; Manufacturer[0] = 0; if (cmsIsTag(hProfile, icSigDeviceMfgDescTag)) { cmsReadICCTextEx(hProfile, icSigDeviceMfgDescTag, Manufacturer, LCMS_DESC_MAX); } return Manufacturer; } // Uncooked model const char* LCMSEXPORT cmsTakeModel(cmsHPROFILE hProfile) { static char Model[LCMS_DESC_MAX] = ""; Model[0] = 0; if (cmsIsTag(hProfile, icSigDeviceModelDescTag)) { cmsReadICCTextEx(hProfile, icSigDeviceModelDescTag, Model, LCMS_DESC_MAX); } return Model; } const char* LCMSEXPORT cmsTakeCopyright(cmsHPROFILE hProfile) { static char Copyright[LCMS_DESC_MAX] = ""; Copyright[0] = 0; if (cmsIsTag(hProfile, icSigCopyrightTag)) { cmsReadICCTextEx(hProfile, icSigCopyrightTag, Copyright, LCMS_DESC_MAX); } return Copyright; } // We compute name with model - manufacturer const char* LCMSEXPORT cmsTakeProductName(cmsHPROFILE hProfile) { static char Name[LCMS_DESC_MAX*2+4]; char Manufacturer[LCMS_DESC_MAX], Model[LCMS_DESC_MAX]; Name[0] = '\0'; Manufacturer[0] = Model[0] = '\0'; if (cmsIsTag(hProfile, icSigDeviceMfgDescTag)) { cmsReadICCTextEx(hProfile, icSigDeviceMfgDescTag, Manufacturer, LCMS_DESC_MAX); } if (cmsIsTag(hProfile, icSigDeviceModelDescTag)) { cmsReadICCTextEx(hProfile, icSigDeviceModelDescTag, Model, LCMS_DESC_MAX); } if (!Manufacturer[0] && !Model[0]) { if (cmsIsTag(hProfile, icSigProfileDescriptionTag)) { cmsReadICCTextEx(hProfile, icSigProfileDescriptionTag, Name, LCMS_DESC_MAX); return Name; } else return "{no name}"; } if (!Manufacturer[0] || strncmp(Model, Manufacturer, 8) == 0 || strlen(Model) > 30) strcpy(Name, Model); else sprintf(Name, "%s - %s", Model, Manufacturer); return Name; } // We compute desc with manufacturer - model const char* LCMSEXPORT cmsTakeProductDesc(cmsHPROFILE hProfile) { static char Name[2048]; if (cmsIsTag(hProfile, icSigProfileDescriptionTag)) { cmsReadICCText(hProfile, icSigProfileDescriptionTag, Name); } else return cmsTakeProductName(hProfile); if (strncmp(Name, "Copyrig", 7) == 0) return cmsTakeProductName(hProfile); return Name; } const char* LCMSEXPORT cmsTakeProductInfo(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; static char Info[4096]; Info[0] = '\0'; if (cmsIsTag(hProfile, icSigProfileDescriptionTag)) { char Desc[1024]; cmsReadICCText(hProfile, icSigProfileDescriptionTag, Desc); strcat(Info, Desc); strcat(Info, "\r\n\r\n"); } if (cmsIsTag(hProfile, icSigCopyrightTag)) { char Copyright[LCMS_DESC_MAX]; cmsReadICCText(hProfile, icSigCopyrightTag, Copyright); strcat(Info, Copyright); strcat(Info, "\r\n\r\n"); } // KODAK private tag... But very useful #define K007 (icTagSignature)0x4B303037 // MonCal if (cmsIsTag(hProfile, K007)) { char MonCal[LCMS_DESC_MAX]; cmsReadICCText(hProfile, K007, MonCal); strcat(Info, MonCal); strcat(Info, "\r\n\r\n"); } else { cmsCIEXYZ WhitePt; char WhiteStr[1024]; cmsTakeMediaWhitePoint(&WhitePt, hProfile); _cmsIdentifyWhitePoint(WhiteStr, &WhitePt); strcat(WhiteStr, "\r\n\r\n"); strcat(Info, WhiteStr); } if (Icc -> stream) { strcat(Info, Icc -> PhysicalFile); } return Info; } // Extract the target data as a big string. Does not signal if tag is not present. LCMSBOOL LCMSEXPORT cmsTakeCharTargetData(cmsHPROFILE hProfile, char** Data, size_t* len) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; int n; *Data = NULL; *len = 0; n = _cmsSearchTag(Icc, icSigCharTargetTag, FALSE); if (n < 0) return FALSE; *len = Icc -> TagSizes[n]; // Make sure that is reasonable (600K) if (*len > 600*1024) *len = 600*1024; *Data = (char*) _cmsMalloc(*len + 1); // Plus zero marker if (!*Data) { cmsSignalError(LCMS_ERRC_ABORTED, "Out of memory allocating CharTarget space!"); return FALSE; } if (cmsReadICCTextEx(hProfile, icSigCharTargetTag, *Data, *len) < 0) return FALSE; (*Data)[*len] = 0; // Force a zero marker. Shouldn't be needed, but is // here to simplify things. return TRUE; } LCMSBOOL LCMSEXPORT cmsTakeCalibrationDateTime(struct tm *Dest, cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; int n; n = _cmsSearchTag(Icc, icSigCalibrationDateTimeTag, FALSE); if (n < 0) return FALSE; if (Icc ->TagPtrs[n]) { CopyMemory(Dest, Icc ->TagPtrs[n], sizeof(struct tm)); } else { icDateTimeNumber timestamp; if (Icc -> Seek(Icc, Icc -> TagOffsets[n] + sizeof(icTagBase))) return FALSE; if (Icc ->Read(×tamp, 1, sizeof(icDateTimeNumber), Icc) != sizeof(icDateTimeNumber)) return FALSE; DecodeDateTimeNumber(×tamp, Dest); } return TRUE; } // PSEQ Tag, used in devicelink profiles LPcmsSEQ LCMSEXPORT cmsReadProfileSequenceDescription(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; int n; icUInt32Number i, Count; icDescStruct DescStruct; icTagTypeSignature BaseType; size_t size, offset; LPcmsSEQ OutSeq; n = _cmsSearchTag(Icc, icSigProfileSequenceDescTag, FALSE); if (n < 0) return NULL; size = Icc -> TagSizes[n]; if (size < 12) return NULL; if (Icc -> TagPtrs[n]) { OutSeq = (LPcmsSEQ) _cmsMalloc(size); if (OutSeq == NULL) return NULL; CopyMemory(OutSeq, Icc ->TagPtrs[n], size); return OutSeq; } offset = Icc -> TagOffsets[n]; if (Icc -> Seek(Icc, offset)) return NULL; BaseType = ReadBase(Icc); if (BaseType != icSigProfileSequenceDescType) return NULL; Icc ->Read(&Count, sizeof(icUInt32Number), 1, Icc); AdjustEndianess32((LPBYTE) &Count); if (Count > 1000) { return NULL; } size = sizeof(int) + Count * sizeof(cmsPSEQDESC); OutSeq = (LPcmsSEQ) _cmsMalloc(size); if (OutSeq == NULL) return NULL; OutSeq ->n = Count; // Get structures as well for (i=0; i < Count; i++) { LPcmsPSEQDESC sec = &OutSeq -> seq[i]; Icc -> Read(&DescStruct, sizeof(icDescStruct) - SIZEOF_UINT8_ALIGNED, 1, Icc); AdjustEndianess32((LPBYTE) &DescStruct.deviceMfg); AdjustEndianess32((LPBYTE) &DescStruct.deviceModel); AdjustEndianess32((LPBYTE) &DescStruct.technology); AdjustEndianess32((LPBYTE) &DescStruct.attributes[0]); AdjustEndianess32((LPBYTE) &DescStruct.attributes[1]); sec ->attributes[0] = DescStruct.attributes[0]; sec ->attributes[1] = DescStruct.attributes[1]; sec ->deviceMfg = DescStruct.deviceMfg; sec ->deviceModel = DescStruct.deviceModel; sec ->technology = DescStruct.technology; if (ReadEmbeddedTextTag(Icc, size, sec ->Manufacturer, LCMS_DESC_MAX) < 0) return NULL; if (ReadEmbeddedTextTag(Icc, size, sec ->Model, LCMS_DESC_MAX) < 0) return NULL; } return OutSeq; } void LCMSEXPORT cmsFreeProfileSequenceDescription(LPcmsSEQ pseq) { if (pseq) _cmsFree(pseq); } // Read a few tags that are hardly required static void ReadCriticalTags(LPLCMSICCPROFILE Icc) { cmsHPROFILE hProfile = (cmsHPROFILE) Icc; if (Icc ->Version >= 0x4000000) { // v4 profiles MAT3 ChrmCanonical; if (ReadICCXYZ(hProfile, icSigMediaWhitePointTag, &Icc ->MediaWhitePoint, FALSE) < 0) { Icc ->MediaWhitePoint = *cmsD50_XYZ(); } // Read media black if (ReadICCXYZ(hProfile, icSigMediaBlackPointTag, &Icc ->MediaBlackPoint, FALSE) < 0) { Icc ->MediaBlackPoint.X = 0; Icc ->MediaBlackPoint.Y = 0; Icc ->MediaBlackPoint.X = 0; } NormalizeXYZ(&Icc ->MediaWhitePoint); NormalizeXYZ(&Icc ->MediaBlackPoint); if (ReadICCXYZArray(hProfile, icSigChromaticAdaptationTag, &ChrmCanonical) > 0) { MAT3inverse(&ChrmCanonical, &Icc ->ChromaticAdaptation); } else { MAT3identity(&Icc ->ChromaticAdaptation); } // Convert media white, black to absolute under original illuminant EvalCHRM(&Icc ->MediaWhitePoint, &Icc ->ChromaticAdaptation, &Icc ->MediaWhitePoint); EvalCHRM(&Icc ->MediaBlackPoint, &Icc ->ChromaticAdaptation, &Icc ->MediaBlackPoint); } else { // v2 profiles // Read media white if (ReadICCXYZ(hProfile, icSigMediaWhitePointTag, &Icc ->MediaWhitePoint, FALSE) < 0) { Icc ->MediaWhitePoint = *cmsD50_XYZ(); } // Read media black if (ReadICCXYZ(hProfile, icSigMediaBlackPointTag, &Icc ->MediaBlackPoint, FALSE) < 0) { Icc ->MediaBlackPoint.X = 0; Icc ->MediaBlackPoint.Y = 0; Icc ->MediaBlackPoint.X = 0; } NormalizeXYZ(&Icc ->MediaWhitePoint); NormalizeXYZ(&Icc ->MediaBlackPoint); // Take Bradford as default for Display profiles only. if (cmsGetDeviceClass(hProfile) == icSigDisplayClass) { cmsAdaptationMatrix(&Icc -> ChromaticAdaptation, NULL, &Icc -> Illuminant, &Icc -> MediaWhitePoint); } else MAT3identity(&Icc ->ChromaticAdaptation); } } // Create profile from disk file cmsHPROFILE LCMSEXPORT cmsOpenProfileFromFile(const char *lpFileName, const char *sAccess) { LPLCMSICCPROFILE NewIcc; cmsHPROFILE hEmpty; // Open for write means an empty profile if (*sAccess == 'W' || *sAccess == 'w') { hEmpty = _cmsCreateProfilePlaceholder(); NewIcc = (LPLCMSICCPROFILE) (LPSTR) hEmpty; NewIcc -> IsWrite = TRUE; strncpy(NewIcc ->PhysicalFile, lpFileName, MAX_PATH-1); NewIcc ->PhysicalFile[MAX_PATH-1] = 0; // Save LUT as 8 bit sAccess++; if (*sAccess == '8') NewIcc ->SaveAs8Bits = TRUE; return hEmpty; } // Open for read means a file placeholder NewIcc = _cmsCreateProfileFromFilePlaceholder(lpFileName); if (!NewIcc) return NULL; if (!ReadHeader(NewIcc, FALSE)) return NULL; ReadCriticalTags(NewIcc); return (cmsHPROFILE) (LPSTR) NewIcc; } // Open from memory block cmsHPROFILE LCMSEXPORT cmsOpenProfileFromMem(LPVOID MemPtr, DWORD dwSize) { LPLCMSICCPROFILE NewIcc; NewIcc = _cmsCreateProfileFromMemPlaceholder(MemPtr, dwSize); if (!NewIcc) return NULL; if (!ReadHeader(NewIcc, TRUE)) return NULL; ReadCriticalTags(NewIcc); return (cmsHPROFILE) (LPSTR) NewIcc; } LCMSBOOL LCMSEXPORT cmsCloseProfile(cmsHPROFILE hProfile) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; LCMSBOOL rc = TRUE; icInt32Number i; if (!Icc) return FALSE; // Was open in write mode? if (Icc ->IsWrite) { Icc ->IsWrite = FALSE; // Assure no further writting rc = _cmsSaveProfile(hProfile, Icc ->PhysicalFile); } for (i=0; i < Icc -> TagCount; i++) { if (Icc -> TagPtrs[i]) free(Icc -> TagPtrs[i]); } if (Icc -> stream != NULL) { // Was a memory (i.e. not serialized) profile? Icc -> Close(Icc); // No, close the stream } free(Icc); // Free placeholder memory return rc; } // Write profile ------------------------------------------------------------ static LCMSBOOL SaveWordsTable(int nEntries, LPWORD Tab, LPLCMSICCPROFILE Icc) { size_t nTabSize = sizeof(WORD) * nEntries; LPWORD PtrW = (LPWORD) _cmsMalloc(nTabSize); LCMSBOOL rc; if (!PtrW) return FALSE; CopyMemory(PtrW, Tab, nTabSize); AdjustEndianessArray16(PtrW, nEntries); rc = Icc ->Write(Icc, nTabSize, PtrW); free(PtrW); return rc; } // Saves profile header static LCMSBOOL SaveHeader(LPLCMSICCPROFILE Icc) { icHeader Header; time_t now = time(NULL); Header.size = TransportValue32((icInt32Number) Icc ->UsedSpace); Header.cmmId = TransportValue32(lcmsSignature); Header.version = TransportValue32((icInt32Number) 0x02300000); Header.deviceClass = (icProfileClassSignature) TransportValue32(Icc -> DeviceClass); Header.colorSpace = (icColorSpaceSignature) TransportValue32(Icc -> ColorSpace); Header.pcs = (icColorSpaceSignature) TransportValue32(Icc -> PCS); // NOTE: in v4 Timestamp must be in UTC rather than in local time EncodeDateTimeNumber(&Header.date, gmtime(&now)); Header.magic = TransportValue32(icMagicNumber); #ifdef NON_WINDOWS Header.platform = (icPlatformSignature)TransportValue32(icSigMacintosh); #else Header.platform = (icPlatformSignature)TransportValue32(icSigMicrosoft); #endif Header.flags = TransportValue32(Icc -> flags); Header.manufacturer = TransportValue32(lcmsSignature); Header.model = TransportValue32(0); Header.attributes[0]= TransportValue32(Icc -> attributes); Header.attributes[1]= TransportValue32(0); Header.renderingIntent = TransportValue32(Icc -> RenderingIntent); // Illuminant is D50 Header.illuminant.X = TransportValue32(DOUBLE_TO_FIXED(Icc -> Illuminant.X)); Header.illuminant.Y = TransportValue32(DOUBLE_TO_FIXED(Icc -> Illuminant.Y)); Header.illuminant.Z = TransportValue32(DOUBLE_TO_FIXED(Icc -> Illuminant.Z)); Header.creator = TransportValue32(lcmsSignature); ZeroMemory(&Header.reserved, sizeof(Header.reserved)); // Set profile ID CopyMemory(Header.reserved, Icc ->ProfileID, 16); Icc ->UsedSpace = 0; // Mark as begin-of-file return Icc ->Write(Icc, sizeof(icHeader), &Header); } // Setup base marker static LCMSBOOL SetupBase(icTagTypeSignature sig, LPLCMSICCPROFILE Icc) { icTagBase Base; Base.sig = (icTagTypeSignature) TransportValue32(sig); ZeroMemory(&Base.reserved, sizeof(Base.reserved)); return Icc -> Write(Icc, sizeof(icTagBase), &Base); } // Store a XYZ tag static LCMSBOOL SaveXYZNumber(LPcmsCIEXYZ Value, LPLCMSICCPROFILE Icc) { icXYZNumber XYZ; if (!SetupBase(icSigXYZType, Icc)) return FALSE; XYZ.X = TransportValue32(DOUBLE_TO_FIXED(Value -> X)); XYZ.Y = TransportValue32(DOUBLE_TO_FIXED(Value -> Y)); XYZ.Z = TransportValue32(DOUBLE_TO_FIXED(Value -> Z)); return Icc -> Write(Icc, sizeof(icXYZNumber), &XYZ); } // Store a XYZ array. static LCMSBOOL SaveXYZArray(int n, LPcmsCIEXYZ Value, LPLCMSICCPROFILE Icc) { int i; icXYZNumber XYZ; if (!SetupBase(icSigS15Fixed16ArrayType, Icc)) return FALSE; for (i=0; i < n; i++) { XYZ.X = TransportValue32(DOUBLE_TO_FIXED(Value -> X)); XYZ.Y = TransportValue32(DOUBLE_TO_FIXED(Value -> Y)); XYZ.Z = TransportValue32(DOUBLE_TO_FIXED(Value -> Z)); if (!Icc -> Write(Icc, sizeof(icXYZNumber), &XYZ)) return FALSE; Value++; } return TRUE; } // Save a gamma structure as a table static LCMSBOOL SaveGammaTable(LPGAMMATABLE Gamma, LPLCMSICCPROFILE Icc) { icInt32Number Count; if (!SetupBase(icSigCurveType, Icc)) return FALSE; Count = TransportValue32(Gamma->nEntries); if (!Icc ->Write(Icc, sizeof(icInt32Number), &Count)) return FALSE; return SaveWordsTable(Gamma->nEntries, Gamma ->GammaTable, Icc); } // Save a gamma structure as a one-value static LCMSBOOL SaveGammaOneValue(LPGAMMATABLE Gamma, LPLCMSICCPROFILE Icc) { icInt32Number Count; Fixed32 GammaFixed32; WORD GammaFixed8; if (!SetupBase(icSigCurveType, Icc)) return FALSE; Count = TransportValue32(1); if (!Icc ->Write(Icc, sizeof(icInt32Number), &Count)) return FALSE; GammaFixed32 = DOUBLE_TO_FIXED(Gamma ->Seed.Params[0]); GammaFixed8 = (WORD) ((GammaFixed32 >> 8) & 0xFFFF); GammaFixed8 = TransportValue16(GammaFixed8); return Icc ->Write(Icc, sizeof(icInt16Number), &GammaFixed8); } // Save a gamma structure as a parametric gamma static LCMSBOOL SaveGammaParametric(LPGAMMATABLE Gamma, LPLCMSICCPROFILE Icc) { icUInt16Number Type, Reserved; int i, nParams; int ParamsByType[] = { 1, 3, 4, 5, 7 }; if (!SetupBase(icSigParametricCurveType, Icc)) return FALSE; nParams = ParamsByType[Gamma -> Seed.Type]; Type = (icUInt16Number) TransportValue16((WORD) Gamma -> Seed. Type); Reserved = (icUInt16Number) TransportValue16((WORD) 0); Icc -> Write(Icc, sizeof(icInt16Number), &Type); Icc -> Write(Icc, sizeof(icUInt16Number), &Reserved); for (i=0; i < nParams; i++) { icInt32Number val = TransportValue32(DOUBLE_TO_FIXED(Gamma -> Seed.Params[i])); Icc ->Write(Icc, sizeof(icInt32Number), &val); } return TRUE; } // Save a gamma table static LCMSBOOL SaveGamma(LPGAMMATABLE Gamma, LPLCMSICCPROFILE Icc) { // Is the gamma curve type supported by ICC format? if (Gamma -> Seed.Type < 0 || Gamma -> Seed.Type > 5 || // has been modified by user? _cmsCrc32OfGammaTable(Gamma) != Gamma -> Seed.Crc32) { return SaveGammaTable(Gamma, Icc); } if (Gamma -> Seed.Type == 1) return SaveGammaOneValue(Gamma, Icc); // Only v4 profiles are allowed to hold parametric curves if (cmsGetProfileICCversion((cmsHPROFILE) Icc) >= 0x4000000) return SaveGammaParametric(Gamma, Icc); // Defaults to save as table return SaveGammaTable(Gamma, Icc); } // Save an DESC Tag static LCMSBOOL SaveDescription(const char *Text, LPLCMSICCPROFILE Icc) { icUInt32Number len, Count, TotalSize, AlignedSize; char Filler[256]; len = (icUInt32Number) (strlen(Text) + 1); // * icInt8Number desc[count] * NULL terminated ascii string // * icUInt32Number ucLangCode; * UniCode language code // * icUInt32Number ucCount; * UniCode description length // * icInt16Number ucDesc[ucCount];* The UniCode description // * icUInt16Number scCode; * ScriptCode code // * icUInt8Number scCount; * ScriptCode count // * icInt8Number scDesc[67]; * ScriptCode Description TotalSize = sizeof(icTagBase) + sizeof(icUInt32Number) + len + sizeof(icUInt32Number) + sizeof(icUInt32Number) + sizeof(icUInt16Number) + sizeof(icUInt8Number) + 67; AlignedSize = TotalSize; // Can be unaligned!! if (!SetupBase(icSigTextDescriptionType, Icc)) return FALSE; AlignedSize -= sizeof(icTagBase); Count = TransportValue32(len); if (!Icc ->Write(Icc, sizeof(icUInt32Number), &Count)) return FALSE; AlignedSize -= sizeof(icUInt32Number); if (!Icc ->Write(Icc, len, (LPVOID)Text)) return FALSE; AlignedSize -= len; if (AlignedSize < 0) AlignedSize = 0; if (AlignedSize > 255) AlignedSize = 255; ZeroMemory(Filler, AlignedSize); if (!Icc ->Write(Icc, AlignedSize, Filler)) return FALSE; return TRUE; } // Save an ASCII Tag static LCMSBOOL SaveText(const char *Text, LPLCMSICCPROFILE Icc) { size_t len = strlen(Text) + 1; if (!SetupBase(icSigTextType, Icc)) return FALSE; if (!Icc ->Write(Icc, len, (LPVOID) Text)) return FALSE; return TRUE; } // Save one of these new chromaticity values static LCMSBOOL SaveOneChromaticity(double x, double y, LPLCMSICCPROFILE Icc) { Fixed32 xf, yf; xf = TransportValue32(DOUBLE_TO_FIXED(x)); yf = TransportValue32(DOUBLE_TO_FIXED(y)); if (!Icc ->Write(Icc, sizeof(Fixed32), &xf)) return FALSE; if (!Icc ->Write(Icc, sizeof(Fixed32), &yf)) return FALSE; return TRUE; } // New tag added in Addendum II of old spec. static LCMSBOOL SaveChromaticities(LPcmsCIExyYTRIPLE chrm, LPLCMSICCPROFILE Icc) { WORD nChans, Table; if (!SetupBase(icSigChromaticityType, Icc)) return FALSE; nChans = TransportValue16(3); if (!Icc ->Write(Icc, sizeof(WORD) , &nChans)) return FALSE; Table = TransportValue16(0); if (!Icc ->Write(Icc, sizeof(WORD) , &Table)) return FALSE; if (!SaveOneChromaticity(chrm -> Red.x, chrm -> Red.y, Icc)) return FALSE; if (!SaveOneChromaticity(chrm -> Green.x, chrm -> Green.y, Icc)) return FALSE; if (!SaveOneChromaticity(chrm -> Blue.x, chrm -> Blue.y, Icc)) return FALSE; return TRUE; } static LCMSBOOL SaveSequenceDescriptionTag(LPcmsSEQ seq, LPLCMSICCPROFILE Icc) { icUInt32Number nSeqs; icDescStruct DescStruct; int i, n = seq ->n; LPcmsPSEQDESC pseq = seq ->seq; if (!SetupBase(icSigProfileSequenceDescType, Icc)) return FALSE; nSeqs = TransportValue32(n); if (!Icc ->Write(Icc, sizeof(icUInt32Number) , &nSeqs)) return FALSE; for (i=0; i < n; i++) { LPcmsPSEQDESC sec = pseq + i; DescStruct.deviceMfg = (icTagTypeSignature) TransportValue32(sec ->deviceMfg); DescStruct.deviceModel = (icTagTypeSignature) TransportValue32(sec ->deviceModel); DescStruct.technology = (icTechnologySignature) TransportValue32(sec ->technology); DescStruct.attributes[0]= TransportValue32(sec ->attributes[0]); DescStruct.attributes[1]= TransportValue32(sec ->attributes[1]); if (!Icc ->Write(Icc, sizeof(icDescStruct) - SIZEOF_UINT8_ALIGNED, &DescStruct)) return FALSE; if (!SaveDescription(sec ->Manufacturer, Icc)) return FALSE; if (!SaveDescription(sec ->Model, Icc)) return FALSE; } return TRUE; } // Saves a timestamp tag static LCMSBOOL SaveDateTimeNumber(const struct tm *DateTime, LPLCMSICCPROFILE Icc) { icDateTimeNumber Dest; if (!SetupBase(icSigDateTimeType, Icc)) return FALSE; EncodeDateTimeNumber(&Dest, DateTime); if (!Icc ->Write(Icc, sizeof(icDateTimeNumber), &Dest)) return FALSE; return TRUE; } // Saves a named color list into a named color profile static LCMSBOOL SaveNamedColorList(LPcmsNAMEDCOLORLIST NamedColorList, LPLCMSICCPROFILE Icc) { icUInt32Number vendorFlag; // Bottom 16 bits for IC use icUInt32Number count; // Count of named colors icUInt32Number nDeviceCoords; // Num of device coordinates char prefix[32]; // Prefix for each color name char suffix[32]; // Suffix for each color name int i; if (!SetupBase(icSigNamedColor2Type, Icc)) return FALSE; vendorFlag = TransportValue32(0); count = TransportValue32(NamedColorList ->nColors); nDeviceCoords = TransportValue32(NamedColorList ->ColorantCount); strncpy(prefix, (const char*) NamedColorList->Prefix, 31); strncpy(suffix, (const char*) NamedColorList->Suffix, 31); suffix[31] = prefix[31] = 0; if (!Icc ->Write(Icc, sizeof(icUInt32Number), &vendorFlag)) return FALSE; if (!Icc ->Write(Icc, sizeof(icUInt32Number), &count)) return FALSE; if (!Icc ->Write(Icc, sizeof(icUInt32Number), &nDeviceCoords)) return FALSE; if (!Icc ->Write(Icc, 32 , prefix)) return FALSE; if (!Icc ->Write(Icc, 32 , suffix)) return FALSE; for (i=0; i < NamedColorList ->nColors; i++) { icUInt16Number PCS[3]; icUInt16Number Colorant[MAXCHANNELS]; char root[32]; LPcmsNAMEDCOLOR Color; int j; Color = NamedColorList ->List + i; strncpy(root, Color ->Name, 32); Color ->Name[32] = 0; if (!Icc ->Write(Icc, 32 , root)) return FALSE; for (j=0; j < 3; j++) PCS[j] = TransportValue16(Color ->PCS[j]); if (!Icc ->Write(Icc, 3 * sizeof(icUInt16Number), PCS)) return FALSE; for (j=0; j < NamedColorList ->ColorantCount; j++) Colorant[j] = TransportValue16(Color ->DeviceColorant[j]); if (!Icc ->Write(Icc, NamedColorList ->ColorantCount * sizeof(icUInt16Number), Colorant)) return FALSE; } return TRUE; } // Saves a colorant table. It is using the named color structure for simplicity sake static LCMSBOOL SaveColorantTable(LPcmsNAMEDCOLORLIST NamedColorList, LPLCMSICCPROFILE Icc) { icUInt32Number count; // Count of named colors int i; if (!SetupBase(icSigColorantTableType, Icc)) return FALSE; count = TransportValue32(NamedColorList ->nColors); if (!Icc ->Write(Icc, sizeof(icUInt32Number), &count)) return FALSE; for (i=0; i < NamedColorList ->nColors; i++) { icUInt16Number PCS[3]; icInt8Number root[33]; LPcmsNAMEDCOLOR Color; int j; Color = NamedColorList ->List + i; strncpy((char*) root, Color ->Name, 32); root[32] = 0; if (!Icc ->Write(Icc, 32 , root)) return FALSE; for (j=0; j < 3; j++) PCS[j] = TransportValue16(Color ->PCS[j]); if (!Icc ->Write(Icc, 3 * sizeof(icUInt16Number), PCS)) return FALSE; } return TRUE; } // Does serialization of LUT16 and writes it. static LCMSBOOL SaveLUT(const LUT* NewLUT, LPLCMSICCPROFILE Icc) { icLut16 LUT16; unsigned int i; size_t nTabSize; WORD NullTbl[2] = { 0, 0xFFFFU}; if (!SetupBase(icSigLut16Type, Icc)) return FALSE; LUT16.clutPoints = (icUInt8Number) NewLUT -> cLutPoints; LUT16.inputChan = (icUInt8Number) NewLUT -> InputChan; LUT16.outputChan = (icUInt8Number) NewLUT -> OutputChan; LUT16.pad = 0; LUT16.inputEnt = TransportValue16((WORD) ((NewLUT -> wFlags & LUT_HASTL1) ? NewLUT -> InputEntries : 2)); LUT16.outputEnt = TransportValue16((WORD) ((NewLUT -> wFlags & LUT_HASTL2) ? NewLUT -> OutputEntries : 2)); if (NewLUT -> wFlags & LUT_HASMATRIX) { LUT16.e00 = TransportValue32(NewLUT -> Matrix.v[0].n[0]); LUT16.e01 = TransportValue32(NewLUT -> Matrix.v[0].n[1]); LUT16.e02 = TransportValue32(NewLUT -> Matrix.v[0].n[2]); LUT16.e10 = TransportValue32(NewLUT -> Matrix.v[1].n[0]); LUT16.e11 = TransportValue32(NewLUT -> Matrix.v[1].n[1]); LUT16.e12 = TransportValue32(NewLUT -> Matrix.v[1].n[2]); LUT16.e20 = TransportValue32(NewLUT -> Matrix.v[2].n[0]); LUT16.e21 = TransportValue32(NewLUT -> Matrix.v[2].n[1]); LUT16.e22 = TransportValue32(NewLUT -> Matrix.v[2].n[2]); } else { LUT16.e00 = TransportValue32(DOUBLE_TO_FIXED(1)); LUT16.e01 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT16.e02 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT16.e10 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT16.e11 = TransportValue32(DOUBLE_TO_FIXED(1)); LUT16.e12 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT16.e20 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT16.e21 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT16.e22 = TransportValue32(DOUBLE_TO_FIXED(1)); } // Save header Icc -> Write(Icc, sizeof(icLut16)- SIZEOF_UINT16_ALIGNED, &LUT16); // The prelinearization table for (i=0; i < NewLUT -> InputChan; i++) { if (NewLUT -> wFlags & LUT_HASTL1) { if (!SaveWordsTable(NewLUT -> InputEntries, NewLUT -> L1[i], Icc)) return FALSE; } else Icc -> Write(Icc, sizeof(WORD)* 2, NullTbl); } nTabSize = (NewLUT -> OutputChan * uipow(NewLUT->cLutPoints, NewLUT->InputChan)); // The 3D CLUT. if (nTabSize > 0) { if (!SaveWordsTable((int) nTabSize, NewLUT -> T, Icc)) return FALSE; } // The postlinearization table for (i=0; i < NewLUT -> OutputChan; i++) { if (NewLUT -> wFlags & LUT_HASTL2) { if (!SaveWordsTable(NewLUT -> OutputEntries, NewLUT -> L2[i], Icc)) return FALSE; } else Icc -> Write(Icc, sizeof(WORD)* 2, NullTbl); } return TRUE; } // Does serialization of LUT8 and writes it static LCMSBOOL SaveLUT8(const LUT* NewLUT, LPLCMSICCPROFILE Icc) { icLut8 LUT8; unsigned int i, j; size_t nTabSize; BYTE val; // Sanity check if (NewLUT -> wFlags & LUT_HASTL1) { if (NewLUT -> InputEntries != 256) { cmsSignalError(LCMS_ERRC_ABORTED, "LUT8 needs 256 entries on prelinearization"); return FALSE; } } if (NewLUT -> wFlags & LUT_HASTL2) { if (NewLUT -> OutputEntries != 256) { cmsSignalError(LCMS_ERRC_ABORTED, "LUT8 needs 256 entries on postlinearization"); return FALSE; } } if (!SetupBase(icSigLut8Type, Icc)) return FALSE; LUT8.clutPoints = (icUInt8Number) NewLUT -> cLutPoints; LUT8.inputChan = (icUInt8Number) NewLUT -> InputChan; LUT8.outputChan = (icUInt8Number) NewLUT -> OutputChan; if (NewLUT -> wFlags & LUT_HASMATRIX) { LUT8.e00 = TransportValue32(NewLUT -> Matrix.v[0].n[0]); LUT8.e01 = TransportValue32(NewLUT -> Matrix.v[0].n[1]); LUT8.e02 = TransportValue32(NewLUT -> Matrix.v[0].n[2]); LUT8.e10 = TransportValue32(NewLUT -> Matrix.v[1].n[0]); LUT8.e11 = TransportValue32(NewLUT -> Matrix.v[1].n[1]); LUT8.e12 = TransportValue32(NewLUT -> Matrix.v[1].n[2]); LUT8.e20 = TransportValue32(NewLUT -> Matrix.v[2].n[0]); LUT8.e21 = TransportValue32(NewLUT -> Matrix.v[2].n[1]); LUT8.e22 = TransportValue32(NewLUT -> Matrix.v[2].n[2]); } else { LUT8.e00 = TransportValue32(DOUBLE_TO_FIXED(1)); LUT8.e01 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT8.e02 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT8.e10 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT8.e11 = TransportValue32(DOUBLE_TO_FIXED(1)); LUT8.e12 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT8.e20 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT8.e21 = TransportValue32(DOUBLE_TO_FIXED(0)); LUT8.e22 = TransportValue32(DOUBLE_TO_FIXED(1)); } // Save header Icc -> Write(Icc, sizeof(icLut8)- SIZEOF_UINT8_ALIGNED, &LUT8); // The prelinearization table for (i=0; i < NewLUT -> InputChan; i++) { for (j=0; j < 256; j++) { if (NewLUT -> wFlags & LUT_HASTL1) val = (BYTE) floor(NewLUT ->L1[i][j] / 257.0 + .5); else val = (BYTE) j; Icc ->Write(Icc, 1, &val); } } nTabSize = (NewLUT -> OutputChan * uipow(NewLUT->cLutPoints, NewLUT->InputChan)); // The 3D CLUT. for (j=0; j < nTabSize; j++) { val = (BYTE) floor(NewLUT ->T[j] / 257.0 + .5); Icc ->Write(Icc, 1, &val); } // The postlinearization table for (i=0; i < NewLUT -> OutputChan; i++) { for (j=0; j < 256; j++) { if (NewLUT -> wFlags & LUT_HASTL2) val = (BYTE) floor(NewLUT ->L2[i][j] / 257.0 + .5); else val = (BYTE) j; Icc ->Write(Icc, 1, &val); } } return TRUE; } // Set the LUT bitdepth to be saved void LCMSEXPORT _cmsSetLUTdepth(cmsHPROFILE hProfile, int depth) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; switch (depth) { case 8: Icc ->SaveAs8Bits = TRUE; break; case 16: Icc ->SaveAs8Bits = FALSE; break; default: cmsSignalError(LCMS_ERRC_ABORTED, "%d is an unsupported as bitdepth, use 8 or 16 only.", depth); } } // Saves Tag directory static LCMSBOOL SaveTagDirectory(LPLCMSICCPROFILE Icc) { icInt32Number i; icTag Tag; icInt32Number Count = 0; // Get true count for (i=0; i < Icc -> TagCount; i++) { if (Icc ->TagNames[i] != 0) Count++; } Count = TransportValue32(Count); if (!Icc ->Write(Icc, sizeof(icInt32Number) , &Count)) return FALSE; for (i=0; i < Icc -> TagCount; i++) { if (Icc ->TagNames[i] == 0) continue; Tag.sig = (icTagSignature)TransportValue32(Icc -> TagNames[i]); Tag.offset = TransportValue32((icInt32Number) Icc -> TagOffsets[i]); Tag.size = TransportValue32((icInt32Number) Icc -> TagSizes[i]); if (!Icc ->Write(Icc, sizeof(icTag), &Tag)) return FALSE; } return TRUE; } // Dump tag contents static LCMSBOOL SaveTags(LPLCMSICCPROFILE Icc, LPLCMSICCPROFILE FileOrig) { LPBYTE Data; icInt32Number i; size_t Begin; size_t AlignedSpace, FillerSize; for (i=0; i < Icc -> TagCount; i++) { if (Icc ->TagNames[i] == 0) continue; // Align to DWORD boundary, following new spec. AlignedSpace = ALIGNLONG(Icc ->UsedSpace); FillerSize = AlignedSpace - Icc ->UsedSpace; if (FillerSize > 0) { BYTE Filler[20]; ZeroMemory(Filler, 16); if (!Icc ->Write(Icc, FillerSize, Filler)) return FALSE; } Icc -> TagOffsets[i] = Begin = Icc ->UsedSpace; Data = (LPBYTE) Icc -> TagPtrs[i]; if (!Data) { // Reach here if we are copying a tag from a disk-based ICC profile which has not been modified by user. // In this case a blind copy of the block data is performed if (Icc -> TagOffsets[i]) { size_t TagSize = FileOrig -> TagSizes[i]; size_t TagOffset = FileOrig -> TagOffsets[i]; void* Mem; if (FileOrig ->Seek(FileOrig, TagOffset)) return FALSE; Mem = _cmsMalloc(TagSize); if (FileOrig ->Read(Mem, TagSize, 1, FileOrig) != 1) return FALSE; if (!Icc ->Write(Icc, TagSize, Mem)) return FALSE; Icc -> TagSizes[i] = (Icc ->UsedSpace - Begin); free(Mem); } continue; } switch (Icc -> TagNames[i]) { case icSigProfileDescriptionTag: case icSigDeviceMfgDescTag: case icSigDeviceModelDescTag: if (!SaveDescription((const char *) Data, Icc)) return FALSE; break; case icSigRedColorantTag: case icSigGreenColorantTag: case icSigBlueColorantTag: case icSigMediaWhitePointTag: case icSigMediaBlackPointTag: if (!SaveXYZNumber((LPcmsCIEXYZ) Data, Icc)) return FALSE; break; case icSigRedTRCTag: case icSigGreenTRCTag: case icSigBlueTRCTag: case icSigGrayTRCTag: if (!SaveGamma((LPGAMMATABLE) Data, Icc)) return FALSE; break; case icSigCharTargetTag: case icSigCopyrightTag: if (!SaveText((const char *) Data, Icc)) return FALSE; break; case icSigChromaticityTag: if (!SaveChromaticities((LPcmsCIExyYTRIPLE) Data, Icc)) return FALSE; break; // Save LUT case icSigAToB0Tag: case icSigAToB1Tag: case icSigAToB2Tag: case icSigBToA0Tag: case icSigBToA1Tag: case icSigBToA2Tag: case icSigGamutTag: case icSigPreview0Tag: case icSigPreview1Tag: case icSigPreview2Tag: if (Icc ->SaveAs8Bits) { if (!SaveLUT8((LPLUT) Data, Icc)) return FALSE; } else { if (!SaveLUT((LPLUT) Data, Icc)) return FALSE; } break; case icSigProfileSequenceDescTag: if (!SaveSequenceDescriptionTag((LPcmsSEQ) Data, Icc)) return FALSE; break; case icSigNamedColor2Tag: if (!SaveNamedColorList((LPcmsNAMEDCOLORLIST) Data, Icc)) return FALSE; break; case icSigCalibrationDateTimeTag: if (!SaveDateTimeNumber((struct tm *) Data, Icc)) return FALSE; break; case icSigColorantTableTag: case icSigColorantTableOutTag: if (!SaveColorantTable((LPcmsNAMEDCOLORLIST) Data, Icc)) return FALSE; break; case icSigChromaticAdaptationTag: if (!SaveXYZArray(3, (LPcmsCIEXYZ) Data, Icc)) return FALSE; break; default: return FALSE; } Icc -> TagSizes[i] = (Icc ->UsedSpace - Begin); } return TRUE; } // Add tags to profile structure LCMSBOOL LCMSEXPORT cmsAddTag(cmsHPROFILE hProfile, icTagSignature sig, const void* Tag) { LCMSBOOL rc; switch (sig) { case icSigCharTargetTag: case icSigCopyrightTag: case icSigProfileDescriptionTag: case icSigDeviceMfgDescTag: case icSigDeviceModelDescTag: rc = _cmsAddTextTag(hProfile, sig, (const char*) Tag); break; case icSigRedColorantTag: case icSigGreenColorantTag: case icSigBlueColorantTag: case icSigMediaWhitePointTag: case icSigMediaBlackPointTag: rc = _cmsAddXYZTag(hProfile, sig, (const cmsCIEXYZ*) Tag); break; case icSigRedTRCTag: case icSigGreenTRCTag: case icSigBlueTRCTag: case icSigGrayTRCTag: rc = _cmsAddGammaTag(hProfile, sig, (LPGAMMATABLE) Tag); break; case icSigAToB0Tag: case icSigAToB1Tag: case icSigAToB2Tag: case icSigBToA0Tag: case icSigBToA1Tag: case icSigBToA2Tag: case icSigGamutTag: case icSigPreview0Tag: case icSigPreview1Tag: case icSigPreview2Tag: rc = _cmsAddLUTTag(hProfile, sig, Tag); break; case icSigChromaticityTag: rc = _cmsAddChromaticityTag(hProfile, sig, (LPcmsCIExyYTRIPLE) Tag); break; case icSigProfileSequenceDescTag: rc = _cmsAddSequenceDescriptionTag(hProfile, sig, (LPcmsSEQ) Tag); break; case icSigNamedColor2Tag: rc = _cmsAddNamedColorTag(hProfile, sig, (LPcmsNAMEDCOLORLIST) Tag); break; case icSigCalibrationDateTimeTag: rc = _cmsAddDateTimeTag(hProfile, sig, (struct tm*) Tag); break; case icSigColorantTableTag: case icSigColorantTableOutTag: rc = _cmsAddColorantTableTag(hProfile, sig, (LPcmsNAMEDCOLORLIST) Tag); break; case icSigChromaticAdaptationTag: rc = _cmsAddChromaticAdaptationTag(hProfile, sig, (const cmsCIEXYZ*) Tag); break; default: cmsSignalError(LCMS_ERRC_ABORTED, "cmsAddTag: Tag '%x' is unsupported", sig); return FALSE; } // Check for critical tags switch (sig) { case icSigMediaWhitePointTag: case icSigMediaBlackPointTag: case icSigChromaticAdaptationTag: ReadCriticalTags((LPLCMSICCPROFILE) hProfile); break; default:; } return rc; } // Low-level save to disk. It closes the profile on exit LCMSBOOL LCMSEXPORT _cmsSaveProfile(cmsHPROFILE hProfile, const char* FileName) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; LCMSICCPROFILE Keep; LCMSBOOL rc; CopyMemory(&Keep, Icc, sizeof(LCMSICCPROFILE)); _cmsSetSaveToDisk(Icc, NULL); // Pass #1 does compute offsets if (!SaveHeader(Icc)) return FALSE; if (!SaveTagDirectory(Icc)) return FALSE; if (!SaveTags(Icc, &Keep)) return FALSE; _cmsSetSaveToDisk(Icc, FileName); // Pass #2 does save to file if (!SaveHeader(Icc)) goto CleanUp; if (!SaveTagDirectory(Icc)) goto CleanUp; if (!SaveTags(Icc, &Keep)) goto CleanUp; rc = (Icc ->Close(Icc) == 0); CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return rc; CleanUp: Icc ->Close(Icc); unlink(FileName); CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return FALSE; } // Low-level save from open stream LCMSBOOL LCMSEXPORT _cmsSaveProfileToMem(cmsHPROFILE hProfile, void *MemPtr, size_t* BytesNeeded) { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; LCMSICCPROFILE Keep; CopyMemory(&Keep, Icc, sizeof(LCMSICCPROFILE)); _cmsSetSaveToMemory(Icc, NULL, 0); // Pass #1 does compute offsets if (!SaveHeader(Icc)) return FALSE; if (!SaveTagDirectory(Icc)) return FALSE; if (!SaveTags(Icc, &Keep)) return FALSE; if (!MemPtr) { // update BytesSaved so caller knows how many bytes are needed for MemPtr *BytesNeeded = Icc ->UsedSpace; CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return TRUE; } if (*BytesNeeded < Icc ->UsedSpace) { // need at least UsedSpace in MemPtr to continue CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return FALSE; } _cmsSetSaveToMemory(Icc, MemPtr, *BytesNeeded); // Pass #2 does save to file into supplied stream if (!SaveHeader(Icc)) goto CleanUp; if (!SaveTagDirectory(Icc)) goto CleanUp; if (!SaveTags(Icc, &Keep)) goto CleanUp; // update BytesSaved so caller knows how many bytes put into stream *BytesNeeded = Icc ->UsedSpace; Icc ->Close(Icc); CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return TRUE; CleanUp: Icc ->Close(Icc); CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return FALSE; } lcms-1.19/src/cmslut.c0000777000175300010010000005537111272606371014136 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Pipeline of LUT. Enclosed by {} are new revision 4.0 of ICC spec. // // [Mat] -> [L1] -> { [Mat3] -> [Ofs3] -> [L3] ->} [CLUT] { -> [L4] -> [Mat4] -> [Ofs4] } -> [L2] // // Some of these stages would be missing. This implements the totality of // combinations of old and new LUT types as follows: // // Lut8 & Lut16 // ============ // [Mat] -> [L1] -> [CLUT] -> [L2] // // Mat2, Ofs2, L3, L3, Mat3, Ofs3 are missing // // LutAToB // ======== // // [L1] -> [CLUT] -> [L4] -> [Mat4] -> [Ofs4] -> [L2] // // Mat, Mat3, Ofs3, L3 are missing // L1 = A curves // L4 = M curves // L2 = B curves // // LutBToA // ======= // // [L1] -> [Mat3] -> [Ofs3] -> [L3] -> [CLUT] -> [L2] // // Mat, L4, Mat4, Ofs4 are missing // L1 = B Curves // L3 = M Curves // L2 = A curves // // // V2&3 emulation // =============== // // For output, Mat is multiplied by // // // | 0xff00 / 0xffff 0 0 | // | 0 0xff00 / 0xffff 0 | // | 0 0 0xff00 / 0xffff | // // // For input, an additional matrix is needed at the very last end of the chain // // // | 0xffff / 0xff00 0 0 | // | 0 0xffff / 0xff00 0 | // | 0 0 0xffff / 0xff00 | // // // Which reduces to (val * 257) >> 8 // A couple of macros to convert between revisions #define FROM_V2_TO_V4(x) (((((x)<<8)+(x))+0x80)>>8) // BY 65535 DIV 65280 ROUND #define FROM_V4_TO_V2(x) ((((x)<<8)+0x80)/257) // BY 65280 DIV 65535 ROUND // Lut Creation & Destruction LPLUT LCMSEXPORT cmsAllocLUT(void) { LPLUT NewLUT; NewLUT = (LPLUT) _cmsMalloc(sizeof(LUT)); if (NewLUT) ZeroMemory(NewLUT, sizeof(LUT)); return NewLUT; } void LCMSEXPORT cmsFreeLUT(LPLUT Lut) { unsigned int i; if (!Lut) return; if (Lut -> T) free(Lut -> T); for (i=0; i < Lut -> OutputChan; i++) { if (Lut -> L2[i]) free(Lut -> L2[i]); } for (i=0; i < Lut -> InputChan; i++) { if (Lut -> L1[i]) free(Lut -> L1[i]); } if (Lut ->wFlags & LUT_HASTL3) { for (i=0; i < Lut -> InputChan; i++) { if (Lut -> L3[i]) free(Lut -> L3[i]); } } if (Lut ->wFlags & LUT_HASTL4) { for (i=0; i < Lut -> OutputChan; i++) { if (Lut -> L4[i]) free(Lut -> L4[i]); } } if (Lut ->CLut16params.p8) free(Lut ->CLut16params.p8); free(Lut); } static LPVOID DupBlockTab(LPVOID Org, size_t size) { LPVOID mem = _cmsMalloc(size); if (mem != NULL) CopyMemory(mem, Org, size); return mem; } LPLUT LCMSEXPORT cmsDupLUT(LPLUT Orig) { LPLUT NewLUT = cmsAllocLUT(); unsigned int i; CopyMemory(NewLUT, Orig, sizeof(LUT)); for (i=0; i < Orig ->InputChan; i++) NewLUT -> L1[i] = (LPWORD) DupBlockTab((LPVOID) Orig ->L1[i], sizeof(WORD) * Orig ->In16params.nSamples); for (i=0; i < Orig ->OutputChan; i++) NewLUT -> L2[i] = (LPWORD) DupBlockTab((LPVOID) Orig ->L2[i], sizeof(WORD) * Orig ->Out16params.nSamples); NewLUT -> T = (LPWORD) DupBlockTab((LPVOID) Orig ->T, Orig -> Tsize); return NewLUT; } static unsigned int UIpow(unsigned int a, unsigned int b) { unsigned int rv = 1; for (; b > 0; b--) rv *= a; return rv; } LCMSBOOL _cmsValidateLUT(LPLUT NewLUT) { unsigned int calc = 1; unsigned int oldCalc; unsigned int power = NewLUT -> InputChan; if (NewLUT -> cLutPoints > 100) return FALSE; if (NewLUT -> InputChan > MAXCHANNELS) return FALSE; if (NewLUT -> OutputChan > MAXCHANNELS) return FALSE; if (NewLUT -> cLutPoints == 0) return TRUE; for (; power > 0; power--) { oldCalc = calc; calc *= NewLUT -> cLutPoints; if (calc / NewLUT -> cLutPoints != oldCalc) { return FALSE; } } oldCalc = calc; calc *= NewLUT -> OutputChan; if (NewLUT -> OutputChan && calc / NewLUT -> OutputChan != oldCalc) { return FALSE; } return TRUE; } LPLUT LCMSEXPORT cmsAlloc3DGrid(LPLUT NewLUT, int clutPoints, int inputChan, int outputChan) { DWORD nTabSize; NewLUT -> wFlags |= LUT_HAS3DGRID; NewLUT -> cLutPoints = clutPoints; NewLUT -> InputChan = inputChan; NewLUT -> OutputChan = outputChan; if (!_cmsValidateLUT(NewLUT)) { return NULL; } nTabSize = NewLUT -> OutputChan * UIpow(NewLUT->cLutPoints, NewLUT->InputChan); NewLUT -> T = (LPWORD) _cmsCalloc(sizeof(WORD), nTabSize); nTabSize *= sizeof(WORD); if (NewLUT -> T == NULL) return NULL; ZeroMemory(NewLUT -> T, nTabSize); NewLUT ->Tsize = nTabSize; cmsCalcCLUT16Params(NewLUT -> cLutPoints, NewLUT -> InputChan, NewLUT -> OutputChan, &NewLUT -> CLut16params); return NewLUT; } LPLUT LCMSEXPORT cmsAllocLinearTable(LPLUT NewLUT, LPGAMMATABLE Tables[], int nTable) { unsigned int i; LPWORD PtrW; switch (nTable) { case 1: NewLUT -> wFlags |= LUT_HASTL1; cmsCalcL16Params(Tables[0] -> nEntries, &NewLUT -> In16params); NewLUT -> InputEntries = Tables[0] -> nEntries; for (i=0; i < NewLUT -> InputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewLUT -> InputEntries); if (PtrW == NULL) return NULL; NewLUT -> L1[i] = PtrW; CopyMemory(PtrW, Tables[i]->GammaTable, sizeof(WORD) * NewLUT -> InputEntries); CopyMemory(&NewLUT -> LCurvesSeed[0][i], &Tables[i] -> Seed, sizeof(LCMSGAMMAPARAMS)); } break; case 2: NewLUT -> wFlags |= LUT_HASTL2; cmsCalcL16Params(Tables[0] -> nEntries, &NewLUT -> Out16params); NewLUT -> OutputEntries = Tables[0] -> nEntries; for (i=0; i < NewLUT -> OutputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewLUT -> OutputEntries); if (PtrW == NULL) return NULL; NewLUT -> L2[i] = PtrW; CopyMemory(PtrW, Tables[i]->GammaTable, sizeof(WORD) * NewLUT -> OutputEntries); CopyMemory(&NewLUT -> LCurvesSeed[1][i], &Tables[i] -> Seed, sizeof(LCMSGAMMAPARAMS)); } break; // 3 & 4 according ICC 4.0 spec case 3: NewLUT -> wFlags |= LUT_HASTL3; cmsCalcL16Params(Tables[0] -> nEntries, &NewLUT -> L3params); NewLUT -> L3Entries = Tables[0] -> nEntries; for (i=0; i < NewLUT -> InputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewLUT -> L3Entries); if (PtrW == NULL) return NULL; NewLUT -> L3[i] = PtrW; CopyMemory(PtrW, Tables[i]->GammaTable, sizeof(WORD) * NewLUT -> L3Entries); CopyMemory(&NewLUT -> LCurvesSeed[2][i], &Tables[i] -> Seed, sizeof(LCMSGAMMAPARAMS)); } break; case 4: NewLUT -> wFlags |= LUT_HASTL4; cmsCalcL16Params(Tables[0] -> nEntries, &NewLUT -> L4params); NewLUT -> L4Entries = Tables[0] -> nEntries; for (i=0; i < NewLUT -> OutputChan; i++) { PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewLUT -> L4Entries); if (PtrW == NULL) return NULL; NewLUT -> L4[i] = PtrW; CopyMemory(PtrW, Tables[i]->GammaTable, sizeof(WORD) * NewLUT -> L4Entries); CopyMemory(&NewLUT -> LCurvesSeed[3][i], &Tables[i] -> Seed, sizeof(LCMSGAMMAPARAMS)); } break; default:; } return NewLUT; } // Set the LUT matrix LPLUT LCMSEXPORT cmsSetMatrixLUT(LPLUT Lut, LPMAT3 M) { MAT3toFix(&Lut ->Matrix, M); if (!MAT3isIdentity(&Lut->Matrix, 0.0001)) Lut ->wFlags |= LUT_HASMATRIX; return Lut; } // Set matrix & offset, v4 compatible LPLUT LCMSEXPORT cmsSetMatrixLUT4(LPLUT Lut, LPMAT3 M, LPVEC3 off, DWORD dwFlags) { WMAT3 WMat; WVEC3 Woff; VEC3 Zero = {{0, 0, 0}}; MAT3toFix(&WMat, M); if (off == NULL) off = &Zero; VEC3toFix(&Woff, off); // Nop if identity if (MAT3isIdentity(&WMat, 0.0001) && (Woff.n[VX] == 0 && Woff.n[VY] == 0 && Woff.n[VZ] == 0)) return Lut; switch (dwFlags) { case LUT_HASMATRIX: Lut ->Matrix = WMat; Lut ->wFlags |= LUT_HASMATRIX; break; case LUT_HASMATRIX3: Lut ->Mat3 = WMat; Lut ->Ofs3 = Woff; Lut ->wFlags |= LUT_HASMATRIX3; break; case LUT_HASMATRIX4: Lut ->Mat4 = WMat; Lut ->Ofs4 = Woff; Lut ->wFlags |= LUT_HASMATRIX4; break; default:; } return Lut; } // The full evaluator void LCMSEXPORT cmsEvalLUT(LPLUT Lut, WORD In[], WORD Out[]) { register unsigned int i; WORD StageABC[MAXCHANNELS], StageLMN[MAXCHANNELS]; // Try to speedup things on plain devicelinks if (Lut ->wFlags == LUT_HAS3DGRID) { Lut ->CLut16params.Interp3D(In, Out, Lut -> T, &Lut -> CLut16params); return; } // Nope, evaluate whole LUT for (i=0; i < Lut -> InputChan; i++) StageABC[i] = In[i]; if (Lut ->wFlags & LUT_V4_OUTPUT_EMULATE_V2) { // Clamp Lab to avoid overflow if (StageABC[0] > 0xFF00) StageABC[0] = 0xFF00; StageABC[0] = (WORD) FROM_V2_TO_V4(StageABC[0]); StageABC[1] = (WORD) FROM_V2_TO_V4(StageABC[1]); StageABC[2] = (WORD) FROM_V2_TO_V4(StageABC[2]); } if (Lut ->wFlags & LUT_V2_OUTPUT_EMULATE_V4) { StageABC[0] = (WORD) FROM_V4_TO_V2(StageABC[0]); StageABC[1] = (WORD) FROM_V4_TO_V2(StageABC[1]); StageABC[2] = (WORD) FROM_V4_TO_V2(StageABC[2]); } // Matrix handling. if (Lut -> wFlags & LUT_HASMATRIX) { WVEC3 InVect, OutVect; // In LUT8 here comes the special gray axis fixup if (Lut ->FixGrayAxes) { StageABC[1] = _cmsClampWord(StageABC[1] - 128); StageABC[2] = _cmsClampWord(StageABC[2] - 128); } // Matrix InVect.n[VX] = ToFixedDomain(StageABC[0]); InVect.n[VY] = ToFixedDomain(StageABC[1]); InVect.n[VZ] = ToFixedDomain(StageABC[2]); MAT3evalW(&OutVect, &Lut -> Matrix, &InVect); // PCS in 1Fixed15 format, adjusting StageABC[0] = _cmsClampWord(FromFixedDomain(OutVect.n[VX])); StageABC[1] = _cmsClampWord(FromFixedDomain(OutVect.n[VY])); StageABC[2] = _cmsClampWord(FromFixedDomain(OutVect.n[VZ])); } // First linearization if (Lut -> wFlags & LUT_HASTL1) { for (i=0; i < Lut -> InputChan; i++) StageABC[i] = cmsLinearInterpLUT16(StageABC[i], Lut -> L1[i], &Lut -> In16params); } // Mat3, Ofs3, L3 processing if (Lut ->wFlags & LUT_HASMATRIX3) { WVEC3 InVect, OutVect; InVect.n[VX] = ToFixedDomain(StageABC[0]); InVect.n[VY] = ToFixedDomain(StageABC[1]); InVect.n[VZ] = ToFixedDomain(StageABC[2]); MAT3evalW(&OutVect, &Lut -> Mat3, &InVect); OutVect.n[VX] += Lut ->Ofs3.n[VX]; OutVect.n[VY] += Lut ->Ofs3.n[VY]; OutVect.n[VZ] += Lut ->Ofs3.n[VZ]; StageABC[0] = _cmsClampWord(FromFixedDomain(OutVect.n[VX])); StageABC[1] = _cmsClampWord(FromFixedDomain(OutVect.n[VY])); StageABC[2] = _cmsClampWord(FromFixedDomain(OutVect.n[VZ])); } if (Lut ->wFlags & LUT_HASTL3) { for (i=0; i < Lut -> InputChan; i++) StageABC[i] = cmsLinearInterpLUT16(StageABC[i], Lut -> L3[i], &Lut -> L3params); } if (Lut -> wFlags & LUT_HAS3DGRID) { Lut ->CLut16params.Interp3D(StageABC, StageLMN, Lut -> T, &Lut -> CLut16params); } else { for (i=0; i < Lut -> InputChan; i++) StageLMN[i] = StageABC[i]; } // Mat4, Ofs4, L4 processing if (Lut ->wFlags & LUT_HASTL4) { for (i=0; i < Lut -> OutputChan; i++) StageLMN[i] = cmsLinearInterpLUT16(StageLMN[i], Lut -> L4[i], &Lut -> L4params); } if (Lut ->wFlags & LUT_HASMATRIX4) { WVEC3 InVect, OutVect; InVect.n[VX] = ToFixedDomain(StageLMN[0]); InVect.n[VY] = ToFixedDomain(StageLMN[1]); InVect.n[VZ] = ToFixedDomain(StageLMN[2]); MAT3evalW(&OutVect, &Lut -> Mat4, &InVect); OutVect.n[VX] += Lut ->Ofs4.n[VX]; OutVect.n[VY] += Lut ->Ofs4.n[VY]; OutVect.n[VZ] += Lut ->Ofs4.n[VZ]; StageLMN[0] = _cmsClampWord(FromFixedDomain(OutVect.n[VX])); StageLMN[1] = _cmsClampWord(FromFixedDomain(OutVect.n[VY])); StageLMN[2] = _cmsClampWord(FromFixedDomain(OutVect.n[VZ])); } // Last linearitzation if (Lut -> wFlags & LUT_HASTL2) { for (i=0; i < Lut -> OutputChan; i++) Out[i] = cmsLinearInterpLUT16(StageLMN[i], Lut -> L2[i], &Lut -> Out16params); } else { for (i=0; i < Lut -> OutputChan; i++) Out[i] = StageLMN[i]; } if (Lut ->wFlags & LUT_V4_INPUT_EMULATE_V2) { Out[0] = (WORD) FROM_V4_TO_V2(Out[0]); Out[1] = (WORD) FROM_V4_TO_V2(Out[1]); Out[2] = (WORD) FROM_V4_TO_V2(Out[2]); } if (Lut ->wFlags & LUT_V2_INPUT_EMULATE_V4) { Out[0] = (WORD) FROM_V2_TO_V4(Out[0]); Out[1] = (WORD) FROM_V2_TO_V4(Out[1]); Out[2] = (WORD) FROM_V2_TO_V4(Out[2]); } } // Precomputes tables for 8-bit on input devicelink. // LPLUT _cmsBlessLUT8(LPLUT Lut) { int i, j; WORD StageABC[3]; Fixed32 v1, v2, v3; LPL8PARAMS p8; LPL16PARAMS p = &Lut ->CLut16params; p8 = (LPL8PARAMS) _cmsMalloc(sizeof(L8PARAMS)); if (p8 == NULL) return NULL; // values comes * 257, so we can safely take first byte (x << 8 + x) // if there are prelinearization, is already smelted in tables for (i=0; i < 256; i++) { StageABC[0] = StageABC[1] = StageABC[2] = RGB_8_TO_16(i); if (Lut ->wFlags & LUT_HASTL1) { for (j=0; j < 3; j++) StageABC[j] = cmsLinearInterpLUT16(StageABC[j], Lut -> L1[j], &Lut -> In16params); Lut ->wFlags &= ~LUT_HASTL1; } v1 = ToFixedDomain(StageABC[0] * p -> Domain); v2 = ToFixedDomain(StageABC[1] * p -> Domain); v3 = ToFixedDomain(StageABC[2] * p -> Domain); p8 ->X0[i] = p->opta3 * FIXED_TO_INT(v1); p8 ->Y0[i] = p->opta2 * FIXED_TO_INT(v2); p8 ->Z0[i] = p->opta1 * FIXED_TO_INT(v3); p8 ->rx[i] = (WORD) FIXED_REST_TO_INT(v1); p8 ->ry[i] = (WORD) FIXED_REST_TO_INT(v2); p8 ->rz[i] = (WORD) FIXED_REST_TO_INT(v3); } Lut -> CLut16params.p8 = p8; Lut -> CLut16params.Interp3D = cmsTetrahedralInterp8; return Lut; } // ----------------------------------------------------------- Reverse interpolation // Here's how it goes. The derivative Df(x) of the function f is the linear // transformation that best approximates f near the point x. It can be represented // by a matrix A whose entries are the partial derivatives of the components of f // with respect to all the coordinates. This is know as the Jacobian // // The best linear approximation to f is given by the matrix equation: // // y-y0 = A (x-x0) // // So, if x0 is a good "guess" for the zero of f, then solving for the zero of this // linear approximation will give a "better guess" for the zero of f. Thus let y=0, // and since y0=f(x0) one can solve the above equation for x. This leads to the // Newton's method formula: // // xn+1 = xn - A-1 f(xn) // // where xn+1 denotes the (n+1)-st guess, obtained from the n-th guess xn in the // fashion described above. Iterating this will give better and better approximations // if you have a "good enough" initial guess. #define JACOBIAN_EPSILON 0.001 #define INVERSION_MAX_ITERATIONS 30 // Increment with reflexion on boundary static void IncDelta(double *Val) { if (*Val < (1.0 - JACOBIAN_EPSILON)) *Val += JACOBIAN_EPSILON; else *Val -= JACOBIAN_EPSILON; } static void ToEncoded(WORD Encoded[3], LPVEC3 Float) { Encoded[0] = (WORD) floor(Float->n[0] * 65535.0 + 0.5); Encoded[1] = (WORD) floor(Float->n[1] * 65535.0 + 0.5); Encoded[2] = (WORD) floor(Float->n[2] * 65535.0 + 0.5); } static void FromEncoded(LPVEC3 Float, WORD Encoded[3]) { Float->n[0] = Encoded[0] / 65535.0; Float->n[1] = Encoded[1] / 65535.0; Float->n[2] = Encoded[2] / 65535.0; } // Evaluates the CLUT part of a LUT (4 -> 3 only) static void EvalLUTdoubleKLab(LPLUT Lut, const VEC3* In, WORD FixedK, LPcmsCIELab Out) { WORD wIn[4], wOut[3]; wIn[0] = (WORD) floor(In ->n[0] * 65535.0 + 0.5); wIn[1] = (WORD) floor(In ->n[1] * 65535.0 + 0.5); wIn[2] = (WORD) floor(In ->n[2] * 65535.0 + 0.5); wIn[3] = FixedK; cmsEvalLUT(Lut, wIn, wOut); cmsLabEncoded2Float(Out, wOut); } // Builds a Jacobian CMY->Lab static void ComputeJacobianLab(LPLUT Lut, LPMAT3 Jacobian, const VEC3* Colorant, WORD K) { VEC3 ColorantD; cmsCIELab Lab, LabD; int j; EvalLUTdoubleKLab(Lut, Colorant, K, &Lab); for (j = 0; j < 3; j++) { ColorantD.n[0] = Colorant ->n[0]; ColorantD.n[1] = Colorant ->n[1]; ColorantD.n[2] = Colorant ->n[2]; IncDelta(&ColorantD.n[j]); EvalLUTdoubleKLab(Lut, &ColorantD, K, &LabD); Jacobian->v[0].n[j] = ((LabD.L - Lab.L) / JACOBIAN_EPSILON); Jacobian->v[1].n[j] = ((LabD.a - Lab.a) / JACOBIAN_EPSILON); Jacobian->v[2].n[j] = ((LabD.b - Lab.b) / JACOBIAN_EPSILON); } } // Evaluate a LUT in reverse direction. It only searches on 3->3 LUT, but It // can be used on CMYK -> Lab LUT to obtain black preservation. // Target holds LabK in this case // x1 <- x - [J(x)]^-1 * f(x) LCMSAPI double LCMSEXPORT cmsEvalLUTreverse(LPLUT Lut, WORD Target[], WORD Result[], LPWORD Hint) { int i; double error, LastError = 1E20; cmsCIELab fx, Goal; VEC3 tmp, tmp2, x; MAT3 Jacobian; WORD FixedK; WORD LastResult[4]; // This is our Lab goal cmsLabEncoded2Float(&Goal, Target); // Special case for CMYK->Lab if (Lut ->InputChan == 4) FixedK = Target[3]; else FixedK = 0; // Take the hint as starting point if specified if (Hint == NULL) { // Begin at any point, we choose 1/3 of neutral CMY gray x.n[0] = x.n[1] = x.n[2] = 0.3; } else { FromEncoded(&x, Hint); } // Iterate for (i = 0; i < INVERSION_MAX_ITERATIONS; i++) { // Get beginning fx EvalLUTdoubleKLab(Lut, &x, FixedK, &fx); // Compute error error = cmsDeltaE(&fx, &Goal); // If not convergent, return last safe value if (error >= LastError) break; // Keep latest values LastError = error; ToEncoded(LastResult, &x); LastResult[3] = FixedK; // Obtain slope ComputeJacobianLab(Lut, &Jacobian, &x, FixedK); // Solve system tmp2.n[0] = fx.L - Goal.L; tmp2.n[1] = fx.a - Goal.a; tmp2.n[2] = fx.b - Goal.b; if (!MAT3solve(&tmp, &Jacobian, &tmp2)) break; // Move our guess x.n[0] -= tmp.n[0]; x.n[1] -= tmp.n[1]; x.n[2] -= tmp.n[2]; // Some clipping.... VEC3saturate(&x); } Result[0] = LastResult[0]; Result[1] = LastResult[1]; Result[2] = LastResult[2]; Result[3] = LastResult[3]; return LastError; } lcms-1.19/src/cmsmatsh.c0000777000175300010010000002546311272606371014445 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Shaper/Matrix handling // This routines handles the matrix-shaper method. A note about domain // is here required. If the shaper-matrix is invoked on INPUT profiles, // after the shaper process, we have a value between 0 and 0xFFFF. Thus, // for proper matrix handling, we must convert it to 15fix16, so // ToFixedDomain might be called. But cmsLinearInterpFixed() returns // data yet in fixed point, so no additional process is required. // Then, we obtain data on 15.16, so we need to shift >> by 1 to // obtain 1.15 PCS format. // On OUTPUT profiles, things are inverse, we must first expand 1 bit // by shifting left, and then convert result between 0 and 1.000 to // RGB, so FromFixedDomain() must be called before pass values to // shaper. Trickly, there is a situation where this shifts works // little different. Sometimes, lcms smelts input/output // matrices into a single, one shaper, process. In such cases, since // input is encoded from 0 to 0xffff, we must first use the shaper and // then the matrix, an additional FromFixedDomain() must be used to // accomodate output values. // For a sake of simplicity, I will handle this three behaviours // with different routines, so the flags MATSHAPER_INPUT and MATSHAPER_OUTPUT // can be conbined to signal smelted matrix-shapers static int ComputeTables(LPGAMMATABLE Table[3], LPWORD Out[3], LPL16PARAMS p16) { int i, AllLinear; cmsCalcL16Params(Table[0] -> nEntries, p16); AllLinear = 0; for (i=0; i < 3; i++) { LPWORD PtrW; PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * p16 -> nSamples); if (PtrW == NULL) return -1; // Signal error CopyMemory(PtrW, Table[i] -> GammaTable, sizeof(WORD) * Table[i] -> nEntries); Out[i] = PtrW; // Set table pointer // Linear after all? AllLinear += cmsIsLinear(PtrW, p16 -> nSamples); } // If is all linear, then supress table interpolation (this // will speed greately some trivial operations. // Return 1 if present, 0 if all linear if (AllLinear != 3) return 1; return 0; } LPMATSHAPER cmsAllocMatShaper2(LPMAT3 Matrix, LPGAMMATABLE In[], LPGAMMATABLE Out[], DWORD Behaviour) { LPMATSHAPER NewMatShaper; int rc; NewMatShaper = (LPMATSHAPER) _cmsMalloc(sizeof(MATSHAPER)); if (NewMatShaper) ZeroMemory(NewMatShaper, sizeof(MATSHAPER)); NewMatShaper->dwFlags = Behaviour & (MATSHAPER_ALLSMELTED); // Fill matrix part MAT3toFix(&NewMatShaper -> Matrix, Matrix); // Reality check if (!MAT3isIdentity(&NewMatShaper -> Matrix, 0.00001)) NewMatShaper -> dwFlags |= MATSHAPER_HASMATRIX; // Now, on the table characteristics if (Out) { rc = ComputeTables(Out, NewMatShaper ->L, &NewMatShaper ->p16); if (rc < 0) { cmsFreeMatShaper(NewMatShaper); return NULL; } if (rc == 1) NewMatShaper -> dwFlags |= MATSHAPER_HASSHAPER; } if (In) { rc = ComputeTables(In, NewMatShaper ->L2, &NewMatShaper ->p2_16); if (rc < 0) { cmsFreeMatShaper(NewMatShaper); return NULL; } if (rc == 1) NewMatShaper -> dwFlags |= MATSHAPER_HASINPSHAPER; } return NewMatShaper; } // Creation & Destruction LPMATSHAPER cmsAllocMatShaper(LPMAT3 Matrix, LPGAMMATABLE Tables[], DWORD Behaviour) { LPMATSHAPER NewMatShaper; int i, AllLinear; if (Matrix == NULL) return NULL; for (i=0; i < 3; i++) { if (Tables[i] == NULL) return NULL; } NewMatShaper = (LPMATSHAPER) _cmsMalloc(sizeof(MATSHAPER)); if (NewMatShaper) ZeroMemory(NewMatShaper, sizeof(MATSHAPER)); NewMatShaper->dwFlags = Behaviour & (MATSHAPER_ALLSMELTED); // Fill matrix part MAT3toFix(&NewMatShaper -> Matrix, Matrix); // Reality check if (!MAT3isIdentity(&NewMatShaper -> Matrix, 0.00001)) NewMatShaper -> dwFlags |= MATSHAPER_HASMATRIX; // Now, on the table characteristics cmsCalcL16Params(Tables[0] -> nEntries, &NewMatShaper -> p16); // Copy tables AllLinear = 0; for (i=0; i < 3; i++) { LPWORD PtrW; PtrW = (LPWORD) _cmsMalloc(sizeof(WORD) * NewMatShaper -> p16.nSamples); if (PtrW == NULL) { cmsFreeMatShaper(NewMatShaper); return NULL; } CopyMemory(PtrW, Tables[i] -> GammaTable, sizeof(WORD) * Tables[i] -> nEntries); NewMatShaper -> L[i] = PtrW; // Set table pointer // Linear after all? AllLinear += cmsIsLinear(PtrW, NewMatShaper -> p16.nSamples); } // If is all linear, then supress table interpolation (this // will speed greately some trivial operations if (AllLinear != 3) NewMatShaper -> dwFlags |= MATSHAPER_HASSHAPER; return NewMatShaper; } // Free associated memory void cmsFreeMatShaper(LPMATSHAPER MatShaper) { int i; if (!MatShaper) return; for (i=0; i < 3; i++) { if (MatShaper -> L[i]) _cmsFree(MatShaper ->L[i]); if (MatShaper -> L2[i]) _cmsFree(MatShaper ->L2[i]); } _cmsFree(MatShaper); } // All smelted must postpose gamma to last stage. static void AllSmeltedBehaviour(LPMATSHAPER MatShaper, WORD In[], WORD Out[]) { WORD tmp[3]; WVEC3 InVect, OutVect; if (MatShaper -> dwFlags & MATSHAPER_HASINPSHAPER) { InVect.n[VX] = cmsLinearInterpFixed(In[0], MatShaper -> L2[0], &MatShaper -> p2_16); InVect.n[VY] = cmsLinearInterpFixed(In[1], MatShaper -> L2[1], &MatShaper -> p2_16); InVect.n[VZ] = cmsLinearInterpFixed(In[2], MatShaper -> L2[2], &MatShaper -> p2_16); } else { InVect.n[VX] = ToFixedDomain(In[0]); InVect.n[VY] = ToFixedDomain(In[1]); InVect.n[VZ] = ToFixedDomain(In[2]); } if (MatShaper -> dwFlags & MATSHAPER_HASMATRIX) { MAT3evalW(&OutVect, &MatShaper -> Matrix, &InVect); } else { OutVect.n[VX] = InVect.n[VX]; OutVect.n[VY] = InVect.n[VY]; OutVect.n[VZ] = InVect.n[VZ]; } tmp[0] = _cmsClampWord(FromFixedDomain(OutVect.n[VX])); tmp[1] = _cmsClampWord(FromFixedDomain(OutVect.n[VY])); tmp[2] = _cmsClampWord(FromFixedDomain(OutVect.n[VZ])); if (MatShaper -> dwFlags & MATSHAPER_HASSHAPER) { Out[0] = cmsLinearInterpLUT16(tmp[0], MatShaper -> L[0], &MatShaper -> p16); Out[1] = cmsLinearInterpLUT16(tmp[1], MatShaper -> L[1], &MatShaper -> p16); Out[2] = cmsLinearInterpLUT16(tmp[2], MatShaper -> L[2], &MatShaper -> p16); } else { Out[0] = tmp[0]; Out[1] = tmp[1]; Out[2] = tmp[2]; } } static void InputBehaviour(LPMATSHAPER MatShaper, WORD In[], WORD Out[]) { WVEC3 InVect, OutVect; if (MatShaper -> dwFlags & MATSHAPER_HASSHAPER) { InVect.n[VX] = cmsLinearInterpFixed(In[0], MatShaper -> L[0], &MatShaper -> p16); InVect.n[VY] = cmsLinearInterpFixed(In[1], MatShaper -> L[1], &MatShaper -> p16); InVect.n[VZ] = cmsLinearInterpFixed(In[2], MatShaper -> L[2], &MatShaper -> p16); } else { InVect.n[VX] = ToFixedDomain(In[0]); InVect.n[VY] = ToFixedDomain(In[1]); InVect.n[VZ] = ToFixedDomain(In[2]); } if (MatShaper -> dwFlags & MATSHAPER_HASMATRIX) { MAT3evalW(&OutVect, &MatShaper -> Matrix, &InVect); } else { OutVect = InVect; } // PCS in 1Fixed15 format, adjusting Out[0] = _cmsClampWord((OutVect.n[VX]) >> 1); Out[1] = _cmsClampWord((OutVect.n[VY]) >> 1); Out[2] = _cmsClampWord((OutVect.n[VZ]) >> 1); } static void OutputBehaviour(LPMATSHAPER MatShaper, WORD In[], WORD Out[]) { WVEC3 InVect, OutVect; int i; // We need to convert from XYZ to RGB, here we must // shift << 1 to pass between 1.15 to 15.16 formats InVect.n[VX] = (Fixed32) In[0] << 1; InVect.n[VY] = (Fixed32) In[1] << 1; InVect.n[VZ] = (Fixed32) In[2] << 1; if (MatShaper -> dwFlags & MATSHAPER_HASMATRIX) { MAT3evalW(&OutVect, &MatShaper -> Matrix, &InVect); } else { OutVect = InVect; } if (MatShaper -> dwFlags & MATSHAPER_HASSHAPER) { for (i=0; i < 3; i++) { Out[i] = cmsLinearInterpLUT16( _cmsClampWord(FromFixedDomain(OutVect.n[i])), MatShaper -> L[i], &MatShaper ->p16); } } else { // Result from fixed domain to RGB Out[0] = _cmsClampWord(FromFixedDomain(OutVect.n[VX])); Out[1] = _cmsClampWord(FromFixedDomain(OutVect.n[VY])); Out[2] = _cmsClampWord(FromFixedDomain(OutVect.n[VZ])); } } // Master on evaluating shapers, 3 different behaviours void cmsEvalMatShaper(LPMATSHAPER MatShaper, WORD In[], WORD Out[]) { if ((MatShaper -> dwFlags & MATSHAPER_ALLSMELTED) == MATSHAPER_ALLSMELTED) { AllSmeltedBehaviour(MatShaper, In, Out); return; } if (MatShaper -> dwFlags & MATSHAPER_INPUT) { InputBehaviour(MatShaper, In, Out); return; } OutputBehaviour(MatShaper, In, Out); } lcms-1.19/src/cmsmtrx.c0000777000175300010010000004622111272606371014316 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // Vector & Matrix stuff #include "lcms.h" void cdecl VEC3init(LPVEC3 r, double x, double y, double z); void cdecl VEC3initF(LPWVEC3 r, double x, double y, double z); void cdecl VEC3toFix(LPWVEC3 r, LPVEC3 v); void cdecl VEC3scaleFix(LPWORD r, LPWVEC3 Scale); void cdecl VEC3swap(LPVEC3 a, LPVEC3 b); void cdecl VEC3divK(LPVEC3 r, LPVEC3 v, double d); void cdecl VEC3perK(LPVEC3 r, LPVEC3 v, double d); void cdecl VEC3perComp(LPVEC3 r, LPVEC3 a, LPVEC3 b); void cdecl VEC3minus(LPVEC3 r, LPVEC3 a, LPVEC3 b); void cdecl VEC3scaleAndCut(LPWVEC3 r, LPVEC3 v, double d); void cdecl VEC3cross(LPVEC3 r, LPVEC3 u, LPVEC3 v); void cdecl VEC3saturate(LPVEC3 v); double cdecl VEC3length(LPVEC3 a); double cdecl VEC3distance(LPVEC3 a, LPVEC3 b); void cdecl MAT3identity(LPMAT3 a); void cdecl MAT3per(LPMAT3 r, LPMAT3 a, LPMAT3 b); int cdecl MAT3inverse(LPMAT3 a, LPMAT3 b); LCMSBOOL cdecl MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b); double cdecl MAT3det(LPMAT3 m); void cdecl MAT3eval(LPVEC3 r, LPMAT3 a, LPVEC3 v); void cdecl MAT3toFix(LPWMAT3 r, LPMAT3 v); void cdecl MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v); void cdecl MAT3perK(LPMAT3 r, LPMAT3 v, double d); void cdecl MAT3scaleAndCut(LPWMAT3 r, LPMAT3 v, double d); // --------------------- Implementation ---------------------------- #define DSWAP(x, y) {double tmp = (x); (x)=(y); (y)=tmp;} #ifdef USE_ASSEMBLER #ifdef _MSC_VER #pragma warning(disable : 4033) #pragma warning(disable : 4035) #endif Fixed32 FixedMul(Fixed32 a, Fixed32 b) { ASM { mov eax, ss:a mov edx, ss:b imul edx add eax, 0x8000 adc edx, 0 shrd eax, edx, 16 } RET(_EAX); } Fixed32 FixedSquare(Fixed32 a) { ASM { pushf push edx mov eax, ss:a imul eax add eax, 0x8000 adc edx, 0 shrd eax, edx, 16 sar eax, 16 pop edx popf } RET(_EAX); } // Linear intERPolation // a * (h - l) >> 16 + l Fixed32 FixedLERP(Fixed32 a, Fixed32 l, Fixed32 h) { ASM { mov eax, dword ptr ss:h mov edx, dword ptr ss:l push edx mov ecx, dword ptr ss:a sub eax, edx imul ecx add eax, 0x8000 adc edx, 0 shrd eax, edx, 16 pop edx add eax, edx } RET(_EAX); } // a as word is scaled by s as float WORD FixedScale(WORD a, Fixed32 s) { ASM { xor eax,eax mov ax, ss:a // This is faster that movzx eax, ss:a sal eax, 16 mov edx, ss:s mul edx add eax, 0x8000 adc edx, 0 mov eax, edx } RET(_EAX); } #ifdef _MSC_VER #pragma warning(default : 4033) #pragma warning(default : 4035) #endif #else // These are floating point versions for compilers that doesn't // support asm at all. Use with care, since this will slow down // all operations Fixed32 FixedMul(Fixed32 a, Fixed32 b) { #ifdef USE_INT64 LCMSULONGLONG l = (LCMSULONGLONG) (LCMSSLONGLONG) a * (LCMSULONGLONG) (LCMSSLONGLONG) b + (LCMSULONGLONG) 0x8000; l >>= 16; return (Fixed32) l; #else return DOUBLE_TO_FIXED(FIXED_TO_DOUBLE(a) * FIXED_TO_DOUBLE(b)); #endif } Fixed32 FixedSquare(Fixed32 a) { return FixedMul(a, a); } Fixed32 FixedLERP(Fixed32 a, Fixed32 l, Fixed32 h) { #ifdef USE_INT64 LCMSULONGLONG dif = (LCMSULONGLONG) (h - l) * a + 0x8000; dif = (dif >> 16) + l; return (Fixed32) (dif); #else double dif = h - l; dif *= a; dif /= 65536.0; dif += l; return (Fixed32) (dif + 0.5); #endif } WORD FixedScale(WORD a, Fixed32 s) { return (WORD) (a * FIXED_TO_DOUBLE(s)); } #endif #ifndef USE_INLINE Fixed32 ToFixedDomain(int a) { return a + ((a + 0x7fff) / 0xffff); } int FromFixedDomain(Fixed32 a) { return a - ((a + 0x7fff) >> 16); } #endif // Initiate a vector (double version) void VEC3init(LPVEC3 r, double x, double y, double z) { r -> n[VX] = x; r -> n[VY] = y; r -> n[VZ] = z; } // Init a vector (fixed version) void VEC3initF(LPWVEC3 r, double x, double y, double z) { r -> n[VX] = DOUBLE_TO_FIXED(x); r -> n[VY] = DOUBLE_TO_FIXED(y); r -> n[VZ] = DOUBLE_TO_FIXED(z); } // Convert to fixed point encoding is 1.0 = 0xFFFF void VEC3toFix(LPWVEC3 r, LPVEC3 v) { r -> n[VX] = DOUBLE_TO_FIXED(v -> n[VX]); r -> n[VY] = DOUBLE_TO_FIXED(v -> n[VY]); r -> n[VZ] = DOUBLE_TO_FIXED(v -> n[VZ]); } // Convert from fixed point void VEC3fromFix(LPVEC3 r, LPWVEC3 v) { r -> n[VX] = FIXED_TO_DOUBLE(v -> n[VX]); r -> n[VY] = FIXED_TO_DOUBLE(v -> n[VY]); r -> n[VZ] = FIXED_TO_DOUBLE(v -> n[VZ]); } // Swap two double vectors void VEC3swap(LPVEC3 a, LPVEC3 b) { DSWAP(a-> n[VX], b-> n[VX]); DSWAP(a-> n[VY], b-> n[VY]); DSWAP(a-> n[VZ], b-> n[VZ]); } // Divide a vector by a constant void VEC3divK(LPVEC3 r, LPVEC3 v, double d) { double d_inv = 1./d; r -> n[VX] = v -> n[VX] * d_inv; r -> n[VY] = v -> n[VY] * d_inv; r -> n[VZ] = v -> n[VZ] * d_inv; } // Multiply by a constant void VEC3perK(LPVEC3 r, LPVEC3 v, double d ) { r -> n[VX] = v -> n[VX] * d; r -> n[VY] = v -> n[VY] * d; r -> n[VZ] = v -> n[VZ] * d; } void VEC3perComp(LPVEC3 r, LPVEC3 a, LPVEC3 b) { r -> n[VX] = a->n[VX]*b->n[VX]; r -> n[VY] = a->n[VY]*b->n[VY]; r -> n[VZ] = a->n[VZ]*b->n[VZ]; } // Minus void VEC3minus(LPVEC3 r, LPVEC3 a, LPVEC3 b) { r -> n[VX] = a -> n[VX] - b -> n[VX]; r -> n[VY] = a -> n[VY] - b -> n[VY]; r -> n[VZ] = a -> n[VZ] - b -> n[VZ]; } // Check id two vectors are the same, allowing tolerance static LCMSBOOL RangeCheck(double l, double h, double v) { return (v >= l && v <= h); } LCMSBOOL VEC3equal(LPWVEC3 a, LPWVEC3 b, double Tolerance) { int i; double c; for (i=0; i < 3; i++) { c = FIXED_TO_DOUBLE(a -> n[i]); if (!RangeCheck(c - Tolerance, c + Tolerance, FIXED_TO_DOUBLE(b->n[i]))) return FALSE; } return TRUE; } LCMSBOOL VEC3equalF(LPVEC3 a, LPVEC3 b, double Tolerance) { int i; double c; for (i=0; i < 3; i++) { c = a -> n[i]; if (!RangeCheck(c - Tolerance, c + Tolerance, b->n[i])) return FALSE; } return TRUE; } void VEC3scaleFix(LPWORD r, LPWVEC3 Scale) { if (Scale -> n[VX] == 0x00010000L && Scale -> n[VY] == 0x00010000L && Scale -> n[VZ] == 0x00010000L) return; r[0] = (WORD) FixedScale(r[0], Scale -> n[VX]); r[1] = (WORD) FixedScale(r[1], Scale -> n[VY]); r[2] = (WORD) FixedScale(r[2], Scale -> n[VZ]); } // Vector cross product void VEC3cross(LPVEC3 r, LPVEC3 u, LPVEC3 v) { r ->n[VX] = u->n[VY] * v->n[VZ] - v->n[VY] * u->n[VZ]; r ->n[VY] = u->n[VZ] * v->n[VX] - v->n[VZ] * u->n[VX]; r ->n[VZ] = u->n[VX] * v->n[VY] - v->n[VX] * u->n[VY]; } // The vector size double VEC3length(LPVEC3 a) { return sqrt(a ->n[VX] * a ->n[VX] + a ->n[VY] * a ->n[VY] + a ->n[VZ] * a ->n[VZ]); } // Saturate a vector into 0..1.0 range void VEC3saturate(LPVEC3 v) { int i; for (i=0; i < 3; i++) { if (v ->n[i] < 0) v ->n[i] = 0; else if (v ->n[i] > 1.0) v ->n[i] = 1.0; } } // Euclidean distance double VEC3distance(LPVEC3 a, LPVEC3 b) { double d1 = a ->n[VX] - b ->n[VX]; double d2 = a ->n[VY] - b ->n[VY]; double d3 = a ->n[VZ] - b ->n[VZ]; return sqrt(d1*d1 + d2*d2 + d3*d3); } // Identity void MAT3identity(LPMAT3 a) { VEC3init(&a-> v[0], 1.0, 0.0, 0.0); VEC3init(&a-> v[1], 0.0, 1.0, 0.0); VEC3init(&a-> v[2], 0.0, 0.0, 1.0); } // Check if matrix is Identity. Allow a tolerance as % LCMSBOOL MAT3isIdentity(LPWMAT3 a, double Tolerance) { int i; MAT3 Idd; WMAT3 Idf; MAT3identity(&Idd); MAT3toFix(&Idf, &Idd); for (i=0; i < 3; i++) if (!VEC3equal(&a -> v[i], &Idf.v[i], Tolerance)) return FALSE; return TRUE; } // Multiply two matrices void MAT3per(LPMAT3 r, LPMAT3 a, LPMAT3 b) { #define ROWCOL(i, j) \ a->v[i].n[0]*b->v[0].n[j] + a->v[i].n[1]*b->v[1].n[j] + a->v[i].n[2]*b->v[2].n[j] VEC3init(&r-> v[0], ROWCOL(0,0), ROWCOL(0,1), ROWCOL(0,2)); VEC3init(&r-> v[1], ROWCOL(1,0), ROWCOL(1,1), ROWCOL(1,2)); VEC3init(&r-> v[2], ROWCOL(2,0), ROWCOL(2,1), ROWCOL(2,2)); #undef ROWCOL //(i, j) } // Inverse of a matrix b = a^(-1) // Gauss-Jordan elimination with partial pivoting int MAT3inverse(LPMAT3 a, LPMAT3 b) { register int i, j, max; MAT3identity(b); // Loop over cols of a from left to right, eliminating above and below diag for (j=0; j<3; j++) { // Find largest pivot in column j among rows j..2 max = j; // Row with largest pivot candidate for (i=j+1; i<3; i++) if (fabs(a -> v[i].n[j]) > fabs(a -> v[max].n[j])) max = i; // Swap rows max and j in a and b to put pivot on diagonal VEC3swap(&a -> v[max], &a -> v[j]); VEC3swap(&b -> v[max], &b -> v[j]); // Scale row j to have a unit diagonal if (a -> v[j].n[j]==0.) return -1; // singular matrix; can't invert VEC3divK(&b-> v[j], &b -> v[j], a->v[j].n[j]); VEC3divK(&a-> v[j], &a -> v[j], a->v[j].n[j]); // Eliminate off-diagonal elems in col j of a, doing identical ops to b for (i=0; i<3; i++) if (i !=j) { VEC3 temp; VEC3perK(&temp, &b -> v[j], a -> v[i].n[j]); VEC3minus(&b -> v[i], &b -> v[i], &temp); VEC3perK(&temp, &a -> v[j], a -> v[i].n[j]); VEC3minus(&a -> v[i], &a -> v[i], &temp); } } return 1; } // Solve a system in the form Ax = b LCMSBOOL MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b) { MAT3 m, a_1; CopyMemory(&m, a, sizeof(MAT3)); if (!MAT3inverse(&m, &a_1)) return FALSE; // Singular matrix MAT3eval(x, &a_1, b); return TRUE; } // The determinant double MAT3det(LPMAT3 m) { double a1 = m ->v[VX].n[VX]; double a2 = m ->v[VX].n[VY]; double a3 = m ->v[VX].n[VZ]; double b1 = m ->v[VY].n[VX]; double b2 = m ->v[VY].n[VY]; double b3 = m ->v[VY].n[VZ]; double c1 = m ->v[VZ].n[VX]; double c2 = m ->v[VZ].n[VY]; double c3 = m ->v[VZ].n[VZ]; return a1*b2*c3 - a1*b3*c2 + a2*b3*c1 - a2*b1*c3 - a3*b1*c2 - a3*b2*c1; } // linear transform void MAT3eval(LPVEC3 r, LPMAT3 a, LPVEC3 v) { r->n[VX] = a->v[0].n[VX]*v->n[VX] + a->v[0].n[VY]*v->n[VY] + a->v[0].n[VZ]*v->n[VZ]; r->n[VY] = a->v[1].n[VX]*v->n[VX] + a->v[1].n[VY]*v->n[VY] + a->v[1].n[VZ]*v->n[VZ]; r->n[VZ] = a->v[2].n[VX]*v->n[VX] + a->v[2].n[VY]*v->n[VY] + a->v[2].n[VZ]*v->n[VZ]; } // Ok, this is another bottleneck of performance. #ifdef USE_ASSEMBLER // ecx:ebx is result in 64 bits format // edi points to matrix, esi points to input vector // since only 3 accesses are in output, this is a stack variable void MAT3evalW(LPWVEC3 r_, LPWMAT3 a_, LPWVEC3 v_) { ASM { mov esi, dword ptr ss:v_ mov edi, dword ptr ss:a_ // r->n[VX] = FixedMul(a->v[0].n[0], v->n[0]) + mov eax,dword ptr [esi] mov edx,dword ptr [edi] imul edx mov ecx, eax mov ebx, edx // FixedMul(a->v[0].n[1], v->n[1]) + mov eax,dword ptr [esi+4] mov edx,dword ptr [edi+4] imul edx add ecx, eax adc ebx, edx // FixedMul(a->v[0].n[2], v->n[2]); mov eax,dword ptr [esi+8] mov edx,dword ptr [edi+8] imul edx add ecx, eax adc ebx, edx // Back to Fixed 15.16 add ecx, 0x8000 adc ebx, 0 shrd ecx, ebx, 16 push edi mov edi, dword ptr ss:r_ mov dword ptr [edi], ecx // r -> n[VX] pop edi // 2nd row *************************** // FixedMul(a->v[1].n[0], v->n[0]) mov eax,dword ptr [esi] mov edx,dword ptr [edi+12] imul edx mov ecx, eax mov ebx, edx // FixedMul(a->v[1].n[1], v->n[1]) + mov eax,dword ptr [esi+4] mov edx,dword ptr [edi+16] imul edx add ecx, eax adc ebx, edx // FixedMul(a->v[1].n[2], v->n[2]); mov eax,dword ptr [esi+8] mov edx,dword ptr [edi+20] imul edx add ecx, eax adc ebx, edx add ecx, 0x8000 adc ebx, 0 shrd ecx, ebx, 16 push edi mov edi, dword ptr ss:r_ mov dword ptr [edi+4], ecx // r -> n[VY] pop edi // 3d row ************************** // r->n[VZ] = FixedMul(a->v[2].n[0], v->n[0]) + mov eax,dword ptr [esi] mov edx,dword ptr [edi+24] imul edx mov ecx, eax mov ebx, edx // FixedMul(a->v[2].n[1], v->n[1]) + mov eax,dword ptr [esi+4] mov edx,dword ptr [edi+28] imul edx add ecx, eax adc ebx, edx // FixedMul(a->v[2].n[2], v->n[2]); mov eax,dword ptr [esi+8] mov edx,dword ptr [edi+32] imul edx add ecx, eax adc ebx, edx add ecx, 0x8000 adc ebx, 0 shrd ecx, ebx, 16 mov edi, dword ptr ss:r_ mov dword ptr [edi+8], ecx // r -> n[VZ] } } #else #ifdef USE_FLOAT void MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v) { r->n[VX] = DOUBLE_TO_FIXED( FIXED_TO_DOUBLE(a->v[0].n[0]) * FIXED_TO_DOUBLE(v->n[0]) + FIXED_TO_DOUBLE(a->v[0].n[1]) * FIXED_TO_DOUBLE(v->n[1]) + FIXED_TO_DOUBLE(a->v[0].n[2]) * FIXED_TO_DOUBLE(v->n[2]) ); r->n[VY] = DOUBLE_TO_FIXED( FIXED_TO_DOUBLE(a->v[1].n[0]) * FIXED_TO_DOUBLE(v->n[0]) + FIXED_TO_DOUBLE(a->v[1].n[1]) * FIXED_TO_DOUBLE(v->n[1]) + FIXED_TO_DOUBLE(a->v[1].n[2]) * FIXED_TO_DOUBLE(v->n[2]) ); r->n[VZ] = DOUBLE_TO_FIXED( FIXED_TO_DOUBLE(a->v[2].n[0]) * FIXED_TO_DOUBLE(v->n[0]) + FIXED_TO_DOUBLE(a->v[2].n[1]) * FIXED_TO_DOUBLE(v->n[1]) + FIXED_TO_DOUBLE(a->v[2].n[2]) * FIXED_TO_DOUBLE(v->n[2]) ); } #else void MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v) { #ifdef USE_INT64 LCMSULONGLONG l1 = (LCMSULONGLONG) (LCMSSLONGLONG) a->v[0].n[0] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[0] + (LCMSULONGLONG) (LCMSSLONGLONG) a->v[0].n[1] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[1] + (LCMSULONGLONG) (LCMSSLONGLONG) a->v[0].n[2] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[2] + (LCMSULONGLONG) 0x8000; LCMSULONGLONG l2 = (LCMSULONGLONG) (LCMSSLONGLONG) a->v[1].n[0] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[0] + (LCMSULONGLONG) (LCMSSLONGLONG) a->v[1].n[1] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[1] + (LCMSULONGLONG) (LCMSSLONGLONG) a->v[1].n[2] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[2] + (LCMSULONGLONG) 0x8000; LCMSULONGLONG l3 = (LCMSULONGLONG) (LCMSSLONGLONG) a->v[2].n[0] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[0] + (LCMSULONGLONG) (LCMSSLONGLONG) a->v[2].n[1] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[1] + (LCMSULONGLONG) (LCMSSLONGLONG) a->v[2].n[2] * (LCMSULONGLONG) (LCMSSLONGLONG) v->n[2] + (LCMSULONGLONG) 0x8000; l1 >>= 16; l2 >>= 16; l3 >>= 16; r->n[VX] = (Fixed32) l1; r->n[VY] = (Fixed32) l2; r->n[VZ] = (Fixed32) l3; #else // FIXME: Rounding should be done at very last stage. There is 1-Contone rounding error! r->n[VX] = FixedMul(a->v[0].n[0], v->n[0]) + FixedMul(a->v[0].n[1], v->n[1]) + FixedMul(a->v[0].n[2], v->n[2]); r->n[VY] = FixedMul(a->v[1].n[0], v->n[0]) + FixedMul(a->v[1].n[1], v->n[1]) + FixedMul(a->v[1].n[2], v->n[2]); r->n[VZ] = FixedMul(a->v[2].n[0], v->n[0]) + FixedMul(a->v[2].n[1], v->n[1]) + FixedMul(a->v[2].n[2], v->n[2]); #endif } #endif #endif void MAT3perK(LPMAT3 r, LPMAT3 v, double d) { VEC3perK(&r -> v[0], &v -> v[0], d); VEC3perK(&r -> v[1], &v -> v[1], d); VEC3perK(&r -> v[2], &v -> v[2], d); } void MAT3toFix(LPWMAT3 r, LPMAT3 v) { VEC3toFix(&r -> v[0], &v -> v[0]); VEC3toFix(&r -> v[1], &v -> v[1]); VEC3toFix(&r -> v[2], &v -> v[2]); } void MAT3fromFix(LPMAT3 r, LPWMAT3 v) { VEC3fromFix(&r -> v[0], &v -> v[0]); VEC3fromFix(&r -> v[1], &v -> v[1]); VEC3fromFix(&r -> v[2], &v -> v[2]); } // Scale v by d and store it in r giving INTEGER void VEC3scaleAndCut(LPWVEC3 r, LPVEC3 v, double d) { r -> n[VX] = (int) floor(v -> n[VX] * d + .5); r -> n[VY] = (int) floor(v -> n[VY] * d + .5); r -> n[VZ] = (int) floor(v -> n[VZ] * d + .5); } void MAT3scaleAndCut(LPWMAT3 r, LPMAT3 v, double d) { VEC3scaleAndCut(&r -> v[0], &v -> v[0], d); VEC3scaleAndCut(&r -> v[1], &v -> v[1], d); VEC3scaleAndCut(&r -> v[2], &v -> v[2], d); } lcms-1.19/src/cmsnamed.c0000777000175300010010000001152111272606371014403 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // Named color support #include "lcms.h" static LPcmsNAMEDCOLORLIST GrowNamedColorList(LPcmsNAMEDCOLORLIST v, int ByElements) { if (ByElements > v ->Allocated) { LPcmsNAMEDCOLORLIST TheNewList; int NewElements; size_t size; if (v ->Allocated == 0) NewElements = 64; // Initial guess else NewElements = v ->Allocated; while (ByElements > NewElements) NewElements *= 2; size = sizeof(cmsNAMEDCOLORLIST) + (sizeof(cmsNAMEDCOLOR) * NewElements); TheNewList = (LPcmsNAMEDCOLORLIST) _cmsMalloc(size); if (TheNewList == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Out of memory reallocating named color list"); return NULL; } else { ZeroMemory(TheNewList, size); CopyMemory(TheNewList, v, sizeof(cmsNAMEDCOLORLIST) + (v ->nColors - 1) * sizeof(cmsNAMEDCOLOR)); TheNewList -> Allocated = NewElements; _cmsFree(v); return TheNewList; } } return v; } LPcmsNAMEDCOLORLIST cmsAllocNamedColorList(int n) { size_t size = sizeof(cmsNAMEDCOLORLIST) + (n - 1) * sizeof(cmsNAMEDCOLOR); LPcmsNAMEDCOLORLIST v = (LPcmsNAMEDCOLORLIST) _cmsMalloc(size); if (v == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Out of memory creating named color list"); return NULL; } ZeroMemory(v, size); v ->nColors = n; v ->Allocated = n; v ->Prefix[0] = 0; v ->Suffix[0] = 0; return v; } void cmsFreeNamedColorList(LPcmsNAMEDCOLORLIST v) { if (v == NULL) { cmsSignalError(LCMS_ERRC_RECOVERABLE, "Couldn't free a NULL named color list"); return; } _cmsFree(v); } LCMSBOOL cmsAppendNamedColor(cmsHTRANSFORM xform, const char* Name, WORD PCS[3], WORD Colorant[MAXCHANNELS]) { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; LPcmsNAMEDCOLORLIST List; int i; if (v ->NamedColorList == NULL) return FALSE; v ->NamedColorList = GrowNamedColorList(v ->NamedColorList, v->NamedColorList ->nColors + 1); List = v ->NamedColorList; for (i=0; i < MAXCHANNELS; i++) List ->List[List ->nColors].DeviceColorant[i] = Colorant[i]; for (i=0; i < 3; i++) List ->List[List ->nColors].PCS[i] = PCS[i]; strncpy(List ->List[List ->nColors].Name, Name, MAX_PATH-1); List ->List[List ->nColors].Name[MAX_PATH-1] = 0; List ->nColors++; return TRUE; } // Returns named color count int LCMSEXPORT cmsNamedColorCount(cmsHTRANSFORM xform) { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; if (v ->NamedColorList == NULL) return 0; return v ->NamedColorList ->nColors; } LCMSBOOL LCMSEXPORT cmsNamedColorInfo(cmsHTRANSFORM xform, int nColor, char* Name, char* Prefix, char* Suffix) { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; if (v ->NamedColorList == NULL) return FALSE; if (nColor < 0 || nColor >= cmsNamedColorCount(xform)) return FALSE; if (Name) { strncpy(Name, v ->NamedColorList->List[nColor].Name, 31); Name[31] = 0; } if (Prefix) { strncpy(Prefix, v ->NamedColorList->Prefix, 31); Prefix[31] = 0; } if (Suffix) { strncpy(Suffix, v ->NamedColorList->Suffix, 31); Suffix[31] = 0; } return TRUE; } int LCMSEXPORT cmsNamedColorIndex(cmsHTRANSFORM xform, const char* Name) { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; int i, n; if (v ->NamedColorList == NULL) return -1; n = cmsNamedColorCount(xform); for (i=0; i < n; i++) { if (stricmp(Name, v ->NamedColorList->List[i].Name) == 0) return i; } return -1; } lcms-1.19/src/cmspack.c0000777000175300010010000017013111272606371014240 0ustar MartiNinguno// Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // This module handles all formats supported by lcms // --------------------------------------------------------------------------- // This macro return words stored as big endian #define CHANGE_ENDIAN(w) (WORD) ((WORD) ((w)<<8)|((w)>>8)) // These macros handles reversing (negative) #define REVERSE_FLAVOR_8(x) ((BYTE) (0xff-(x))) #define REVERSE_FLAVOR_16(x) ((WORD)(0xffff-(x))) // Supress waning about info never being used #ifdef __BORLANDC__ #pragma warn -par #endif #ifdef _MSC_VER #pragma warning(disable : 4100) #endif // -------------------------------------------------------- Unpacking routines. static LPBYTE UnrollAnyBytes(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { int nChan = T_CHANNELS(info -> InputFormat); register int i; for (i=0; i < nChan; i++) { wIn[i] = RGB_8_TO_16(*accum); accum++; } return accum + T_EXTRA(info -> InputFormat); } static LPBYTE Unroll4Bytes(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = RGB_8_TO_16(*accum); accum++; // C wIn[1] = RGB_8_TO_16(*accum); accum++; // M wIn[2] = RGB_8_TO_16(*accum); accum++; // Y wIn[3] = RGB_8_TO_16(*accum); accum++; // K return accum; } static LPBYTE Unroll4BytesReverse(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = RGB_8_TO_16(REVERSE_FLAVOR_8(*accum)); accum++; // C wIn[1] = RGB_8_TO_16(REVERSE_FLAVOR_8(*accum)); accum++; // M wIn[2] = RGB_8_TO_16(REVERSE_FLAVOR_8(*accum)); accum++; // Y wIn[3] = RGB_8_TO_16(REVERSE_FLAVOR_8(*accum)); accum++; // K return accum; } static LPBYTE Unroll4BytesSwapFirst(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = RGB_8_TO_16(*accum); accum++; // K wIn[0] = RGB_8_TO_16(*accum); accum++; // C wIn[1] = RGB_8_TO_16(*accum); accum++; // M wIn[2] = RGB_8_TO_16(*accum); accum++; // Y return accum; } // KYMC static LPBYTE Unroll4BytesSwap(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = RGB_8_TO_16(*accum); accum++; // K wIn[2] = RGB_8_TO_16(*accum); accum++; // Y wIn[1] = RGB_8_TO_16(*accum); accum++; // M wIn[0] = RGB_8_TO_16(*accum); accum++; // C return accum; } static LPBYTE Unroll4BytesSwapSwapFirst(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[2] = RGB_8_TO_16(*accum); accum++; // K wIn[1] = RGB_8_TO_16(*accum); accum++; // Y wIn[0] = RGB_8_TO_16(*accum); accum++; // M wIn[3] = RGB_8_TO_16(*accum); accum++; // C return accum; } static LPBYTE UnrollAnyWords(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { int nChan = T_CHANNELS(info -> InputFormat); register int i; for (i=0; i < nChan; i++) { wIn[i] = *(LPWORD) accum; accum += 2; } return accum + T_EXTRA(info -> InputFormat) * sizeof(WORD); } static LPBYTE Unroll4Words(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = *(LPWORD) accum; accum+= 2; // C wIn[1] = *(LPWORD) accum; accum+= 2; // M wIn[2] = *(LPWORD) accum; accum+= 2; // Y wIn[3] = *(LPWORD) accum; accum+= 2; // K return accum; } static LPBYTE Unroll4WordsReverse(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = REVERSE_FLAVOR_16(*(LPWORD) accum); accum+= 2; // C wIn[1] = REVERSE_FLAVOR_16(*(LPWORD) accum); accum+= 2; // M wIn[2] = REVERSE_FLAVOR_16(*(LPWORD) accum); accum+= 2; // Y wIn[3] = REVERSE_FLAVOR_16(*(LPWORD) accum); accum+= 2; // K return accum; } static LPBYTE Unroll4WordsSwapFirst(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = *(LPWORD) accum; accum+= 2; // K wIn[0] = *(LPWORD) accum; accum+= 2; // C wIn[1] = *(LPWORD) accum; accum+= 2; // M wIn[2] = *(LPWORD) accum; accum+= 2; // Y return accum; } // KYMC static LPBYTE Unroll4WordsSwap(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = *(LPWORD) accum; accum+= 2; // K wIn[2] = *(LPWORD) accum; accum+= 2; // Y wIn[1] = *(LPWORD) accum; accum+= 2; // M wIn[0] = *(LPWORD) accum; accum+= 2; // C return accum; } static LPBYTE Unroll4WordsSwapSwapFirst(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[2] = *(LPWORD) accum; accum+= 2; // K wIn[1] = *(LPWORD) accum; accum+= 2; // Y wIn[0] = *(LPWORD) accum; accum+= 2; // M wIn[3] = *(LPWORD) accum; accum+= 2; // C return accum; } static LPBYTE Unroll4WordsBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //C wIn[1] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //M wIn[2] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //Y wIn[3] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //K return accum; } static LPBYTE Unroll4WordsBigEndianReverse(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = REVERSE_FLAVOR_16(CHANGE_ENDIAN(*(LPWORD) accum)); accum+= 2; //C wIn[1] = REVERSE_FLAVOR_16(CHANGE_ENDIAN(*(LPWORD) accum)); accum+= 2; //M wIn[2] = REVERSE_FLAVOR_16(CHANGE_ENDIAN(*(LPWORD) accum)); accum+= 2; //Y wIn[3] = REVERSE_FLAVOR_16(CHANGE_ENDIAN(*(LPWORD) accum)); accum+= 2; //K return accum; } // KYMC static LPBYTE Unroll4WordsSwapBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //K wIn[2] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //Y wIn[1] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //M wIn[0] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; //C return accum; } static LPBYTE Unroll3Bytes(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = RGB_8_TO_16(*accum); accum++; // R wIn[1] = RGB_8_TO_16(*accum); accum++; // G wIn[2] = RGB_8_TO_16(*accum); accum++; // B return accum; } // Lab8 encoding using v2 PCS static LPBYTE Unroll3BytesLab(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = (WORD) ((*accum) << 8); accum++; wIn[1] = (WORD) ((*accum) << 8); accum++; wIn[2] = (WORD) ((*accum) << 8); accum++; return accum; } // BRG static LPBYTE Unroll3BytesSwap(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[2] = RGB_8_TO_16(*accum); accum++; // B wIn[1] = RGB_8_TO_16(*accum); accum++; // G wIn[0] = RGB_8_TO_16(*accum); accum++; // R return accum; } static LPBYTE Unroll3Words(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = *(LPWORD) accum; accum+= 2; // C R wIn[1] = *(LPWORD) accum; accum+= 2; // M G wIn[2] = *(LPWORD) accum; accum+= 2; // Y B return accum; } static LPBYTE Unroll3WordsSwap(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[2] = *(LPWORD) accum; accum+= 2; // C R wIn[1] = *(LPWORD) accum; accum+= 2; // M G wIn[0] = *(LPWORD) accum; accum+= 2; // Y B return accum; } static LPBYTE Unroll3WordsBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; wIn[1] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; wIn[2] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; return accum; } static LPBYTE Unroll3WordsSwapBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[2] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; wIn[1] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; wIn[0] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; return accum; } // Monochrome duplicates L into RGB for null-transforms static LPBYTE Unroll1Byte(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = RGB_8_TO_16(*accum); accum++; // L return accum; } static LPBYTE Unroll1ByteSkip2(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = RGB_8_TO_16(*accum); accum++; // L accum += 2; return accum; } static LPBYTE Unroll1ByteReversed(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = REVERSE_FLAVOR_16(RGB_8_TO_16(*accum)); accum++; // L return accum; } static LPBYTE Unroll1Word(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = *(LPWORD) accum; accum+= 2; // L return accum; } static LPBYTE Unroll1WordReversed(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = REVERSE_FLAVOR_16(*(LPWORD) accum); accum+= 2; return accum; } static LPBYTE Unroll1WordBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; return accum; } static LPBYTE Unroll1WordSkip3(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = *(LPWORD) accum; accum += 8; return accum; } // Monochrome + alpha. Alpha is lost static LPBYTE Unroll2Byte(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = RGB_8_TO_16(*accum); accum++; // L wIn[3] = RGB_8_TO_16(*accum); accum++; // alpha return accum; } static LPBYTE Unroll2ByteSwapFirst(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = RGB_8_TO_16(*accum); accum++; // alpha wIn[0] = wIn[1] = wIn[2] = RGB_8_TO_16(*accum); accum++; // L return accum; } static LPBYTE Unroll2Word(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = *(LPWORD) accum; accum+= 2; // L wIn[3] = *(LPWORD) accum; accum += 2; // alpha return accum; } static LPBYTE Unroll2WordSwapFirst(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[3] = *(LPWORD) accum; accum += 2; // alpha wIn[0] = wIn[1] = wIn[2] = *(LPWORD) accum; accum+= 2; // L return accum; } static LPBYTE Unroll2WordBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { wIn[0] = wIn[1] = wIn[2] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; wIn[3] = CHANGE_ENDIAN(*(LPWORD) accum); accum+= 2; return accum; } static LPBYTE UnrollPlanarBytes(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { int nChan = T_CHANNELS(info -> InputFormat); register int i; LPBYTE Init = accum; for (i=0; i < nChan; i++) { wIn[i] = RGB_8_TO_16(*accum); accum += info -> StrideIn; } return (Init + 1); } static LPBYTE UnrollPlanarWords(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { int nChan = T_CHANNELS(info -> InputFormat); register int i; LPBYTE Init = accum; for (i=0; i < nChan; i++) { wIn[i] = *(LPWORD) accum; accum += (info -> StrideIn * sizeof(WORD)); } return (Init + sizeof(WORD)); } static LPBYTE UnrollPlanarWordsBigEndian(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { int nChan = T_CHANNELS(info -> InputFormat); register int i; LPBYTE Init = accum; for (i=0; i < nChan; i++) { wIn[i] = CHANGE_ENDIAN(*(LPWORD) accum); accum += (info -> StrideIn * sizeof(WORD)); } return (Init + sizeof(WORD)); } // floating point static LPBYTE UnrollLabDouble(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { if (T_PLANAR(info -> InputFormat)) { double* Pt = (double*) accum; cmsCIELab Lab; Lab.L = Pt[0]; Lab.a = Pt[info->StrideIn]; Lab.b = Pt[info->StrideIn*2]; if (info ->lInputV4Lab) cmsFloat2LabEncoded4(wIn, &Lab); else cmsFloat2LabEncoded(wIn, &Lab); return accum + sizeof(double); } else { if (info ->lInputV4Lab) cmsFloat2LabEncoded4(wIn, (LPcmsCIELab) accum); else cmsFloat2LabEncoded(wIn, (LPcmsCIELab) accum); accum += sizeof(cmsCIELab); return accum; } } static LPBYTE UnrollXYZDouble(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { if (T_PLANAR(info -> InputFormat)) { double* Pt = (double*) accum; cmsCIEXYZ XYZ; XYZ.X = Pt[0]; XYZ.Y = Pt[info->StrideIn]; XYZ.Z = Pt[info->StrideIn*2]; cmsFloat2XYZEncoded(wIn, &XYZ); return accum + sizeof(double); } else { cmsFloat2XYZEncoded(wIn, (LPcmsCIEXYZ) accum); accum += sizeof(cmsCIEXYZ); return accum; } } // Inks does come in percentage static LPBYTE UnrollInkDouble(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { double* Inks = (double*) accum; int nChan = T_CHANNELS(info -> InputFormat); int Planar = T_PLANAR(info -> InputFormat); int i; double v; for (i=0; i < nChan; i++) { if (Planar) v = Inks[i * info ->StrideIn]; else v = Inks[i]; v = floor(v * 655.35 + 0.5); if (v > 65535.0) v = 65535.0; if (v < 0) v = 0; wIn[i] = (WORD) v; } if (T_PLANAR(info -> InputFormat)) return accum + sizeof(double); else return accum + (nChan + T_EXTRA(info ->InputFormat)) * sizeof(double); } // Remaining cases are between 0..1.0 static LPBYTE UnrollDouble(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { double* Inks = (double*) accum; int nChan = T_CHANNELS(info -> InputFormat); int Planar = T_PLANAR(info -> InputFormat); int i; double v; for (i=0; i < nChan; i++) { if (Planar) v = Inks[i * info ->StrideIn]; else v = Inks[i]; v = floor(v * 65535.0 + 0.5); if (v > 65535.0) v = 65535.0; if (v < 0) v = 0; wIn[i] = (WORD) v; } if (T_PLANAR(info -> InputFormat)) return accum + sizeof(double); else return accum + (nChan + T_EXTRA(info ->InputFormat)) * sizeof(double); } static LPBYTE UnrollDouble1Chan(register _LPcmsTRANSFORM info, register WORD wIn[], register LPBYTE accum) { double* Inks = (double*) accum; double v; v = floor(Inks[0] * 65535.0 + 0.5); if (v > 65535.0) v = 65535.0; if (v < 0) v = 0; wIn[0] = wIn[1] = wIn[2] = (WORD) v; return accum + sizeof(double); } // ----------------------------------------------------------- Packing routines // Generic N-bytes plus dither 16-to-8 conversion. Currently is just a quick hack static int err[MAXCHANNELS]; static LPBYTE PackNBytesDither(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; unsigned int n, pe, pf; for (i=0; i < nChan; i++) { n = wOut[i] + err[i]; // Value pe = (n / 257); // Whole part pf = (n % 257); // Fractional part err[i] = pf; // Store it for next pixel *output++ = (BYTE) pe; } return output + T_EXTRA(info ->OutputFormat); } static LPBYTE PackNBytesSwapDither(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; unsigned int n, pe, pf; for (i=nChan-1; i >= 0; --i) { n = wOut[i] + err[i]; // Value pe = (n / 257); // Whole part pf = (n % 257); // Fractional part err[i] = pf; // Store it for next pixel *output++ = (BYTE) pe; } return output + T_EXTRA(info ->OutputFormat); } // Generic chunky for byte static LPBYTE PackNBytes(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; for (i=0; i < nChan; i++) *output++ = RGB_16_TO_8(wOut[i]); return output + T_EXTRA(info ->OutputFormat); } // Chunky reversed order bytes static LPBYTE PackNBytesSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; for (i=nChan-1; i >= 0; --i) *output++ = RGB_16_TO_8(wOut[i]); return output + T_EXTRA(info ->OutputFormat); } static LPBYTE PackNWords(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; for (i=0; i < nChan; i++) { *(LPWORD) output = wOut[i]; output += sizeof(WORD); } return output + T_EXTRA(info ->OutputFormat) * sizeof(WORD); } static LPBYTE PackNWordsSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; for (i=nChan-1; i >= 0; --i) { *(LPWORD) output = wOut[i]; output += sizeof(WORD); } return output + T_EXTRA(info ->OutputFormat) * sizeof(WORD); } static LPBYTE PackNWordsBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; for (i=0; i < nChan; i++) { *(LPWORD) output = CHANGE_ENDIAN(wOut[i]); output += sizeof(WORD); } return output + T_EXTRA(info ->OutputFormat) * sizeof(WORD); } static LPBYTE PackNWordsSwapBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; for (i=nChan-1; i >= 0; --i) { *(LPWORD) output = CHANGE_ENDIAN(wOut[i]); output += sizeof(WORD); } return output + T_EXTRA(info ->OutputFormat) * sizeof(WORD); } static LPBYTE PackPlanarBytes(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; LPBYTE Init = output; for (i=0; i < nChan; i++) { *(LPBYTE) output = RGB_16_TO_8(wOut[i]); output += info -> StrideOut; } return (Init + 1); } static LPBYTE PackPlanarWords(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { int nChan = T_CHANNELS(info -> OutputFormat); register int i; LPBYTE Init = output; for (i=0; i < nChan; i++) { *(LPWORD) output = wOut[i]; output += (info -> StrideOut * sizeof(WORD)); } return (Init + 2); } // CMYKcm (unrolled for speed) static LPBYTE Pack6Bytes(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[3]); *output++ = RGB_16_TO_8(wOut[4]); *output++ = RGB_16_TO_8(wOut[5]); return output; } // KCMYcm static LPBYTE Pack6BytesSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[3]); *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[4]); *output++ = RGB_16_TO_8(wOut[5]); return output; } // CMYKcm static LPBYTE Pack6Words(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[0]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[3]; output+= 2; *(LPWORD) output = wOut[4]; output+= 2; *(LPWORD) output = wOut[5]; output+= 2; return output; } // KCMYcm static LPBYTE Pack6WordsSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[3]; output+= 2; *(LPWORD) output = wOut[0]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[4]; output+= 2; *(LPWORD) output = wOut[5]; output+= 2; return output; } // CMYKcm static LPBYTE Pack6WordsBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[3]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[4]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[5]); output+= 2; return output; } // KCMYcm static LPBYTE Pack6WordsSwapBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[3]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[4]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[5]); output+= 2; return output; } static LPBYTE Pack4Bytes(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[3]); return output; } static LPBYTE Pack4BytesReverse(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = REVERSE_FLAVOR_8(RGB_16_TO_8(wOut[0])); *output++ = REVERSE_FLAVOR_8(RGB_16_TO_8(wOut[1])); *output++ = REVERSE_FLAVOR_8(RGB_16_TO_8(wOut[2])); *output++ = REVERSE_FLAVOR_8(RGB_16_TO_8(wOut[3])); return output; } static LPBYTE Pack4BytesSwapFirst(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[3]); *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); return output; } // ABGR static LPBYTE Pack4BytesSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[3]); *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[0]); return output; } static LPBYTE Pack4BytesSwapSwapFirst(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[3]); return output; } static LPBYTE Pack4Words(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[0]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[3]; output+= 2; return output; } static LPBYTE Pack4WordsReverse(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = REVERSE_FLAVOR_16(wOut[0]); output+= 2; *(LPWORD) output = REVERSE_FLAVOR_16(wOut[1]); output+= 2; *(LPWORD) output = REVERSE_FLAVOR_16(wOut[2]); output+= 2; *(LPWORD) output = REVERSE_FLAVOR_16(wOut[3]); output+= 2; return output; } // ABGR static LPBYTE Pack4WordsSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[3]; output+= 2; *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[0]; output+= 2; return output; } // CMYK static LPBYTE Pack4WordsBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[3]); output+= 2; return output; } static LPBYTE Pack4WordsBigEndianReverse(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(REVERSE_FLAVOR_16(wOut[0])); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(REVERSE_FLAVOR_16(wOut[1])); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(REVERSE_FLAVOR_16(wOut[2])); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(REVERSE_FLAVOR_16(wOut[3])); output+= 2; return output; } // KYMC static LPBYTE Pack4WordsSwapBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[3]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; return output; } static LPBYTE Pack3Bytes(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); return output; } static LPBYTE Pack3BytesLab(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = (BYTE) (wOut[0] >> 8); *output++ = (BYTE) (wOut[1] >> 8); *output++ = (BYTE) (wOut[2] >> 8); return output; } static LPBYTE Pack3BytesSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[0]); return output; } static LPBYTE Pack3Words(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[0]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[2]; output+= 2; return output; } static LPBYTE Pack3WordsSwap(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[0]; output+= 2; return output; } static LPBYTE Pack3WordsBigEndian(register _LPcmsTRANSFORM info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; return output; } static LPBYTE Pack3WordsSwapBigEndian(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; return output; } static LPBYTE Pack3BytesAndSkip1(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); output++; return output; } static LPBYTE Pack3BytesAndSkip1SwapFirst(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { output++; *output++ = RGB_16_TO_8(wOut[0]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[2]); return output; } static LPBYTE Pack3BytesAndSkip1Swap(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { output++; *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[0]); return output; } static LPBYTE Pack3BytesAndSkip1SwapSwapFirst(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[0]); output++; return output; } static LPBYTE Pack3WordsAndSkip1(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[0]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[2]; output+= 2; output+= 2; return output; } static LPBYTE Pack3WordsAndSkip1Swap(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { output+= 2; *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[0]; output+= 2; return output; } static LPBYTE Pack3WordsAndSkip1SwapSwapFirst(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[2]; output+= 2; *(LPWORD) output = wOut[1]; output+= 2; *(LPWORD) output = wOut[0]; output+= 2; output+= 2; return output; } static LPBYTE Pack3WordsAndSkip1BigEndian(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; output+= 2; return output; } static LPBYTE Pack3WordsAndSkip1SwapBigEndian(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[2]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[1]); output+= 2; *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; return output; } static LPBYTE Pack1Byte(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[0]); return output; } static LPBYTE Pack1ByteAndSkip1(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *output++ = RGB_16_TO_8(wOut[0]); output++; return output; } static LPBYTE Pack1ByteAndSkip1SwapFirst(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { output++; *output++ = RGB_16_TO_8(wOut[0]); return output; } static LPBYTE Pack1Word(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[0]; output+= 2; return output; } static LPBYTE Pack1WordBigEndian(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 2; return output; } static LPBYTE Pack1WordAndSkip1(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = wOut[0]; output+= 4; return output; } static LPBYTE Pack1WordAndSkip1SwapFirst(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { output += 2; *(LPWORD) output = wOut[0]; output+= 2; return output; } static LPBYTE Pack1WordAndSkip1BigEndian(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { *(LPWORD) output = CHANGE_ENDIAN(wOut[0]); output+= 4; return output; } // Unencoded Float values -- don't try optimize speed static LPBYTE PackLabDouble(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { if (T_PLANAR(Info -> OutputFormat)) { cmsCIELab Lab; double* Out = (double*) output; cmsLabEncoded2Float(&Lab, wOut); Out[0] = Lab.L; Out[Info ->StrideOut] = Lab.a; Out[Info ->StrideOut*2] = Lab.b; return output + sizeof(double); } else { if (Info ->lOutputV4Lab) cmsLabEncoded2Float4((LPcmsCIELab) output, wOut); else cmsLabEncoded2Float((LPcmsCIELab) output, wOut); return output + (sizeof(cmsCIELab) + T_EXTRA(Info ->OutputFormat) * sizeof(double)); } } static LPBYTE PackXYZDouble(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { if (T_PLANAR(Info -> OutputFormat)) { cmsCIEXYZ XYZ; double* Out = (double*) output; cmsXYZEncoded2Float(&XYZ, wOut); Out[0] = XYZ.X; Out[Info ->StrideOut] = XYZ.Y; Out[Info ->StrideOut*2] = XYZ.Z; return output + sizeof(double); } else { cmsXYZEncoded2Float((LPcmsCIEXYZ) output, wOut); return output + (sizeof(cmsCIEXYZ) + T_EXTRA(Info ->OutputFormat) * sizeof(double)); } } static LPBYTE PackInkDouble(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { double* Inks = (double*) output; int nChan = T_CHANNELS(Info -> OutputFormat); int i; if (T_PLANAR(Info -> OutputFormat)) { for (i=0; i < nChan; i++) { Inks[i*Info ->StrideOut] = wOut[i] / 655.35; } return output + sizeof(double); } else { for (i=0; i < nChan; i++) { Inks[i] = wOut[i] / 655.35; } return output + (nChan + T_EXTRA(Info ->OutputFormat)) * sizeof(double); } } static LPBYTE PackDouble(register _LPcmsTRANSFORM Info, register WORD wOut[], register LPBYTE output) { double* Inks = (double*) output; int nChan = T_CHANNELS(Info -> OutputFormat); int i; if (T_PLANAR(Info -> OutputFormat)) { for (i=0; i < nChan; i++) { Inks[i*Info ->StrideOut] = wOut[i] / 65535.0; } return output + sizeof(double); } else { for (i=0; i < nChan; i++) { Inks[i] = wOut[i] / 65535.0; } return output + (nChan + T_EXTRA(Info ->OutputFormat)) * sizeof(double); } } // choose routine from Input identifier _cmsFIXFN _cmsIdentifyInputFormat(_LPcmsTRANSFORM xform, DWORD dwInput) { _cmsFIXFN FromInput = NULL; // Check Named Color if (xform) { if (xform ->InputProfile) { if (cmsGetDeviceClass(xform ->InputProfile) == icSigNamedColorClass) { if (dwInput != TYPE_NAMED_COLOR_INDEX) { cmsSignalError(LCMS_ERRC_ABORTED, "Named color needs TYPE_NAMED_COLOR_INDEX"); return NULL; } } } } // Unencoded modes if (T_BYTES(dwInput) == 0) { switch (T_COLORSPACE(dwInput)) { case PT_Lab: FromInput = UnrollLabDouble; break; case PT_XYZ: FromInput = UnrollXYZDouble; break; // 0.0 .. 1.0 range case PT_GRAY: case PT_RGB: case PT_YCbCr: case PT_YUV: case PT_YUVK: case PT_HSV: case PT_HLS: case PT_Yxy: if (T_CHANNELS(dwInput) == 1) FromInput = UnrollDouble1Chan; else FromInput = UnrollDouble; break; // Inks (%) 0.0 .. 100.0 default: FromInput = UnrollInkDouble; break; } } else { if (T_PLANAR(dwInput)) { switch (T_BYTES(dwInput)) { case 1: FromInput = UnrollPlanarBytes; break; case 2: if (T_ENDIAN16(dwInput)) FromInput = UnrollPlanarWordsBigEndian; else FromInput = UnrollPlanarWords; break; default:; } } else { switch (T_BYTES(dwInput)) { case 1: // 1 byte per channel switch (T_CHANNELS(dwInput) + T_EXTRA(dwInput)) { case 1: if (T_FLAVOR(dwInput)) FromInput = Unroll1ByteReversed; else FromInput = Unroll1Byte; break; case 2: if (T_SWAPFIRST(dwInput)) FromInput = Unroll2ByteSwapFirst; else FromInput = Unroll2Byte; break; case 3: if (T_DOSWAP(dwInput)) FromInput = Unroll3BytesSwap; else { if (T_EXTRA(dwInput) == 2) FromInput = Unroll1ByteSkip2; else if (T_COLORSPACE(dwInput) == PT_Lab) FromInput = Unroll3BytesLab; else FromInput = Unroll3Bytes; } break; case 4: // TODO: ALab8 must be fixed to match v2 encoding if (T_DOSWAP(dwInput)) { if (T_SWAPFIRST(dwInput)) FromInput = Unroll4BytesSwapSwapFirst; else FromInput = Unroll4BytesSwap; } else { if (T_SWAPFIRST(dwInput)) FromInput = Unroll4BytesSwapFirst; else { if (T_FLAVOR(dwInput)) FromInput = Unroll4BytesReverse; else FromInput = Unroll4Bytes; } } break; case 5: case 6: case 7: case 8: if (!T_DOSWAP(dwInput) && !T_SWAPFIRST(dwInput)) FromInput = UnrollAnyBytes; break; default:; } break; case 2: // 1 word per channel switch (T_CHANNELS(dwInput) + T_EXTRA(dwInput)) { case 1: if (T_ENDIAN16(dwInput)) FromInput = Unroll1WordBigEndian; else if (T_FLAVOR(dwInput)) FromInput = Unroll1WordReversed; else FromInput = Unroll1Word; break; case 2: if (T_ENDIAN16(dwInput)) FromInput = Unroll2WordBigEndian; else { if (T_SWAPFIRST(dwInput)) FromInput = Unroll2WordSwapFirst; else FromInput = Unroll2Word; } break; case 3: if (T_DOSWAP(dwInput)) { if (T_ENDIAN16(dwInput)) FromInput = Unroll3WordsSwapBigEndian; else FromInput = Unroll3WordsSwap; } else { if (T_ENDIAN16(dwInput)) FromInput = Unroll3WordsBigEndian; else FromInput = Unroll3Words; } break; case 4: if (T_DOSWAP(dwInput)) { if (T_ENDIAN16(dwInput)) FromInput = Unroll4WordsSwapBigEndian; else { if (T_SWAPFIRST(dwInput)) FromInput = Unroll4WordsSwapSwapFirst; else FromInput = Unroll4WordsSwap; } } else { if (T_EXTRA(dwInput) == 3) FromInput = Unroll1WordSkip3; else if (T_ENDIAN16(dwInput)) { if (T_FLAVOR(dwInput)) FromInput = Unroll4WordsBigEndianReverse; else FromInput = Unroll4WordsBigEndian; } else { if (T_SWAPFIRST(dwInput)) FromInput = Unroll4WordsSwapFirst; else { if (T_FLAVOR(dwInput)) FromInput = Unroll4WordsReverse; else FromInput = Unroll4Words; } } } break; case 5: case 6: case 7: case 8: if (!T_DOSWAP(dwInput) && !T_SWAPFIRST(dwInput)) FromInput = UnrollAnyWords; break; } break; default:; } } } if (!FromInput) cmsSignalError(LCMS_ERRC_ABORTED, "Unknown input format"); return FromInput; } // choose routine from Input identifier _cmsFIXFN _cmsIdentifyOutputFormat(_LPcmsTRANSFORM xform, DWORD dwOutput) { _cmsFIXFN ToOutput = NULL; if (T_BYTES(dwOutput) == 0) { switch (T_COLORSPACE(dwOutput)) { case PT_Lab: ToOutput = PackLabDouble; break; case PT_XYZ: ToOutput = PackXYZDouble; break; // 0.0 .. 1.0 range case PT_GRAY: case PT_RGB: case PT_YCbCr: case PT_YUV: case PT_YUVK: case PT_HSV: case PT_HLS: case PT_Yxy: ToOutput = PackDouble; break; // Inks (%) 0.0 .. 100.0 default: ToOutput = PackInkDouble; break; } } else if (T_PLANAR(dwOutput)) { switch (T_BYTES(dwOutput)) { case 1: ToOutput = PackPlanarBytes; break; case 2:if (!T_ENDIAN16(dwOutput)) ToOutput = PackPlanarWords; break; default:; } } else { switch (T_BYTES(dwOutput)) { case 1: switch (T_CHANNELS(dwOutput)) { case 1: if (T_DITHER(dwOutput)) ToOutput = PackNBytesDither; else ToOutput = Pack1Byte; if (T_EXTRA(dwOutput) == 1) { if (T_SWAPFIRST(dwOutput)) ToOutput = Pack1ByteAndSkip1SwapFirst; else ToOutput = Pack1ByteAndSkip1; } break; case 3: switch (T_EXTRA(dwOutput)) { case 0: if (T_DOSWAP(dwOutput)) ToOutput = Pack3BytesSwap; else if (T_COLORSPACE(dwOutput) == PT_Lab) ToOutput = Pack3BytesLab; else { if (T_DITHER(dwOutput)) ToOutput = PackNBytesDither; else ToOutput = Pack3Bytes; } break; case 1: // TODO: ALab8 should be handled here if (T_DOSWAP(dwOutput)) { if (T_SWAPFIRST(dwOutput)) ToOutput = Pack3BytesAndSkip1SwapSwapFirst; else ToOutput = Pack3BytesAndSkip1Swap; } else { if (T_SWAPFIRST(dwOutput)) ToOutput = Pack3BytesAndSkip1SwapFirst; else ToOutput = Pack3BytesAndSkip1; } break; default:; } break; case 4: if (T_EXTRA(dwOutput) == 0) { if (T_DOSWAP(dwOutput)) { if (T_SWAPFIRST(dwOutput)) { ToOutput = Pack4BytesSwapSwapFirst; } else { if (T_DITHER(dwOutput)) { ToOutput = PackNBytesSwapDither; } else { ToOutput = Pack4BytesSwap; } } } else { if (T_SWAPFIRST(dwOutput)) ToOutput = Pack4BytesSwapFirst; else { if (T_FLAVOR(dwOutput)) ToOutput = Pack4BytesReverse; else { if (T_DITHER(dwOutput)) ToOutput = PackNBytesDither; else ToOutput = Pack4Bytes; } } } } else { if (!T_DOSWAP(dwOutput) && !T_SWAPFIRST(dwOutput)) ToOutput = PackNBytes; } break; // Hexachrome separations. case 6: if (T_EXTRA(dwOutput) == 0) { if( T_DOSWAP(dwOutput)) ToOutput = Pack6BytesSwap; else ToOutput = Pack6Bytes; } else { if (!T_DOSWAP(dwOutput) && !T_SWAPFIRST(dwOutput)) ToOutput = PackNBytes; } break; case 2: case 5: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: if ((T_EXTRA(dwOutput) == 0) && (T_SWAPFIRST(dwOutput) == 0)) { if (T_DOSWAP(dwOutput)) ToOutput = PackNBytesSwap; else { if (T_DITHER(dwOutput)) ToOutput = PackNBytesDither; else ToOutput = PackNBytes; } } break; default:; } break; case 2: switch (T_CHANNELS(dwOutput)) { case 1: if (T_ENDIAN16(dwOutput)) ToOutput = Pack1WordBigEndian; else ToOutput = Pack1Word; if (T_EXTRA(dwOutput) == 1) { if (T_ENDIAN16(dwOutput)) ToOutput = Pack1WordAndSkip1BigEndian; else { if (T_SWAPFIRST(dwOutput)) ToOutput = Pack1WordAndSkip1SwapFirst; else ToOutput = Pack1WordAndSkip1; } } break; case 3: switch (T_EXTRA(dwOutput)) { case 0: if (T_DOSWAP(dwOutput)) { if (T_ENDIAN16(dwOutput)) ToOutput = Pack3WordsSwapBigEndian; else ToOutput = Pack3WordsSwap; } else { if (T_ENDIAN16(dwOutput)) ToOutput = Pack3WordsBigEndian; else ToOutput = Pack3Words; } break; case 1: if (T_DOSWAP(dwOutput)) { if (T_ENDIAN16(dwOutput)) ToOutput = Pack3WordsAndSkip1SwapBigEndian; else { if (T_SWAPFIRST(dwOutput)) ToOutput = Pack3WordsAndSkip1SwapSwapFirst; else ToOutput = Pack3WordsAndSkip1Swap; } } else { if (T_ENDIAN16(dwOutput)) ToOutput = Pack3WordsAndSkip1BigEndian; else ToOutput = Pack3WordsAndSkip1; } default:; } break; case 4: if (T_EXTRA(dwOutput) == 0) { if (T_DOSWAP(dwOutput)) { if (T_ENDIAN16(dwOutput)) ToOutput = Pack4WordsSwapBigEndian; else ToOutput = Pack4WordsSwap; } else { if (T_ENDIAN16(dwOutput)) { if (T_FLAVOR(dwOutput)) ToOutput = Pack4WordsBigEndianReverse; else ToOutput = Pack4WordsBigEndian; } else { if (T_FLAVOR(dwOutput)) ToOutput = Pack4WordsReverse; else ToOutput = Pack4Words; } } } else { if (!T_DOSWAP(dwOutput) && !T_SWAPFIRST(dwOutput)) ToOutput = PackNWords; } break; case 6: if (T_EXTRA(dwOutput) == 0) { if (T_DOSWAP(dwOutput)) { if (T_ENDIAN16(dwOutput)) ToOutput = Pack6WordsSwapBigEndian; else ToOutput = Pack6WordsSwap; } else { if (T_ENDIAN16(dwOutput)) ToOutput = Pack6WordsBigEndian; else ToOutput = Pack6Words; } } else { if (!T_DOSWAP(dwOutput) && !T_SWAPFIRST(dwOutput)) ToOutput = PackNWords; } break; case 2: case 5: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: if ((T_EXTRA(dwOutput) == 0) && (T_SWAPFIRST(dwOutput) == 0)) { if (T_DOSWAP(dwOutput)) { if (T_ENDIAN16(dwOutput)) ToOutput = PackNWordsSwapBigEndian; else ToOutput = PackNWordsSwap; } else { if (T_ENDIAN16(dwOutput)) ToOutput = PackNWordsBigEndian; else ToOutput = PackNWords; } } break; default:; } break; default:; } } if (!ToOutput) cmsSignalError(LCMS_ERRC_ABORTED, "Unknown output format"); return ToOutput; } // User formatters for (weird) cases not already included void LCMSEXPORT cmsSetUserFormatters(cmsHTRANSFORM hTransform, DWORD dwInput, cmsFORMATTER Input, DWORD dwOutput, cmsFORMATTER Output) { _LPcmsTRANSFORM xform = (_LPcmsTRANSFORM) (LPSTR) hTransform; if (Input != NULL) { xform ->FromInput = (_cmsFIXFN) Input; xform ->InputFormat = dwInput; } if (Output != NULL) { xform ->ToOutput = (_cmsFIXFN) Output; xform ->OutputFormat = dwOutput; } } void LCMSEXPORT cmsGetUserFormatters(cmsHTRANSFORM hTransform, LPDWORD InputFormat, cmsFORMATTER* Input, LPDWORD OutputFormat, cmsFORMATTER* Output) { _LPcmsTRANSFORM xform = (_LPcmsTRANSFORM) (LPSTR) hTransform; if (Input) *Input = (cmsFORMATTER) xform ->FromInput; if (InputFormat) *InputFormat = xform -> InputFormat; if (Output) *Output = (cmsFORMATTER) xform ->ToOutput; if (OutputFormat) *OutputFormat = xform -> OutputFormat; } // Change format of yet existing transform. No colorspace checking is performed void LCMSEXPORT cmsChangeBuffersFormat(cmsHTRANSFORM hTransform, DWORD dwInputFormat, DWORD dwOutputFormat) { cmsSetUserFormatters(hTransform, dwInputFormat, (cmsFORMATTER) _cmsIdentifyInputFormat((_LPcmsTRANSFORM) hTransform, dwInputFormat), dwOutputFormat, (cmsFORMATTER) _cmsIdentifyOutputFormat((_LPcmsTRANSFORM) hTransform, dwOutputFormat)); } lcms-1.19/src/cmspcs.c0000777000175300010010000003102711272606371014107 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // inter PCS conversions XYZ <-> CIE L* a* b* #include "lcms.h" /* CIE 15:2004 CIELab is defined as: L* = 116*f(Y/Yn) - 16 0 <= L* <= 100 a* = 500*[f(X/Xn) - f(Y/Yn)] b* = 200*[f(Y/Yn) - f(Z/Zn)] and f(t) = t^(1/3) 1 >= t > (24/116)^3 (841/108)*t + (16/116) 0 <= t <= (24/116)^3 Reverse transform is: X = Xn*[a* / 500 + (L* + 16) / 116] ^ 3 if (X/Xn) > (24/116) = Xn*(a* / 500 + L* / 116) / 7.787 if (X/Xn) <= (24/116) Following ICC. PCS in Lab is coded as: 8 bit Lab PCS: L* 0..100 into a 0..ff byte. a* t + 128 range is -128.0 +127.0 b* 16 bit Lab PCS: L* 0..100 into a 0..ff00 word. a* t + 128 range is -128.0 +127.9961 b* We are always playing with 16 bits-data, so I will ignore the 8-bits encoding scheme. Interchange Space Component Actual Range Encoded Range CIE XYZ X 0 -> 1.99997 0x0000 -> 0xffff CIE XYZ Y 0 -> 1.99997 0x0000 -> 0xffff CIE XYZ Z 0 -> 1.99997 0x0000 -> 0xffff Version 2,3 ----------- CIELAB (16 bit) L* 0 -> 100.0 0x0000 -> 0xff00 CIELAB (16 bit) a* -128.0 -> +127.996 0x0000 -> 0x8000 -> 0xffff CIELAB (16 bit) b* -128.0 -> +127.996 0x0000 -> 0x8000 -> 0xffff Version 4 --------- CIELAB (16 bit) L* 0 -> 100.0 0x0000 -> 0xffff CIELAB (16 bit) a* -128.0 -> +127 0x0000 -> 0x8080 -> 0xffff CIELAB (16 bit) b* -128.0 -> +127 0x0000 -> 0x8080 -> 0xffff */ // On most modern computers, D > 4 M (i.e. a division takes more than 4 // multiplications worth of time), so it is probably preferable to compute // a 24 bit result directly. // #define ITERATE 1 static float CubeRoot(float x) { float fr, r; int ex, shx; /* Argument reduction */ fr = (float) frexp(x, &ex); /* separate into mantissa and exponent */ shx = ex % 3; if (shx > 0) shx -= 3; /* compute shx such that (ex - shx) is divisible by 3 */ ex = (ex - shx) / 3; /* exponent of cube root */ fr = (float) ldexp(fr, shx); /* 0.125 <= fr < 1.0 */ #ifdef ITERATE /* Compute seed with a quadratic approximation */ fr = (-0.46946116F * fr + 1.072302F) * fr + 0.3812513F;/* 0.5<=fr<1 */ r = ldexp(fr, ex); /* 6 bits of precision */ /* Newton-Raphson iterations */ r = (float)(2.0/3.0) * r + (float)(1.0/3.0) * x / (r * r); /* 12 bits */ r = (float)(2.0/3.0) * r + (float)(1.0/3.0) * x / (r * r); /* 24 bits */ #else /* ITERATE */ /* Use quartic rational polynomial with error < 2^(-24) */ fr = (float) (((((45.2548339756803022511987494 * fr + 192.2798368355061050458134625) * fr + 119.1654824285581628956914143) * fr + 13.43250139086239872172837314) * fr + 0.1636161226585754240958355063) / ((((14.80884093219134573786480845 * fr + 151.9714051044435648658557668) * fr + 168.5254414101568283957668343) * fr + 33.9905941350215598754191872) * fr + 1.0)); r = (float) ldexp(fr, ex); /* 24 bits of precision */ #endif return r; } static double f(double t) { const double Limit = (24.0/116.0) * (24.0/116.0) * (24.0/116.0); if (t <= Limit) return (841.0/108.0) * t + (16.0/116.0); else return CubeRoot((float) t); } static double f_1(double t) { const double Limit = (24.0/116.0); if (t <= Limit) { double tmp; tmp = (108.0/841.0) * (t - (16.0/116.0)); if (tmp <= 0.0) return 0.0; else return tmp; } return t * t * t; } void LCMSEXPORT cmsXYZ2Lab(LPcmsCIEXYZ WhitePoint, LPcmsCIELab Lab, const cmsCIEXYZ* xyz) { double fx, fy, fz; if (xyz -> X == 0 && xyz -> Y == 0 && xyz -> Z == 0) { Lab -> L = 0; Lab -> a = 0; Lab -> b = 0; return; } if (WhitePoint == NULL) WhitePoint = cmsD50_XYZ(); fx = f(xyz->X / WhitePoint->X); fy = f(xyz->Y / WhitePoint->Y); fz = f(xyz->Z / WhitePoint->Z); Lab->L = 116.0* fy - 16.; Lab->a = 500.0*(fx - fy); Lab->b = 200.0*(fy - fz); } void cmsXYZ2LabEncoded(WORD XYZ[3], WORD Lab[3]) { Fixed32 X, Y, Z; double x, y, z, L, a, b; double fx, fy, fz; Fixed32 wL, wa, wb; X = (Fixed32) XYZ[0] << 1; Y = (Fixed32) XYZ[1] << 1; Z = (Fixed32) XYZ[2] << 1; if (X==0 && Y==0 && Z==0) { Lab[0] = 0; Lab[1] = Lab[2] = 0x8000; return; } // PCS is in D50 x = FIXED_TO_DOUBLE(X) / D50X; y = FIXED_TO_DOUBLE(Y) / D50Y; z = FIXED_TO_DOUBLE(Z) / D50Z; fx = f(x); fy = f(y); fz = f(z); L = 116.* fy - 16.; a = 500.*(fx - fy); b = 200.*(fy - fz); a += 128.; b += 128.; wL = (int) (L * 652.800 + .5); wa = (int) (a * 256.0 + .5); wb = (int) (b * 256.0 + .5); Lab[0] = Clamp_L(wL); Lab[1] = Clamp_ab(wa); Lab[2] = Clamp_ab(wb); } void LCMSEXPORT cmsLab2XYZ(LPcmsCIEXYZ WhitePoint, LPcmsCIEXYZ xyz, const cmsCIELab* Lab) { double x, y, z; if (Lab -> L <= 0) { xyz -> X = 0; xyz -> Y = 0; xyz -> Z = 0; return; } if (WhitePoint == NULL) WhitePoint = cmsD50_XYZ(); y = (Lab-> L + 16.0) / 116.0; x = y + 0.002 * Lab -> a; z = y - 0.005 * Lab -> b; xyz -> X = f_1(x) * WhitePoint -> X; xyz -> Y = f_1(y) * WhitePoint -> Y; xyz -> Z = f_1(z) * WhitePoint -> Z; } void cmsLab2XYZEncoded(WORD Lab[3], WORD XYZ[3]) { double L, a, b; double X, Y, Z, x, y, z; L = ((double) Lab[0] * 100.0) / 65280.0; if (L==0.0) { XYZ[0] = 0; XYZ[1] = 0; XYZ[2] = 0; return; } a = ((double) Lab[1] / 256.0) - 128.0; b = ((double) Lab[2] / 256.0) - 128.0; y = (L + 16.) / 116.0; x = y + 0.002 * a; z = y - 0.005 * b; X = f_1(x) * D50X; Y = f_1(y) * D50Y; Z = f_1(z) * D50Z; // Convert to 1.15 fixed format PCS XYZ[0] = _cmsClampWord((int) floor(X * 32768.0 + 0.5)); XYZ[1] = _cmsClampWord((int) floor(Y * 32768.0 + 0.5)); XYZ[2] = _cmsClampWord((int) floor(Z * 32768.0 + 0.5)); } static double L2float3(WORD v) { Fixed32 fix32; fix32 = (Fixed32) v; return (double) fix32 / 652.800; } // the a/b part static double ab2float3(WORD v) { Fixed32 fix32; fix32 = (Fixed32) v; return ((double) fix32/256.0)-128.0; } static WORD L2Fix3(double L) { return (WORD) (L * 652.800 + 0.5); } static WORD ab2Fix3(double ab) { return (WORD) ((ab + 128.0) * 256.0 + 0.5); } // ICC 4.0 -- ICC has changed PCS Lab encoding. static WORD L2Fix4(double L) { return (WORD) (L * 655.35 + 0.5); } static WORD ab2Fix4(double ab) { return (WORD) ((ab + 128.0) * 257.0 + 0.5); } static double L2float4(WORD v) { Fixed32 fix32; fix32 = (Fixed32) v; return (double) fix32 / 655.35; } // the a/b part static double ab2float4(WORD v) { Fixed32 fix32; fix32 = (Fixed32) v; return ((double) fix32/257.0)-128.0; } void LCMSEXPORT cmsLabEncoded2Float(LPcmsCIELab Lab, const WORD wLab[3]) { Lab->L = L2float3(wLab[0]); Lab->a = ab2float3(wLab[1]); Lab->b = ab2float3(wLab[2]); } void LCMSEXPORT cmsLabEncoded2Float4(LPcmsCIELab Lab, const WORD wLab[3]) { Lab->L = L2float4(wLab[0]); Lab->a = ab2float4(wLab[1]); Lab->b = ab2float4(wLab[2]); } static double Clamp_L_double(double L) { if (L < 0) L = 0; if (L > 100) L = 100; return L; } static double Clamp_ab_double(double ab) { if (ab < -128) ab = -128.0; if (ab > +127.9961) ab = +127.9961; return ab; } void LCMSEXPORT cmsFloat2LabEncoded(WORD wLab[3], const cmsCIELab* fLab) { cmsCIELab Lab; Lab.L = Clamp_L_double(fLab ->L); Lab.a = Clamp_ab_double(fLab ->a); Lab.b = Clamp_ab_double(fLab ->b); wLab[0] = L2Fix3(Lab.L); wLab[1] = ab2Fix3(Lab.a); wLab[2] = ab2Fix3(Lab.b); } void LCMSEXPORT cmsFloat2LabEncoded4(WORD wLab[3], const cmsCIELab* fLab) { cmsCIELab Lab; Lab.L = fLab ->L; Lab.a = fLab ->a; Lab.b = fLab ->b; if (Lab.L < 0) Lab.L = 0; if (Lab.L > 100.) Lab.L = 100.; if (Lab.a < -128.) Lab.a = -128.; if (Lab.a > 127.) Lab.a = 127.; if (Lab.b < -128.) Lab.b = -128.; if (Lab.b > 127.) Lab.b = 127.; wLab[0] = L2Fix4(Lab.L); wLab[1] = ab2Fix4(Lab.a); wLab[2] = ab2Fix4(Lab.b); } void LCMSEXPORT cmsLab2LCh(LPcmsCIELCh LCh, const cmsCIELab* Lab) { double a, b; LCh -> L = Clamp_L_double(Lab -> L); a = Clamp_ab_double(Lab -> a); b = Clamp_ab_double(Lab -> b); LCh -> C = pow(a * a + b * b, 0.5); if (a == 0 && b == 0) LCh -> h = 0; else LCh -> h = atan2(b, a); LCh -> h *= (180. / M_PI); while (LCh -> h >= 360.) // Not necessary, but included as a check. LCh -> h -= 360.; while (LCh -> h < 0) LCh -> h += 360.; } void LCMSEXPORT cmsLCh2Lab(LPcmsCIELab Lab, const cmsCIELCh* LCh) { double h = (LCh -> h * M_PI) / 180.0; Lab -> L = Clamp_L_double(LCh -> L); Lab -> a = Clamp_ab_double(LCh -> C * cos(h)); Lab -> b = Clamp_ab_double(LCh -> C * sin(h)); } // In XYZ All 3 components are encoded using 1.15 fixed point static WORD XYZ2Fix(double d) { return (WORD) floor(d * 32768.0 + 0.5); } void LCMSEXPORT cmsFloat2XYZEncoded(WORD XYZ[3], const cmsCIEXYZ* fXYZ) { cmsCIEXYZ xyz; xyz.X = fXYZ -> X; xyz.Y = fXYZ -> Y; xyz.Z = fXYZ -> Z; // Clamp to encodeable values. // 1.99997 is reserved as out-of-gamut marker if (xyz.Y <= 0) { xyz.X = 0; xyz.Y = 0; xyz.Z = 0; } if (xyz.X > 1.99996) xyz.X = 1.99996; if (xyz.X < 0) xyz.X = 0; if (xyz.Y > 1.99996) xyz.Y = 1.99996; if (xyz.Y < 0) xyz.Y = 0; if (xyz.Z > 1.99996) xyz.Z = 1.99996; if (xyz.Z < 0) xyz.Z = 0; XYZ[0] = XYZ2Fix(xyz.X); XYZ[1] = XYZ2Fix(xyz.Y); XYZ[2] = XYZ2Fix(xyz.Z); } // To convert from Fixed 1.15 point to double static double XYZ2float(WORD v) { Fixed32 fix32; // From 1.15 to 15.16 fix32 = v << 1; // From fixed 15.16 to double return FIXED_TO_DOUBLE(fix32); } void LCMSEXPORT cmsXYZEncoded2Float(LPcmsCIEXYZ fXYZ, const WORD XYZ[3]) { fXYZ -> X = XYZ2float(XYZ[0]); fXYZ -> Y = XYZ2float(XYZ[1]); fXYZ -> Z = XYZ2float(XYZ[2]); } lcms-1.19/src/cmsps2.c0000777000175300010010000013650511272606371014035 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // Postscript level 2 operators #include "lcms.h" #include #include // PostScript ColorRenderingDictionary and ColorSpaceArray LCMSAPI DWORD LCMSEXPORT cmsGetPostScriptCSA(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); LCMSAPI DWORD LCMSEXPORT cmsGetPostScriptCRD(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen); LCMSAPI DWORD LCMSEXPORT cmsGetPostScriptCRDEx(cmsHPROFILE hProfile, int Intent, DWORD dwFlags, LPVOID Buffer, DWORD dwBufferLen); // -------------------------------------------------------------------- Implementation #define MAXPSCOLS 60 // Columns on tables /* Implementation -------------- PostScript does use XYZ as its internal PCS. But since PostScript interpolation tables are limited to 8 bits, I use Lab as a way to improve the accuracy, favoring perceptual results. So, for the creation of each CRD, CSA the profiles are converted to Lab via a device link between profile -> Lab or Lab -> profile. The PS code necessary to convert Lab <-> XYZ is also included. Color Space Arrays (CSA) ================================================================================== In order to obtain precission, code chooses between three ways to implement the device -> XYZ transform. These cases identifies monochrome profiles (often implemented as a set of curves), matrix-shaper and LUT-based. Monochrome ----------- This is implemented as /CIEBasedA CSA. The prelinearization curve is placed into /DecodeA section, and matrix equals to D50. Since here is no interpolation tables, I do the conversion directly to XYZ NOTE: CLUT-based monochrome profiles are NOT supported. So, cmsFLAGS_MATRIXINPUT flag is forced on such profiles. [ /CIEBasedA << /DecodeA { transfer function } bind /MatrixA [D50] /RangeLMN [ 0.0 D50X 0.0 D50Y 0.0 D50Z ] /WhitePoint [D50] /BlackPoint [BP] /RenderingIntent (intent) >> ] On simpler profiles, the PCS is already XYZ, so no conversion is required. Matrix-shaper based ------------------- This is implemented both with /CIEBasedABC or /CIEBasedDEF on dependig of profile implementation. Since here is no interpolation tables, I do the conversion directly to XYZ [ /CIEBasedABC << /DecodeABC [ {transfer1} {transfer2} {transfer3} ] /MatrixABC [Matrix] /RangeLMN [ 0.0 D50X 0.0 D50Y 0.0 D50Z ] /DecodeLMN [ { / 2} dup dup ] /WhitePoint [D50] /BlackPoint [BP] /RenderingIntent (intent) >> ] CLUT based ---------- Lab is used in such cases. [ /CIEBasedDEF << /DecodeDEF [ ] /Table [ p p p [<...>]] /RangeABC [ 0 1 0 1 0 1] /DecodeABC[ ] /RangeLMN [ -0.236 1.254 0 1 -0.635 1.640 ] % -128/500 1+127/500 0 1 -127/200 1+128/200 /MatrixABC [ 1 1 1 1 0 0 0 0 -1] /WhitePoint [D50] /BlackPoint [BP] /RenderingIntent (intent) ] Color Rendering Dictionaries (CRD) ================================== These are always implemented as CLUT, and always are using Lab. Since CRD are expected to be used as resources, the code adds the definition as well. << /ColorRenderingType 1 /WhitePoint [ D50 ] /BlackPoint [BP] /MatrixPQR [ Bradford ] /RangePQR [-0.125 1.375 -0.125 1.375 -0.125 1.375 ] /TransformPQR [ {4 index 3 get div 2 index 3 get mul exch pop exch pop exch pop exch pop } bind {4 index 4 get div 2 index 4 get mul exch pop exch pop exch pop exch pop } bind {4 index 5 get div 2 index 5 get mul exch pop exch pop exch pop exch pop } bind ] /MatrixABC <...> /EncodeABC <...> /RangeABC <.. used for XYZ -> Lab> /EncodeLMN /RenderTable [ p p p [<...>]] /RenderingIntent (Perceptual) >> /Current exch /ColorRendering defineresource pop The following stages are used to convert from XYZ to Lab -------------------------------------------------------- Input is given at LMN stage on X, Y, Z Encode LMN gives us f(X/Xn), f(Y/Yn), f(Z/Zn) /EncodeLMN [ { 0.964200 div dup 0.008856 le {7.787 mul 16 116 div add}{1 3 div exp} ifelse } bind { 1.000000 div dup 0.008856 le {7.787 mul 16 116 div add}{1 3 div exp} ifelse } bind { 0.824900 div dup 0.008856 le {7.787 mul 16 116 div add}{1 3 div exp} ifelse } bind ] MatrixABC is used to compute f(Y/Yn), f(X/Xn) - f(Y/Yn), f(Y/Yn) - f(Z/Zn) | 0 1 0| | 1 -1 0| | 0 1 -1| /MatrixABC [ 0 1 0 1 -1 1 0 0 -1 ] EncodeABC finally gives Lab values. /EncodeABC [ { 116 mul 16 sub 100 div } bind { 500 mul 128 add 255 div } bind { 200 mul 128 add 255 div } bind ] The following stages are used to convert Lab to XYZ ---------------------------------------------------- /RangeABC [ 0 1 0 1 0 1] /DecodeABC [ { 100 mul 16 add 116 div } bind { 255 mul 128 sub 500 div } bind { 255 mul 128 sub 200 div } bind ] /MatrixABC [ 1 1 1 1 0 0 0 0 -1] /DecodeLMN [ {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 0.964200 mul} bind {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse } bind {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 0.824900 mul} bind ] */ /* PostScript algorithms discussion. ========================================================================================================= 1D interpolation algorithm 1D interpolation (float) ------------------------ val2 = Domain * Value; cell0 = (int) floor(val2); cell1 = (int) ceil(val2); rest = val2 - cell0; y0 = LutTable[cell0] ; y1 = LutTable[cell1] ; y = y0 + (y1 - y0) * rest; PostScript code Stack ================================================ { % v [array] % v tab dup % v tab tab length 1 sub % v tab dom 3 -1 roll % tab dom v mul % tab val2 dup % tab val2 val2 dup % tab val2 val2 val2 floor cvi % tab val2 val2 cell0 exch % tab val2 cell0 val2 ceiling cvi % tab val2 cell0 cell1 3 index % tab val2 cell0 cell1 tab exch % tab val2 cell0 tab cell1 get % tab val2 cell0 y1 4 -1 roll % val2 cell0 y1 tab 3 -1 roll % val2 y1 tab cell0 get % val2 y1 y0 dup % val2 y1 y0 y0 3 1 roll % val2 y0 y1 y0 sub % val2 y0 (y1-y0) 3 -1 roll % y0 (y1-y0) val2 dup % y0 (y1-y0) val2 val2 floor cvi % y0 (y1-y0) val2 floor(val2) sub % y0 (y1-y0) rest mul % y0 t1 add % y 65535 div % result } bind */ static icTagSignature Device2PCSTab[] = {icSigAToB0Tag, // Perceptual icSigAToB1Tag, // Relative colorimetric icSigAToB2Tag, // Saturation icSigAToB1Tag }; // Absolute colorimetric // (Relative/WhitePoint) // --------------------------------------------------------------- Memory Stream // // This struct holds the memory block currently being write // typedef struct { LPBYTE Block; LPBYTE Ptr; DWORD dwMax; DWORD dwUsed; int MaxCols; int Col; int HasError; } MEMSTREAM, FAR* LPMEMSTREAM; typedef struct { LPLUT Lut; LPMEMSTREAM m; int FirstComponent; int SecondComponent; int bps; const char* PreMaj; const char* PostMaj; const char* PreMin; const char* PostMin; int lIsInput; // Handle L* encoding int FixWhite; // Force mapping of pure white icColorSpaceSignature ColorSpace; // ColorSpace of profile } SAMPLERCARGO, FAR* LPSAMPLERCARGO; // Creates a ready to use memory stream static LPMEMSTREAM CreateMemStream(LPBYTE Buffer, DWORD dwMax, int MaxCols) { LPMEMSTREAM m = (LPMEMSTREAM) _cmsMalloc(sizeof(MEMSTREAM)); if (m == NULL) return NULL; ZeroMemory(m, sizeof(MEMSTREAM)); m -> Block = m -> Ptr = Buffer; m -> dwMax = dwMax; m -> dwUsed = 0; m -> MaxCols = MaxCols; m -> Col = 0; m -> HasError = 0; return m; } // Convert to byte static BYTE Word2Byte(WORD w) { return (BYTE) floor((double) w / 257.0 + 0.5); } // Convert to byte (using ICC2 notation) static BYTE L2Byte(WORD w) { int ww = w + 0x0080; if (ww > 0xFFFF) return 0xFF; return (BYTE) ((WORD) (ww >> 8) & 0xFF); } // Write a raw, uncooked byte. Check for space static void WriteRawByte(LPMEMSTREAM m, BYTE b) { if (m -> dwUsed + 1 > m -> dwMax) { m -> HasError = 1; } if (!m ->HasError && m ->Block) { *m ->Ptr++ = b; } m -> dwUsed++; } // Write a cooked byte static void WriteByte(LPMEMSTREAM m, BYTE b) { static const BYTE Hex[] = "0123456789ABCDEF"; BYTE c; c = Hex[(b >> 4) & 0x0f]; WriteRawByte(m, c); c = Hex[b & 0x0f]; WriteRawByte(m, c); m -> Col += 2; if (m -> Col > m -> MaxCols) { WriteRawByte(m, '\n'); m -> Col = 0; } } // Does write a formatted string. Guaranteed to be 2048 bytes at most. static void Writef(LPMEMSTREAM m, const char *frm, ...) { va_list args; LPBYTE pt; BYTE Buffer[2048]; va_start(args, frm); vsnprintf((char*) Buffer, 2048, frm, args); for (pt = Buffer; *pt; pt++) { WriteRawByte(m, *pt); } va_end(args); } // ----------------------------------------------------------------- PostScript generation // Removes offending Carriage returns static char* RemoveCR(const char* txt) { static char Buffer[2048]; char* pt; strncpy(Buffer, txt, 2047); Buffer[2047] = 0; for (pt = Buffer; *pt; pt++) if (*pt == '\n' || *pt == '\r') *pt = ' '; return Buffer; } static void EmitHeader(LPMEMSTREAM m, const char* Title, cmsHPROFILE hProfile) { time_t timer; time(&timer); Writef(m, "%%!PS-Adobe-3.0\n"); Writef(m, "%%\n"); Writef(m, "%% %s\n", Title); Writef(m, "%% Source: %s\n", RemoveCR(cmsTakeProductName(hProfile))); Writef(m, "%% Description: %s\n", RemoveCR(cmsTakeProductDesc(hProfile))); Writef(m, "%% Created: %s", ctime(&timer)); // ctime appends a \n!!! Writef(m, "%%\n"); Writef(m, "%%%%BeginResource\n"); } // Emits White & Black point. White point is always D50, Black point is the device // Black point adapted to D50. static void EmitWhiteBlackD50(LPMEMSTREAM m, LPcmsCIEXYZ BlackPoint) { Writef(m, "/BlackPoint [%f %f %f]\n", BlackPoint -> X, BlackPoint -> Y, BlackPoint -> Z); Writef(m, "/WhitePoint [%f %f %f]\n", cmsD50_XYZ()->X, cmsD50_XYZ()->Y, cmsD50_XYZ()->Z); } static void EmitRangeCheck(LPMEMSTREAM m) { Writef(m, "dup 0.0 lt { pop 0.0 } if " "dup 1.0 gt { pop 1.0 } if "); } // Does write the intent static void EmitIntent(LPMEMSTREAM m, int RenderingIntent) { const char *intent; switch (RenderingIntent) { case INTENT_PERCEPTUAL: intent = "Perceptual"; break; case INTENT_RELATIVE_COLORIMETRIC: intent = "RelativeColorimetric"; break; case INTENT_ABSOLUTE_COLORIMETRIC: intent = "AbsoluteColorimetric"; break; case INTENT_SATURATION: intent = "Saturation"; break; default: intent = "Undefined"; break; } Writef(m, "/RenderingIntent (%s)\n", intent ); } // // Convert L* to Y // // Y = Yn*[ (L* + 16) / 116] ^ 3 if (L*) >= 6 / 29 // = Yn*( L* / 116) / 7.787 if (L*) < 6 / 29 // /* static void EmitL2Y(LPMEMSTREAM m) { Writef(m, "{ " "100 mul 16 add 116 div " // (L * 100 + 16) / 116 "dup 6 29 div ge " // >= 6 / 29 ? "{ dup dup mul mul } " // yes, ^3 and done "{ 4 29 div sub 108 841 div mul } " // no, slope limiting "ifelse } bind "); } */ // Lab -> XYZ, see the discussion above static void EmitLab2XYZ(LPMEMSTREAM m) { Writef(m, "/RangeABC [ 0 1 0 1 0 1]\n"); Writef(m, "/DecodeABC [\n"); Writef(m, "{100 mul 16 add 116 div } bind\n"); Writef(m, "{255 mul 128 sub 500 div } bind\n"); Writef(m, "{255 mul 128 sub 200 div } bind\n"); Writef(m, "]\n"); Writef(m, "/MatrixABC [ 1 1 1 1 0 0 0 0 -1]\n"); Writef(m, "/RangeLMN [ -0.236 1.254 0 1 -0.635 1.640 ]\n"); Writef(m, "/DecodeLMN [\n"); Writef(m, "{dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 0.964200 mul} bind\n"); Writef(m, "{dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse } bind\n"); Writef(m, "{dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 0.824900 mul} bind\n"); Writef(m, "]\n"); } // Outputs a table of words. It does use 16 bits static void Emit1Gamma(LPMEMSTREAM m, LPWORD Table, int nEntries) { int i; double gamma; if (nEntries <= 0) return; // Empty table // Suppress whole if identity if (cmsIsLinear(Table, nEntries)) { Writef(m, "{} "); return; } // Check if is really an exponential. If so, emit "exp" gamma = cmsEstimateGammaEx(Table, nEntries, 0.001); if (gamma > 0) { Writef(m, "{ %g exp } bind ", gamma); return; } Writef(m, "{ "); // Bounds check EmitRangeCheck(m); // Emit intepolation code // PostScript code Stack // =============== ======================== // v Writef(m, " ["); // TODO: Check for endianess!!! for (i=0; i < nEntries; i++) { Writef(m, "%d ", Table[i]); } Writef(m, "] "); // v tab Writef(m, "dup "); // v tab tab Writef(m, "length 1 sub "); // v tab dom Writef(m, "3 -1 roll "); // tab dom v Writef(m, "mul "); // tab val2 Writef(m, "dup "); // tab val2 val2 Writef(m, "dup "); // tab val2 val2 val2 Writef(m, "floor cvi "); // tab val2 val2 cell0 Writef(m, "exch "); // tab val2 cell0 val2 Writef(m, "ceiling cvi "); // tab val2 cell0 cell1 Writef(m, "3 index "); // tab val2 cell0 cell1 tab Writef(m, "exch "); // tab val2 cell0 tab cell1 Writef(m, "get "); // tab val2 cell0 y1 Writef(m, "4 -1 roll "); // val2 cell0 y1 tab Writef(m, "3 -1 roll "); // val2 y1 tab cell0 Writef(m, "get "); // val2 y1 y0 Writef(m, "dup "); // val2 y1 y0 y0 Writef(m, "3 1 roll "); // val2 y0 y1 y0 Writef(m, "sub "); // val2 y0 (y1-y0) Writef(m, "3 -1 roll "); // y0 (y1-y0) val2 Writef(m, "dup "); // y0 (y1-y0) val2 val2 Writef(m, "floor cvi "); // y0 (y1-y0) val2 floor(val2) Writef(m, "sub "); // y0 (y1-y0) rest Writef(m, "mul "); // y0 t1 Writef(m, "add "); // y Writef(m, "65535 div "); // result Writef(m, " } bind "); } // Compare gamma table static LCMSBOOL GammaTableEquals(LPWORD g1, LPWORD g2, int nEntries) { return memcmp(g1, g2, nEntries* sizeof(WORD)) == 0; } // Does write a set of gamma curves static void EmitNGamma(LPMEMSTREAM m, int n, LPWORD g[], int nEntries) { int i; for( i=0; i < n; i++ ) { if (i > 0 && GammaTableEquals(g[i-1], g[i], nEntries)) { Writef(m, "dup "); } else { Emit1Gamma(m, g[i], nEntries); } } } // Check whatever a profile has CLUT tables (only on input) static LCMSBOOL IsLUTbased(cmsHPROFILE hProfile, int Intent) { icTagSignature Tag; // Check if adequate tag is present Tag = Device2PCSTab[Intent]; if (cmsIsTag(hProfile, Tag)) return 1; // If not present, revert to default (perceptual) Tag = icSigAToB0Tag; // If no tag present, try matrix-shaper return cmsIsTag(hProfile, Tag); } // Following code dumps a LUT onto memory stream // This is the sampler. Intended to work in SAMPLER_INSPECT mode, // that is, the callback will be called for each knot with // // In[] The grid location coordinates, normalized to 0..ffff // Out[] The LUT values, normalized to 0..ffff // // Returning a value other than 0 does terminate the sampling process // // Each row contains LUT values for all but first component. So, I // detect row changing by keeping a copy of last value of first // component. -1 is used to mark begining of whole block. static int OutputValueSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { LPSAMPLERCARGO sc = (LPSAMPLERCARGO) Cargo; unsigned int i; if (sc -> FixWhite) { if (In[0] == 0xFFFF) { // Only in L* = 100, ab = [-8..8] if ((In[1] >= 0x7800 && In[1] <= 0x8800) && (In[2] >= 0x7800 && In[2] <= 0x8800)) { WORD* Black; WORD* White; int nOutputs; if (!_cmsEndPointsBySpace(sc ->ColorSpace, &White, &Black, &nOutputs)) return 0; for (i=0; i < (unsigned int) nOutputs; i++) Out[i] = White[i]; } } } // Hadle the parenthesis on rows if (In[0] != sc ->FirstComponent) { if (sc ->FirstComponent != -1) { Writef(sc ->m, sc ->PostMin); sc ->SecondComponent = -1; Writef(sc ->m, sc ->PostMaj); } // Begin block sc->m->Col = 0; Writef(sc ->m, sc ->PreMaj); sc ->FirstComponent = In[0]; } if (In[1] != sc ->SecondComponent) { if (sc ->SecondComponent != -1) { Writef(sc ->m, sc ->PostMin); } Writef(sc ->m, sc ->PreMin); sc ->SecondComponent = In[1]; } // Dump table. Could be Word or byte based on // depending on bps member (16 bps mode is not currently // being used at all, but is here for future ampliations) for (i=0; i < sc -> Lut ->OutputChan; i++) { WORD wWordOut = Out[i]; if (sc ->bps == 8) { // Value as byte BYTE wByteOut; // If is input, convert from Lab2 to Lab4 (just divide by 256) if (sc ->lIsInput) { wByteOut = L2Byte(wWordOut); } else wByteOut = Word2Byte(wWordOut); WriteByte(sc -> m, wByteOut); } else { // Value as word WriteByte(sc -> m, (BYTE) (wWordOut & 0xFF)); WriteByte(sc -> m, (BYTE) ((wWordOut >> 8) & 0xFF)); } } return 1; } // Writes a LUT on memstream. Could be 8 or 16 bits based static void WriteCLUT(LPMEMSTREAM m, LPLUT Lut, int bps, const char* PreMaj, const char* PostMaj, const char* PreMin, const char* PostMin, int lIsInput, int FixWhite, icColorSpaceSignature ColorSpace) { unsigned int i; SAMPLERCARGO sc; sc.FirstComponent = -1; sc.SecondComponent = -1; sc.Lut = Lut; sc.m = m; sc.bps = bps; sc.PreMaj = PreMaj; sc.PostMaj= PostMaj; sc.PreMin = PreMin; sc.PostMin = PostMin; sc.lIsInput = lIsInput; sc.FixWhite = FixWhite; sc.ColorSpace = ColorSpace; Writef(m, "["); for (i=0; i < Lut ->InputChan; i++) Writef(m, " %d ", Lut ->cLutPoints); Writef(m, " [\n"); cmsSample3DGrid(Lut, OutputValueSampler, (LPVOID) &sc, SAMPLER_INSPECT); Writef(m, PostMin); Writef(m, PostMaj); Writef(m, "] "); } // Dumps CIEBasedA Color Space Array static int EmitCIEBasedA(LPMEMSTREAM m, LPWORD Tab, int nEntries, LPcmsCIEXYZ BlackPoint) { Writef(m, "[ /CIEBasedA\n"); Writef(m, " <<\n"); Writef(m, "/DecodeA "); Emit1Gamma(m,Tab, nEntries); Writef(m, " \n"); Writef(m, "/MatrixA [ 0.9642 1.0000 0.8249 ]\n"); Writef(m, "/RangeLMN [ 0.0 0.9642 0.0 1.0000 0.0 0.8249 ]\n"); EmitWhiteBlackD50(m, BlackPoint); EmitIntent(m, INTENT_PERCEPTUAL); Writef(m, ">>\n"); Writef(m, "]\n"); return 1; } // Dumps CIEBasedABC Color Space Array static int EmitCIEBasedABC(LPMEMSTREAM m, LPWORD L[], int nEntries, LPWMAT3 Matrix, LPcmsCIEXYZ BlackPoint) { int i; Writef(m, "[ /CIEBasedABC\n"); Writef(m, "<<\n"); Writef(m, "/DecodeABC [ "); EmitNGamma(m, 3, L, nEntries); Writef(m, "]\n"); Writef(m, "/MatrixABC [ " ); for( i=0; i < 3; i++ ) { Writef(m, "%.6f %.6f %.6f ", FIXED_TO_DOUBLE(Matrix->v[0].n[i]), FIXED_TO_DOUBLE(Matrix->v[1].n[i]), FIXED_TO_DOUBLE(Matrix->v[2].n[i])); } Writef(m, "]\n"); Writef(m, "/RangeLMN [ 0.0 0.9642 0.0 1.0000 0.0 0.8249 ]\n"); EmitWhiteBlackD50(m, BlackPoint); EmitIntent(m, INTENT_PERCEPTUAL); Writef(m, ">>\n"); Writef(m, "]\n"); return 1; } static int EmitCIEBasedDEF(LPMEMSTREAM m, LPLUT Lut, int Intent, LPcmsCIEXYZ BlackPoint) { const char* PreMaj; const char* PostMaj; const char* PreMin, *PostMin; switch (Lut ->InputChan) { case 3: Writef(m, "[ /CIEBasedDEF\n"); PreMaj ="<"; PostMaj= ">\n"; PreMin = PostMin = ""; break; case 4: Writef(m, "[ /CIEBasedDEFG\n"); PreMaj = "["; PostMaj = "]\n"; PreMin = "<"; PostMin = ">\n"; break; default: return 0; } Writef(m, "<<\n"); if (Lut ->wFlags & LUT_HASTL1) { Writef(m, "/DecodeDEF [ "); EmitNGamma(m, Lut ->InputChan, Lut ->L1, Lut ->CLut16params.nSamples); Writef(m, "]\n"); } if (Lut ->wFlags & LUT_HAS3DGRID) { Writef(m, "/Table "); WriteCLUT(m, Lut, 8, PreMaj, PostMaj, PreMin, PostMin, TRUE, FALSE, (icColorSpaceSignature) 0); Writef(m, "]\n"); } EmitLab2XYZ(m); EmitWhiteBlackD50(m, BlackPoint); EmitIntent(m, Intent); Writef(m, " >>\n"); Writef(m, "]\n"); return 1; } // Generates a curve from a gray profile static LPGAMMATABLE ExtractGray2Y(cmsHPROFILE hProfile, int Intent) { LPGAMMATABLE Out = cmsAllocGamma(256); cmsHPROFILE hXYZ = cmsCreateXYZProfile(); cmsHTRANSFORM xform = cmsCreateTransform(hProfile, TYPE_GRAY_8, hXYZ, TYPE_XYZ_DBL, Intent, cmsFLAGS_NOTPRECALC); int i; for (i=0; i < 256; i++) { BYTE Gray = (BYTE) i; cmsCIEXYZ XYZ; cmsDoTransform(xform, &Gray, &XYZ, 1); Out ->GammaTable[i] =_cmsClampWord((int) floor(XYZ.Y * 65535.0 + 0.5)); } cmsDeleteTransform(xform); cmsCloseProfile(hXYZ); return Out; } // Because PostScrip has only 8 bits in /Table, we should use // a more perceptually uniform space... I do choose Lab. static int WriteInputLUT(LPMEMSTREAM m, cmsHPROFILE hProfile, int Intent) { cmsHPROFILE hLab; cmsHTRANSFORM xform; icColorSpaceSignature ColorSpace; int nChannels; DWORD InputFormat; int rc; cmsHPROFILE Profiles[2]; cmsCIEXYZ BlackPointAdaptedToD50; // Does create a device-link based transform. // The DeviceLink is next dumped as working CSA. hLab = cmsCreateLabProfile(NULL); ColorSpace = cmsGetColorSpace(hProfile); nChannels = _cmsChannelsOf(ColorSpace); InputFormat = CHANNELS_SH(nChannels) | BYTES_SH(2); cmsDetectBlackPoint(&BlackPointAdaptedToD50, hProfile, Intent,LCMS_BPFLAGS_D50_ADAPTED); // Is a devicelink profile? if (cmsGetDeviceClass(hProfile) == icSigLinkClass) { // if devicelink output already Lab, use it directly if (cmsGetPCS(hProfile) == icSigLabData) { xform = cmsCreateTransform(hProfile, InputFormat, NULL, TYPE_Lab_DBL, Intent, 0); } else { // Nope, adjust output to Lab if possible Profiles[0] = hProfile; Profiles[1] = hLab; xform = cmsCreateMultiprofileTransform(Profiles, 2, InputFormat, TYPE_Lab_DBL, Intent, 0); } } else { // This is a normal profile xform = cmsCreateTransform(hProfile, InputFormat, hLab, TYPE_Lab_DBL, Intent, 0); } if (xform == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Cannot create transform Profile -> Lab"); return 0; } // Only 1, 3 and 4 channels are allowed switch (nChannels) { case 1: { LPGAMMATABLE Gray2Y = ExtractGray2Y(hProfile, Intent); EmitCIEBasedA(m, Gray2Y->GammaTable, Gray2Y ->nEntries, &BlackPointAdaptedToD50); cmsFreeGamma(Gray2Y); } break; case 3: case 4: { LPLUT DeviceLink; _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; if (v ->DeviceLink) rc = EmitCIEBasedDEF(m, v->DeviceLink, Intent, &BlackPointAdaptedToD50); else { DeviceLink = _cmsPrecalculateDeviceLink(xform, 0); rc = EmitCIEBasedDEF(m, DeviceLink, Intent, &BlackPointAdaptedToD50); cmsFreeLUT(DeviceLink); } } break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Only 3, 4 channels supported for CSA. This profile has %d channels.", nChannels); return 0; } cmsDeleteTransform(xform); cmsCloseProfile(hLab); return 1; } // Does create CSA based on matrix-shaper. Allowed types are gray and RGB based static int WriteInputMatrixShaper(LPMEMSTREAM m, cmsHPROFILE hProfile) { icColorSpaceSignature ColorSpace; LPMATSHAPER MatShaper; int rc; cmsCIEXYZ BlackPointAdaptedToD50; ColorSpace = cmsGetColorSpace(hProfile); MatShaper = cmsBuildInputMatrixShaper(hProfile); cmsDetectBlackPoint(&BlackPointAdaptedToD50, hProfile, INTENT_RELATIVE_COLORIMETRIC, LCMS_BPFLAGS_D50_ADAPTED); if (MatShaper == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "This profile is not suitable for input"); return 0; } if (ColorSpace == icSigGrayData) { rc = EmitCIEBasedA(m, MatShaper ->L[0], MatShaper ->p16.nSamples, &BlackPointAdaptedToD50); } else if (ColorSpace == icSigRgbData) { rc = EmitCIEBasedABC(m, MatShaper->L, MatShaper ->p16.nSamples, &MatShaper ->Matrix, &BlackPointAdaptedToD50); } else { cmsSignalError(LCMS_ERRC_ABORTED, "Profile is not suitable for CSA. Unsupported colorspace."); return 0; } cmsFreeMatShaper(MatShaper); return rc; } // Creates a PostScript color list from a named profile data. // This is a HP extension, and it works in Lab instead of XYZ static int WriteNamedColorCSA(LPMEMSTREAM m, cmsHPROFILE hNamedColor, int Intent) { cmsHTRANSFORM xform; cmsHPROFILE hLab; int i, nColors; char ColorName[32]; hLab = cmsCreateLabProfile(NULL); xform = cmsCreateTransform(hNamedColor, TYPE_NAMED_COLOR_INDEX, hLab, TYPE_Lab_DBL, Intent, cmsFLAGS_NOTPRECALC); if (xform == NULL) return 0; Writef(m, "<<\n"); Writef(m, "(colorlistcomment) (%s)\n", "Named color CSA"); Writef(m, "(Prefix) [ (Pantone ) (PANTONE ) ]\n"); Writef(m, "(Suffix) [ ( CV) ( CVC) ( C) ]\n"); nColors = cmsNamedColorCount(xform); for (i=0; i < nColors; i++) { WORD In[1]; cmsCIELab Lab; In[0] = (WORD) i; if (!cmsNamedColorInfo(xform, i, ColorName, NULL, NULL)) continue; cmsDoTransform(xform, In, &Lab, 1); Writef(m, " (%s) [ %.3f %.3f %.3f ]\n", ColorName, Lab.L, Lab.a, Lab.b); } Writef(m, ">>\n"); cmsDeleteTransform(xform); cmsCloseProfile(hLab); return 1; } // Does create a Color Space Array on XYZ colorspace for PostScript usage DWORD LCMSEXPORT cmsGetPostScriptCSA(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen) { LPMEMSTREAM mem; DWORD dwBytesUsed; // Set up the serialization engine mem = CreateMemStream((LPBYTE) Buffer, dwBufferLen, MAXPSCOLS); if (!mem) return 0; // Is a named color profile? if (cmsGetDeviceClass(hProfile) == icSigNamedColorClass) { if (!WriteNamedColorCSA(mem, hProfile, Intent)) { _cmsFree((void*) mem); return 0; } } else { // Any profile class are allowed (including devicelink), but // output (PCS) colorspace must be XYZ or Lab icColorSpaceSignature ColorSpace = cmsGetPCS(hProfile); if (ColorSpace != icSigXYZData && ColorSpace != icSigLabData) { cmsSignalError(LCMS_ERRC_ABORTED, "Invalid output color space"); _cmsFree((void*) mem); return 0; } // Is there any CLUT? if (IsLUTbased(hProfile, Intent)) { // Yes, so handle as LUT-based if (!WriteInputLUT(mem, hProfile, Intent)) { _cmsFree((void*) mem); return 0; } } else { // No, try Matrix-shaper (this only works on XYZ) if (!WriteInputMatrixShaper(mem, hProfile)) { _cmsFree((void*) mem); // Something went wrong return 0; } } } // Done, keep memory usage dwBytesUsed = mem ->dwUsed; // Get rid of memory stream _cmsFree((void*) mem); // Finally, return used byte count return dwBytesUsed; } // ------------------------------------------------------ Color Rendering Dictionary (CRD) /* Black point compensation plus chromatic adaptation: Step 1 - Chromatic adaptation ============================= WPout X = ------- PQR Wpin Step 2 - Black point compensation ================================= (WPout - BPout)*X - WPout*(BPin - BPout) out = --------------------------------------- WPout - BPin Algorithm discussion ==================== TransformPQR(WPin, BPin, WPout, BPout, PQR) Wpin,etc= { Xws Yws Zws Pws Qws Rws } Algorithm Stack 0...n =========================================================== PQR BPout WPout BPin WPin 4 index 3 get WPin PQR BPout WPout BPin WPin div (PQR/WPin) BPout WPout BPin WPin 2 index 3 get WPout (PQR/WPin) BPout WPout BPin WPin mult WPout*(PQR/WPin) BPout WPout BPin WPin 2 index 3 get WPout WPout*(PQR/WPin) BPout WPout BPin WPin 2 index 3 get BPout WPout WPout*(PQR/WPin) BPout WPout BPin WPin sub (WPout-BPout) WPout*(PQR/WPin) BPout WPout BPin WPin mult (WPout-BPout)* WPout*(PQR/WPin) BPout WPout BPin WPin 2 index 3 get WPout (BPout-WPout)* WPout*(PQR/WPin) BPout WPout BPin WPin 4 index 3 get BPin WPout (BPout-WPout)* WPout*(PQR/WPin) BPout WPout BPin WPin 3 index 3 get BPout BPin WPout (BPout-WPout)* WPout*(PQR/WPin) BPout WPout BPin WPin sub (BPin-BPout) WPout (BPout-WPout)* WPout*(PQR/WPin) BPout WPout BPin WPin mult (BPin-BPout)*WPout (BPout-WPout)* WPout*(PQR/WPin) BPout WPout BPin WPin sub (BPout-WPout)* WPout*(PQR/WPin)-(BPin-BPout)*WPout BPout WPout BPin WPin 3 index 3 get BPin (BPout-WPout)* WPout*(PQR/WPin)-(BPin-BPout)*WPout BPout WPout BPin WPin 3 index 3 get WPout BPin (BPout-WPout)* WPout*(PQR/WPin)-(BPin-BPout)*WPout BPout WPout BPin WPin exch sub (WPout-BPin) (BPout-WPout)* WPout*(PQR/WPin)-(BPin-BPout)*WPout BPout WPout BPin WPin div exch pop exch pop exch pop exch pop */ static void EmitPQRStage(LPMEMSTREAM m, cmsHPROFILE hProfile, int DoBPC, int lIsAbsolute) { if (lIsAbsolute) { // For absolute colorimetric intent, encode back to relative // and generate a relative LUT // Relative encoding is obtained across XYZpcs*(D50/WhitePoint) cmsCIEXYZ White; cmsTakeMediaWhitePoint(&White, hProfile); Writef(m,"/MatrixPQR [1 0 0 0 1 0 0 0 1 ]\n"); Writef(m,"/RangePQR [ -0.5 2 -0.5 2 -0.5 2 ]\n"); Writef(m, "%% Absolute colorimetric -- encode to relative to maximize LUT usage\n" "/TransformPQR [\n" "{0.9642 mul %g div exch pop exch pop exch pop exch pop} bind\n" "{1.0000 mul %g div exch pop exch pop exch pop exch pop} bind\n" "{0.8249 mul %g div exch pop exch pop exch pop exch pop} bind\n]\n", White.X, White.Y, White.Z); return; } Writef(m,"%% Bradford Cone Space\n" "/MatrixPQR [0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296 ] \n"); Writef(m, "/RangePQR [ -0.5 2 -0.5 2 -0.5 2 ]\n"); // No BPC if (!DoBPC) { Writef(m, "%% VonKries-like transform in Bradford Cone Space\n" "/TransformPQR [\n" "{exch pop exch 3 get mul exch pop exch 3 get div} bind\n" "{exch pop exch 4 get mul exch pop exch 4 get div} bind\n" "{exch pop exch 5 get mul exch pop exch 5 get div} bind\n]\n"); } else { // BPC Writef(m, "%% VonKries-like transform in Bradford Cone Space plus BPC\n" "/TransformPQR [\n"); Writef(m, "{4 index 3 get div 2 index 3 get mul " "2 index 3 get 2 index 3 get sub mul " "2 index 3 get 4 index 3 get 3 index 3 get sub mul sub " "3 index 3 get 3 index 3 get exch sub div " "exch pop exch pop exch pop exch pop } bind\n"); Writef(m, "{4 index 4 get div 2 index 4 get mul " "2 index 4 get 2 index 4 get sub mul " "2 index 4 get 4 index 4 get 3 index 4 get sub mul sub " "3 index 4 get 3 index 4 get exch sub div " "exch pop exch pop exch pop exch pop } bind\n"); Writef(m, "{4 index 5 get div 2 index 5 get mul " "2 index 5 get 2 index 5 get sub mul " "2 index 5 get 4 index 5 get 3 index 5 get sub mul sub " "3 index 5 get 3 index 5 get exch sub div " "exch pop exch pop exch pop exch pop } bind\n]\n"); } } static void EmitXYZ2Lab(LPMEMSTREAM m) { Writef(m, "/RangeLMN [ -0.635 2.0 0 2 -0.635 2.0 ]\n"); Writef(m, "/EncodeLMN [\n"); Writef(m, "{ 0.964200 div dup 0.008856 le {7.787 mul 16 116 div add}{1 3 div exp} ifelse } bind\n"); Writef(m, "{ 1.000000 div dup 0.008856 le {7.787 mul 16 116 div add}{1 3 div exp} ifelse } bind\n"); Writef(m, "{ 0.824900 div dup 0.008856 le {7.787 mul 16 116 div add}{1 3 div exp} ifelse } bind\n"); Writef(m, "]\n"); Writef(m, "/MatrixABC [ 0 1 0 1 -1 1 0 0 -1 ]\n"); Writef(m, "/EncodeABC [\n"); Writef(m, "{ 116 mul 16 sub 100 div } bind\n"); Writef(m, "{ 500 mul 128 add 256 div } bind\n"); Writef(m, "{ 200 mul 128 add 256 div } bind\n"); Writef(m, "]\n"); } // Due to impedance mismatch between XYZ and almost all RGB and CMYK spaces // I choose to dump LUTS in Lab instead of XYZ. There is still a lot of wasted // space on 3D CLUT, but since space seems not to be a problem here, 33 points // would give a reasonable accurancy. Note also that CRD tables must operate in // 8 bits. static int WriteOutputLUT(LPMEMSTREAM m, cmsHPROFILE hProfile, int Intent, DWORD dwFlags) { cmsHPROFILE hLab; cmsHTRANSFORM xform; icColorSpaceSignature ColorSpace; int i, nChannels; DWORD OutputFormat; _LPcmsTRANSFORM v; LPLUT DeviceLink; cmsHPROFILE Profiles[3]; cmsCIEXYZ BlackPointAdaptedToD50; LCMSBOOL lFreeDeviceLink = FALSE; LCMSBOOL lDoBPC = (dwFlags & cmsFLAGS_BLACKPOINTCOMPENSATION); LCMSBOOL lFixWhite = !(dwFlags & cmsFLAGS_NOWHITEONWHITEFIXUP); int RelativeEncodingIntent; hLab = cmsCreateLabProfile(NULL); ColorSpace = cmsGetColorSpace(hProfile); nChannels = _cmsChannelsOf(ColorSpace); OutputFormat = CHANNELS_SH(nChannels) | BYTES_SH(2); // For absolute colorimetric, the LUT is encoded as relative // in order to preserve precission. RelativeEncodingIntent = Intent; if (RelativeEncodingIntent == INTENT_ABSOLUTE_COLORIMETRIC) RelativeEncodingIntent = INTENT_RELATIVE_COLORIMETRIC; // Is a devicelink profile? if (cmsGetDeviceClass(hProfile) == icSigLinkClass) { // if devicelink input already in Lab if (ColorSpace == icSigLabData) { // adjust input to Lab to our v4 Profiles[0] = hLab; Profiles[1] = hProfile; xform = cmsCreateMultiprofileTransform(Profiles, 2, TYPE_Lab_DBL, OutputFormat, RelativeEncodingIntent, dwFlags|cmsFLAGS_NOWHITEONWHITEFIXUP|cmsFLAGS_NOPRELINEARIZATION); } else { cmsSignalError(LCMS_ERRC_ABORTED, "Cannot use devicelink profile for CRD creation"); return 0; } } else { // This is a normal profile xform = cmsCreateTransform(hLab, TYPE_Lab_DBL, hProfile, OutputFormat, RelativeEncodingIntent, dwFlags|cmsFLAGS_NOWHITEONWHITEFIXUP|cmsFLAGS_NOPRELINEARIZATION); } if (xform == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Cannot create transform Lab -> Profile in CRD creation"); return 0; } // Get the internal precalculated devicelink v = (_LPcmsTRANSFORM) xform; DeviceLink = v ->DeviceLink; if (!DeviceLink) { DeviceLink = _cmsPrecalculateDeviceLink(xform, cmsFLAGS_NOPRELINEARIZATION); lFreeDeviceLink = TRUE; } Writef(m, "<<\n"); Writef(m, "/ColorRenderingType 1\n"); cmsDetectBlackPoint(&BlackPointAdaptedToD50, hProfile, Intent, LCMS_BPFLAGS_D50_ADAPTED); // Emit headers, etc. EmitWhiteBlackD50(m, &BlackPointAdaptedToD50); EmitPQRStage(m, hProfile, lDoBPC, Intent == INTENT_ABSOLUTE_COLORIMETRIC); EmitXYZ2Lab(m); if (DeviceLink ->wFlags & LUT_HASTL1) { // Shouldn't happen cmsSignalError(LCMS_ERRC_ABORTED, "Internal error (prelinearization on CRD)"); return 0; } // FIXUP: map Lab (100, 0, 0) to perfect white, because the particular encoding for Lab // does map a=b=0 not falling into any specific node. Since range a,b goes -128..127, // zero is slightly moved towards right, so assure next node (in L=100 slice) is mapped to // zero. This would sacrifice a bit of highlights, but failure to do so would cause // scum dot. Ouch. if (Intent == INTENT_ABSOLUTE_COLORIMETRIC) lFixWhite = FALSE; Writef(m, "/RenderTable "); WriteCLUT(m, DeviceLink, 8, "<", ">\n", "", "", FALSE, lFixWhite, ColorSpace); Writef(m, " %d {} bind ", nChannels); for (i=1; i < nChannels; i++) Writef(m, "dup "); Writef(m, "]\n"); EmitIntent(m, Intent); Writef(m, ">>\n"); if (!(dwFlags & cmsFLAGS_NODEFAULTRESOURCEDEF)) { Writef(m, "/Current exch /ColorRendering defineresource pop\n"); } if (lFreeDeviceLink) cmsFreeLUT(DeviceLink); cmsDeleteTransform(xform); cmsCloseProfile(hLab); return 1; } // Builds a ASCII string containing colorant list in 0..1.0 range static void BuildColorantList(char *Colorant, int nColorant, WORD Out[]) { char Buff[32]; int j; Colorant[0] = 0; if (nColorant > MAXCHANNELS) nColorant = MAXCHANNELS; for (j=0; j < nColorant; j++) { sprintf(Buff, "%.3f", Out[j] / 65535.0); strcat(Colorant, Buff); if (j < nColorant -1) strcat(Colorant, " "); } } // Creates a PostScript color list from a named profile data. // This is a HP extension. static int WriteNamedColorCRD(LPMEMSTREAM m, cmsHPROFILE hNamedColor, int Intent, DWORD dwFlags) { cmsHTRANSFORM xform; int i, nColors, nColorant; DWORD OutputFormat; char ColorName[32]; char Colorant[128]; nColorant = _cmsChannelsOf(cmsGetColorSpace(hNamedColor)); OutputFormat = CHANNELS_SH(nColorant) | BYTES_SH(2); xform = cmsCreateTransform(hNamedColor, TYPE_NAMED_COLOR_INDEX, NULL, OutputFormat, Intent, cmsFLAGS_NOTPRECALC); if (xform == NULL) return 0; Writef(m, "<<\n"); Writef(m, "(colorlistcomment) (%s) \n", "Named profile"); Writef(m, "(Prefix) [ (Pantone ) (PANTONE ) ]\n"); Writef(m, "(Suffix) [ ( CV) ( CVC) ( C) ]\n"); nColors = cmsNamedColorCount(xform); for (i=0; i < nColors; i++) { WORD In[1]; WORD Out[MAXCHANNELS]; In[0] = (WORD) i; if (!cmsNamedColorInfo(xform, i, ColorName, NULL, NULL)) continue; cmsDoTransform(xform, In, Out, 1); BuildColorantList(Colorant, nColorant, Out); Writef(m, " (%s) [ %s ]\n", ColorName, Colorant); } Writef(m, " >>"); if (!(dwFlags & cmsFLAGS_NODEFAULTRESOURCEDEF)) { Writef(m, " /Current exch /HPSpotTable defineresource pop\n"); } cmsDeleteTransform(xform); return 1; } // This one does create a Color Rendering Dictionary. // CRD are always LUT-Based, no matter if profile is // implemented as matrix-shaper. DWORD LCMSEXPORT cmsGetPostScriptCRDEx(cmsHPROFILE hProfile, int Intent, DWORD dwFlags, LPVOID Buffer, DWORD dwBufferLen) { LPMEMSTREAM mem; DWORD dwBytesUsed; // Set up the serialization artifact mem = CreateMemStream((LPBYTE) Buffer, dwBufferLen, MAXPSCOLS); if (!mem) return 0; if (!(dwFlags & cmsFLAGS_NODEFAULTRESOURCEDEF)) { EmitHeader(mem, "Color Rendering Dictionary (CRD)", hProfile); } // Is a named color profile? if (cmsGetDeviceClass(hProfile) == icSigNamedColorClass) { if (!WriteNamedColorCRD(mem, hProfile, Intent, dwFlags)) { _cmsFree((void*) mem); return 0; } } else { // CRD are always implemented as LUT. if (!WriteOutputLUT(mem, hProfile, Intent, dwFlags)) { _cmsFree((void*) mem); return 0; } } if (!(dwFlags & cmsFLAGS_NODEFAULTRESOURCEDEF)) { Writef(mem, "%%%%EndResource\n"); Writef(mem, "\n%% CRD End\n"); } // Done, keep memory usage dwBytesUsed = mem ->dwUsed; // Get rid of memory stream _cmsFree((void*) mem); // Finally, return used byte count return dwBytesUsed; } // For compatibility with previous versions DWORD LCMSEXPORT cmsGetPostScriptCRD(cmsHPROFILE hProfile, int Intent, LPVOID Buffer, DWORD dwBufferLen) { return cmsGetPostScriptCRDEx(hProfile, Intent, 0, Buffer, dwBufferLen); } lcms-1.19/src/cmssamp.c0000777000175300010010000004544411272606371014272 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // --------------------------------------------------------------------------------- static volatile int GlobalBlackPreservationStrategy = 0; // Quantize a value 0 <= i < MaxSamples WORD _cmsQuantizeVal(double i, int MaxSamples) { double x; x = ((double) i * 65535.) / (double) (MaxSamples - 1); return (WORD) floor(x + .5); } // Is a table linear? int cmsIsLinear(WORD Table[], int nEntries) { register int i; int diff; for (i=0; i < nEntries; i++) { diff = abs((int) Table[i] - (int) _cmsQuantizeVal(i, nEntries)); if (diff > 3) return 0; } return 1; } // pow() restricted to integer static int ipow(int base, int exp) { int res = base; while (--exp) res *= base; return res; } // Given n, 0<=n<=clut^dim, returns the colorant. static int ComponentOf(int n, int clut, int nColorant) { if (nColorant <= 0) return (n % clut); n /= ipow(clut, nColorant); return (n % clut); } // This routine does a sweep on whole input space, and calls its callback // function on knots. returns TRUE if all ok, FALSE otherwise. LCMSBOOL LCMSEXPORT cmsSample3DGrid(LPLUT Lut, _cmsSAMPLER Sampler, LPVOID Cargo, DWORD dwFlags) { int i, t, nTotalPoints, Colorant, index; WORD In[MAXCHANNELS], Out[MAXCHANNELS]; nTotalPoints = ipow(Lut->cLutPoints, Lut -> InputChan); index = 0; for (i = 0; i < nTotalPoints; i++) { for (t=0; t < (int) Lut -> InputChan; t++) { Colorant = ComponentOf(i, Lut -> cLutPoints, (Lut -> InputChan - t - 1 )); In[t] = _cmsQuantizeVal(Colorant, Lut -> cLutPoints); } if (dwFlags & SAMPLER_HASTL1) { for (t=0; t < (int) Lut -> InputChan; t++) In[t] = cmsReverseLinearInterpLUT16(In[t], Lut -> L1[t], &Lut -> In16params); } for (t=0; t < (int) Lut -> OutputChan; t++) Out[t] = Lut->T[index + t]; if (dwFlags & SAMPLER_HASTL2) { for (t=0; t < (int) Lut -> OutputChan; t++) Out[t] = cmsLinearInterpLUT16(Out[t], Lut -> L2[t], &Lut -> Out16params); } if (!Sampler(In, Out, Cargo)) return FALSE; if (!(dwFlags & SAMPLER_INSPECT)) { if (dwFlags & SAMPLER_HASTL2) { for (t=0; t < (int) Lut -> OutputChan; t++) Out[t] = cmsReverseLinearInterpLUT16(Out[t], Lut -> L2[t], &Lut -> Out16params); } for (t=0; t < (int) Lut -> OutputChan; t++) Lut->T[index + t] = Out[t]; } index += Lut -> OutputChan; } return TRUE; } // choose reasonable resolution int _cmsReasonableGridpointsByColorspace(icColorSpaceSignature Colorspace, DWORD dwFlags) { int nChannels; // Already specified? if (dwFlags & 0x00FF0000) { // Yes, grab'em return (dwFlags >> 16) & 0xFF; } nChannels = _cmsChannelsOf(Colorspace); // HighResPrecalc is maximum resolution if (dwFlags & cmsFLAGS_HIGHRESPRECALC) { if (nChannels > 4) return 7; // 7 for Hifi if (nChannels == 4) // 23 for CMYK return 23; return 49; // 49 for RGB and others } // LowResPrecal is stripped resolution if (dwFlags & cmsFLAGS_LOWRESPRECALC) { if (nChannels > 4) return 6; // 6 for Hifi if (nChannels == 1) return 33; // For monochrome return 17; // 17 for remaining } // Default values if (nChannels > 4) return 7; // 7 for Hifi if (nChannels == 4) return 17; // 17 for CMYK return 33; // 33 for RGB } // Sampler implemented by another transform. This is a clean way to // precalculate the devicelink 3D CLUT for almost any transform static int XFormSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { cmsDoTransform((cmsHTRANSFORM) Cargo, In, Out, 1); return TRUE; } // This routine does compute the devicelink CLUT containing whole // transform. Handles any channel number. LPLUT _cmsPrecalculateDeviceLink(cmsHTRANSFORM h, DWORD dwFlags) { _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) h; LPLUT Grid; int nGridPoints; DWORD dwFormatIn, dwFormatOut; DWORD SaveFormatIn, SaveFormatOut; int ChannelsIn, ChannelsOut; LPLUT SaveGamutLUT; // Remove any gamut checking SaveGamutLUT = p ->Gamut; p ->Gamut = NULL; ChannelsIn = _cmsChannelsOf(p -> EntryColorSpace); ChannelsOut = _cmsChannelsOf(p -> ExitColorSpace); nGridPoints = _cmsReasonableGridpointsByColorspace(p -> EntryColorSpace, dwFlags); Grid = cmsAllocLUT(); if (!Grid) return NULL; Grid = cmsAlloc3DGrid(Grid, nGridPoints, ChannelsIn, ChannelsOut); // Compute device link on 16-bit basis dwFormatIn = (CHANNELS_SH(ChannelsIn)|BYTES_SH(2)); dwFormatOut = (CHANNELS_SH(ChannelsOut)|BYTES_SH(2)); SaveFormatIn = p ->InputFormat; SaveFormatOut = p ->OutputFormat; p -> InputFormat = dwFormatIn; p -> OutputFormat = dwFormatOut; p -> FromInput = _cmsIdentifyInputFormat(p, dwFormatIn); p -> ToOutput = _cmsIdentifyOutputFormat(p, dwFormatOut); // Fix gamut & gamma possible mismatches. if (!(dwFlags & cmsFLAGS_NOPRELINEARIZATION)) { cmsHTRANSFORM hOne[1]; hOne[0] = h; _cmsComputePrelinearizationTablesFromXFORM(hOne, 1, Grid); } // Attention to this typecast! we can take the luxury to // do this since cmsHTRANSFORM is only an alias to a pointer // to the transform struct. if (!cmsSample3DGrid(Grid, XFormSampler, (LPVOID) p, Grid -> wFlags)) { cmsFreeLUT(Grid); Grid = NULL; } p ->Gamut = SaveGamutLUT; p ->InputFormat = SaveFormatIn; p ->OutputFormat = SaveFormatOut; return Grid; } // Sampler for Black-preserving CMYK->CMYK transforms typedef struct { cmsHTRANSFORM cmyk2cmyk; cmsHTRANSFORM cmyk2Lab; LPGAMMATABLE KTone; L16PARAMS KToneParams; LPLUT LabK2cmyk; double MaxError; cmsHTRANSFORM hRoundTrip; int MaxTAC; cmsHTRANSFORM hProofOutput; } BPCARGO, *LPBPCARGO; // Preserve black only if that is the only ink used static int BlackPreservingGrayOnlySampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { BPCARGO* bp = (LPBPCARGO) Cargo; // If going across black only, keep black only if (In[0] == 0 && In[1] == 0 && In[2] == 0) { // TAC does not apply because it is black ink! Out[0] = Out[1] = Out[2] = 0; Out[3] = cmsLinearInterpLUT16(In[3], bp->KTone ->GammaTable, &bp->KToneParams); return 1; } // Keep normal transform for other colors cmsDoTransform(bp ->cmyk2cmyk, In, Out, 1); return 1; } // Preserve all K plane. static int BlackPreservingSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { WORD LabK[4]; double SumCMY, SumCMYK, Error; cmsCIELab ColorimetricLab, BlackPreservingLab; BPCARGO* bp = (LPBPCARGO) Cargo; // Get the K across Tone curve LabK[3] = cmsLinearInterpLUT16(In[3], bp->KTone ->GammaTable, &bp->KToneParams); // If going across black only, keep black only if (In[0] == 0 && In[1] == 0 && In[2] == 0) { Out[0] = Out[1] = Out[2] = 0; Out[3] = LabK[3]; return 1; } // Try the original transform, maybe K is already ok (valid on K=0) cmsDoTransform(bp ->cmyk2cmyk, In, Out, 1); if (Out[3] == LabK[3]) return 1; // No, mesure and keep Lab measurement for further usage cmsDoTransform(bp->hProofOutput, Out, &ColorimetricLab, 1); // Is not black only and the transform doesn't keep black. // Obtain the Lab of CMYK. After that we have Lab + K cmsDoTransform(bp ->cmyk2Lab, In, LabK, 1); // Obtain the corresponding CMY using reverse interpolation. // As a seed, we use the colorimetric CMY cmsEvalLUTreverse(bp ->LabK2cmyk, LabK, Out, Out); // Estimate the error cmsDoTransform(bp->hProofOutput, Out, &BlackPreservingLab, 1); Error = cmsDeltaE(&ColorimetricLab, &BlackPreservingLab); // Apply TAC if needed SumCMY = Out[0] + Out[1] + Out[2]; SumCMYK = SumCMY + Out[3]; if (SumCMYK > bp ->MaxTAC) { double Ratio = 1 - ((SumCMYK - bp->MaxTAC) / SumCMY); if (Ratio < 0) Ratio = 0; Out[0] = (WORD) floor(Out[0] * Ratio + 0.5); // C Out[1] = (WORD) floor(Out[1] * Ratio + 0.5); // M Out[2] = (WORD) floor(Out[2] * Ratio + 0.5); // Y } return 1; } // Sample whole gamut to estimate maximum TAC #ifdef _MSC_VER #pragma warning(disable : 4100) #endif static int EstimateTAC(register WORD In[], register WORD Out[], register LPVOID Cargo) { BPCARGO* bp = (LPBPCARGO) Cargo; WORD RoundTrip[4]; int Sum; cmsDoTransform(bp->hRoundTrip, In, RoundTrip, 1); Sum = RoundTrip[0] + RoundTrip[1] + RoundTrip[2] + RoundTrip[3]; if (Sum > bp ->MaxTAC) bp ->MaxTAC = Sum; return 1; } // Estimate the maximum error static int BlackPreservingEstimateErrorSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { BPCARGO* bp = (LPBPCARGO) Cargo; WORD ColorimetricOut[4]; cmsCIELab ColorimetricLab, BlackPreservingLab; double Error; if (In[0] == 0 && In[1] == 0 && In[2] == 0) return 1; cmsDoTransform(bp->cmyk2cmyk, In, ColorimetricOut, 1); cmsDoTransform(bp->hProofOutput, ColorimetricOut, &ColorimetricLab, 1); cmsDoTransform(bp->hProofOutput, Out, &BlackPreservingLab, 1); Error = cmsDeltaE(&ColorimetricLab, &BlackPreservingLab); if (Error > bp ->MaxError) bp ->MaxError = Error; return 1; } // Setup the K preservation strategy int LCMSEXPORT cmsSetCMYKPreservationStrategy(int n) { int OldVal = GlobalBlackPreservationStrategy; if (n >= 0) GlobalBlackPreservationStrategy = n; return OldVal; } #pragma warning(disable: 4550) // Get a pointer to callback on depending of strategy static _cmsSAMPLER _cmsGetBlackPreservationSampler(void) { switch (GlobalBlackPreservationStrategy) { case 0: return BlackPreservingGrayOnlySampler; default: return BlackPreservingSampler; } } // This is the black-preserving devicelink generator LPLUT _cmsPrecalculateBlackPreservingDeviceLink(cmsHTRANSFORM hCMYK2CMYK, DWORD dwFlags) { _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) hCMYK2CMYK; BPCARGO Cargo; LPLUT Grid; DWORD LocalFlags; cmsHPROFILE hLab = cmsCreateLabProfile(NULL); int nGridPoints; icTagSignature Device2PCS[] = {icSigAToB0Tag, // Perceptual icSigAToB1Tag, // Relative colorimetric icSigAToB2Tag, // Saturation icSigAToB1Tag }; // Absolute colorimetric // (Relative/WhitePoint) nGridPoints = _cmsReasonableGridpointsByColorspace(p -> EntryColorSpace, dwFlags); // Get a copy of inteserting flags for this kind of xform LocalFlags = cmsFLAGS_NOTPRECALC; if (p -> dwOriginalFlags & cmsFLAGS_BLACKPOINTCOMPENSATION) LocalFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION; // Fill in cargo struct Cargo.cmyk2cmyk = hCMYK2CMYK; // Compute tone curve. Cargo.KTone = _cmsBuildKToneCurve(hCMYK2CMYK, 256); if (Cargo.KTone == NULL) return NULL; cmsCalcL16Params(Cargo.KTone ->nEntries, &Cargo.KToneParams); // Create a CMYK->Lab "normal" transform on input, without K-preservation Cargo.cmyk2Lab = cmsCreateTransform(p ->InputProfile, TYPE_CMYK_16, hLab, TYPE_Lab_16, p->Intent, LocalFlags); // We are going to use the reverse of proof direction Cargo.LabK2cmyk = cmsReadICCLut(p->OutputProfile, Device2PCS[p->Intent]); // Is there any table available? if (Cargo.LabK2cmyk == NULL) { Grid = NULL; goto Cleanup; } // Setup a roundtrip on output profile for TAC estimation Cargo.hRoundTrip = cmsCreateTransform(p ->OutputProfile, TYPE_CMYK_16, p ->OutputProfile, TYPE_CMYK_16, p->Intent, cmsFLAGS_NOTPRECALC); // Setup a proof CMYK->Lab on output Cargo.hProofOutput = cmsCreateTransform(p ->OutputProfile, TYPE_CMYK_16, hLab, TYPE_Lab_DBL, p->Intent, LocalFlags); // Create an empty LUT for holding K-preserving xform Grid = cmsAllocLUT(); if (!Grid) goto Cleanup; Grid = cmsAlloc3DGrid(Grid, nGridPoints, 4, 4); // Setup formatters p -> FromInput = _cmsIdentifyInputFormat(p, TYPE_CMYK_16); p -> ToOutput = _cmsIdentifyOutputFormat(p, TYPE_CMYK_16); // Step #1, estimate TAC Cargo.MaxTAC = 0; if (!cmsSample3DGrid(Grid, EstimateTAC, (LPVOID) &Cargo, 0)) { cmsFreeLUT(Grid); Grid = NULL; goto Cleanup; } // Step #2, compute approximation if (!cmsSample3DGrid(Grid, _cmsGetBlackPreservationSampler(), (LPVOID) &Cargo, 0)) { cmsFreeLUT(Grid); Grid = NULL; goto Cleanup; } // Step #3, estimate error Cargo.MaxError = 0; cmsSample3DGrid(Grid, BlackPreservingEstimateErrorSampler, (LPVOID) &Cargo, SAMPLER_INSPECT); Cleanup: if (Cargo.cmyk2Lab) cmsDeleteTransform(Cargo.cmyk2Lab); if (Cargo.hRoundTrip) cmsDeleteTransform(Cargo.hRoundTrip); if (Cargo.hProofOutput) cmsDeleteTransform(Cargo.hProofOutput); if (hLab) cmsCloseProfile(hLab); if (Cargo.KTone) cmsFreeGamma(Cargo.KTone); if (Cargo.LabK2cmyk) cmsFreeLUT(Cargo.LabK2cmyk); return Grid; } // Fix broken LUT. just to obtain other CMS compatibility static void PatchLUT(LPLUT Grid, WORD At[], WORD Value[], int nChannelsOut, int nChannelsIn) { LPL16PARAMS p16 = &Grid -> CLut16params; double px, py, pz, pw; int x0, y0, z0, w0; int i, index; if (Grid ->wFlags & LUT_HASTL1) return; // There is a prelinearization px = ((double) At[0] * (p16->Domain)) / 65535.0; py = ((double) At[1] * (p16->Domain)) / 65535.0; pz = ((double) At[2] * (p16->Domain)) / 65535.0; pw = ((double) At[3] * (p16->Domain)) / 65535.0; x0 = (int) floor(px); y0 = (int) floor(py); z0 = (int) floor(pz); w0 = (int) floor(pw); if (nChannelsIn == 4) { if (((px - x0) != 0) || ((py - y0) != 0) || ((pz - z0) != 0) || ((pw - w0) != 0)) return; // Not on exact node index = p16 -> opta4 * x0 + p16 -> opta3 * y0 + p16 -> opta2 * z0 + p16 -> opta1 * w0; } else if (nChannelsIn == 3) { if (((px - x0) != 0) || ((py - y0) != 0) || ((pz - z0) != 0)) return; // Not on exact node index = p16 -> opta3 * x0 + p16 -> opta2 * y0 + p16 -> opta1 * z0; } else if (nChannelsIn == 1) { if (((px - x0) != 0)) return; // Not on exact node index = p16 -> opta1 * x0; } else { cmsSignalError(LCMS_ERRC_ABORTED, "(internal) %d Channels are not supported on PatchLUT", nChannelsIn); return; } for (i=0; i < nChannelsOut; i++) Grid -> T[index + i] = Value[i]; } LCMSBOOL _cmsFixWhiteMisalignment(_LPcmsTRANSFORM p) { WORD *WhitePointIn, *WhitePointOut, *BlackPointIn, *BlackPointOut; int nOuts, nIns; if (!p -> DeviceLink) return FALSE; if (p ->Intent == INTENT_ABSOLUTE_COLORIMETRIC) return FALSE; if ((p ->PreviewProfile != NULL) && (p ->ProofIntent == INTENT_ABSOLUTE_COLORIMETRIC)) return FALSE; if (!_cmsEndPointsBySpace(p -> EntryColorSpace, &WhitePointIn, &BlackPointIn, &nIns)) return FALSE; if (!_cmsEndPointsBySpace(p -> ExitColorSpace, &WhitePointOut, &BlackPointOut, &nOuts)) return FALSE; // Fix white only PatchLUT(p -> DeviceLink, WhitePointIn, WhitePointOut, nOuts, nIns); // PatchLUT(p -> DeviceLink, BlackPointIn, BlackPointOut, nOuts, nIns); return TRUE; } lcms-1.19/src/cmsvirt.c0000777000175300010010000006364211272606371014316 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Virtual (built-in) profiles // ----------------------------------------------------------------------------------- // This function creates a profile based on White point, primaries and // transfer functions. cmsHPROFILE LCMSEXPORT cmsCreateRGBProfile(LPcmsCIExyY WhitePoint, LPcmsCIExyYTRIPLE Primaries, LPGAMMATABLE TransferFunction[3]) { cmsHPROFILE hICC; cmsCIEXYZ tmp; MAT3 MColorants; cmsCIEXYZTRIPLE Colorants; cmsCIExyY MaxWhite; hICC = _cmsCreateProfilePlaceholder(); if (!hICC) // can't allocate return NULL; cmsSetDeviceClass(hICC, icSigDisplayClass); cmsSetColorSpace(hICC, icSigRgbData); cmsSetPCS(hICC, icSigXYZData); cmsSetRenderingIntent(hICC, INTENT_PERCEPTUAL); // Implement profile using following tags: // // 1 icSigProfileDescriptionTag // 2 icSigMediaWhitePointTag // 3 icSigRedColorantTag // 4 icSigGreenColorantTag // 5 icSigBlueColorantTag // 6 icSigRedTRCTag // 7 icSigGreenTRCTag // 8 icSigBlueTRCTag // This conforms a standard RGB DisplayProfile as says ICC, and then I add // 9 icSigChromaticityTag // As addendum II // Fill-in the tags cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "lcms RGB virtual profile"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "rgb built-in"); if (WhitePoint) { cmsxyY2XYZ(&tmp, WhitePoint); cmsAddTag(hICC, icSigMediaWhitePointTag, (LPVOID) &tmp); } if (WhitePoint && Primaries) { MaxWhite.x = WhitePoint -> x; MaxWhite.y = WhitePoint -> y; MaxWhite.Y = 1.0; if (!cmsBuildRGB2XYZtransferMatrix(&MColorants, &MaxWhite, Primaries)) { cmsCloseProfile(hICC); return NULL; } cmsAdaptMatrixToD50(&MColorants, &MaxWhite); Colorants.Red.X = MColorants.v[0].n[0]; Colorants.Red.Y = MColorants.v[1].n[0]; Colorants.Red.Z = MColorants.v[2].n[0]; Colorants.Green.X = MColorants.v[0].n[1]; Colorants.Green.Y = MColorants.v[1].n[1]; Colorants.Green.Z = MColorants.v[2].n[1]; Colorants.Blue.X = MColorants.v[0].n[2]; Colorants.Blue.Y = MColorants.v[1].n[2]; Colorants.Blue.Z = MColorants.v[2].n[2]; cmsAddTag(hICC, icSigRedColorantTag, (LPVOID) &Colorants.Red); cmsAddTag(hICC, icSigBlueColorantTag, (LPVOID) &Colorants.Blue); cmsAddTag(hICC, icSigGreenColorantTag, (LPVOID) &Colorants.Green); } if (TransferFunction) { // In case of gamma, we must dup' the table pointer cmsAddTag(hICC, icSigRedTRCTag, (LPVOID) TransferFunction[0]); cmsAddTag(hICC, icSigGreenTRCTag, (LPVOID) TransferFunction[1]); cmsAddTag(hICC, icSigBlueTRCTag, (LPVOID) TransferFunction[2]); } if (Primaries) { cmsAddTag(hICC, icSigChromaticityTag, (LPVOID) Primaries); } return hICC; } // This function creates a profile based on White point and transfer function. cmsHPROFILE LCMSEXPORT cmsCreateGrayProfile(LPcmsCIExyY WhitePoint, LPGAMMATABLE TransferFunction) { cmsHPROFILE hICC; cmsCIEXYZ tmp; hICC = _cmsCreateProfilePlaceholder(); if (!hICC) // can't allocate return NULL; cmsSetDeviceClass(hICC, icSigDisplayClass); cmsSetColorSpace(hICC, icSigGrayData); cmsSetPCS(hICC, icSigXYZData); cmsSetRenderingIntent(hICC, INTENT_PERCEPTUAL); // Implement profile using following tags: // // 1 icSigProfileDescriptionTag // 2 icSigMediaWhitePointTag // 6 icSigGrayTRCTag // This conforms a standard Gray DisplayProfile // Fill-in the tags cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "lcms gray virtual profile"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "gray built-in"); if (WhitePoint) { cmsxyY2XYZ(&tmp, WhitePoint); cmsAddTag(hICC, icSigMediaWhitePointTag, (LPVOID) &tmp); } if (TransferFunction) { // In case of gamma, we must dup' the table pointer cmsAddTag(hICC, icSigGrayTRCTag, (LPVOID) TransferFunction); } return hICC; } static int IsPCS(icColorSpaceSignature ColorSpace) { return (ColorSpace == icSigXYZData || ColorSpace == icSigLabData); } static void FixColorSpaces(cmsHPROFILE hProfile, icColorSpaceSignature ColorSpace, icColorSpaceSignature PCS, DWORD dwFlags) { if (dwFlags & cmsFLAGS_GUESSDEVICECLASS) { if (IsPCS(ColorSpace) && IsPCS(PCS)) { cmsSetDeviceClass(hProfile, icSigAbstractClass); cmsSetColorSpace(hProfile, ColorSpace); cmsSetPCS(hProfile, PCS); return; } if (IsPCS(ColorSpace) && !IsPCS(PCS)) { cmsSetDeviceClass(hProfile, icSigOutputClass); cmsSetPCS(hProfile, ColorSpace); cmsSetColorSpace(hProfile, PCS); return; } if (IsPCS(PCS) && !IsPCS(ColorSpace)) { cmsSetDeviceClass(hProfile, icSigInputClass); cmsSetColorSpace(hProfile, ColorSpace); cmsSetPCS(hProfile, PCS); return; } } cmsSetDeviceClass(hProfile, icSigLinkClass); cmsSetColorSpace(hProfile, ColorSpace); cmsSetPCS(hProfile, PCS); } static cmsHPROFILE CreateNamedColorDevicelink(cmsHTRANSFORM xform) { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; cmsHPROFILE hICC; cmsCIEXYZ WhitePoint; int i, nColors; size_t Size; LPcmsNAMEDCOLORLIST nc2; hICC = _cmsCreateProfilePlaceholder(); if (hICC == NULL) return NULL; cmsSetRenderingIntent(hICC, v -> Intent); cmsSetDeviceClass(hICC, icSigNamedColorClass); cmsSetColorSpace(hICC, v ->ExitColorSpace); cmsSetPCS(hICC, cmsGetPCS(v ->InputProfile)); cmsTakeMediaWhitePoint(&WhitePoint, v ->InputProfile); cmsAddTag(hICC, icSigMediaWhitePointTag, &WhitePoint); cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "LittleCMS"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "Named color Device link"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "Named color Device link"); nColors = cmsNamedColorCount(xform); nc2 = cmsAllocNamedColorList(nColors); Size = sizeof(cmsNAMEDCOLORLIST) + (sizeof(cmsNAMEDCOLOR) * (nColors-1)); CopyMemory(nc2, v->NamedColorList, Size); nc2 ->ColorantCount = _cmsChannelsOf(v ->ExitColorSpace); for (i=0; i < nColors; i++) { cmsDoTransform(xform, &i, nc2 ->List[i].DeviceColorant, 1); } cmsAddTag(hICC, icSigNamedColor2Tag, (void*) nc2); cmsFreeNamedColorList(nc2); return hICC; } // Does convert a transform into a device link profile cmsHPROFILE LCMSEXPORT cmsTransform2DeviceLink(cmsHTRANSFORM hTransform, DWORD dwFlags) { cmsHPROFILE hICC; _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) hTransform; LPLUT Lut; LCMSBOOL MustFreeLUT; LPcmsNAMEDCOLORLIST InputColorant = NULL; LPcmsNAMEDCOLORLIST OutputColorant = NULL; // Check if is a named color transform if (cmsGetDeviceClass(v ->InputProfile) == icSigNamedColorClass) { return CreateNamedColorDevicelink(hTransform); } if (v ->DeviceLink) { Lut = v -> DeviceLink; MustFreeLUT = FALSE; } else { Lut = _cmsPrecalculateDeviceLink(hTransform, dwFlags); if (!Lut) return NULL; MustFreeLUT = TRUE; } hICC = _cmsCreateProfilePlaceholder(); if (!hICC) { // can't allocate if (MustFreeLUT) cmsFreeLUT(Lut); return NULL; } FixColorSpaces(hICC, v -> EntryColorSpace, v -> ExitColorSpace, dwFlags); cmsSetRenderingIntent(hICC, v -> Intent); // Implement devicelink profile using following tags: // // 1 icSigProfileDescriptionTag // 2 icSigMediaWhitePointTag // 3 icSigAToB0Tag cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "LittleCMS"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "Device link"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "Device link"); cmsAddTag(hICC, icSigMediaWhitePointTag, (LPVOID) cmsD50_XYZ()); if (cmsGetDeviceClass(hICC) == icSigOutputClass) { cmsAddTag(hICC, icSigBToA0Tag, (LPVOID) Lut); } else cmsAddTag(hICC, icSigAToB0Tag, (LPVOID) Lut); // Try to read input and output colorant table if (cmsIsTag(v ->InputProfile, icSigColorantTableTag)) { // Input table can only come in this way. InputColorant = cmsReadColorantTable(v ->InputProfile, icSigColorantTableTag); } // Output is a little bit more complex. if (cmsGetDeviceClass(v ->OutputProfile) == icSigLinkClass) { // This tag may exist only on devicelink profiles. if (cmsIsTag(v ->OutputProfile, icSigColorantTableOutTag)) { OutputColorant = cmsReadColorantTable(v ->OutputProfile, icSigColorantTableOutTag); } } else { if (cmsIsTag(v ->OutputProfile, icSigColorantTableTag)) { OutputColorant = cmsReadColorantTable(v ->OutputProfile, icSigColorantTableTag); } } if (InputColorant) cmsAddTag(hICC, icSigColorantTableTag, InputColorant); if (OutputColorant) cmsAddTag(hICC, icSigColorantTableOutTag, OutputColorant); if (MustFreeLUT) cmsFreeLUT(Lut); if (InputColorant) cmsFreeNamedColorList(InputColorant); if (OutputColorant) cmsFreeNamedColorList(OutputColorant); return hICC; } // This is a devicelink operating in the target colorspace with as many transfer // functions as components cmsHPROFILE LCMSEXPORT cmsCreateLinearizationDeviceLink(icColorSpaceSignature ColorSpace, LPGAMMATABLE TransferFunctions[]) { cmsHPROFILE hICC; LPLUT Lut; hICC = _cmsCreateProfilePlaceholder(); if (!hICC) // can't allocate return NULL; cmsSetDeviceClass(hICC, icSigLinkClass); cmsSetColorSpace(hICC, ColorSpace); cmsSetPCS(hICC, ColorSpace); cmsSetRenderingIntent(hICC, INTENT_PERCEPTUAL); // Creates a LUT with prelinearization step only Lut = cmsAllocLUT(); if (Lut == NULL) return NULL; // Set up channels Lut ->InputChan = Lut ->OutputChan = _cmsChannelsOf(ColorSpace); // Copy tables to LUT cmsAllocLinearTable(Lut, TransferFunctions, 1); // Create tags cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "lcms linearization device link"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "linearization built-in"); cmsAddTag(hICC, icSigMediaWhitePointTag, (LPVOID) cmsD50_XYZ()); cmsAddTag(hICC, icSigAToB0Tag, (LPVOID) Lut); // LUT is already on virtual profile cmsFreeLUT(Lut); // Ok, done return hICC; } // Ink-limiting algorithm // // Sum = C + M + Y + K // If Sum > InkLimit // Ratio= 1 - (Sum - InkLimit) / (C + M + Y) // if Ratio <0 // Ratio=0 // endif // Else // Ratio=1 // endif // // C = Ratio * C // M = Ratio * M // Y = Ratio * Y // K: Does not change static int InkLimitingSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { double InkLimit = *(double *) Cargo; double SumCMY, SumCMYK, Ratio; InkLimit = (InkLimit * 655.35); SumCMY = In[0] + In[1] + In[2]; SumCMYK = SumCMY + In[3]; if (SumCMYK > InkLimit) { Ratio = 1 - ((SumCMYK - InkLimit) / SumCMY); if (Ratio < 0) Ratio = 0; } else Ratio = 1; Out[0] = (WORD) floor(In[0] * Ratio + 0.5); // C Out[1] = (WORD) floor(In[1] * Ratio + 0.5); // M Out[2] = (WORD) floor(In[2] * Ratio + 0.5); // Y Out[3] = In[3]; // K (untouched) return TRUE; } // This is a devicelink operating in CMYK for ink-limiting cmsHPROFILE LCMSEXPORT cmsCreateInkLimitingDeviceLink(icColorSpaceSignature ColorSpace, double Limit) { cmsHPROFILE hICC; LPLUT Lut; if (ColorSpace != icSigCmykData) { cmsSignalError(LCMS_ERRC_ABORTED, "InkLimiting: Only CMYK currently supported"); return NULL; } if (Limit < 0.0 || Limit > 400) { cmsSignalError(LCMS_ERRC_WARNING, "InkLimiting: Limit should be between 0..400"); if (Limit < 0) Limit = 0; if (Limit > 400) Limit = 400; } hICC = _cmsCreateProfilePlaceholder(); if (!hICC) // can't allocate return NULL; cmsSetDeviceClass(hICC, icSigLinkClass); cmsSetColorSpace(hICC, ColorSpace); cmsSetPCS(hICC, ColorSpace); cmsSetRenderingIntent(hICC, INTENT_PERCEPTUAL); // Creates a LUT with 3D grid only Lut = cmsAllocLUT(); if (Lut == NULL) { cmsCloseProfile(hICC); return NULL; } cmsAlloc3DGrid(Lut, 17, _cmsChannelsOf(ColorSpace), _cmsChannelsOf(ColorSpace)); if (!cmsSample3DGrid(Lut, InkLimitingSampler, (LPVOID) &Limit, 0)) { // Shouldn't reach here cmsFreeLUT(Lut); cmsCloseProfile(hICC); return NULL; } // Create tags cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "lcms ink limiting device link"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "ink limiting built-in"); cmsAddTag(hICC, icSigMediaWhitePointTag, (LPVOID) cmsD50_XYZ()); cmsAddTag(hICC, icSigAToB0Tag, (LPVOID) Lut); // LUT is already on virtual profile cmsFreeLUT(Lut); // Ok, done return hICC; } static LPLUT Create3x3EmptyLUT(void) { LPLUT AToB0 = cmsAllocLUT(); if (AToB0 == NULL) return NULL; AToB0 -> InputChan = AToB0 -> OutputChan = 3; return AToB0; } // Creates a fake Lab identity. cmsHPROFILE LCMSEXPORT cmsCreateLabProfile(LPcmsCIExyY WhitePoint) { cmsHPROFILE hProfile; LPLUT Lut; hProfile = cmsCreateRGBProfile(WhitePoint == NULL ? cmsD50_xyY() : WhitePoint, NULL, NULL); if (hProfile == NULL) return NULL; cmsSetDeviceClass(hProfile, icSigAbstractClass); cmsSetColorSpace(hProfile, icSigLabData); cmsSetPCS(hProfile, icSigLabData); cmsAddTag(hProfile, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hProfile, icSigProfileDescriptionTag, (LPVOID) "lcms Lab identity"); cmsAddTag(hProfile, icSigDeviceModelDescTag, (LPVOID) "Lab built-in"); // An empty LUTs is all we need Lut = Create3x3EmptyLUT(); if (Lut == NULL) { cmsCloseProfile(hProfile); return NULL; } cmsAddTag(hProfile, icSigAToB0Tag, (LPVOID) Lut); cmsAddTag(hProfile, icSigBToA0Tag, (LPVOID) Lut); cmsFreeLUT(Lut); return hProfile; } // Creates a fake Lab identity. cmsHPROFILE LCMSEXPORT cmsCreateLab4Profile(LPcmsCIExyY WhitePoint) { cmsHPROFILE hProfile; LPLUT Lut; hProfile = cmsCreateRGBProfile(WhitePoint == NULL ? cmsD50_xyY() : WhitePoint, NULL, NULL); if (hProfile == NULL) return NULL; cmsSetProfileICCversion(hProfile, 0x4000000); cmsSetDeviceClass(hProfile, icSigAbstractClass); cmsSetColorSpace(hProfile, icSigLabData); cmsSetPCS(hProfile, icSigLabData); cmsAddTag(hProfile, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hProfile, icSigProfileDescriptionTag, (LPVOID) "lcms Lab identity v4"); cmsAddTag(hProfile, icSigDeviceModelDescTag, (LPVOID) "Lab v4 built-in"); // An empty LUTs is all we need Lut = Create3x3EmptyLUT(); if (Lut == NULL) { cmsCloseProfile(hProfile); return NULL; } Lut -> wFlags |= LUT_V4_INPUT_EMULATE_V2; cmsAddTag(hProfile, icSigAToB0Tag, (LPVOID) Lut); Lut -> wFlags |= LUT_V4_OUTPUT_EMULATE_V2; cmsAddTag(hProfile, icSigBToA0Tag, (LPVOID) Lut); cmsFreeLUT(Lut); return hProfile; } // Creates a fake XYZ identity cmsHPROFILE LCMSEXPORT cmsCreateXYZProfile(void) { cmsHPROFILE hProfile; LPLUT Lut; hProfile = cmsCreateRGBProfile(cmsD50_xyY(), NULL, NULL); if (hProfile == NULL) return NULL; cmsSetDeviceClass(hProfile, icSigAbstractClass); cmsSetColorSpace(hProfile, icSigXYZData); cmsSetPCS(hProfile, icSigXYZData); cmsAddTag(hProfile, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hProfile, icSigProfileDescriptionTag, (LPVOID) "lcms XYZ identity"); cmsAddTag(hProfile, icSigDeviceModelDescTag, (LPVOID) "XYZ built-in"); // An empty LUTs is all we need Lut = Create3x3EmptyLUT(); if (Lut == NULL) { cmsCloseProfile(hProfile); return NULL; } cmsAddTag(hProfile, icSigAToB0Tag, (LPVOID) Lut); cmsAddTag(hProfile, icSigBToA0Tag, (LPVOID) Lut); cmsAddTag(hProfile, icSigPreview0Tag, (LPVOID) Lut); cmsFreeLUT(Lut); return hProfile; } /* If R’sRGB,G’sRGB, B’sRGB < 0.04045 R = R’sRGB / 12.92 G = G’sRGB / 12.92 B = B’sRGB / 12.92 else if R’sRGB,G’sRGB, B’sRGB >= 0.04045 R = ((R’sRGB + 0.055) / 1.055)^2.4 G = ((G’sRGB + 0.055) / 1.055)^2.4 B = ((B’sRGB + 0.055) / 1.055)^2.4 */ static LPGAMMATABLE Build_sRGBGamma(void) { double Parameters[5]; Parameters[0] = 2.4; Parameters[1] = 1. / 1.055; Parameters[2] = 0.055 / 1.055; Parameters[3] = 1. / 12.92; Parameters[4] = 0.04045; // d return cmsBuildParametricGamma(1024, 4, Parameters); } // Create the ICC virtual profile for sRGB space cmsHPROFILE LCMSEXPORT cmsCreate_sRGBProfile(void) { cmsCIExyY D65; cmsCIExyYTRIPLE Rec709Primaries = { {0.6400, 0.3300, 1.0}, {0.3000, 0.6000, 1.0}, {0.1500, 0.0600, 1.0} }; LPGAMMATABLE Gamma22[3]; cmsHPROFILE hsRGB; cmsWhitePointFromTemp(6504, &D65); Gamma22[0] = Gamma22[1] = Gamma22[2] = Build_sRGBGamma(); hsRGB = cmsCreateRGBProfile(&D65, &Rec709Primaries, Gamma22); cmsFreeGamma(Gamma22[0]); if (hsRGB == NULL) return NULL; cmsAddTag(hsRGB, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hsRGB, icSigDeviceModelDescTag, (LPVOID) "sRGB built-in"); cmsAddTag(hsRGB, icSigProfileDescriptionTag, (LPVOID) "sRGB built-in"); return hsRGB; } typedef struct { double Brightness; double Contrast; double Hue; double Saturation; cmsCIEXYZ WPsrc, WPdest; } BCHSWADJUSTS, *LPBCHSWADJUSTS; static int bchswSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { cmsCIELab LabIn, LabOut; cmsCIELCh LChIn, LChOut; cmsCIEXYZ XYZ; LPBCHSWADJUSTS bchsw = (LPBCHSWADJUSTS) Cargo; cmsLabEncoded2Float(&LabIn, In); cmsLab2LCh(&LChIn, &LabIn); // Do some adjusts on LCh LChOut.L = LChIn.L * bchsw ->Contrast + bchsw ->Brightness; LChOut.C = LChIn.C + bchsw -> Saturation; LChOut.h = LChIn.h + bchsw -> Hue; cmsLCh2Lab(&LabOut, &LChOut); // Move white point in Lab cmsLab2XYZ(&bchsw ->WPsrc, &XYZ, &LabOut); cmsXYZ2Lab(&bchsw ->WPdest, &LabOut, &XYZ); // Back to encoded cmsFloat2LabEncoded(Out, &LabOut); return TRUE; } // Creates an abstract profile operating in Lab space for Brightness, // contrast, Saturation and white point displacement cmsHPROFILE LCMSEXPORT cmsCreateBCHSWabstractProfile(int nLUTPoints, double Bright, double Contrast, double Hue, double Saturation, int TempSrc, int TempDest) { cmsHPROFILE hICC; LPLUT Lut; BCHSWADJUSTS bchsw; cmsCIExyY WhitePnt; bchsw.Brightness = Bright; bchsw.Contrast = Contrast; bchsw.Hue = Hue; bchsw.Saturation = Saturation; cmsWhitePointFromTemp(TempSrc, &WhitePnt); cmsxyY2XYZ(&bchsw.WPsrc, &WhitePnt); cmsWhitePointFromTemp(TempDest, &WhitePnt); cmsxyY2XYZ(&bchsw.WPdest, &WhitePnt); hICC = _cmsCreateProfilePlaceholder(); if (!hICC) // can't allocate return NULL; cmsSetDeviceClass(hICC, icSigAbstractClass); cmsSetColorSpace(hICC, icSigLabData); cmsSetPCS(hICC, icSigLabData); cmsSetRenderingIntent(hICC, INTENT_PERCEPTUAL); // Creates a LUT with 3D grid only Lut = cmsAllocLUT(); if (Lut == NULL) { cmsCloseProfile(hICC); return NULL; } cmsAlloc3DGrid(Lut, nLUTPoints, 3, 3); if (!cmsSample3DGrid(Lut, bchswSampler, (LPVOID) &bchsw, 0)) { // Shouldn't reach here cmsFreeLUT(Lut); cmsCloseProfile(hICC); return NULL; } // Create tags cmsAddTag(hICC, icSigDeviceMfgDescTag, (LPVOID) "(lcms internal)"); cmsAddTag(hICC, icSigProfileDescriptionTag, (LPVOID) "lcms BCHSW abstract profile"); cmsAddTag(hICC, icSigDeviceModelDescTag, (LPVOID) "BCHSW built-in"); cmsAddTag(hICC, icSigMediaWhitePointTag, (LPVOID) cmsD50_XYZ()); cmsAddTag(hICC, icSigAToB0Tag, (LPVOID) Lut); // LUT is already on virtual profile cmsFreeLUT(Lut); // Ok, done return hICC; } // Creates a fake NULL profile. This profile return 1 channel as always 0. // Is useful only for gamut checking tricks cmsHPROFILE LCMSEXPORT cmsCreateNULLProfile(void) { cmsHPROFILE hProfile; LPLUT Lut; LPGAMMATABLE EmptyTab; hProfile = _cmsCreateProfilePlaceholder(); if (!hProfile) // can't allocate return NULL; cmsSetDeviceClass(hProfile, icSigOutputClass); cmsSetColorSpace(hProfile, icSigGrayData); cmsSetPCS(hProfile, icSigLabData); // An empty LUTs is all we need Lut = cmsAllocLUT(); if (Lut == NULL) { cmsCloseProfile(hProfile); return NULL; } Lut -> InputChan = 3; Lut -> OutputChan = 1; EmptyTab = cmsAllocGamma(2); EmptyTab ->GammaTable[0] = 0; EmptyTab ->GammaTable[1] = 0; cmsAllocLinearTable(Lut, &EmptyTab, 2); cmsAddTag(hProfile, icSigBToA0Tag, (LPVOID) Lut); cmsFreeLUT(Lut); cmsFreeGamma(EmptyTab); return hProfile; } lcms-1.19/src/cmswtpnt.c0000777000175300010010000005077711272606371014513 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Conversions void LCMSEXPORT cmsXYZ2xyY(LPcmsCIExyY Dest, const cmsCIEXYZ* Source) { double ISum; ISum = 1./(Source -> X + Source -> Y + Source -> Z); Dest -> x = (Source -> X) * ISum; Dest -> y = (Source -> Y) * ISum; Dest -> Y = Source -> Y; } void LCMSEXPORT cmsxyY2XYZ(LPcmsCIEXYZ Dest, const cmsCIExyY* Source) { Dest -> X = (Source -> x / Source -> y) * Source -> Y; Dest -> Y = Source -> Y; Dest -> Z = ((1 - Source -> x - Source -> y) / Source -> y) * Source -> Y; } // Obtains WhitePoint from Temperature LCMSBOOL LCMSEXPORT cmsWhitePointFromTemp(int TempK, LPcmsCIExyY WhitePoint) { double x, y; double T, T2, T3; // double M1, M2; // No optimization provided. T = TempK; T2 = T*T; // Square T3 = T2*T; // Cube // For correlated color temperature (T) between 4000K and 7000K: if (T >= 4000. && T <= 7000.) { x = -4.6070*(1E9/T3) + 2.9678*(1E6/T2) + 0.09911*(1E3/T) + 0.244063; } else // or for correlated color temperature (T) between 7000K and 25000K: if (T > 7000.0 && T <= 25000.0) { x = -2.0064*(1E9/T3) + 1.9018*(1E6/T2) + 0.24748*(1E3/T) + 0.237040; } else { cmsSignalError(LCMS_ERRC_ABORTED, "cmsWhitePointFromTemp: invalid temp"); return FALSE; } // Obtain y(x) y = -3.000*(x*x) + 2.870*x - 0.275; // wave factors (not used, but here for futures extensions) // M1 = (-1.3515 - 1.7703*x + 5.9114 *y)/(0.0241 + 0.2562*x - 0.7341*y); // M2 = (0.0300 - 31.4424*x + 30.0717*y)/(0.0241 + 0.2562*x - 0.7341*y); // Fill WhitePoint struct WhitePoint -> x = x; WhitePoint -> y = y; WhitePoint -> Y = 1.0; return TRUE; } // Build a White point, primary chromas transfer matrix from RGB to CIE XYZ // This is just an approximation, I am not handling all the non-linear // aspects of the RGB to XYZ process, and assumming that the gamma correction // has transitive property in the tranformation chain. // // the alghoritm: // // - First I build the absolute conversion matrix using // primaries in XYZ. This matrix is next inverted // - Then I eval the source white point across this matrix // obtaining the coeficients of the transformation // - Then, I apply these coeficients to the original matrix LCMSBOOL LCMSEXPORT cmsBuildRGB2XYZtransferMatrix(LPMAT3 r, LPcmsCIExyY WhitePt, LPcmsCIExyYTRIPLE Primrs) { VEC3 WhitePoint, Coef; MAT3 Result, Primaries; double xn, yn; double xr, yr; double xg, yg; double xb, yb; xn = WhitePt -> x; yn = WhitePt -> y; xr = Primrs -> Red.x; yr = Primrs -> Red.y; xg = Primrs -> Green.x; yg = Primrs -> Green.y; xb = Primrs -> Blue.x; yb = Primrs -> Blue.y; // Build Primaries matrix VEC3init(&Primaries.v[0], xr, xg, xb); VEC3init(&Primaries.v[1], yr, yg, yb); VEC3init(&Primaries.v[2], (1-xr-yr), (1-xg-yg), (1-xb-yb)); // Result = Primaries ^ (-1) inverse matrix if (!MAT3inverse(&Primaries, &Result)) return FALSE; VEC3init(&WhitePoint, xn/yn, 1.0, (1.0-xn-yn)/yn); // Across inverse primaries ... MAT3eval(&Coef, &Result, &WhitePoint); // Give us the Coefs, then I build transformation matrix VEC3init(&r -> v[0], Coef.n[VX]*xr, Coef.n[VY]*xg, Coef.n[VZ]*xb); VEC3init(&r -> v[1], Coef.n[VX]*yr, Coef.n[VY]*yg, Coef.n[VZ]*yb); VEC3init(&r -> v[2], Coef.n[VX]*(1.0-xr-yr), Coef.n[VY]*(1.0-xg-yg), Coef.n[VZ]*(1.0-xb-yb)); return TRUE; } // Compute chromatic adaptation matrix using Chad as cone matrix static void ComputeChromaticAdaptation(LPMAT3 Conversion, LPcmsCIEXYZ SourceWhitePoint, LPcmsCIEXYZ DestWhitePoint, LPMAT3 Chad) { MAT3 Chad_Inv; VEC3 ConeSourceXYZ, ConeSourceRGB; VEC3 ConeDestXYZ, ConeDestRGB; MAT3 Cone, Tmp; Tmp = *Chad; MAT3inverse(&Tmp, &Chad_Inv); VEC3init(&ConeSourceXYZ, SourceWhitePoint -> X, SourceWhitePoint -> Y, SourceWhitePoint -> Z); VEC3init(&ConeDestXYZ, DestWhitePoint -> X, DestWhitePoint -> Y, DestWhitePoint -> Z); MAT3eval(&ConeSourceRGB, Chad, &ConeSourceXYZ); MAT3eval(&ConeDestRGB, Chad, &ConeDestXYZ); // Build matrix VEC3init(&Cone.v[0], ConeDestRGB.n[0]/ConeSourceRGB.n[0], 0.0, 0.0); VEC3init(&Cone.v[1], 0.0, ConeDestRGB.n[1]/ConeSourceRGB.n[1], 0.0); VEC3init(&Cone.v[2], 0.0, 0.0, ConeDestRGB.n[2]/ConeSourceRGB.n[2]); // Normalize MAT3per(&Tmp, &Cone, Chad); MAT3per(Conversion, &Chad_Inv, &Tmp); } // Returns the final chrmatic adaptation from illuminant FromIll to Illuminant ToIll // The cone matrix can be specified in ConeMatrix. If NULL, Bradford is assumed LCMSBOOL cmsAdaptationMatrix(LPMAT3 r, LPMAT3 ConeMatrix, LPcmsCIEXYZ FromIll, LPcmsCIEXYZ ToIll) { MAT3 LamRigg = {{ // Bradford matrix {{ 0.8951, 0.2664, -0.1614 }}, {{ -0.7502, 1.7135, 0.0367 }}, {{ 0.0389, -0.0685, 1.0296 }} }}; if (ConeMatrix == NULL) ConeMatrix = &LamRigg; ComputeChromaticAdaptation(r, FromIll, ToIll, ConeMatrix); return TRUE; } // Same as anterior, but assuming D50 destination. White point is given in xyY LCMSBOOL cmsAdaptMatrixToD50(LPMAT3 r, LPcmsCIExyY SourceWhitePt) { cmsCIEXYZ Dn; MAT3 Bradford; MAT3 Tmp; cmsxyY2XYZ(&Dn, SourceWhitePt); cmsAdaptationMatrix(&Bradford, NULL, &Dn, cmsD50_XYZ()); Tmp = *r; MAT3per(r, &Bradford, &Tmp); return TRUE; } // Same as anterior, but assuming D50 source. White point is given in xyY LCMSBOOL cmsAdaptMatrixFromD50(LPMAT3 r, LPcmsCIExyY DestWhitePt) { cmsCIEXYZ Dn; MAT3 Bradford; MAT3 Tmp; cmsxyY2XYZ(&Dn, DestWhitePt); cmsAdaptationMatrix(&Bradford, NULL, cmsD50_XYZ(), &Dn); Tmp = *r; MAT3per(r, &Bradford, &Tmp); return TRUE; } // Adapts a color to a given illuminant. Original color is expected to have // a SourceWhitePt white point. LCMSBOOL LCMSEXPORT cmsAdaptToIlluminant(LPcmsCIEXYZ Result, LPcmsCIEXYZ SourceWhitePt, LPcmsCIEXYZ Illuminant, LPcmsCIEXYZ Value) { MAT3 Bradford; VEC3 In, Out; // BradfordLamRiggChromaticAdaptation(&Bradford, SourceWhitePt, Illuminant); cmsAdaptationMatrix(&Bradford, NULL, SourceWhitePt, Illuminant); VEC3init(&In, Value -> X, Value -> Y, Value -> Z); MAT3eval(&Out, &Bradford, &In); Result -> X = Out.n[0]; Result -> Y = Out.n[1]; Result -> Z = Out.n[2]; return TRUE; } typedef struct { double mirek; // temp (in microreciprocal kelvin) double ut; // u coord of intersection w/ blackbody locus double vt; // v coord of intersection w/ blackbody locus double tt; // slope of ISOTEMPERATURE. line } ISOTEMPERATURE,FAR* LPISOTEMPERATURE; static ISOTEMPERATURE isotempdata[] = { // {Mirek, Ut, Vt, Tt } {0, 0.18006, 0.26352, -0.24341}, {10, 0.18066, 0.26589, -0.25479}, {20, 0.18133, 0.26846, -0.26876}, {30, 0.18208, 0.27119, -0.28539}, {40, 0.18293, 0.27407, -0.30470}, {50, 0.18388, 0.27709, -0.32675}, {60, 0.18494, 0.28021, -0.35156}, {70, 0.18611, 0.28342, -0.37915}, {80, 0.18740, 0.28668, -0.40955}, {90, 0.18880, 0.28997, -0.44278}, {100, 0.19032, 0.29326, -0.47888}, {125, 0.19462, 0.30141, -0.58204}, {150, 0.19962, 0.30921, -0.70471}, {175, 0.20525, 0.31647, -0.84901}, {200, 0.21142, 0.32312, -1.0182 }, {225, 0.21807, 0.32909, -1.2168 }, {250, 0.22511, 0.33439, -1.4512 }, {275, 0.23247, 0.33904, -1.7298 }, {300, 0.24010, 0.34308, -2.0637 }, {325, 0.24702, 0.34655, -2.4681 }, {350, 0.25591, 0.34951, -2.9641 }, {375, 0.26400, 0.35200, -3.5814 }, {400, 0.27218, 0.35407, -4.3633 }, {425, 0.28039, 0.35577, -5.3762 }, {450, 0.28863, 0.35714, -6.7262 }, {475, 0.29685, 0.35823, -8.5955 }, {500, 0.30505, 0.35907, -11.324 }, {525, 0.31320, 0.35968, -15.628 }, {550, 0.32129, 0.36011, -23.325 }, {575, 0.32931, 0.36038, -40.770 }, {600, 0.33724, 0.36051, -116.45 } }; #define NISO sizeof(isotempdata)/sizeof(ISOTEMPERATURE) // Robertson's method static double Robertson(LPcmsCIExyY v) { int j; double us,vs; double uj,vj,tj,di,dj,mi,mj; double Tc = -1, xs, ys; di = mi = 0; xs = v -> x; ys = v -> y; // convert (x,y) to CIE 1960 (u,v) us = (2*xs) / (-xs + 6*ys + 1.5); vs = (3*ys) / (-xs + 6*ys + 1.5); for (j=0; j < NISO; j++) { uj = isotempdata[j].ut; vj = isotempdata[j].vt; tj = isotempdata[j].tt; mj = isotempdata[j].mirek; dj = ((vs - vj) - tj * (us - uj)) / sqrt(1 + tj*tj); if ((j!=0) && (di/dj < 0.0)) { Tc = 1000000.0 / (mi + (di / (di - dj)) * (mj - mi)); break; } di = dj; mi = mj; } if (j == NISO) return -1; return Tc; } static LCMSBOOL InRange(LPcmsCIExyY a, LPcmsCIExyY b, double tolerance) { double dist_x, dist_y; dist_x = fabs(a->x - b->x); dist_y = fabs(a->y - b->y); return (tolerance >= dist_x * dist_x + dist_y * dist_y); } typedef struct { char Name[30]; cmsCIExyY Val; } WHITEPOINTS,FAR *LPWHITEPOINTS; static int FromD40toD150(LPWHITEPOINTS pts) { int i, n; n = 0; for (i=40; i < 150; i ++) { sprintf(pts[n].Name, "D%d", i); cmsWhitePointFromTemp((int) (i*100.0), &pts[n].Val); n++; } return n; } // To be removed in future versions void _cmsIdentifyWhitePoint(char *Buffer, LPcmsCIEXYZ WhitePt) { int i, n; cmsCIExyY Val; double T; WHITEPOINTS SomeIlluminants[140] = { {"CIE illuminant A", {0.4476, 0.4074, 1.0}}, {"CIE illuminant C", {0.3101, 0.3162, 1.0}}, {"D65 (daylight)", {0.3127, 0.3291, 1.0}}, }; n = FromD40toD150(&SomeIlluminants[3]) + 3; cmsXYZ2xyY(&Val, WhitePt); Val.Y = 1.; for (i=0; i < n; i++) { if (InRange(&Val, &SomeIlluminants[i].Val, 0.000005)) { strcpy(Buffer, "WhitePoint : "); strcat(Buffer, SomeIlluminants[i].Name); return; } } T = Robertson(&Val); if (T > 0) sprintf(Buffer, "White point near %dK", (int) T); else { sprintf(Buffer, "Unknown white point (X:%1.2g, Y:%1.2g, Z:%1.2g)", WhitePt -> X, WhitePt -> Y, WhitePt -> Z); } } // Use darker colorant to obtain black point static int BlackPointAsDarkerColorant(cmsHPROFILE hInput, int Intent, LPcmsCIEXYZ BlackPoint, DWORD dwFlags) { WORD *Black, *White; cmsHTRANSFORM xform; icColorSpaceSignature Space; int nChannels; DWORD dwFormat; cmsHPROFILE hLab; cmsCIELab Lab; cmsCIEXYZ BlackXYZ, MediaWhite; // If the profile does not support input direction, assume Black point 0 if (!cmsIsIntentSupported(hInput, Intent, LCMS_USED_AS_INPUT)) { BlackPoint -> X = BlackPoint ->Y = BlackPoint -> Z = 0.0; return 0; } // Try to get black by using black colorant Space = cmsGetColorSpace(hInput); if (!_cmsEndPointsBySpace(Space, &White, &Black, &nChannels)) { BlackPoint -> X = BlackPoint ->Y = BlackPoint -> Z = 0.0; return 0; } dwFormat = CHANNELS_SH(nChannels)|BYTES_SH(2); hLab = cmsCreateLabProfile(NULL); xform = cmsCreateTransform(hInput, dwFormat, hLab, TYPE_Lab_DBL, Intent, cmsFLAGS_NOTPRECALC); cmsDoTransform(xform, Black, &Lab, 1); // Force it to be neutral, clip to max. L* of 50 Lab.a = Lab.b = 0; if (Lab.L > 50) Lab.L = 50; cmsCloseProfile(hLab); cmsDeleteTransform(xform); cmsLab2XYZ(NULL, &BlackXYZ, &Lab); if (Intent == INTENT_ABSOLUTE_COLORIMETRIC) { *BlackPoint = BlackXYZ; } else { if (!(dwFlags & LCMS_BPFLAGS_D50_ADAPTED)) { cmsTakeMediaWhitePoint(&MediaWhite, hInput); cmsAdaptToIlluminant(BlackPoint, cmsD50_XYZ(), &MediaWhite, &BlackXYZ); } else *BlackPoint = BlackXYZ; } return 1; } // Get a black point of output CMYK profile, discounting any ink-limiting embedded // in the profile. For doing that, use perceptual intent in input direction: // Lab (0, 0, 0) -> [Perceptual] Profile -> CMYK -> [Rel. colorimetric] Profile -> Lab static int BlackPointUsingPerceptualBlack(LPcmsCIEXYZ BlackPoint, cmsHPROFILE hProfile, DWORD dwFlags) { cmsHTRANSFORM hPercLab2CMYK, hRelColCMYK2Lab; cmsHPROFILE hLab; cmsCIELab LabIn, LabOut; WORD CMYK[MAXCHANNELS]; cmsCIEXYZ BlackXYZ, MediaWhite; if (!cmsIsIntentSupported(hProfile, INTENT_PERCEPTUAL, LCMS_USED_AS_INPUT)) { BlackPoint -> X = BlackPoint ->Y = BlackPoint -> Z = 0.0; return 0; } hLab = cmsCreateLabProfile(NULL); hPercLab2CMYK = cmsCreateTransform(hLab, TYPE_Lab_DBL, hProfile, TYPE_CMYK_16, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC); hRelColCMYK2Lab = cmsCreateTransform(hProfile, TYPE_CMYK_16, hLab, TYPE_Lab_DBL, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); LabIn.L = LabIn.a = LabIn.b = 0; cmsDoTransform(hPercLab2CMYK, &LabIn, CMYK, 1); cmsDoTransform(hRelColCMYK2Lab, CMYK, &LabOut, 1); if (LabOut.L > 50) LabOut.L = 50; LabOut.a = LabOut.b = 0; cmsDeleteTransform(hPercLab2CMYK); cmsDeleteTransform(hRelColCMYK2Lab); cmsCloseProfile(hLab); cmsLab2XYZ(NULL, &BlackXYZ, &LabOut); if (!(dwFlags & LCMS_BPFLAGS_D50_ADAPTED)){ cmsTakeMediaWhitePoint(&MediaWhite, hProfile); cmsAdaptToIlluminant(BlackPoint, cmsD50_XYZ(), &MediaWhite, &BlackXYZ); } else *BlackPoint = BlackXYZ; return 1; } // Get Perceptual black of v4 profiles. static int GetV4PerceptualBlack(LPcmsCIEXYZ BlackPoint, cmsHPROFILE hProfile, DWORD dwFlags) { if (dwFlags & LCMS_BPFLAGS_D50_ADAPTED) { BlackPoint->X = PERCEPTUAL_BLACK_X; BlackPoint->Y = PERCEPTUAL_BLACK_Y; BlackPoint->Z = PERCEPTUAL_BLACK_Z; } else { cmsCIEXYZ D50BlackPoint, MediaWhite; cmsTakeMediaWhitePoint(&MediaWhite, hProfile); D50BlackPoint.X = PERCEPTUAL_BLACK_X; D50BlackPoint.Y = PERCEPTUAL_BLACK_Y; D50BlackPoint.Z = PERCEPTUAL_BLACK_Z; // Obtain the absolute XYZ. Adapt perceptual black back from D50 to whatever media white cmsAdaptToIlluminant(BlackPoint, cmsD50_XYZ(), &MediaWhite, &D50BlackPoint); } return 1; } // This function shouldn't exist at all -- there is such quantity of broken // profiles on black point tag, that we must somehow fix chromaticity to // avoid huge tint when doing Black point compensation. This function does // just that. There is a special flag for using black point tag, but turned // off by default because it is bogus on most profiles. The detection algorithm // involves to turn BP to neutral and to use only L component. int cmsDetectBlackPoint(LPcmsCIEXYZ BlackPoint, cmsHPROFILE hProfile, int Intent, DWORD dwFlags) { // v4 + perceptual & saturation intents does have its own black point, and it is // well specified enough to use it. if ((cmsGetProfileICCversion(hProfile) >= 0x4000000) && (Intent == INTENT_PERCEPTUAL || Intent == INTENT_SATURATION)) { // Matrix shaper share MRC & perceptual intents if (_cmsIsMatrixShaper(hProfile)) return BlackPointAsDarkerColorant(hProfile, INTENT_RELATIVE_COLORIMETRIC, BlackPoint, cmsFLAGS_NOTPRECALC); // CLUT based - Get perceptual black point (fixed value) return GetV4PerceptualBlack(BlackPoint, hProfile, dwFlags); } #ifdef HONOR_BLACK_POINT_TAG // v2, v4 rel/abs colorimetric if (cmsIsTag(hProfile, icSigMediaBlackPointTag) && Intent == INTENT_RELATIVE_COLORIMETRIC) { cmsCIEXYZ BlackXYZ, UntrustedBlackPoint, TrustedBlackPoint, MediaWhite; cmsCIELab Lab; // If black point is specified, then use it, cmsTakeMediaBlackPoint(&BlackXYZ, hProfile); cmsTakeMediaWhitePoint(&MediaWhite, hProfile); // Black point is absolute XYZ, so adapt to D50 to get PCS value cmsAdaptToIlluminant(&UntrustedBlackPoint, &MediaWhite, cmsD50_XYZ(), &BlackXYZ); // Force a=b=0 to get rid of any chroma cmsXYZ2Lab(NULL, &Lab, &UntrustedBlackPoint); Lab.a = Lab.b = 0; if (Lab.L > 50) Lab.L = 50; // Clip to L* <= 50 cmsLab2XYZ(NULL, &TrustedBlackPoint, &Lab); // Return BP as D50 relative or absolute XYZ (depends on flags) if (!(dwFlags & LCMS_BPFLAGS_D50_ADAPTED)) cmsAdaptToIlluminant(BlackPoint, cmsD50_XYZ(), &MediaWhite, &TrustedBlackPoint); else *BlackPoint = TrustedBlackPoint; return 1; } #endif // That is about v2 profiles. // If output profile, discount ink-limiting and that's all if (Intent == INTENT_RELATIVE_COLORIMETRIC && (cmsGetDeviceClass(hProfile) == icSigOutputClass) && (cmsGetColorSpace(hProfile) == icSigCmykData)) return BlackPointUsingPerceptualBlack(BlackPoint, hProfile, dwFlags); // Nope, compute BP using current intent. return BlackPointAsDarkerColorant(hProfile, Intent, BlackPoint, dwFlags); } lcms-1.19/src/cmsxform.c0000777000175300010010000017006211272606371014460 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" // Transformations stuff // ----------------------------------------------------------------------- // Interface cmsHTRANSFORM LCMSEXPORT cmsCreateTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, int Intent, DWORD dwFlags); cmsHTRANSFORM LCMSEXPORT cmsCreateProofingTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, cmsHPROFILE Proofing, int Intent, int ProofingIntent, DWORD dwFlags); void LCMSEXPORT cmsDeleteTransform(cmsHTRANSFORM hTransform); void LCMSEXPORT cmsDoTransform(cmsHTRANSFORM Transform, LPVOID InputBuffer, LPVOID OutputBuffer, unsigned int Size); void LCMSEXPORT cmsGetAlarmCodes(int *r, int *g, int *b); void LCMSEXPORT cmsSetAlarmCodes(int r, int g, int b); LCMSBOOL LCMSEXPORT cmsIsIntentSupported(cmsHPROFILE hProfile, int Intent, int UsedDirection); // ------------------------------------------------------------------------- // Alarm RGB codes static WORD AlarmR = 0x8fff, AlarmG = 0x8fff, AlarmB = 0x8fff; // Tag tables, soted by intents static icTagSignature Device2PCS[] = {icSigAToB0Tag, // Perceptual icSigAToB1Tag, // Relative colorimetric icSigAToB2Tag, // Saturation icSigAToB1Tag }; // Absolute colorimetric // (Relative/WhitePoint) static icTagSignature PCS2Device[] = {icSigBToA0Tag, // Perceptual icSigBToA1Tag, // Relative colorimetric icSigBToA2Tag, // Saturation icSigBToA1Tag }; // Absolute colorimetric // (Relative/WhitePoint) static icTagSignature Preview[] = {icSigPreview0Tag, icSigPreview1Tag, icSigPreview2Tag, icSigPreview1Tag }; static volatile double GlobalAdaptationState = 0; // --------------------------------Stages-------------------------------------- // Following routines does implement several kind of steps inside // transform. On building the transform, code chooses adequate. // From Shaper-Matrix to PCS static void ShaperMatrixToPCS(struct _cmstransform_struct *p, WORD In[3], WORD Out[3]) { cmsEvalMatShaper(p -> InMatShaper, In, Out); } // From LUT to PCS static void LUTtoPCS(struct _cmstransform_struct *p, WORD In[], WORD Out[3]) { cmsEvalLUT(p -> Device2PCS, In, Out); } // From indexed named color to PCS static void NC2toPCS(struct _cmstransform_struct *p, WORD In[], WORD Out[3]) { int index = In[0]; if (index >= p ->NamedColorList-> nColors) cmsSignalError(LCMS_ERRC_WARNING, "Color %d out of range", index); else CopyMemory(Out, p ->NamedColorList->List[index].PCS, 3 * sizeof(WORD)); } // From PCS to Shaper-Matrix static void PCStoShaperMatrix(struct _cmstransform_struct *p, WORD In[3], WORD Out[3]) { cmsEvalMatShaper(p -> OutMatShaper, In, Out); } // From PCS to LUT static void PCStoLUT(struct _cmstransform_struct *p, WORD In[3], WORD Out[]) { cmsEvalLUT(p -> PCS2Device, In, Out); } // ----------------------- TRANSFORMATIONS -------------------------- // Inlining some assignations #define COPY_3CHANS(to, from) { to[0]=from[0]; to[1]=from[1]; to[2]=from[2]; } // Null transformation, only hold channels static void NullXFORM(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS]; register unsigned int i, n; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); output = p -> ToOutput(p, wIn, output); } } // This is the "normal" proofing transform static void NormalXFORM(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; WORD wStageABC[3], wPCS[3], wStageLMN[MAXCHANNELS]; WORD wGamut[1]; register unsigned int i, n; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); p -> FromDevice(p, wIn, wStageABC); if (p -> Stage1) { p -> Stage1(wStageABC, wPCS, &p->m1, &p->of1); if (wPCS[0] == 0xFFFF && wPCS[1] == 0xFFFF && wPCS[2] == 0xFFFF) { // White cutoff output = p -> ToOutput((_LPcmsTRANSFORM) p, _cmsWhiteBySpace(cmsGetColorSpace(p -> OutputProfile)), output); continue; } } else COPY_3CHANS(wPCS, wStageABC); if (p->Gamut) { // Gamut check, enabled across CLUT cmsEvalLUT(p -> Gamut, wPCS, wGamut); if (wGamut[0] >= 1) { wOut[0] = AlarmR; // Gamut alarm wOut[1] = AlarmG; wOut[2] = AlarmB; wOut[3] = 0; output = p -> ToOutput((_LPcmsTRANSFORM)p, wOut, output); continue; } } if (p -> Preview) { WORD wPreview[3]; // PCS cmsEvalLUT(p -> Preview, wPCS, wPreview); COPY_3CHANS(wPCS, wPreview); } if (p -> Stage2) { p -> Stage2(wPCS, wStageLMN, &p->m2, &p->of2); if (wPCS[0] == 0xFFFF && wPCS[1] == 0xFFFF && wPCS[2] == 0xFFFF) { // White cutoff output = p -> ToOutput((_LPcmsTRANSFORM)p, _cmsWhiteBySpace(cmsGetColorSpace(p -> OutputProfile)), output); continue; } } else COPY_3CHANS(wStageLMN, wPCS); // Here wOut may come as MAXCHANNELS channels p -> ToDevice(p, wStageLMN, wOut); output = p -> ToOutput((_LPcmsTRANSFORM)p, wOut, output); } } // Using precalculated LUT static void PrecalculatedXFORM(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; unsigned int i, n; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); // Try to speedup things on plain devicelinks if (p ->DeviceLink ->wFlags == LUT_HAS3DGRID) { p ->DeviceLink ->CLut16params.Interp3D(wIn, wOut, p ->DeviceLink -> T, &p ->DeviceLink -> CLut16params); } else cmsEvalLUT(p -> DeviceLink, wIn, wOut); output = p -> ToOutput(p, wOut, output); } } // Auxiliar: Handle precalculated gamut check static void TransformOnePixelWithGamutCheck(_LPcmsTRANSFORM p, WORD wIn[], WORD wOut[]) { WORD wOutOfGamut; cmsEvalLUT(p ->GamutCheck, wIn, &wOutOfGamut); if (wOutOfGamut >= 1) { ZeroMemory(wOut, sizeof(WORD) * MAXCHANNELS); wOut[0] = AlarmR; wOut[1] = AlarmG; wOut[2] = AlarmB; } else cmsEvalLUT(p -> DeviceLink, wIn, wOut); } static void PrecalculatedXFORMGamutCheck(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; register unsigned int i, n; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); TransformOnePixelWithGamutCheck(p, wIn, wOut); output = p -> ToOutput(p, wOut, output); } } // Using precalculated LUT + Cache static void CachedXFORM(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; register unsigned int i, n; WORD CacheIn[MAXCHANNELS], CacheOut[MAXCHANNELS]; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len // Empty buffers for quick memcmp ZeroMemory(wIn, sizeof(WORD) * MAXCHANNELS); ZeroMemory(wOut, sizeof(WORD) * MAXCHANNELS); LCMS_READ_LOCK(&p ->rwlock); CopyMemory(CacheIn, p ->CacheIn, sizeof(WORD) * MAXCHANNELS); CopyMemory(CacheOut, p ->CacheOut, sizeof(WORD) * MAXCHANNELS); LCMS_UNLOCK(&p ->rwlock); for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); if (memcmp(wIn, CacheIn, sizeof(WORD) * MAXCHANNELS) == 0) { CopyMemory(wOut, CacheOut, sizeof(WORD) * MAXCHANNELS); } else { // Try to speedup things on plain devicelinks if (p ->DeviceLink ->wFlags == LUT_HAS3DGRID) { p ->DeviceLink ->CLut16params.Interp3D(wIn, wOut, p ->DeviceLink -> T, &p ->DeviceLink -> CLut16params); } else cmsEvalLUT(p -> DeviceLink, wIn, wOut); CopyMemory(CacheIn, wIn, sizeof(WORD) * MAXCHANNELS); CopyMemory(CacheOut, wOut, sizeof(WORD) * MAXCHANNELS); } output = p -> ToOutput(p, wOut, output); } LCMS_WRITE_LOCK(&p ->rwlock); CopyMemory(p->CacheIn, CacheIn, sizeof(WORD) * MAXCHANNELS); CopyMemory(p->CacheOut, CacheOut, sizeof(WORD) * MAXCHANNELS); LCMS_UNLOCK(&p ->rwlock); } // Using precalculated LUT + Cache static void CachedXFORMGamutCheck(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; register unsigned int i, n; WORD CacheIn[MAXCHANNELS], CacheOut[MAXCHANNELS]; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len // Empty buffers for quick memcmp ZeroMemory(wIn, sizeof(WORD) * MAXCHANNELS); ZeroMemory(wOut, sizeof(WORD) * MAXCHANNELS); LCMS_READ_LOCK(&p ->rwlock); CopyMemory(CacheIn, p ->CacheIn, sizeof(WORD) * MAXCHANNELS); CopyMemory(CacheOut, p ->CacheOut, sizeof(WORD) * MAXCHANNELS); LCMS_UNLOCK(&p ->rwlock); for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); if (memcmp(wIn, CacheIn, sizeof(WORD) * MAXCHANNELS) == 0) { CopyMemory(wOut, CacheOut, sizeof(WORD) * MAXCHANNELS); } else { TransformOnePixelWithGamutCheck(p, wIn, wOut); CopyMemory(CacheIn, wIn, sizeof(WORD) * MAXCHANNELS); CopyMemory(CacheOut, wOut, sizeof(WORD) * MAXCHANNELS); } output = p -> ToOutput(p, wOut, output); } LCMS_WRITE_LOCK(&p ->rwlock); CopyMemory(p->CacheIn, CacheIn, sizeof(WORD) * MAXCHANNELS); CopyMemory(p->CacheOut, CacheOut, sizeof(WORD) * MAXCHANNELS); LCMS_UNLOCK(&p ->rwlock); } // Using smelted Matrix/Shaper static void MatrixShaperXFORM(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; register unsigned int i, n; accum = (LPBYTE) in; output = (LPBYTE) out; n = Size; // Buffer len for (i=0; i < n; i++) { accum = p -> FromInput(p, wIn, accum); cmsEvalMatShaper(p -> SmeltMatShaper, wIn, wOut); output = p -> ToOutput(p, wOut, output); } } // Using Named color input table static void NC2deviceXform(_LPcmsTRANSFORM p, LPVOID in, LPVOID out, unsigned int Size) { register LPBYTE accum; register LPBYTE output; WORD wIn[MAXCHANNELS], wOut[MAXCHANNELS]; register unsigned int i; accum = (LPBYTE) in; output = (LPBYTE) out; for (i=0; i < Size; i++) { accum = p -> FromInput(p, wIn, accum); CopyMemory(wOut, p ->NamedColorList->List[wIn[0]].DeviceColorant, sizeof(WORD) * MAXCHANNELS); output = p -> ToOutput(p, wOut, output); } } // -------------------------------------------------------------------------- // Build a LUT based on shape-matrix method. // Some non-conformant gray profiles are using kTCR as L*, // this function converts the curve to XYZ PCS. static void FromLstarToXYZ(LPGAMMATABLE g, LPGAMMATABLE gxyz[3]) { int i; int nPoints = 4096; cmsCIELab Lab; cmsCIEXYZ XYZ; L16PARAMS L16; // Setup interpolation across origin cmsCalcL16Params(g ->nEntries, &L16); // Allocate curves gxyz[0] = cmsAllocGamma(nPoints); gxyz[1] = cmsAllocGamma(nPoints); gxyz[2] = cmsAllocGamma(nPoints); // Transport from Lab to XYZ for (i=0; i < nPoints; i++) { WORD val = _cmsQuantizeVal(i, nPoints); WORD w = cmsLinearInterpLUT16(val, g->GammaTable, &L16); Lab.L = ((double) 100.0 * w ) / 65535.0; Lab.a = Lab.b = 0; cmsLab2XYZ(NULL, &XYZ, &Lab); // Should be same curve gxyz[0] ->GammaTable[i] = (WORD) floor((65535.0 * XYZ.X) / D50X + 0.5); gxyz[1] ->GammaTable[i] = (WORD) floor((65535.0 * XYZ.Y) / D50Y + 0.5); gxyz[2] ->GammaTable[i] = (WORD) floor((65535.0 * XYZ.Z) / D50Z + 0.5); } } // Monochrome version static LPMATSHAPER cmsBuildGrayInputMatrixShaper(cmsHPROFILE hProfile) { cmsCIEXYZ Illuminant; LPGAMMATABLE GrayTRC, Shapes[3]; LPMATSHAPER MatShaper; MAT3 Scale; GrayTRC = cmsReadICCGamma(hProfile, icSigGrayTRCTag); // Y if (GrayTRC == NULL) return NULL; cmsTakeIluminant(&Illuminant, hProfile); if (cmsGetPCS(hProfile) == icSigLabData) { // Fixup for Lab monochrome FromLstarToXYZ(GrayTRC, Shapes); } else { Shapes[0] = cmsDupGamma(GrayTRC); Shapes[1] = cmsDupGamma(GrayTRC); Shapes[2] = cmsDupGamma(GrayTRC); } if (!Shapes[0] || !Shapes[1] || !Shapes[2]) return NULL; cmsFreeGamma(GrayTRC); // R=G=B as precondition VEC3init(&Scale.v[0], Illuminant.X/3, Illuminant.X/3, Illuminant.X/3); VEC3init(&Scale.v[1], Illuminant.Y/3, Illuminant.Y/3, Illuminant.Y/3); VEC3init(&Scale.v[2], Illuminant.Z/3, Illuminant.Z/3, Illuminant.Z/3); MatShaper = cmsAllocMatShaper(&Scale, Shapes, MATSHAPER_INPUT); cmsFreeGammaTriple(Shapes); return MatShaper; } // Monochrome as output static LPMATSHAPER cmsBuildGrayOutputMatrixShaper(cmsHPROFILE hProfile) { cmsCIEXYZ Illuminant; LPGAMMATABLE GrayTRC, Shapes[3]; LPMATSHAPER MatShaper; MAT3 Scale; cmsTakeIluminant(&Illuminant, hProfile); // That is a special case for non-compliant profiles. if (cmsGetPCS(hProfile) == icSigLabData) { LPGAMMATABLE Shapes1[3]; GrayTRC = cmsReadICCGamma(hProfile, icSigGrayTRCTag); if (GrayTRC == NULL) return NULL; FromLstarToXYZ(GrayTRC, Shapes1); // Reversing must be done after curve translation Shapes[0] = cmsReverseGamma(Shapes1[0]->nEntries, Shapes1[0]); Shapes[1] = cmsReverseGamma(Shapes1[1]->nEntries, Shapes1[1]); Shapes[2] = cmsReverseGamma(Shapes1[2]->nEntries, Shapes1[2]); cmsFreeGammaTriple(Shapes1); } else { // Normal case GrayTRC = cmsReadICCGammaReversed(hProfile, icSigGrayTRCTag); // Y if (GrayTRC == NULL) return NULL; Shapes[0] = cmsDupGamma(GrayTRC); Shapes[1] = cmsDupGamma(GrayTRC); Shapes[2] = cmsDupGamma(GrayTRC); } if (!Shapes[0] || !Shapes[1] || !Shapes[2]) return NULL; cmsFreeGamma(GrayTRC); VEC3init(&Scale.v[0], 0, 1.0/Illuminant.Y, 0); VEC3init(&Scale.v[1], 0, 1.0/Illuminant.Y, 0); VEC3init(&Scale.v[2], 0, 1.0/Illuminant.Y, 0); MatShaper = cmsAllocMatShaper(&Scale, Shapes, MATSHAPER_OUTPUT); cmsFreeGammaTriple(Shapes); return MatShaper; } // Input matrix, only in XYZ LPMATSHAPER cmsBuildInputMatrixShaper(cmsHPROFILE InputProfile) { MAT3 DoubleMat; LPGAMMATABLE Shapes[3]; LPMATSHAPER InMatSh; // Check if this is a grayscale profile. If so, build // appropiate conversion tables. The tables are the PCS // iluminant, scaled across GrayTRC if (cmsGetColorSpace(InputProfile) == icSigGrayData) { return cmsBuildGrayInputMatrixShaper(InputProfile); } if (!cmsReadICCMatrixRGB2XYZ(&DoubleMat, InputProfile)) return NULL; Shapes[0] = cmsReadICCGamma(InputProfile, icSigRedTRCTag); Shapes[1] = cmsReadICCGamma(InputProfile, icSigGreenTRCTag); Shapes[2] = cmsReadICCGamma(InputProfile, icSigBlueTRCTag); if (!Shapes[0] || !Shapes[1] || !Shapes[2]) return NULL; InMatSh = cmsAllocMatShaper(&DoubleMat, Shapes, MATSHAPER_INPUT); cmsFreeGammaTriple(Shapes); return InMatSh; } // Output style matrix-shaper LPMATSHAPER cmsBuildOutputMatrixShaper(cmsHPROFILE OutputProfile) { MAT3 DoubleMat, DoubleInv; LPGAMMATABLE InverseShapes[3]; LPMATSHAPER OutMatSh; if (cmsGetColorSpace(OutputProfile) == icSigGrayData) { return cmsBuildGrayOutputMatrixShaper(OutputProfile); } if (!cmsReadICCMatrixRGB2XYZ(&DoubleMat, OutputProfile)) return NULL; if (MAT3inverse(&DoubleMat, &DoubleInv) < 0) return NULL; InverseShapes[0] = cmsReadICCGammaReversed(OutputProfile, icSigRedTRCTag); InverseShapes[1] = cmsReadICCGammaReversed(OutputProfile, icSigGreenTRCTag); InverseShapes[2] = cmsReadICCGammaReversed(OutputProfile, icSigBlueTRCTag); if (InverseShapes[0] == NULL || InverseShapes[1] == NULL || InverseShapes[2] == NULL) return NULL; OutMatSh = cmsAllocMatShaper(&DoubleInv, InverseShapes, MATSHAPER_OUTPUT); cmsFreeGammaTriple(InverseShapes); return OutMatSh; } // This function builds a transform matrix chaining parameters static LCMSBOOL cmsBuildSmeltMatShaper(_LPcmsTRANSFORM p) { MAT3 From, To, ToInv, Transfer; LPGAMMATABLE In[3], InverseOut[3]; if (!cmsReadICCMatrixRGB2XYZ(&From, p -> InputProfile)) return FALSE; if (!cmsReadICCMatrixRGB2XYZ(&To, p -> OutputProfile)) return FALSE; // invert dest if (MAT3inverse(&To, &ToInv) < 0) return FALSE; // Multiply MAT3per(&Transfer, &ToInv, &From); // Read gamma curves In[0] = cmsReadICCGamma(p -> InputProfile, icSigRedTRCTag); In[1] = cmsReadICCGamma(p -> InputProfile, icSigGreenTRCTag); In[2] = cmsReadICCGamma(p -> InputProfile, icSigBlueTRCTag); if (!In[0] || !In[1] || !In[2]) return FALSE; InverseOut[0] = cmsReadICCGammaReversed(p -> OutputProfile, icSigRedTRCTag); InverseOut[1] = cmsReadICCGammaReversed(p -> OutputProfile, icSigGreenTRCTag); InverseOut[2] = cmsReadICCGammaReversed(p -> OutputProfile, icSigBlueTRCTag); if (!InverseOut[0] || !InverseOut[1] || !InverseOut[2]) { cmsFreeGammaTriple(In); return FALSE; } p -> SmeltMatShaper = cmsAllocMatShaper2(&Transfer, In, InverseOut, MATSHAPER_ALLSMELTED); cmsFreeGammaTriple(In); cmsFreeGammaTriple(InverseOut); return (p -> SmeltMatShaper != NULL); } // Conversion between PCS ------------------------------------------ // Identifies intent archieved by LUT static int GetPhase(cmsHPROFILE hProfile) { switch (cmsGetPCS(hProfile)) { case icSigXYZData: return XYZRel; case icSigLabData: return LabRel; default: cmsSignalError(LCMS_ERRC_ABORTED, "Invalid PCS"); } return XYZRel; } static void TakeConversionRoutines(_LPcmsTRANSFORM p, int DoBPC) { cmsCIEXYZ BlackPointIn, WhitePointIn, IlluminantIn; cmsCIEXYZ BlackPointOut, WhitePointOut, IlluminantOut; cmsCIEXYZ BlackPointProof, WhitePointProof, IlluminantProof; MAT3 ChromaticAdaptationMatrixIn, ChromaticAdaptationMatrixOut; MAT3 ChromaticAdaptationMatrixProof; cmsTakeIluminant(&IlluminantIn, p -> InputProfile); cmsTakeMediaWhitePoint(&WhitePointIn, p -> InputProfile); cmsTakeMediaBlackPoint(&BlackPointIn, p -> InputProfile); cmsReadChromaticAdaptationMatrix(&ChromaticAdaptationMatrixIn, p -> InputProfile); cmsTakeIluminant(&IlluminantOut, p -> OutputProfile); cmsTakeMediaWhitePoint(&WhitePointOut, p -> OutputProfile); cmsTakeMediaBlackPoint(&BlackPointOut, p -> OutputProfile); cmsReadChromaticAdaptationMatrix(&ChromaticAdaptationMatrixOut, p -> OutputProfile); if (p -> Preview == NULL && p ->Gamut == NULL) // Non-proofing { if (p ->Intent == INTENT_PERCEPTUAL || p ->Intent == INTENT_SATURATION) { // For v4 profiles, Perceptual PCS has a reference black point // which v2 profiles should scale to. if ((cmsGetProfileICCversion(p ->InputProfile) >= 0x4000000) || (cmsGetProfileICCversion(p ->OutputProfile) >= 0x4000000)) { DoBPC = TRUE; } } // Black point compensation does not apply to absolute intent if (p ->Intent == INTENT_ABSOLUTE_COLORIMETRIC) DoBPC = FALSE; // Black point compensation does not apply to devicelink profiles if (cmsGetDeviceClass(p ->InputProfile) == icSigLinkClass) DoBPC = FALSE; if (cmsGetDeviceClass(p ->OutputProfile) == icSigLinkClass) DoBPC = FALSE; if (DoBPC) { // Detect Black points cmsDetectBlackPoint(&BlackPointIn, p->InputProfile, p->Intent, 0); cmsDetectBlackPoint(&BlackPointOut, p->OutputProfile, p->Intent, 0); // If equal black points, then do nothing. This often applies to BP=0 if (BlackPointIn.X == BlackPointOut.X && BlackPointIn.Y == BlackPointOut.Y && BlackPointIn.Z == BlackPointOut.Z) DoBPC = FALSE; } cmsChooseCnvrt(p -> Intent == INTENT_ABSOLUTE_COLORIMETRIC, p -> Phase1, &BlackPointIn, &WhitePointIn, &IlluminantIn, &ChromaticAdaptationMatrixIn, p -> Phase3, &BlackPointOut, &WhitePointOut, &IlluminantOut, &ChromaticAdaptationMatrixOut, DoBPC, p ->AdaptationState, &p->Stage1, &p->m1, &p->of1); } else // Proofing { cmsTakeIluminant(&IlluminantProof, p -> PreviewProfile); cmsTakeMediaWhitePoint(&WhitePointProof, p -> PreviewProfile); cmsTakeMediaBlackPoint(&BlackPointProof, p -> PreviewProfile); cmsReadChromaticAdaptationMatrix(&ChromaticAdaptationMatrixProof, p -> PreviewProfile); if (DoBPC) { cmsDetectBlackPoint(&BlackPointProof, p->PreviewProfile, p->Intent, 0); cmsDetectBlackPoint(&BlackPointIn, p->InputProfile, p->Intent, 0); cmsDetectBlackPoint(&BlackPointOut, p->OutputProfile, p->Intent, 0); // Reality check if (BlackPointIn.X == BlackPointProof.X && BlackPointIn.Y == BlackPointProof.Y && BlackPointIn.Z == BlackPointProof.Z) DoBPC = FALSE; } cmsChooseCnvrt(p -> Intent == INTENT_ABSOLUTE_COLORIMETRIC, p -> Phase1, &BlackPointIn, &WhitePointIn, &IlluminantIn, &ChromaticAdaptationMatrixIn, p -> Phase2, &BlackPointProof, &WhitePointProof, &IlluminantProof, &ChromaticAdaptationMatrixProof, DoBPC, p ->AdaptationState, &p->Stage1, &p->m1, &p->of1); cmsChooseCnvrt(p -> ProofIntent == INTENT_ABSOLUTE_COLORIMETRIC, p -> Phase2, &BlackPointProof, &WhitePointProof, &IlluminantProof, &ChromaticAdaptationMatrixProof, p -> Phase3, &BlackPointOut, &WhitePointOut, &IlluminantOut, &ChromaticAdaptationMatrixOut, 0, 0.0, &p->Stage2, &p->m2, &p->of2); } } // Check colorspace static LCMSBOOL IsProperColorSpace(cmsHPROFILE hProfile, DWORD dwFormat, LCMSBOOL lUsePCS) { int Space = T_COLORSPACE(dwFormat); if (Space == PT_ANY) return TRUE; if (lUsePCS) return (Space == _cmsLCMScolorSpace(cmsGetPCS(hProfile))); else return (Space == _cmsLCMScolorSpace(cmsGetColorSpace(hProfile))); } // Auxiliary: allocate transform struct and set to defaults static _LPcmsTRANSFORM AllocEmptyTransform(void) { // Allocate needed memory _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) _cmsMalloc(sizeof(_cmsTRANSFORM)); if (!p) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateTransform: _cmsMalloc() failed"); return NULL; } ZeroMemory(p, sizeof(_cmsTRANSFORM)); // Initialize default methods p -> xform = NULL; p -> Intent = INTENT_PERCEPTUAL; p -> ProofIntent = INTENT_ABSOLUTE_COLORIMETRIC; p -> DoGamutCheck = FALSE; p -> InputProfile = NULL; p -> OutputProfile = NULL; p -> PreviewProfile = NULL; p -> Preview = NULL; p -> Gamut = NULL; p -> DeviceLink = NULL; p -> InMatShaper = NULL; p -> OutMatShaper = NULL; p -> SmeltMatShaper = NULL; p -> NamedColorList = NULL; p -> EntryColorSpace = (icColorSpaceSignature) 0; p -> ExitColorSpace = (icColorSpaceSignature) 0; p -> AdaptationState = GlobalAdaptationState; LCMS_CREATE_LOCK(&p->rwlock); return p; } // Identify whatever a transform is to be cached static void SetPrecalculatedTransform(_LPcmsTRANSFORM p) { if ((p->dwOriginalFlags & cmsFLAGS_GAMUTCHECK) && p ->GamutCheck != NULL) { p -> xform = PrecalculatedXFORMGamutCheck; if (!(p->dwOriginalFlags & cmsFLAGS_NOTCACHE)) { ZeroMemory(p ->CacheIn, sizeof(WORD) * MAXCHANNELS); TransformOnePixelWithGamutCheck(p, p->CacheIn, p ->CacheOut); p ->xform = CachedXFORMGamutCheck; } } else { p -> xform = PrecalculatedXFORM; if (!(p->dwOriginalFlags & cmsFLAGS_NOTCACHE)) { ZeroMemory(p ->CacheIn, sizeof(WORD) * MAXCHANNELS); cmsEvalLUT(p ->DeviceLink, p->CacheIn, p ->CacheOut); p ->xform = CachedXFORM; } } } // Transform is identified as device-link static cmsHPROFILE CreateDeviceLinkTransform(_LPcmsTRANSFORM p) { if (!IsProperColorSpace(p->InputProfile, p->InputFormat, FALSE)) { cmsSignalError(LCMS_ERRC_ABORTED, "Device link is operating on wrong colorspace on input"); return NULL; } if (!IsProperColorSpace(p->InputProfile, p->OutputFormat, TRUE)) { cmsSignalError(LCMS_ERRC_ABORTED, "Device link is operating on wrong colorspace on output"); return NULL; } // Device link does only have AToB0Tag (ICC-Spec 1998/09) p->DeviceLink = cmsReadICCLut(p->InputProfile, icSigAToB0Tag); if (!p->DeviceLink) { cmsSignalError(LCMS_ERRC_ABORTED, "Noncompliant device-link profile"); cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } if (p ->PreviewProfile != NULL) { cmsSignalError(LCMS_ERRC_WARNING, "Proofing not supported on device link transforms"); } if (p ->OutputProfile != NULL) { cmsSignalError(LCMS_ERRC_WARNING, "Output profile should be NULL, since this is a device-link transform"); } p -> Phase1 = -1; p -> Phase2 = -1; p -> Phase3 = -1; SetPrecalculatedTransform(p); p -> EntryColorSpace = cmsGetColorSpace(p -> InputProfile); p -> ExitColorSpace = cmsGetPCS(p -> InputProfile); if (p ->EntryColorSpace == icSigRgbData || p ->EntryColorSpace == icSigCmyData) { p->DeviceLink -> CLut16params.Interp3D = cmsTetrahedralInterp16; } // Precalculated device-link profile is ready return (cmsHTRANSFORM) p; } // Transform that includes proofing static void CreateProof(_LPcmsTRANSFORM p, icTagSignature *ToTagPtr) { icTagSignature ProofTag; if (p -> dwOriginalFlags & cmsFLAGS_SOFTPROOFING) { // Apr-15, 2002 - Too much profiles does have bogus content // on preview tag, so I do compute it by my own. p -> Preview = _cmsComputeSoftProofLUT(p ->PreviewProfile, p ->Intent); p -> Phase2 = LabRel; // That's a proofing transfor, so use second intent for output. *ToTagPtr = PCS2Device[p->ProofIntent]; if (p -> Preview == NULL) { ProofTag = Preview[p -> Intent]; if (!cmsIsTag(p ->PreviewProfile, ProofTag)) { ProofTag = Preview[0]; if (!cmsIsTag(p ->PreviewProfile, ProofTag)) ProofTag = (icTagSignature)0; } if (ProofTag) { p -> Preview = cmsReadICCLut(p ->PreviewProfile, ProofTag); p -> Phase2 = GetPhase(p ->PreviewProfile); } else { p -> Preview = NULL; p ->PreviewProfile = NULL; cmsSignalError(LCMS_ERRC_WARNING, "Sorry, the proof profile has not previewing capabilities"); } } } // Aug-31, 2001 - Too much profiles does have bogus content // on gamut tag, so I do compute it by my own. if ((p -> dwOriginalFlags & cmsFLAGS_GAMUTCHECK) && (p -> dwOriginalFlags & cmsFLAGS_NOTPRECALC)) { p -> Gamut = _cmsComputeGamutLUT(p->PreviewProfile, p ->Intent); p -> Phase2 = LabRel; if (p -> Gamut == NULL) { // Profile goes only in one direction... try to see // if profile has the tag, and use it, no matter it // could be bogus. This is the last chance! if (cmsIsTag(p ->PreviewProfile, icSigGamutTag)) { p -> Gamut = cmsReadICCLut(p ->PreviewProfile, icSigGamutTag); } else { // Nope, cannot be done. cmsSignalError(LCMS_ERRC_WARNING, "Sorry, the proof profile has not gamut checking capabilities"); p -> Gamut = NULL; } } } } // Choose the adequate transform routine static _LPcmsTRANSFORM PickTransformRoutine(_LPcmsTRANSFORM p, icTagSignature *FromTagPtr, icTagSignature *ToTagPtr) { // Is a named color profile? if (cmsGetDeviceClass(p->InputProfile) == icSigNamedColorClass) { // Yes, and used as input p ->FromDevice = NC2toPCS; } else { // Can we optimize matrix-shaper only transform? if ((*FromTagPtr == 0) && (*ToTagPtr == 0) && (!p->PreviewProfile) && (p -> Intent != INTENT_ABSOLUTE_COLORIMETRIC) && (p -> EntryColorSpace == icSigRgbData) && (p -> ExitColorSpace == icSigRgbData) && !(p -> dwOriginalFlags & cmsFLAGS_BLACKPOINTCOMPENSATION)) { // Yes... try to smelt matrix-shapers p -> xform = MatrixShaperXFORM; p -> dwOriginalFlags |= cmsFLAGS_NOTPRECALC; if (!cmsBuildSmeltMatShaper(p)) { cmsSignalError(LCMS_ERRC_ABORTED, "unable to smelt shaper-matrix, required tags missing"); return NULL; } p -> Phase1 = p -> Phase3 = XYZRel; return p; } // No, is a transform involving LUT if (*FromTagPtr != 0) { p -> FromDevice = LUTtoPCS; p -> Device2PCS = cmsReadICCLut(p -> InputProfile, *FromTagPtr); if (!p -> Device2PCS) { cmsSignalError(LCMS_ERRC_ABORTED, "profile is unsuitable for input"); return NULL; } } else { p -> FromDevice = ShaperMatrixToPCS; p -> InMatShaper = cmsBuildInputMatrixShaper(p -> InputProfile); if (!p ->InMatShaper) { cmsSignalError(LCMS_ERRC_ABORTED, "profile is unsuitable for input"); return NULL; } p -> Phase1 = XYZRel; } } if (*ToTagPtr != 0) { p -> ToDevice = PCStoLUT; p -> PCS2Device = cmsReadICCLut(p -> OutputProfile, *ToTagPtr); if (!p -> PCS2Device) { cmsSignalError(LCMS_ERRC_ABORTED, "profile is unsuitable for output"); return NULL; } } else { p -> ToDevice = PCStoShaperMatrix; p -> OutMatShaper = cmsBuildOutputMatrixShaper(p->OutputProfile); if (!p -> OutMatShaper) { cmsSignalError(LCMS_ERRC_ABORTED, "profile is unsuitable for output"); return NULL; } p -> Phase3 = XYZRel; } return p; } // Create a transform. cmsHTRANSFORM LCMSEXPORT cmsCreateProofingTransform(cmsHPROFILE InputProfile, DWORD InputFormat, cmsHPROFILE OutputProfile, DWORD OutputFormat, cmsHPROFILE ProofingProfile, int nIntent, int ProofingIntent, DWORD dwFlags) { _LPcmsTRANSFORM p; icTagSignature FromTag; icTagSignature ToTag; if (nIntent < 0 || nIntent > 3 || ProofingIntent < 0 || ProofingIntent > 3) { cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateTransform: intent mismatch"); return NULL; } p = AllocEmptyTransform(); if (p == NULL) return NULL; p -> xform = NormalXFORM; p -> Intent = nIntent; p -> ProofIntent = ProofingIntent; p -> DoGamutCheck = FALSE; p -> InputProfile = InputProfile; p -> OutputProfile = OutputProfile; p -> PreviewProfile = ProofingProfile; p -> InputFormat = InputFormat; p -> OutputFormat = OutputFormat; p -> dwOriginalFlags = dwFlags; p -> lInputV4Lab = p ->lOutputV4Lab = FALSE; p -> FromInput = _cmsIdentifyInputFormat(p, InputFormat); p -> ToOutput = _cmsIdentifyOutputFormat(p, OutputFormat); // Null transform can be done without profiles if ((p->dwOriginalFlags & cmsFLAGS_NULLTRANSFORM) || ((InputProfile == NULL) && (OutputProfile == NULL))) { p -> xform = NullXFORM; return (cmsHTRANSFORM) p; } // From here we need at least one input profile if (InputProfile == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Input profile cannot be NULL!"); cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } // Device link are means to store precalculated transform grids. if (cmsGetDeviceClass(InputProfile) == icSigLinkClass) { return CreateDeviceLinkTransform(p); } if (!IsProperColorSpace(InputProfile, InputFormat, FALSE)) { cmsSignalError(LCMS_ERRC_ABORTED, "Input profile is operating on wrong colorspace"); cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } p ->EntryColorSpace = cmsGetColorSpace(InputProfile); // Oct-21-2002: Added named color transforms if (cmsGetDeviceClass(InputProfile) == icSigNamedColorClass) { if (p ->NamedColorList == NULL) p ->NamedColorList = cmsAllocNamedColorList(0); cmsReadICCnamedColorList(p, InputProfile, icSigNamedColor2Tag); // Special case. If output profile == NULL, then the transform gives // device values from named colors. if (OutputProfile == NULL) { p ->ExitColorSpace = p -> EntryColorSpace; p ->xform = NC2deviceXform; return (cmsHTRANSFORM) p; } // Named color doesn't precalc anything p -> dwOriginalFlags |= cmsFLAGS_NOTPRECALC; } // From here we need also output profile. if (OutputProfile == NULL) { cmsSignalError(LCMS_ERRC_ABORTED, "Output profile cannot be NULL!"); cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } if (!IsProperColorSpace(OutputProfile, OutputFormat, FALSE)) { cmsSignalError(LCMS_ERRC_ABORTED, "Output profile is operating on wrong colorspace"); cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } p -> ExitColorSpace = cmsGetColorSpace(OutputProfile); // Named color only on input if (cmsGetDeviceClass(OutputProfile) == icSigNamedColorClass) { cmsSignalError(LCMS_ERRC_ABORTED, "Named color profiles are not supported as output"); cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } p -> Phase1 = GetPhase(InputProfile); p -> Phase2 = -1; p -> Phase3 = GetPhase(OutputProfile); // Try to locate a LUT FromTag = Device2PCS[nIntent]; ToTag = PCS2Device[nIntent]; if (!cmsIsTag(InputProfile, FromTag)) { FromTag = Device2PCS[0]; if (!cmsIsTag(InputProfile, FromTag)) { FromTag = (icTagSignature)0; } } // If proofing is needed, add required tags/parameters if (ProofingProfile) CreateProof(p, &ToTag); if (!cmsIsTag(OutputProfile, ToTag)) { ToTag = PCS2Device[0]; // 12-Dec-2003, Abstract profiles can be placed as output and still using AToB0 if (cmsGetDeviceClass(OutputProfile) == icSigAbstractClass) { if (!cmsIsTag(OutputProfile, ToTag)) { ToTag = (icTagSignature) icSigAToB0Tag; } } if (!cmsIsTag(OutputProfile, ToTag)) ToTag = (icTagSignature)0; } if (p-> dwOriginalFlags & cmsFLAGS_MATRIXINPUT) FromTag = (icTagSignature)0; if (p -> dwOriginalFlags & cmsFLAGS_MATRIXOUTPUT) ToTag = (icTagSignature)0; if (PickTransformRoutine(p, &FromTag, &ToTag) == NULL) { cmsDeleteTransform((cmsHTRANSFORM) p); return NULL; } TakeConversionRoutines(p, dwFlags & cmsFLAGS_BLACKPOINTCOMPENSATION); if (!(p -> dwOriginalFlags & cmsFLAGS_NOTPRECALC)) { LPLUT DeviceLink; LPLUT GamutCheck = NULL; if (p ->EntryColorSpace == icSigCmykData && p ->ExitColorSpace == icSigCmykData && (dwFlags & cmsFLAGS_PRESERVEBLACK)) { DeviceLink = _cmsPrecalculateBlackPreservingDeviceLink((cmsHTRANSFORM) p, dwFlags); // Cannot be done at all? if (DeviceLink == NULL) DeviceLink = _cmsPrecalculateDeviceLink((cmsHTRANSFORM) p, dwFlags); } else { DeviceLink = _cmsPrecalculateDeviceLink((cmsHTRANSFORM) p, dwFlags); } // Allow to specify cmsFLAGS_GAMUTCHECK, even if no proofing profile is given if ((p ->PreviewProfile != NULL) && (p -> dwOriginalFlags & cmsFLAGS_GAMUTCHECK)) { GamutCheck = _cmsPrecalculateGamutCheck((cmsHTRANSFORM) p); } // If input colorspace is Rgb, Cmy, then use tetrahedral interpolation // for speed reasons (it only works well on spaces on Luma is diagonal, and // not if luma is in separate channel) if (p ->EntryColorSpace == icSigRgbData || p ->EntryColorSpace == icSigCmyData) { cmsCalcCLUT16ParamsEx(DeviceLink->CLut16params.nSamples, DeviceLink->CLut16params.nInputs, DeviceLink->CLut16params.nOutputs, TRUE, &DeviceLink->CLut16params); } // If this is a 8-bit transform, optimize LUT further. if ((T_BYTES(InputFormat) == 1) && (T_CHANNELS(InputFormat) == 3)) { DeviceLink = _cmsBlessLUT8(DeviceLink); if (DeviceLink == NULL) return NULL; } p ->GamutCheck = GamutCheck; if (DeviceLink) { p ->DeviceLink = DeviceLink; if ((nIntent != INTENT_ABSOLUTE_COLORIMETRIC) && !(p -> dwOriginalFlags & cmsFLAGS_NOWHITEONWHITEFIXUP)) _cmsFixWhiteMisalignment(p); } else { cmsSignalError(LCMS_ERRC_ABORTED, "Cannot precalculate %d->%d channels transform!", T_CHANNELS(InputFormat), T_CHANNELS(OutputFormat)); cmsDeleteTransform(p); return NULL; } SetPrecalculatedTransform(p); } // Re-Identify formats p -> FromInput = _cmsIdentifyInputFormat(p, InputFormat); p -> ToOutput = _cmsIdentifyOutputFormat(p, OutputFormat); return p; } // Wrapper por simpler non-proofing transforms. cmsHTRANSFORM LCMSEXPORT cmsCreateTransform(cmsHPROFILE Input, DWORD InputFormat, cmsHPROFILE Output, DWORD OutputFormat, int Intent, DWORD dwFlags) { return cmsCreateProofingTransform(Input, InputFormat, Output, OutputFormat, NULL, Intent, INTENT_ABSOLUTE_COLORIMETRIC, dwFlags); } // Profiles are *NOT* closed void LCMSEXPORT cmsDeleteTransform(cmsHTRANSFORM hTransform) { _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) (LPSTR) hTransform; if (p -> Device2PCS) cmsFreeLUT(p -> Device2PCS); if (p -> PCS2Device) cmsFreeLUT(p -> PCS2Device); if (p -> Gamut) cmsFreeLUT(p -> Gamut); if (p -> Preview) cmsFreeLUT(p -> Preview); if (p -> DeviceLink) cmsFreeLUT(p -> DeviceLink); if (p -> InMatShaper) cmsFreeMatShaper(p -> InMatShaper); if (p -> OutMatShaper) cmsFreeMatShaper(p -> OutMatShaper); if (p -> SmeltMatShaper) cmsFreeMatShaper(p -> SmeltMatShaper); if (p ->NamedColorList) cmsFreeNamedColorList(p ->NamedColorList); if (p -> GamutCheck) cmsFreeLUT(p -> GamutCheck); LCMS_FREE_LOCK(&p->rwlock); _cmsFree((void *) p); } // Apply transform code void LCMSEXPORT cmsDoTransform(cmsHTRANSFORM Transform, LPVOID InputBuffer, LPVOID OutputBuffer, unsigned int Size) { _LPcmsTRANSFORM p = (_LPcmsTRANSFORM) (LPSTR) Transform; p -> StrideIn = p -> StrideOut = Size; p -> xform(p, InputBuffer, OutputBuffer, Size); } void LCMSEXPORT cmsSetAlarmCodes(int r, int g, int b) { AlarmR = RGB_8_TO_16(r); AlarmG = RGB_8_TO_16(g); AlarmB = RGB_8_TO_16(b); } void LCMSEXPORT cmsGetAlarmCodes(int *r, int *g, int *b) { *r = RGB_16_TO_8(AlarmR); *g = RGB_16_TO_8(AlarmG); *b = RGB_16_TO_8(AlarmB); } // Returns TRUE if the profile is implemented as matrix-shaper LCMSBOOL LCMSEXPORT _cmsIsMatrixShaper(cmsHPROFILE hProfile) { switch (cmsGetColorSpace(hProfile)) { case icSigGrayData: return cmsIsTag(hProfile, icSigGrayTRCTag); case icSigRgbData: return (cmsIsTag(hProfile, icSigRedColorantTag) && cmsIsTag(hProfile, icSigGreenColorantTag) && cmsIsTag(hProfile, icSigBlueColorantTag) && cmsIsTag(hProfile, icSigRedTRCTag) && cmsIsTag(hProfile, icSigGreenTRCTag) && cmsIsTag(hProfile, icSigBlueTRCTag)); default: return FALSE; } } LCMSBOOL LCMSEXPORT cmsIsIntentSupported(cmsHPROFILE hProfile, int Intent, int UsedDirection) { icTagSignature* TagTable; // Device link profiles only implements the intent in header if (cmsGetDeviceClass(hProfile) != icSigLinkClass) { switch (UsedDirection) { case LCMS_USED_AS_INPUT: TagTable = Device2PCS; break; case LCMS_USED_AS_OUTPUT:TagTable = PCS2Device; break; case LCMS_USED_AS_PROOF: TagTable = Preview; break; default: cmsSignalError(LCMS_ERRC_ABORTED, "Unexpected direction (%d)", UsedDirection); return FALSE; } if (cmsIsTag(hProfile, TagTable[Intent])) return TRUE; return _cmsIsMatrixShaper(hProfile); } return (cmsTakeRenderingIntent(hProfile) == Intent); } // Multiple profile transform. static int MultiprofileSampler(register WORD In[], register WORD Out[], register LPVOID Cargo) { cmsHTRANSFORM* Transforms = (cmsHTRANSFORM*) Cargo; int i; cmsDoTransform(Transforms[0], In, Out, 1); for (i=1; Transforms[i]; i++) cmsDoTransform(Transforms[i], Out, Out, 1); return TRUE; } static int IsAllowedInSingleXform(icProfileClassSignature aClass) { return (aClass == icSigInputClass) || (aClass == icSigDisplayClass) || (aClass == icSigOutputClass) || (aClass == icSigColorSpaceClass); } // A multiprofile transform does chain several profiles into a single // devicelink. It couls also be used to merge named color profiles into // a single database. cmsHTRANSFORM LCMSEXPORT cmsCreateMultiprofileTransform(cmsHPROFILE hProfiles[], int nProfiles, DWORD dwInput, DWORD dwOutput, int Intent, DWORD dwFlags) { cmsHTRANSFORM Transforms[257]; DWORD dwPrecalcFlags = (dwFlags|cmsFLAGS_NOTPRECALC|cmsFLAGS_NOTCACHE); DWORD FormatInput, FormatOutput; cmsHPROFILE hLab, hXYZ, hProfile; icColorSpaceSignature ColorSpace, CurrentColorSpace; icColorSpaceSignature ColorSpaceIn, ColorSpaceOut; LPLUT Grid; int nGridPoints, ChannelsInput, ChannelsOutput = 3, i; _LPcmsTRANSFORM p; int nNamedColor; if (nProfiles > 255) { cmsSignalError(LCMS_ERRC_ABORTED, "What are you trying to do with more that 255 profiles?!?, of course aborted"); return NULL; } // There is a simple case with just two profiles, try to catch it in order of getting // black preservation to work on this function, at least with two profiles. if (nProfiles == 2) { icProfileClassSignature Class1 = cmsGetDeviceClass(hProfiles[0]); icProfileClassSignature Class2 = cmsGetDeviceClass(hProfiles[1]); // Only input, output and display are allowed if (IsAllowedInSingleXform(Class1) && IsAllowedInSingleXform(Class2)) return cmsCreateTransform(hProfiles[0], dwInput, hProfiles[1], dwOutput, Intent, dwFlags); } // Creates a phantom transform for latter filling p = (_LPcmsTRANSFORM) cmsCreateTransform(NULL, dwInput, NULL, dwOutput, Intent, cmsFLAGS_NULLTRANSFORM); // If user wants null one, give it if (dwFlags & cmsFLAGS_NULLTRANSFORM) return (cmsHPROFILE) p; // Is a bunch of named color profiles? nNamedColor = 0; for (i=0; i < nProfiles; i++) { if (cmsGetDeviceClass(hProfiles[i]) == icSigNamedColorClass) nNamedColor++; } if (nNamedColor == nProfiles) { // Yes, only named color. Create a named color-device // and append to named color table cmsDeleteTransform((cmsHTRANSFORM) p); p = (_LPcmsTRANSFORM) cmsCreateTransform(hProfiles[0], dwInput, NULL, dwOutput, Intent, dwFlags); for (i=1; i < nProfiles; i++) { cmsReadICCnamedColorList(p, hProfiles[i], icSigNamedColor2Tag); } return p; // Ok, done so far } else if (nNamedColor > 0) { cmsDeleteTransform((cmsHTRANSFORM) p); cmsSignalError(LCMS_ERRC_ABORTED, "Could not mix named color profiles with other types in multiprofile transform"); return NULL; } // We will need a 3DCLUT for device link Grid = cmsAllocLUT(); if (!Grid) return NULL; // This one is our PCS (Always Lab) hLab = cmsCreateLabProfile(NULL); hXYZ = cmsCreateXYZProfile(); if (!hLab || !hXYZ) goto ErrorCleanup; // Take some info.... p ->EntryColorSpace = CurrentColorSpace = cmsGetColorSpace(hProfiles[0]); for (i=0; i < nProfiles; i++) { int lIsDeviceLink, lIsInput; // Check colorspace hProfile = hProfiles[i]; lIsDeviceLink = (cmsGetDeviceClass(hProfile) == icSigLinkClass); lIsInput = (CurrentColorSpace != icSigXYZData) && (CurrentColorSpace != icSigLabData); if (lIsInput || lIsDeviceLink) { ColorSpaceIn = cmsGetColorSpace(hProfile); ColorSpaceOut = cmsGetPCS(hProfile); } else { ColorSpaceIn = cmsGetPCS(hProfile); ColorSpaceOut = cmsGetColorSpace(hProfile); } ChannelsInput = _cmsChannelsOf(ColorSpaceIn); ChannelsOutput = _cmsChannelsOf(ColorSpaceOut); FormatInput = BYTES_SH(2)|CHANNELS_SH(ChannelsInput); FormatOutput = BYTES_SH(2)|CHANNELS_SH(ChannelsOutput); ColorSpace = ColorSpaceIn; if (ColorSpace == CurrentColorSpace) { if (lIsDeviceLink) { Transforms[i] = cmsCreateTransform(hProfile, FormatInput, NULL, FormatOutput, Intent, dwPrecalcFlags); } else { if (lIsInput) { Transforms[i] = cmsCreateTransform(hProfile, FormatInput, (ColorSpaceOut == icSigLabData ? hLab : hXYZ), FormatOutput, Intent, dwPrecalcFlags); } else { Transforms[i] = cmsCreateTransform((ColorSpaceIn == icSigLabData ? hLab : hXYZ), FormatInput, hProfile, FormatOutput, Intent, dwPrecalcFlags); } } } else // Can come from pcs? if (CurrentColorSpace == icSigXYZData) { Transforms[i] = cmsCreateTransform(hXYZ, FormatInput, hProfile, FormatOutput, Intent, dwPrecalcFlags); } else if (CurrentColorSpace == icSigLabData) { Transforms[i] = cmsCreateTransform(hLab, FormatInput, hProfile, FormatOutput, Intent, dwPrecalcFlags); } else { cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateMultiprofileTransform: ColorSpace mismatch"); goto ErrorCleanup; } CurrentColorSpace = ColorSpaceOut; } p ->ExitColorSpace = CurrentColorSpace; Transforms[i] = NULL; // End marker p ->InputProfile = hProfiles[0]; p ->OutputProfile = hProfiles[nProfiles - 1]; nGridPoints = _cmsReasonableGridpointsByColorspace(p ->EntryColorSpace, dwFlags); ChannelsInput = _cmsChannelsOf(cmsGetColorSpace(p ->InputProfile)); Grid = cmsAlloc3DGrid(Grid, nGridPoints, ChannelsInput, ChannelsOutput); if (!(dwFlags & cmsFLAGS_NOPRELINEARIZATION)) _cmsComputePrelinearizationTablesFromXFORM(Transforms, nProfiles, Grid); // Compute device link on 16-bit basis if (!cmsSample3DGrid(Grid, MultiprofileSampler, (LPVOID) Transforms, Grid -> wFlags)) { cmsFreeLUT(Grid); goto ErrorCleanup; } // All ok, store the newly created LUT p -> DeviceLink = Grid; SetPrecalculatedTransform(p); for (i=nProfiles-1; i >= 0; --i) cmsDeleteTransform(Transforms[i]); if (hLab) cmsCloseProfile(hLab); if (hXYZ) cmsCloseProfile(hXYZ); if (p ->EntryColorSpace == icSigRgbData || p ->EntryColorSpace == icSigCmyData) { p->DeviceLink -> CLut16params.Interp3D = cmsTetrahedralInterp16; } if ((Intent != INTENT_ABSOLUTE_COLORIMETRIC) && !(dwFlags & cmsFLAGS_NOWHITEONWHITEFIXUP)) _cmsFixWhiteMisalignment(p); return (cmsHTRANSFORM) p; ErrorCleanup: if (hLab) cmsCloseProfile(hLab); if (hXYZ) cmsCloseProfile(hXYZ); return NULL; } double LCMSEXPORT cmsSetAdaptationState(double d) { double OldVal = GlobalAdaptationState; if (d >= 0) GlobalAdaptationState = d; return OldVal; } lcms-1.19/src/lcms.def0000777000175300010010000002321010614326442014061 0ustar MartiNingunoLIBRARY LCMS.DLL EXPORTS _cmsICCcolorSpace = _cmsICCcolorSpace _cmsSaveProfile = _cmsSaveProfile _cmsSaveProfileToMem = _cmsSaveProfileToMem cmsAdaptToIlluminant = cmsAdaptToIlluminant cmsAllocGamma = cmsAllocGamma cmsBuildGamma = cmsBuildGamma cmsSmoothGamma = cmsSmoothGamma cmsBuildRGB2XYZtransferMatrix= cmsBuildRGB2XYZtransferMatrix cmsCloseProfile = cmsCloseProfile cmsCreateProofingTransform = cmsCreateProofingTransform cmsCreateRGBProfile = cmsCreateRGBProfile cmsCreateTransform = cmsCreateTransform cmsDeleteTransform = cmsDeleteTransform cmsDoTransform = cmsDoTransform cmsErrorAction = cmsErrorAction cmsFreeGamma = cmsFreeGamma cmsGetAlarmCodes = cmsGetAlarmCodes cmsGetColorSpace = cmsGetColorSpace cmsGetDeviceClass = cmsGetDeviceClass cmsGetPCS = cmsGetPCS cmsIsIntentSupported = cmsIsIntentSupported cmsIsTag = cmsIsTag cmsJoinGamma = cmsJoinGamma cmsJoinGammaEx = cmsJoinGammaEx cmsOpenProfileFromFile = cmsOpenProfileFromFile cmsOpenProfileFromMem = cmsOpenProfileFromMem cmsReverseGamma = cmsReverseGamma cmsSetAlarmCodes = cmsSetAlarmCodes cmsTakeColorants = cmsTakeColorants cmsTakeIluminant = cmsTakeIluminant cmsTakeMediaBlackPoint = cmsTakeMediaBlackPoint cmsTakeMediaWhitePoint = cmsTakeMediaWhitePoint cmsTakeProductDesc = cmsTakeProductDesc cmsTakeProductInfo = cmsTakeProductInfo cmsTakeProductName = cmsTakeProductName cmsTakeRenderingIntent = cmsTakeRenderingIntent cmsWhitePointFromTemp = cmsWhitePointFromTemp cmsXYZ2xyY = cmsXYZ2xyY cmsxyY2XYZ = cmsxyY2XYZ cmsLCh2Lab = cmsLCh2Lab cmsLab2LCh = cmsLab2LCh cmsLab2XYZ = cmsLab2XYZ cmsXYZ2Lab = cmsXYZ2Lab cmsClampLab = cmsClampLab cmsCreateLabProfile = cmsCreateLabProfile cmsCreateXYZProfile = cmsCreateXYZProfile cmsCreate_sRGBProfile = cmsCreate_sRGBProfile cmsD50_XYZ = cmsD50_XYZ cmsD50_xyY = cmsD50_xyY cmsDeltaE = cmsDeltaE cmsCIE94DeltaE = cmsCIE94DeltaE cmsBFDdeltaE = cmsBFDdeltaE cmsCMCdeltaE = cmsCMCdeltaE cmsCIE2000DeltaE = cmsCIE2000DeltaE cmsFloat2LabEncoded = cmsFloat2LabEncoded cmsFloat2XYZEncoded = cmsFloat2XYZEncoded cmsLabEncoded2Float = cmsLabEncoded2Float cmsXYZEncoded2Float = cmsXYZEncoded2Float cmsBuildParametricGamma = cmsBuildParametricGamma cmsCIECAM97sInit = cmsCIECAM97sInit cmsCIECAM97sDone = cmsCIECAM97sDone cmsCIECAM97sForward = cmsCIECAM97sForward cmsCIECAM97sReverse = cmsCIECAM97sReverse cmsCIECAM02Init = cmsCIECAM02Init cmsCIECAM02Done = cmsCIECAM02Done cmsCIECAM02Forward = cmsCIECAM02Forward cmsCIECAM02Reverse = cmsCIECAM02Reverse cmsCreateMultiprofileTransform = cmsCreateMultiprofileTransform cmsAddTag = cmsAddTag cmsAllocLUT = cmsAllocLUT cmsAllocLinearTable = cmsAllocLinearTable cmsAlloc3DGrid = cmsAlloc3DGrid cmsFreeLUT = cmsFreeLUT cmsEvalLUT = cmsEvalLUT cmsReadICCLut = cmsReadICCLut cmsSample3DGrid = cmsSample3DGrid cmsSetMatrixLUT = cmsSetMatrixLUT cmsSetMatrixLUT4 = cmsSetMatrixLUT4 cmsDupGamma = cmsDupGamma cmsReadICCGamma = cmsReadICCGamma cmsReadICCGammaReversed = cmsReadICCGammaReversed cmsSetErrorHandler = cmsSetErrorHandler cmsChangeBuffersFormat = cmsChangeBuffersFormat cmsCreateGrayProfile = cmsCreateGrayProfile cmsCreateInkLimitingDeviceLink = cmsCreateInkLimitingDeviceLink cmsCreateLinearizationDeviceLink = cmsCreateLinearizationDeviceLink cmsEstimateGamma = cmsEstimateGamma cmsEstimateGammaEx = cmsEstimateGammaEx cmsNamedColorCount = cmsNamedColorCount cmsNamedColorInfo = cmsNamedColorInfo cmsNamedColorIndex = cmsNamedColorIndex cmsSetColorSpace = cmsSetColorSpace cmsSetDeviceClass = cmsSetDeviceClass cmsSetLanguage = cmsSetLanguage cmsSetPCS = cmsSetPCS cmsTakeCharTargetData = cmsTakeCharTargetData cmsTransform2DeviceLink = cmsTransform2DeviceLink _cmsChannelsOf = _cmsChannelsOf cmsFreeGammaTriple = cmsFreeGammaTriple cmsSetRenderingIntent = cmsSetRenderingIntent cmsDupLUT = cmsDupLUT cmsGetUserFormatters = cmsGetUserFormatters cmsSetUserFormatters = cmsSetUserFormatters cmsCreateBCHSWabstractProfile = cmsCreateBCHSWabstractProfile cmsGetPostScriptCSA = cmsGetPostScriptCSA cmsGetPostScriptCRD = cmsGetPostScriptCRD cmsGetPostScriptCRDEx = cmsGetPostScriptCRDEx cmsReadProfileSequenceDescription = cmsReadProfileSequenceDescription cmsTakeManufacturer = cmsTakeManufacturer cmsTakeModel = cmsTakeModel cmsSetProfileID = cmsSetProfileID cmsTakeProfileID = cmsTakeProfileID cmsSetHeaderFlags = cmsSetHeaderFlags cmsTakeHeaderFlags = cmsTakeHeaderFlags cmsTakeCopyright = cmsTakeCopyright _cmsSetLUTdepth = _cmsSetLUTdepth _cmsAddXYZTag = _cmsAddXYZTag _cmsAddLUTTag = _cmsAddLUTTag _cmsAddTextTag = _cmsAddTextTag _cmsAddGammaTag = _cmsAddGammaTag _cmsAddChromaticityTag = _cmsAddChromaticityTag _cmsAddSequenceDescriptionTag = _cmsAddSequenceDescriptionTag _cmsAddNamedColorTag = _cmsAddNamedColorTag _cmsLCMScolorSpace = _cmsLCMScolorSpace cmsFloat2LabEncoded4 = cmsFloat2LabEncoded4 cmsLabEncoded2Float4 = cmsLabEncoded2Float4 cmsGetProfileICCversion = cmsGetProfileICCversion cmsIT8Alloc = cmsIT8Alloc cmsIT8Free = cmsIT8Free cmsIT8TableCount = cmsIT8TableCount cmsIT8SetTable = cmsIT8SetTable cmsIT8LoadFromFile = cmsIT8LoadFromFile cmsIT8LoadFromMem = cmsIT8LoadFromMem cmsIT8SaveToFile = cmsIT8SaveToFile cmsIT8GetSheetType = cmsIT8GetSheetType cmsIT8SetSheetType = cmsIT8SetSheetType cmsIT8SetComment = cmsIT8SetComment cmsIT8SetPropertyStr = cmsIT8SetPropertyStr cmsIT8SetPropertyDbl = cmsIT8SetPropertyDbl cmsIT8SetPropertyHex = cmsIT8SetPropertyHex cmsIT8SetPropertyUncooked = cmsIT8SetPropertyUncooked cmsIT8GetProperty = cmsIT8GetProperty cmsIT8GetPropertyDbl = cmsIT8GetPropertyDbl cmsIT8EnumProperties = cmsIT8EnumProperties cmsIT8GetDataRowCol = cmsIT8GetDataRowCol cmsIT8GetDataRowColDbl = cmsIT8GetDataRowColDbl cmsIT8SetDataRowCol = cmsIT8SetDataRowCol cmsIT8SetDataRowColDbl = cmsIT8SetDataRowColDbl cmsIT8GetData = cmsIT8GetData cmsIT8GetDataDbl = cmsIT8GetDataDbl cmsIT8SetData = cmsIT8SetData cmsIT8SetDataDbl = cmsIT8SetDataDbl cmsIT8SetDataFormat = cmsIT8SetDataFormat cmsIT8EnumDataFormat = cmsIT8EnumDataFormat cmsIT8GetPatchName = cmsIT8GetPatchName cmsIT8SetTableByLabel = cmsIT8SetTableByLabel cmsReadICCText = cmsReadICCText cmsReadICCTextEx = cmsReadICCTextEx cmsCreateLab4Profile = cmsCreateLab4Profile cmsCreateNULLProfile = cmsCreateNULLProfile cmsIT8DefineDblFormat = cmsIT8DefineDblFormat cmsIT8GetDataFormat = cmsIT8GetDataFormat cmsSetProfileICCversion = cmsSetProfileICCversion cmsTakeCalibrationDateTime = cmsTakeCalibrationDateTime cmsTakeCreationDateTime = cmsTakeCreationDateTime _cmsIsMatrixShaper = _cmsIsMatrixShaper _cmsAddColorantTableTag = _cmsAddColorantTableTag _cmsAddDateTimeTag = _cmsAddDateTimeTag cmsEvalLUTreverse = cmsEvalLUTreverse cmsGetTagCount = cmsGetTagCount cmsGetTagSignature = cmsGetTagSignature cmsIT8SaveToMem = cmsIT8SaveToMem cmsReadColorantTable = cmsReadColorantTable cmsSetAdaptationState = cmsSetAdaptationState cmsSetHeaderAttributes = cmsSetHeaderAttributes cmsTakeHeaderAttributes = cmsTakeHeaderAttributes cmsSetCMYKPreservationStrategy = cmsSetCMYKPreservationStrategy cmsFreeProfileSequenceDescription = cmsFreeProfileSequenceDescription _cmsAddChromaticAdaptationTag = _cmsAddChromaticAdaptationTag lcms-1.19/src/Makefile.am0000777000175300010010000000155011272606371014505 0ustar MartiNinguno# # Makefile for building LCMS library # Initially Written by Bob Friesenhahn, June 2003 # # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign includedir = ${prefix}/include # Shared libraries built in this directory lib_LTLIBRARIES = liblcms.la LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBRARY_AGE = @LIBRARY_AGE@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include liblcms_la_LDFLAGS = -no-undefined \ -version-info $(LIBRARY_CURRENT):$(LIBRARY_REVISION):$(LIBRARY_AGE) liblcms_la_LIBADD = $(LCMS_LIB_DEPLIBS) # liblcms_la_CFLAGS = -O3 liblcms_la_SOURCES = \ cmscnvrt.c cmserr.c cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c cmsio1.c cmslut.c \ cmsmatsh.c cmsmtrx.c cmspack.c cmspcs.c cmswtpnt.c cmsxform.c \ cmssamp.c cmscam97.c cmsnamed.c cmsps2.c cmscam02.c cmsvirt.c cmscgats.c lcms-1.19/src/Makefile.in0000644000175300010010000004264211230106052014477 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for building LCMS library # Initially Written by Bob Friesenhahn, June 2003 # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = liblcms_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_liblcms_la_OBJECTS = cmscnvrt.lo cmserr.lo cmsgamma.lo cmsgmt.lo \ cmsintrp.lo cmsio0.lo cmsio1.lo cmslut.lo cmsmatsh.lo \ cmsmtrx.lo cmspack.lo cmspcs.lo cmswtpnt.lo cmsxform.lo \ cmssamp.lo cmscam97.lo cmsnamed.lo cmsps2.lo cmscam02.lo \ cmsvirt.lo cmscgats.lo liblcms_la_OBJECTS = $(am_liblcms_la_OBJECTS) liblcms_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(liblcms_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(liblcms_la_SOURCES) DIST_SOURCES = $(liblcms_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = ${prefix}/include infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign # Shared libraries built in this directory lib_LTLIBRARIES = liblcms.la INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include liblcms_la_LDFLAGS = -no-undefined \ -version-info $(LIBRARY_CURRENT):$(LIBRARY_REVISION):$(LIBRARY_AGE) liblcms_la_LIBADD = $(LCMS_LIB_DEPLIBS) # liblcms_la_CFLAGS = -O3 liblcms_la_SOURCES = \ cmscnvrt.c cmserr.c cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c cmsio1.c cmslut.c \ cmsmatsh.c cmsmtrx.c cmspack.c cmspcs.c cmswtpnt.c cmsxform.c \ cmssamp.c cmscam97.c cmsnamed.c cmsps2.c cmscam02.c cmsvirt.c cmscgats.c all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liblcms.la: $(liblcms_la_OBJECTS) $(liblcms_la_DEPENDENCIES) $(liblcms_la_LINK) -rpath $(libdir) $(liblcms_la_OBJECTS) $(liblcms_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmscam02.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmscam97.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmscgats.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmscnvrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmserr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsgamma.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsgmt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsintrp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsio0.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsio1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmslut.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsmatsh.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsmtrx.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsnamed.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmspack.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmspcs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsps2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmssamp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsvirt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmswtpnt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmsxform.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/src/makefile.simple0000777000175300010010000000241410306377052015437 0ustar MartiNingunoSHELL = /bin/sh CFLAGS = -g -O4 -I../include -fomit-frame-pointer -Wall -Wmissing-prototypes LDFLAGS = -lm BASEDIR = $(DESTDIR)/usr BINDIR = $(BASEDIR)/bin LIBDIR = $(BASEDIR)/lib INCDIR = $(BASEDIR)/include VERSION = 1.0.15 AR = ar -cru RANLIB = ranlib .c.o: $(CC) $(CFLAGS) -c $< SRCS = cmscnvrt.c cmserr.c cmsgamma.c cmsgmt.c cmsintrp.c cmsio1.c \ cmslut.c cmsmatsh.c cmsmtrx.c cmspack.c cmspcs.c cmswtpnt.c \ cmsxform.c cmssamp.c cmscam97.c cmsnamed.c cmsps2.c cmscam02.c \ cmsvirt.c cmscgats.c cmsio0.c OBJS = $(SRCS:.c=.o) all: liblcms.a liblcms.so.${VERSION} # # Library # liblcms.a: $(OBJS) $(AR) liblcms.a $(OBJS) $(RANLIB) liblcms.a liblcms.so.${VERSION}: $(OBJS) -$(CC) $(CFLAGS) $(LDFLAGS) -shared -o liblcms.so.${VERSION} $(OBJS) -ln -s liblcms.so.${VERSION} liblcms.so.1 -ln -s liblcms.so.1 liblcms.so # # Installation # install: liblcms.a liblcms.so.${VERSION} mkdir -p $(BINDIR) $(LIBDIR) $(INCDIR) -cp -a liblcms.so* $(LIBDIR) cp -a liblcms.a $(LIBDIR) cp ../include/lcms.h ../include/icc34.h $(INCDIR) # # Test programs # test: # we are doing nothing for the test target # # Cleanup # clean: -rm $(OBJS) liblcms.a liblcms.so.${VERSION} liblcms.so.1 liblcms.so lcms-1.19/testbed/0000777000175300010010000000000011272606372013311 5ustar MartiNingunolcms-1.19/testbed/Makefile.am0000777000175300010010000000071611272606371015353 0ustar MartiNinguno# # Makefile for building testcms # Written by Bob Friesenhahn, June 2003 # # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include check_PROGRAMS = testcms testcms_LDADD = $(top_builddir)/src/liblcms.la testcms_LDFLAGS = @LDFLAGS@ testcms_SOURCES = testcms.c EXTRA_DIST = sRGBSpac.icm check: ./testcms dist-hook: cp -p $(srcdir)/"sRGB Color Space Profile.icm" $(distdir) lcms-1.19/testbed/Makefile.in0000644000175300010010000003436311230106052015343 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for building testcms # Written by Bob Friesenhahn, June 2003 # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ check_PROGRAMS = testcms$(EXEEXT) subdir = testbed DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = am_testcms_OBJECTS = testcms.$(OBJEXT) testcms_OBJECTS = $(am_testcms_OBJECTS) testcms_DEPENDENCIES = $(top_builddir)/src/liblcms.la testcms_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(testcms_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(testcms_SOURCES) DIST_SOURCES = $(testcms_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include testcms_LDADD = $(top_builddir)/src/liblcms.la testcms_LDFLAGS = @LDFLAGS@ testcms_SOURCES = testcms.c EXTRA_DIST = sRGBSpac.icm all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testbed/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign testbed/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done testcms$(EXEEXT): $(testcms_OBJECTS) $(testcms_DEPENDENCIES) @rm -f testcms$(EXEEXT) $(testcms_LINK) $(testcms_OBJECTS) $(testcms_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testcms.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool ctags \ dist-hook distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am check: ./testcms dist-hook: cp -p $(srcdir)/"sRGB Color Space Profile.icm" $(distdir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/testbed/makefile.simple0000777000175300010010000000046607705545242016316 0ustar MartiNingunoSHELL = /bin/sh CFLAGS = -g -O4 -fomit-frame-pointer -Wall -I../include testcms.o: testcms.c testcms: testcms.o ../src/liblcms.a $(CC) $(CFLAGS) testcms.o ../src/liblcms.a -o $@ -lm all: testcms test test: testcms ./testcms install: # Nothing to install clean: -rm testcms.o testcms testcms.exe lcms-1.19/testbed/sRGB Color Space Profile.icm0000777000175300010010000000611007232303244020226 0ustar MartiNinguno HLinomntrRGB XYZ Î 1acspMSFTIEC sRGBöÖÓ-HP cprtP3desc„lwtptðbkptrXYZgXYZ,bXYZ@dmndTpdmddĈvuedL†viewÔ$lumiømeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ óQÌXYZ XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏdescIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view¤þ_.ÏíÌ \žXYZ L VPWçmeassig CRT curv #(-27;@EJOTY^chmrw|†‹•šŸ¤©®²·¼ÁÆËÐÕÛàåëðöû %+28>ELRY`gnu|ƒ‹’š¡©±¹ÁÉÑÙáéòú &/8AKT]gqz„Ž˜¢¬¶ÁËÕàëõ !-8COZfr~Š–¢®ºÇÓàìù -;HUcq~Œš¨¶ÄÓáðþ +:IXgw†–¦µÅÕåö'7HYj{Œ¯ÀÑãõ+=Oat†™¬¿Òåø 2FZn‚–ª¾Òçû  % : O d y ¤ º Ï å û  ' = T j ˜ ® Å Ü ó " 9 Q i € ˜ ° È á ù  * C \ u Ž § À Ù ó & @ Z t Ž © Ã Þ ø.Id›¶Òî %A^z–³Ïì &Ca~›¹×õ1OmŒªÉè&Ed„£Ãã#Ccƒ¤Åå'Ij‹­Îð4Vx›½à&Il²ÖúAe‰®Ò÷@eНÕú Ek‘·Ý*QwžÅì;cвÚ*R{£ÌõGp™Ãì@j”¾é>i”¿ê  A l ˜ Ä ð!!H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<' >`> >à?!?a?¢?â@#@d@¦@çA)AjA¬AîB0BrBµB÷C:C}CÀDDGDŠDÎEEUEšEÞF"FgF«FðG5G{GÀHHKH‘H×IIcI©IðJ7J}JÄK KSKšKâL*LrLºMMJM“MÜN%NnN·OOIO“OÝP'PqP»QQPQ›QæR1R|RÇSS_SªSöTBTTÛU(UuUÂVV\V©V÷WDW’WàX/X}XËYYiY¸ZZVZ¦Zõ[E[•[å\5\†\Ö]']x]É^^l^½__a_³``W`ª`üaOa¢aõbIbœbðcCc—cëd@d”dée=e’eçf=f’fèg=g“géh?h–hìiCišiñjHjŸj÷kOk§kÿlWl¯mm`m¹nnknÄooxoÑp+p†pàq:q•qðrKr¦ss]s¸ttptÌu(u…uáv>v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’’z’ã“M“¶” ”Š”ô•_•É–4–Ÿ— —u—à˜L˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿlcms-1.19/testbed/sRGBSpac.icm0000777000175300010010000006705207367334666015442 0ustar MartiNingunon*Win spacRGB Lab Í 1 acspMSFTnonenoneöÖÓ-LinodescÀ}A2B0@60B2A07p60wtptm cprtm´vdesc#sRGB ColorSpace Conversion Profilemft1  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€€‚y„m‰b X—P›IžC$¡<+¤62§09ª+?­%F°L²Rµ z… {~ ~sƒh‰^V“N$˜G*œ@0Ÿ96£3<¦-Bª'I­!O°U³opˆt|yq!~g%„^)ŠU-M2”E7˜>=œ7B¡1H¤*M¨$S«Y¯,i˜-j‘-m†/q{1uq3zg6€^:…U>ŠMBEF”=K™6O/T¡)Y¥"_©=d >e™>g?j…Am{CrpEvgG{^JUN†MQ‹EU=Y”6]™/b(f¡!N`¥NaŸOb—PdŽQg„RjzTnpVsgXx^[}U^Ma†Ed‹=h5l•.p™'^[ª^\¦_]Ÿ__–`aŒad‚cgydkofpfht]kyUm~Lp‚Ds‡=wŒ5z.nW¯nX«nY¥oZo\”p^‹qasexthovlfxq]zuU}zLD‚ƒ=…ˆ5}S´}S±}T«~U¤~WœY“€\Š_€‚bw„fn†ieˆn]ŠrTŒvLŽ{D‘=ŒO¹ŒO¶ŒP±ŒQ«R£ŽTšŽV‘Yˆ\’_v“cn•ge—k\™oT›sLwDšK½›K»›L·›M±›NªœO¡Q™TžV‡ŸY~¡]v¢`m¤dd¦h\¨lTªpL©G©GÀ©H¼©I·ªJ°ªK¨«M «O˜¬Q­T†®W}°Zu±]l³ad´e\¶iT·CÆ·DÄ·DÁ·E¼¸F¶¸G¯¸H§¹JŸºL–»O޼Q…½T}¾Wt¿[lÁ^cÃb[Å@ËÅ@ÉÅ@ÆÅAÂÅB¼ÆCµÆD®ÇF¦ÇHÈJ•ÉLÊO„ËR|ÌUsÎXkÏ\cÒ<ÏÒ<ÍÒ<ËÓ=ÇÓ>ÁÓ?»Ô@´ÔA¬ÕC¤ÕEœÖG”×J‹ØLƒÙO{ÚRsÜVjà8Óà8Òà9Ïà9Ìà:Çá;Áá<ºá=³â?«ãA£ãC›äE“åGŠæJ‚çMzèPr…‚†{‰oŽd ”Z™RœKŸD&¢>-¥73¨1:«+@­%G° M³Sµ ~‡ €€ƒu‡jŒ`‘W •O%™H+A1 :7¤4=§.Cª'I­"O°U³tv‰y~ }s#‚h&‡_*ŒV/N4•F9™?>8C¡1I¥+N¨%T¬Y¯.m™.n’/q‡0t|2xr5}h7_;†V?‹MCFG•>K™7Pž0U¢)Z¥#_©>g ?h™?j@l…Bp{DtqFxgH}^K‚UN‡MRŒEV=Z•6^™/bž(g¢"Ob¦Oc Pd˜PfŽQi„SlzTppVtgYy^[~U^‚Ma‡EeŒ=h‘6l•/pš(_]«_^¦__Ÿ``–acŒbeƒciyempgqgiu^kzUn~MqƒEtˆ=wŒ6{‘.nY°nY¬oZ¥o[p]”q`‹rb‚sfxuiovmfxr]{vU}{M€Eƒ„=†ˆ5}T´}U±~U¬~V¤XœZ“€]Š_ƒcw„fn†jfˆn]ŠsUŒwL{E‘€=ŒP¹ŒP¶ŒQ±R«S£ŽUšW’Z‰‘]’`w”cn•ge—k]™oT›tLxD›L¾›L»›M·›N±œOªœP¢R™žTŸW‡ Z¡]v¢am¤de¦h\¨lTªpL©H©HÀ©I¼©I·ªJ°ªL¨«M ¬O˜¬R­T†¯W~°Zu±^l³ad´e\¶iT·DÆ·DÅ·EÁ·E¼¸F¶¸G¯¹I§¹KŸºM–»O޼R…½U}¾XtÀ[lÁ_dÃb[Å@ËÅ@ÉÅAÆÅAÂÅB¼ÆCµÆE®ÇF¦ÇHÈJ•ÉMÊO„ËR|ÍUsÎYkÏ\cÒ<ÏÒ=ÎÓ=ËÓ=ÇÓ>ÁÓ?»Ô@´ÔB¬ÕD¤ÖFœÖH”×JŒØMƒÙP{ÛSsÜVkà9Óà9Òà9Ïà:Ìà:Çá;Áá<ºâ>³â?«ãA£ãC›äE“åHŠæJ‚çMzèPrŽ… ~ ’r –g™]œUžM#¡F)¤?/¦96©3<¬-B®'H±!N³T¶‡Š‰ƒ‹xŽm‘c”Z#˜R(›J.ŸC4¢<9¥5?¨/E«)K®"Q±V´ }’!~‹"€€$ƒu&‡j)‹a-X1“P6—H;›@@Ÿ9E¢2J¦,O©&U­Z°0tš0u“1v‰3y~4|s7€i9…`=‰W@ŽOD’GH—?M›8QŸ1V£*[¦$`ª@l¡AmšAn‘Bq‡Ct|EwrG{hJ€_M„VP‰NSFW’>[–7_›0cŸ)h£"Pf¦Pg Qh˜RjSl…To{VsqXwhZ{_\€V_„Nb‰Ff>i’6m–/q›(``«`a¦`bŸac—bechƒdkzfophsgjw^l{Vo€Mr„Eu‰>x6{’/o[°o\¬p\¦p^žq_•qbŒse‚thyukpwogys^{wU~|M€Eƒ…=†‰6~Vµ~W±~W¬X¥Zœ€\“^Š‚aƒdx…ho‡lf‰p]‹tUxM}E’=R¹R¶S²T«ŽU£ŽW›Y’[‰‘^€“aw”en–he˜l]špUœuMžyE›N¾›N»›N·œO±œPªR¢T™žV‘ŸXˆ [¢^v£bm¥ee¦i]¨mTªqL©I©JÀªJ¼ªK·ªL°«M©«O ¬Q˜­S®V‡¯X~°\u²_m³bdµf\·jT·EÇ·EŸFÁ¸F¼¸G¶¸I¯¹J§ºLŸºN—»P޼S…½V}¿YtÀ\lÂ`dÃc\ÅAËÅAÉÅBÆÆBÂÆC¼ÆDµÇF®ÇG¦ÈIžÉK•ÉNÊP„ÌS|ÍVtÎYkÐ]cÓ=ÏÓ>ÎÓ>ËÓ>ÇÓ?ÂÔ@»ÔA´ÕC¬ÕD¥ÖFœ×I”ØKŒÙNƒÚP{ÛSsÜWkà:Óà:Òà:Ðà;Ìá;Çá<Áá=ºâ>³â@«ãB£äD›äF“åH‹æK‚èNzéQr™Ššƒ›xœlcŸZ#¡Q(£J-¦B3¨<9«5?­/E°(K²"PµV·‘‘ˆ’}”q!–g$™^(›U-žM2¡E7¤><§7Bª1G­*M¯$S²Xµ%†–&‡Ž'ˆƒ)Šx+n.d1“[5—R9šJ>žBB¡;G¤4L¨-Q«'W®!\±4|œ4}•5~‹6€€8ƒu:†k=‰b@YC‘PG•HK™AO9T¡2X¤+]¨%b«Cs£CtœDu’EwˆFy~H|tJ€jL„aOˆXRŒOUGY”?]˜8aœ1e *i¤#Rl§Rl¢SmšToUq†Vt|XwrY{i\~`^ƒWa‡Od‹Gg?k”7n˜0rœ)ae¬be§bf ch˜cjŽdl„fo{grqivhkz_m~Wp‚Ns‡Fv‹>y7|“/p_±q`­q`§qaŸrc–seŒthƒukzwnpxrgzv_}zV~N‚‚F„‡>‡‹6ZµZ²€[­€\¥€]_”‚a‹ƒd‚„gx†joˆng‰r^ŒvVŽzM~F“‚>ŽUºŽU·ŽV²ŽV¬X¤Y›[’‘^‰’`€“dw•go—jf˜n^šrUœvMŸzEœP¾œP¼œQ¸R²SªT¢žVšŸX‘ Zˆ¡]¢`w¤dn¥ge§k]©oU«sMªLêLÀªL½«M·«N±«O©¬Q¡­S˜­U®W‡°Z~±]v²`m´deµh]·kT¸GǸGŸH¸H½¹I·¹J¯ºL¨ºNŸ»P—¼R޽T†¾W}¿ZuÁ^lÂadÄe\ÆCËÆCÉÆDÇÆDÂÆE¼ÇF¶ÇG®ÈI¦ÈKžÉM–ÊOËR…ÌT|ÍWtÏ[lÐ^dÓ?ÏÓ?ÎÓ?ËÔ@ÇÔAÂÔB»ÕC´ÕD­ÖF¥ÖH×J”ØLŒÙO„ÚR{ÛUsÝXká;Ôá;Òá;Ðá<Ìá=Çá=Áâ>ºâ@³ãA«ãC£äE›åG“æJ‹çLƒèOzéRrŸ‘ŸŠ ~ ¡s"¢h&£_*¥V.§N3©F8«?=­8C¯1H±+N´%S¶Y¸"˜•#˜$™‚&šw(œl+žb/ Y3¢Q7¤I<§AA©:F¬3K¯-P±&V´ [¶,š-’.‡/’|1“q3–g6˜^:›U>žMB¡EF¤>K§6Pª0T­)Y°"_³9…Ÿ9…˜:†Ž;ˆƒ<Šx>ŒnAeD’[G•SJ™KNœCR ;V£4[¦-_ª&d­ G{¤G|žH}•H~ŠJ€€K‚vM…lO‰cRŒZUQX”I\—A_›:cŸ2g¢+k¦%Us©Us£Vt›Vu’WwˆYy~Z|t\k^ƒaa‡YcŠPfŽHi’@m–9pš1tž*dk­dk¨dl¢em™fogq†ht|iwskzim~`oXr…Ou‰Gx@{’8~–1rd²re®se¨sf th—ujvl„wo{xrqzuh|y`~}WOƒ…G†‰?‰7^¶_³_­`¦‚ažƒc•„eŒ…hƒ†ky‡np‰qh‹u_yW|N’F”…?YºY¸Y³Z¬[¥‘]œ‘_“’aŠ“d•gx–jo˜mgšq^œuVžxN |FS¿T¼T¸žU²žV«ŸW£ŸYš [’¡]‰¢`€£cw¥fo¦jf¨m^ªqU¬uM«OëOÁ«O½¬P¸¬Q±¬Rª­T¡®U™®X¯Zˆ±]²`v³cnµfe¶j]¸mU¹JǹJŹJ¹K½ºL·ºM°»N¨»P ¼R—½T¾W†¿Y~À\uÁ`mÃceÅf]ÆEÌÇFÊÇFÇÇFÂÇG½ÇH¶ÈJ¯ÈK§ÉMžÊO–ËQŽÌT…ÍV}ÎYtÏ\lÑ`dÔAÐÔAÎÔBÌÔBÈÕCÂÕD¼ÕEµÖF­ÖH¥×JØL•ÙNŒÚQ„ÛS|ÜVtÝYká=Ôá=Óá=Ðâ>Ìâ?Çâ?Áâ@»ãB³ãC¬äE¤åGœæI“æK‹çNƒéQ{êTs'¤˜'¤(¥…*¥y,¦o/§e2©[6ªS:¬K>®CC¯Z¦6^©/c¬(g¯"Kƒ§L„ L…—M†N‡ƒO‰yQŒoSŽeV‘\Y”T\˜K_›Cbž®XA¯OE±GI²@N´8R¶1W¸+\º$a¼5¥Ÿ6¥˜6¥8¦‚9§w;¨m>©cAªZD¬QH®IL°AP²:T´3Y¶,^¸%cº<ž¢<ž›=Ÿ>Ÿ…@ {A¢pD£gF¥]I§UM©LP«DT­=X°5]².a´(f·!F•¦F•žF–•G—ŠH˜€J™vL›lNbQŸYT¢QW¤I[§A^ª9b¬2f¯+k²$QŒ©QŒ£RšRS†U|V’rX”hZ—_]šW`œNcŸFf¢>j¥7n¨0q«)]‚­^ƒ§^ƒ ^„–_…`‡ƒb‰yc‹oeŽfh‘]j”Um—LpšDs=v 5z¤.jz°kz¬kz¥k{l|“m~Šn€€p‚wq…msˆdu‹\wŽSz‘K}•C€˜;ƒœ4xq´xr°xr«ys£ytšzv‘{x‡|z~~|ul‚cƒ…Z…ˆRˆŒJŠB“:…j¸†jµ†k°†k©‡m¡‡n˜ˆpމr…Št|Œwszj}b‘€Y“ƒQ•‡I˜‹A“c¼“c¹“dµ”e¯”f§•gž•h––j—m„™o{šrr›uixaŸ{X¡P£‚H¡]À¡]¾¡^º¡^´¢_­¢`¥£bœ£d”¤f‹¥h‚§ky¨mq©ph«t`­wW¯zO®WÄ®W®X¿¯X¹¯Y³¯Z«°[£±]›±_’²a‰³dµfx¶io·lg¹o_»sW¼RɼRǼRüS¿¼S¹½T±½Vª¾W¡¾Y™¿[À]ˆÁ`ÃbwÄenÅhfÇl^ÉLÍÉMËÉMÈÉMÄÉN¾ÊO·ÊP°ËR¨ËS ÌU—ÍWÎY‡Ï\~Ð_vÒbnÓeeÖHÑÖHÏÖHÍÖHÉ×IÃ×J½×K¶ØL®ØN¦ÙOžÚQ–ÛTŽÜV…ÝY}Þ[uß^mãCÕãCÓãCÑãDÍäDÈäEÃäF¼åGµåI­æJ¥çLçN•èPŒéS„êU|ìXt<®£<®œ=®‘>®†?¯{A°pC±gF²]I³UL´LP¶DT·=X¹5\».a½'f¾!?ª¥?ª@«“A«‡B¬}D­rF®hI¯_L°VO²NR³FVµ>Z·7^¹/c»)g½"E¤§E¥ŸE¥•F¥ŠH¦€I§uK¨kNªbP«YS­QV¯HZ±@^³9bµ2f·+jº$M©M¢N™NžOŸ„Q zS¡pU£fW¥]Z§U]©L`«Dc­=g°5k².oµ'W”¬W”¦X”X•”Y–ŠZ—\™v^›l`cbŸZe¡Qh¤Ik¦An©:r¬2u¯+bНc‹ªc‹¢cŒ™deކg|h’rj”il–`n™Wq›OtžGw¡?z¤7}§0o²o‚®o‚§pƒŸp„–q…Œr‡ƒt‰yu‹pwgy^{“U~–M€™Eƒœ=†Ÿ6{y¶|y²|y¬|z¥}{œ~|“~~‰€€€‚w‚…n„‡e†Š\ˆT‹L”D—<ˆqº‰q¶‰q±‰rªŠs¢Št™‹vŒx‡z~|ul’‚c”…[–ˆS˜‹KšŽC–j½–j»–j¶–k°—l¨—m ˜n—™pŽšr…›t|œwsžzk |b¡€Z£ƒR¥†J£cÁ£c¿£c»£dµ¤e®¤f¦¥gž¦i•§kŒ¨mƒ©o{ªrr¬ui­xa¯{Y±~Q°\Ű]ð]À±]»±^´±_¬²`¤³bœ³d“´fеh‚·ky¸mq¹ph»s`½vX½VɽWȾWľWÀ¾X¹¾Y²¿Z«À\¢À]šÁ_’Âa‰Ãd€ÄfxÆipÇlgÉo_ÊQÍËQÌËQÉËRÅËR¿ËS¸ÌT±ÌV©ÍW¡ÎY˜Ï[Ð]ˆÑ`ÒbwÓeoÕhfØLÑØLÐØLÍØLÉØMÄØN¾ÙO·ÙP¯ÚR§ÛSŸÛU—ÜWÝY†Þ\~ß_váanäGÕåGÔåGÒåGÎåHÉåIÃæJ½æKµçL®çN¦èOžéQ•êSëV…ìX}í[uF²¨F²¡G³—H³ŒI³J´vLµlO¶cQ·ZT¸QW¹I[»A_¼:c¾2g¿+kÁ$I¯©I¯¢I°˜J°K±‚M±xO²nQ³dS´[V¶SY·J]¸B`º;d¼3h¾,l¿%Mª«N«¤N«šO«P¬…Q­zS®qU¯gW°^Z²U]³M`µEd·=g¹5kº.o¼'U£­U¤¦U¤V¤“W¥‰X¦~Z§t[¨k^ªb`¬Yc­Pf¯Hi±@l´9p¶1t¸*^›¯^›©^œ¡_œ—`ažƒbŸyd¡pf¢gh¤^j¦Um¨Mp«Es­=v°5z².h’±h’¬h“¥i“œj”“k•‰l—m˜vošlqœcsžZu¡Rx£J{¦B~¨:«3s‰´t‰°tŠªtŠ¢u‹˜vŒwŽ…x|y‘s{“i}–a˜X‚›P„H‡ @Š£8€€¸€´€¯€‚§‚ž‚„•‚…Œƒ‡‚…ˆy†‹pˆgŠ_Œ’VŽ•N‘˜F“›>Œx»Œx¸Œy³y¬z¤Ž{›|’~‰‘€€’‚w“„n•‡e—Š]™U›L“E™p¿™p¼™q¸™q²šrªšs¢›u™œvx‡žz~Ÿ|u¡l¢d¤„\¦‡S¨ŠK¦iæiÀ¦j¼¦j·¦k°§l¨¨mŸ¨o—©pŽªr…«t|­ws®yk°|c±Z³‚R³bdzbijcÁ³c¼³dµ´e®´f¦µg¶i•·kŒ¸mƒ¹o{ºrr¼uj½wa¿zY¿\ÊÀ\ÉÀ\ÅÀ]ÁÀ]»Á^´Á_¬Âa¤Âb›Ãd“ÄfŠÅh‚ÆkyÈmqÉpiÊs`ÌVÎÌVÍÍVÊÍWÅÍWÀÍX¹ÎY²ÎZªÏ\¢Ð^™Ð_‘Ñb‰Òd€ÔfxÕipÖlgÙPÒÙPÑÙQÎÚQÊÚRÅÚR¿ÚS¸ÛT°ÜV¨ÜW ÝY˜Þ[ß]‡à`ábwâeoæKÖæKÕæKÒæLÏçLÊçMÄçN½èO¶èP®éR§éSžêU–ëWŽìY†í\~î^vP·­P·¦P·œQ·‘R¸‡T¸|U¹rWºhZ»_\¼V_½Nb¾Fe¿>iÁ7mÂ/qÄ(R´®R´§SµSµ’TµˆV¶}W·sY·j\¸a^ºXa»Od¼Gg¾?k¿8nÁ0rÂ)V°¯V°¨W°ŸW±•X±ŠZ²€[³v]´l_µca¶Zd·Qg¹IjºAn¼9q¾2uÀ+\ª°]ªª]ª¡^«˜^«`¬ƒa­yc®oe¯fg±]i²Tl´Lo¶Dr·wÁ6{Ã/e°³e°®e°¦f°œf±’g±ˆi²~j³tl´knµbp·Ys¸PuºHx»@{½9¿1l©µl©°l©¨m©Ÿmª–n«Œo«‚q­xr®ot¯fv±]y²T{´L~¶D¸<„º5u¡·u¡²u¡¬u¡£v¢šw£x¤†y¥}z¦t|¨j~©a€«Y‚­Q…¯Hˆ±Aг9~˜¹~˜µ˜¯™¨€šŸ€š•›Œ‚‚„žy…Ÿp‡¡g‰£^‹¥V§NªF’¬>‰¼‰¹‰³Š¬Š‘¤‹’›Œ“‘”ˆŽ•—v‘™m’›d”\–ŸS™¢K›¤C”‡¿”‡¼•‡·•ˆ±•ˆ©–‰ —Š—˜‹Ž™…š|›s’jž•b —Y¢™Q¤œI  À »¡µ¡€®¡¦¢‚£ƒ”¤…‹¥†‚¦ˆy§Šq©Œh«`­‘W®”O¬wƬwìwÀ­wº­x³­y«®z£¯{š¯}’°~‰²€€³‚w´„o¶‡f·‰^¹ŒV¸oɸoǹpĹp¿¹q¸¹q±ºr©»s¡»u˜¼v½x‡¾z~À|uÁmÂeÄ„]ÅhÍÅhËÅhÈÅiÃÅi½Æj¶Æk¯Çl§ÇmžÈo–ÉqÊs…Ëu|ÌwtÎylÏ|cÑaÑÑaÏÑbÌÑbÈÒcÂÒc¼Òd´Óe­Óg¥ÔhœÕj”Ök‹×nƒØp{ÙrrÛujÝ[ÔÞ[ÓÞ[ÐÞ\ÌÞ\ÇÞ]Áß^ºß_³à`«àa£ácšâe’ãgŠäiåkyæmqêUØêU×êUÔêVÑêVÌëWÆëW¿ëX¸ìZ±ì[©í\¡î^™ï`ðbˆñd€ògxc¿µcÀ¯dÀ¦dÀœeÀ’fÁ‡gÁ}iÂtjÂjmÃaoÄXqÅPtÆHwÇ@zÉ8~Ê1e¾µe¾¯e¾§f¾g¾“h¿ˆi¿~jÀulÁknÂbpÂYsÄQuÅIxÆA|Ç9É1hº¶hº°h»¨i»žj»”k¼Šl¼€m½vo¾mq¿dsÀ[uÁRxÂJ{ÃB~Å:Æ3mµ·mµ±m¶ªn¶¡n¶—o·p·ƒr¸ys¹puºfw»]z½U|¾M¿E‚Á=…Ã5s¯¸s¯³t¯¬t¯£u°šv±w±†x²}y³s{´j}¶a·X¸P„ºH‡¼@о8{§º{§¶|¨¯|¨§}©ž}©”~ªŠ«¬w‚­n„¯e†°]ˆ²T‹´L¶D·<„Ÿ¼„Ÿ¸… ²… «† ¢†¡™‡¢ˆ£†‰¤|‹¦sŒ§jŽ©bªY’¬Q•®I—±AŽ—¾—»—¶—¯˜§™ž‘š”’›‹“œ‚”y–Ÿp—¡g™£_›¥V§NŸ©F™ŽÁ™Ž¾™ºš³š«›£›‘šœ’‘“ˆž• —v¡˜m£šd¤œ\¦ŸT¨¡L¤†Ä¤†Â¥†¾¥‡¸¥‡°¦ˆ¨¦‰ §Š—¨‹Ž©…ªŽ|«s­’k¯”b°—Z²™R°~ǰ~Ű~°~¼±µ±€­²¥²‚³ƒ”´„‹µ†‚¶ˆz¸Šq¹Œi»Ž`¼‘X¼v˼vɼvżwÀ¼wº½x³½y«¾z¢¿{š¿}‘À~‰Á€€Ã‚wÄ„oņglj_ÈoÎÈoÍÈoÉÈoÅÈp¿Ép¸Éq°Êr¨Êt Ëu˜ÌwÍx‡Îz~Ï|vÑmÒeÔhÒÔhÐÔhÍÔhÉÔiÄÕi½Õj¶Ök®Öl¦×nžØo•ÙqÚs…Ûu|ÜwtÝylàaÕàaÔàaÑàaÎàbÈácÂác»âd´âe¬ãg¤ãhœäj“ål‹ænƒçp{érsì[Ùì[Øì[Õì[Òí\Íí\Çí]Áî^ºî_²ï`ªïb¢ðcšñe’òg‰óiôkylĹmijmÄ«mÄ¡nÄ—oÅpŃqÆysÆpuÇfwÈ^yÉU|ÊM~ËEÌ=„Í5n¹n³n¬o¢pØpÃŽrÄ„sÄztÅpvÆgxÆ^{ÇV}ÈM€ÉE‚Ë=…Ì6q¿¹q¿´q¿­rÀ£rÀ™sÀtÁ…uÁ{wÂryÃi{Ä`}ÅWÆO‚ÇG…È?ˆÊ7u»ºu»µu»®v»¥w»›w¼‘x¼ˆz½~{¾t}¿kÀbÁZƒÂQ…ÃIˆÅA‹Æ9{µ»{µ·{µ°|µ¨|¶ž}¶”~·‹¸¸x‚¹n„ºe†¼]ˆ½TоLÀDÂ<‚®½‚®¹ƒ®³ƒ®«ƒ¯¢„¯˜…°†±…‡²|‰³rŠ´iŒµaŽ·X¸P“ºH•¼@‹¦¿‹¦»‹¦¶‹§®Œ§¥Œ¨œ¨“Ž©Šª€‘«w’­n”®e–°]˜±Tš³LœµD”žÁ”ž¾”ž¹•ž²•Ÿª–Ÿ¡– ˜—¡Ž˜¢…™¤|›¥sœ¦jž¨b ªY¢¬Q¤®Iž•Äž•Áž–¼Ÿ–¶Ÿ–® —¦ ˜¡™”¢š‹£›‚¤y¦žp§ g©¢_«¤W­¦O©Æ©Ä©À©ŽºªŽ³ª««¢«‘™¬’­“‡®•°–v±˜m³še´œ]¶žT´…É´…Ç´…Ä´…¾µ†·µ‡°¶‡§¶ˆŸ·Š–¸‹¹Œ…ºŽ|»s½’k¾”cÀ–Z¿}Í¿}ËÀ}ÇÀ~ÂÀ~¼ÀµÁ­Â€¥Â‚œÃƒ“Ä„‹Å†‚ƈzÇŠqÉŒiÊŽaËuÐËuÎËvËËvÇÌvÁÌwºÌx²ÍyªÎz¢Î{šÏ}‘Ð~ˆÑ€€Ò‚xÔ„oÕ†g×nÓ×nÒ×nÏ×oË×oÅØp¿Øp¸Ùq°Ùr¨Út Ûu—ÛwÜx†Þz~ß|vànãg×ãgÕãgÓãhÏãhÊäiÄäi½äjµåk®åm¦ænço•èqés…êu|ëwtï`ÚïaÙïa×ïaÓïaÎïbÉðcÂðd»ñe³ñf¬òg¤ói›ój“ôl‹õnƒöp{vȼvÈ·vȰvȦwÈœxÉ’yɈzÊ|Êu}ËlÌcÌZƒÍR†ÎI‰ÏA‹Ð:wƽwÆ·wǰxǧxÇyÇ“zȉ{È}Év~Êl€Êc‚Ë[…ÌR‡ÍJŠÎBŒÏ:yĽzĸzızĨ{Äž|Å”}ÅŠ~ÆÆwÇn‚Èe„É\‡ÊT‰ËKŒÌCŽÍ<}À¾~À¹~À²~ÀªÀ Á–€ÁŒÂƒƒÃy„Ãp†ÄgˆÅ^ŠÆVŒÇMÉE‘Ê>ƒº¾ƒººƒ»´ƒ»¬„»£…¼™†¼‡½†ˆ½|‰¾s‹¿jÀaÂY‘ÃP“ÄH–Æ@‰´ÀŠ´¼Š´¶Š´®‹µ¦‹µœŒ¶“¶‰Ž·€¸w‘¹n“ºe•¼\—½T™¿L›ÀD‘¬Â‘­¾’­¹’­²’­©“® ”¯—”¯–°„—±{˜²rš´iœµ`·XŸ¸P¢ºHš¥Äš¥Á𥼛¥µ›¦­›¦¤œ§›¨’ž©‰Ÿª€ «w¢¬n£®e¥¯]§±U©³L¤œÆ¤œÃ¤¿¤¹¤±¥ž©¦Ÿ ¦Ÿ—§ Ž¨¢…©£|«¤s¬¦k®¨b°©Z²«R®”É®”Æ®”®•¼¯•µ¯–­°–¥°—œ±˜“²™Š³›´œy¶žp· h¹¡_»£W¸ŒË¸ŒÉ¹ŒÆ¹ŒÀ¹ººŽ²ºŽª»¡»™¼‘½“‡¾”À–vÁ˜m™eÄ›]ÄÎÄÌÄ„ÉÄ„ÄÄ…¾Ä…·Å†¯Å‡§ÆˆžÇ‰–ȋɌ…ÊŽ|ËtÍ‘kΔcÏ|ÒÏ|ÐÏ|ÍÏ}ÈÏ}ÃÐ~¼Ð~´Ñ¬Ñ€¤ÒœÓƒ“Ô„‹Õ†‚Öˆz׊qØŒiÚuÕÚuÓÚuÑÚuÌÛvÇÛvÁÛw¹Üx²ÜyªÝz¡Þ{™ß}‘à~ˆá€€â‚xã„pæmØæn׿nÔænÐænËçoÅçp¿çp·èq¯ès§étŸêu—ëwìy†íz~î|vñgÜògÚògØògÔògÐòhÊóiÄói¼ójµôk­õm¥õnöp•÷qøs„ùu|ÌÀ̴̻̫€Í¡Í˜‚ÍŽƒÎ„„Îz†Ïq‡Ïh‰Ð_‹ÑWÒNÓF“Ô>€ËÀ€Ë»€Ë´Ë¬Ë¢‚̘ƒÌŽ„Ì……Í{‡ÍrˆÎiŠÏ`ŒÐWÑO‘ÒG”Ó?‚ÈÀ‚ȼƒÉµƒÉ­ƒÉ£„É™…ʆʆ‡Ë|‰ËsŠÌjŒÍaŽÎXÏP“ÐH•Ñ@†ÅÁ†Å½†Å¶†Å®‡Å¥ˆÆ›ˆÆ‘‰Çˆ‹Ç~ŒÈuŽÉlÊc‘ÊZ“ÌR–ÍJ˜ÎB‹À‹À¾‹À¸‹À°ŒÀ§ŒÁÁ”ŽÂŠÂ‘Ãx’Än”Åf–Æ]˜ÇUšÈLœÊD‘ºÃ‘º¿‘ºº‘º²’ºª’» “»—”¼•½„–½{˜¾r™¿i›Á`ÂXŸÃP¡ÅH˜³Ä˜³Á˜³¼™³µ™³­™´¤š´››µ‘œ¶ˆ·ž¸v ¹m¢ºd£¼\¥½T§¿L «Æ «Ã «¿¡¬¸¡¬°¢¬¨¢­Ÿ£®–¤¯Œ¥°ƒ¦±z¨²q©³i«µ`­¶X¯¸P©£È©£Æ©£Âª¤»ª¤´ª¥¬«¥£¬¦š­§‘®¨ˆ¯©°ªv±¬n³­eµ¯]¶°U³›Ë³›É³›Å³œ¿´œ¸´œ°µ¨µžŸ¶Ÿ–· ¸¡„¹¢|º¤s¼¥k½§b¿©Z½“ͽ“˽“Ƚ“þ”¼¾”µ¿•­¿–¤À—›Á˜“™ŠÃšÄœyÅpÇŸhÈ¡`È‹ÐÈ‹ÎÈ‹ËÈ‹ÆÈŒÀÉŒ¹É±ÊŽ©Ê¡Ë˜Ì‘Í’‡Î”~Ï•vÑ—nÒ™eÓƒÓÓƒÒÓƒÏÓ„ÊÓ„ÅÓ„¾Ô…¶Ô†®Õ‡¦ÖˆžÖ‰•׊،„ÙŽ|ÛtÜ‘kÞ{ÖÞ{ÕÞ|ÒÞ|ÎÞ|Éß}Âß}»ß~´à¬á€¤á›âƒ“ㄊ䆂åˆzæ‰rétÚétØétÖétÒêuÍêuÇêvÀëw¹ëx±ìy©ìz¡í{™î}ï~ˆð€€ñ‚xômÝõmÜõmÙõmÖõnÑõnÌõoÅöp¾öp·÷q¯øs§øtŸùu—úwŽûy†üz~ˆÐÈпˆÐ¸ˆÐ°‰Ñ¦ŠÑŠÑ“‹Ò‰Ò€ŽÒvÓm‘Ôd“Õ\•ÕS—ÖKš×C‰ÏÉϿ‰Ï¹ŠÏ°ŠÏ§‹Ð‹Ð“ŒÐŠŽÑ€ÑwÒn’Óe”Ó\–ÔT˜ÕL›ÖD‹ÍÄ‹ÍÀ‹Í¹‹Í±ŒÍ¨ÎžÎ”ŽÎ‹Ï‘Ïx’Ðo”Ñf–Ò]˜ÒUšÓMœÔEŽÉÄŽÉÀŽÊºÊ²Ê©Ê ‘Ë–‘˓̃”Ìz•Íq—Îh™Ï_›ÐWÑNŸÒF“ÅÅ“ÅÁ“ż“Å´”Å«”Æ¢•Ƙ–Ç—Ç…˜È|™És›ÊjÊbŸÌY¡ÍQ£ÎI˜¿Æ˜¿Ã˜¿½™À¶™À®šÀ¥šÁ››Á’œÂˆÃŸÃv Äm¢Åe¤Æ\¦ÈT¨ÉLŸ¹ÇŸ¹ÄŸ¹¿Ÿ¹¹ ¹° º¨¡ºŸ¢»•£¼Œ¤¼ƒ¥½z¦¾q¨¿hªÁ`«ÂX­ÃO§±É§²Æ§²Â§²»§²´¨³«¨³¢©´™ª´«µ‡¬¶~®·u¯¹m±ºd²»\´½T¯ªË¯ªÉ¯ªÄ°ª¾°«·°«¯±¬¦²¬ž²­•³®Œ´¯ƒ¶°z·±q¸³iº´`¼¶X¸¢Í¸¢Ë¸¢Ç¹¢Â¹£»¹£³º¤«»¤¢»¥™¼¦½§ˆ¾¨¿ªvÁ«n­eÄ®]šÐšÎšÊšÅۿ۷ܯĜ§ÅžÆž–ÆŸÇ „É¢|Ê£sË¥kͧcÌ’ÒÌ’ÑÌ’ÍÍ’ÉÍ“ÃÍ“¼Î”´Î”¬Ï•£Ï–›Ð—’Ñ™ŠÒšÓ›yÕpÖŸh׊Õ׊Ô׊Ñ׊Ì×‹ÇØ‹ÀØŒ¹ØŒ±Ù©ÚŽ Ú˜Û‘Ü’‡Ý”~ß•và—nâ‚Øâ‚×â‚ÔâƒÐâƒËâƒÄã„½ã…¶ä†®ä‡¦åˆæ‰•çŠèŒ„é|êtí{Ûí{Úí{Øí{Ôí{Ïí|Éî|Âî}»ï~³ï«ð€£ð›ñƒ“ò„Šó†‚ô‡zøsÞøsÝøtÛøtØøtÓøuÍùuÇùvÀúw¸úx±ûy©ûz¡ü{˜ý}þ~ˆÿ€€  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿmft1  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !!"#$%&'()*+,-../0123456789:;<<=>?@ABCDEFGHIIJKLMNOPQRSTUVVWXYZ[\]^_`abccdefghijklmnoppqrstuvwxyz{|}~~€‚ƒ„…†‡ˆ‰Š‹‹ŒŽ‘’“”•–—˜˜™š›œžŸ ¡¢£¤¥¥¦§¨©ª«¬­®¯°±²³³´µ¶·¸¹º»¼½¾¿ÀÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÓÔÕÖרÙÚÚÛÜÝÞßàáâãäåæççèéêëìí  !!"#$%&'()*+,-../0123456789:;<<=>?@ABCDEFGHIIJKLMNOPQRSTUVVWXYZ[\]^_`abccdefghijklmnoppqrstuvwxyz{|}~~€‚ƒ„…†‡ˆ‰Š‹‹ŒŽ‘’“”•–—˜˜™š›œžŸ ¡¢£¤¥¥¦§¨©ª«¬­®¯°±²³³´µ¶·¸¹º»¼½¾¿ÀÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÓÔÕÖרÙÚÚÛÜÝÞßàáâãäåæççèéêëìíä‡kP7ä‡kP7ä‡kP7ä‡kP7ä‡kP7ä‡kP7ä‡kP7ä‡kP7ä‡kP 7 !!!!!!!!!Ã¥‡k Q$7- 111111111Ã¥‡k*Q68< ?????????Ã¥ˆ-l>QF8K!MMMMMMMMMÃ¥.ˆElPQW8Z"\\\\\\\\\Ã-¥JˆYlbRg9j#kkkkkkkkk(ÃN¥aˆllsRw9y${ { { { { { { { { QÃg¥uˆ~m„Rˆ:Š%‹‹‹‹‹‹‹‹‹Ö·™|` F ,  Ö·™|` F ,  Ö·™|` F ,  Ö·™|` F ,  Ö·™|` F ,  Ö·™|` F ,  Ö·™|`F-Ö·™|aF-Ö·™|aF$-+--------Ö·™}a/F8-=>>>>>>>>Ö·™}8aDGJ.NOOOOOOOOÖ·š?}NaWG\/^________Ö¸DšW}bbiHm/oppppppppÖG¸^šl}ub{H~0€€€€€€€€H×e¸uš€~ˆbŒI1‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ j×~¸‹›”~šcžI 2¡¢¢¢¢¢¢¢¢/é0Ê0«1Ž1q2V2;2!22222222/é0Ê0«1Ž1q2V2;2!22222222/é0Ê0«1Ž1q2V2;2!22222222/é0Ê0«1Ž1q2V2;2!22222222.é/Ê0«0Ž1q1V1;1!11111111*é+Ê,¬,Ž-q-V-;-!--------%é&Ê'¬(Ž(q(V);)") ) ) ) ) ) ) )êÊ ¬!Ž!q"V"<"""(")")")")")")")"êʬŽr$V3<:#=>>>>>>>êʬŽ.r@VI„'…†††††††;ê`Ët­‚ŠsX”?–(————————eê|ËŒ­–žs£Y¦@¨)©© © © © © © © ƒë•Ë¢­«±tµZ¸A¹+ººººººººBýCÝC¾D D‚DfDJE/EEEEEEEEBýCÝC¾D D‚DfDJE/EEEEEEEEBýCÝC¾D D‚DfDJE/EEEEEEEE@ýAÝA¾B B‚BfCJC/CCCCCCCC=ý>Ý>¾? ?‚@f@J@/@@@@@@@@9ý:Ý;¾; <‚S SSSSSSSNÿOñOÑP²P”PwPZP>Q!QQQQQQQJÿJñKÑL²L”LwLZL>M!MMMMMMMDÿEñEÑF²F”FwGZG?#G"*G,G,G,G,G,G,G<ÿ=ñ=Ñ>²>”?w2?[???F?#I?J?J?J?J?J?J?/ÿ1ñ2Ò2³)3•E3wR3[Z4@_4$a4b4b4b4b4b4b4ÿñÒ6³R•b xk \q!@u!%v!w!w!w!w!w!w!ÿñ?Ò^³o•{x‚\‡A‰'‹ ‹‹‹‹‹‹ÿDògÒ{³ˆ•‘y—]›B(ž ŸŸŸŸŸŸGÿoò†Ò•´Ÿ–§y¬]¯C±*²²²²²²²uÿò Ó¬´µ–»zÀ^ÃDÄ,ÅÆÆÆÆÆÆ—ÿªò¸ÓôʗÐzÔ_ÖFØ.ØÙ Ù Ù Ù Ù Ù ´ÿÄóÏÓØµß—ä{ç`êGë0ìììììììiÿjÿjäjÅk¦k‡kjkLk.kkkkkkkgÿhÿhäiÅi¦i‡ijjLj.jjjjjjjfÿfÿgägÅg¦gˆhjhMh.hhhhhhhcÿcÿdädÅe¦eˆejeMe/eeeeeee_ÿ`ÿ`äaÅa¦aˆajbMb/bbbbbbbZÿ[ÿ\ä\Å\¦]ˆ]j]M]0] ]]]]]]TÿUÿUåVÅV¦VˆVk%WN3W0:W =W=W=W=W=W=WKÿLÿMåMÅN¦(NˆBNkNNNUN1YO[O[O[O[O[O[O?ÿ@ÿAåBÅ=B§UC‰cClkCOpC2sCtCtCtCtCtCtC-ÿ.ÿ/åL0Æe1§s1‰}2lƒ2P‡23‰2‹2‹2‹2‹2‹2‹2ÿÿWåqÆ‚§ ‰• mš P 5Ÿ             ÿ_ÿ|åÆœ¨¥Š«m°Q²6´µµµµµµeÿ†ÿ›æ©Æ´¨»ŠÁnÄRÇ8ÈÉÉÉÉÉÉŽÿ¥ÿ¶æÂÇ˨ыÖoÙSÛ:Ü!ÝÝÝÝÝÝ®ÿÁÿÏæÙÇá©æŒêpíUï;ð$ñ ñññññËÿÛÿæçïÈöªûŒÿqÿVÿ=ÿ(ÿÿÿÿÿÿ}ÿ}ÿ}ø~×~¸~™~z~\~=~~{ÿ{ÿ{ø|×|¸|™|z}\}=}}}}}}}xÿyÿyøy×z¸z™z{z\z=zzzzzzzuÿuÿvøvØv¸w™w{w]w>wwwwwwwqÿqÿrørØr¸s™s{s]s>ssssssslÿlÿlømØm¸m™m{n]n? nnnnnnneÿeÿføfØf¸gšg|5g^Cg@JgMgOgOgOgOgOg\ÿ\ÿ]ø]Ø^¹;^šR^|^^^f^@j^l^n^n^n^n^n^PÿPÿQø!RØPR¹fRšsS||S_SA…S!†S‡S‡S‡S‡S‡S?ÿ?ÿ5@ù`AÙwA¹…B›B}–B`šCBC#žCŸCŸCŸCŸCŸC ÿ@!ÿm#ù…$Ù•%º &›¨'}®'`±'D³(&µ(µ(µ(µ(µ(µ(Xÿwÿ‘ù£Ù°º¹œÀ~ÄaÇEÉ(ÊËËËËˈÿœÿ°ù¾ÚɺМÖÚbÝFÞ+ß ààààà¬ÿ»ÿËú×Úà»çì€ïcòHó-ôõõõõõËÿ×ÿåúïÚ÷»ýÿ€ÿdÿJÿ0ÿÿÿÿÿÿçÿòÿýûÿÛÿ¼ÿžÿÿfÿLÿ3ÿÿÿÿÿÿ‘ÿ‘ÿ‘ÿ‘ê’Ê’ª’‹’l’L’(’’’’’’ŽÿŽÿÿëÊ«‹lL(‹ÿ‹ÿŒÿŒëŒÊ«ŒmM)ˆÿˆÿˆÿˆë‰Ë‰«‰Œ‰m‰M‰*‰‰‰‰‰‰ƒÿƒÿƒÿ„ë„Ë„«„Œ…m…N…+………………}ÿ}ÿ~ÿ~ë~Ë~«Œn N&,046666vÿvÿvÿwëwËw¬-wFxnSxOZx-^xaxaxaxaxaxmÿmÿmÿnë nËMn¬bnooowoP{o/~o€o€o€o€o€oaÿaÿaÿ>bìcbÌwc¬…cŽco“cQ—c1™c›c›c›c›c›cPÿQÿPQÿtRì‰RÌ—S­¡SލSp­SR°T2²T³T³T³T³T³TW7ÿ^8ÿ‚9ÿ˜:ì¨:̳;­»;Áÿ#ÿÿÿÿÿÿÿÿÿÿÿÿîÿÏÿ°ÿ“ÿvÿZÿ@ÿ'ÿÿÿÿÿ¥ÿ¥ÿ¥ÿ¥þ¦Ý¦½¦¦}¦\¦8¦¦¦¦¦¦¢ÿ¢ÿ¢ÿ£þ£Ý£½££}£\£9££££££ŸÿŸÿŸÿŸþŸÝ ½  } ] :      šÿšÿ›ÿ›þ›Ý›½œœ}œ]œ:œœœœœœ•ÿ•ÿ•ÿ–þ–Þ–½–—~—^—;——————ÿÿÿþÞ¾ž~(^;‘p‰ s‰t‰t‰t‰t‰~ÿ~ÿ~ÿ~ÿ<Þ_¾sŸˆ`€?€’€“€“€“€“€rÿrÿrÿVrÿvs߉s¿–sŸŸt€¦taªt@­t®t¯t¯t¯t¯tPbÿPbÿhbÿ‡cÿœcߪd¿´d »dÁdbÄeBÆeÇeÈeÈeÈeÈe‰Lÿ‰Lÿ—Lÿ¬Mÿ»NßÇN¿ÏO ÕOÚOcÝODßOàOàOàOàOàO°"ÿ°"ÿ»#ÿË%ÿØ&àá(Àé(¡î)‚ò)dô*Fö*#÷*÷*÷*÷*÷*ÒÿÒÿÚÿèÿòàûÁÿ¢ÿƒÿeÿHÿ'ÿÿÿÿÿïÿïÿ÷ÿÿÿÿáÿÁÿ¢ÿ„ÿgÿJÿ+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÿÂÿ£ÿ…ÿhÿLÿ/ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿâÿÃÿ¤ÿ‡ÿjÿNÿ3ÿÿÿÿÿ¹ÿ¹ÿ¹ÿ¹ÿºðºÏº®ºŽºlºIºººººº¶ÿ¶ÿ¶ÿ¶ÿ¶ð·Ï·®·Ž·m·I······²ÿ²ÿ²ÿ²ÿ³ð³Ï³¯³Ž³m³J³³³³³³­ÿ­ÿ­ÿ®ÿ®ð®Ð®¯®¯n¯K¯¯¯¯¯¯¨ÿ¨ÿ¨ÿ¨ÿ¨ñ©Ð©¯©©n©L©©©©©©¡ÿ¡ÿ¡ÿ¡ÿ¢ñ¢Ð¢°¢>¢oN¢MW¢"\¢^£_£_£_£™ÿ™ÿ™ÿ™ÿšñ)šÐSš°hštšp}šN‚š$…›†›‡›‡›‡›ÿÿÿÿSñqÑ„±‘‘‘™‘pŸ‘O£‘'¥‘¦‘§‘§‘§‘>ƒÿ>ƒÿ>ƒÿl„ÿˆ„ò›„Ѩ„±±…‘¸…q½…PÀ…*Â…Ã…Ã…Ã…Ã…ƒtÿƒtÿƒtÿ›tÿ®uò¼uÒÇu²Îv’ÔvrØvRÛv-ÜvÝvÝvÝvÝv®_ÿ®_ÿ®_ÿÀ`ÿÏ`óÚaÒãa²éa“îbsòbSôb0õböböböböbÒ?ÿÒ?ÿÒ?ÿà@ÿìAóöBÓýB³ÿC”ÿCuÿCUÿC3ÿDÿDÿDÿDÿDñÿñÿñÿýÿÿóÿÓÿ´ÿ”ÿvÿWÿ6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿôÿÔÿ´ÿ•ÿwÿYÿ:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõÿÕÿµÿ—ÿyÿ[ÿ=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõÿÕÿ¶ÿ˜ÿzÿ]ÿ@ÿ"ÿÿÿÿÎÿÎÿÎÿÎÿÎÿÎâÎÀΟÎ}ÎZÏ-ÏÏÏÏÏÊÿÊÿÊÿÊÿÊÿÊâËÁËŸË~ËZË/ËËËËËÆÿÆÿÆÿÆÿÆÿÆâÆÁÆ Ç~Ç[Ç0ÇÇÇÇÇÁÿÁÿÁÿÁÿÁÿÁâÁÁÁ ÂÂ\Â2»ÿ»ÿ»ÿ»ÿ»ÿ»ã»Á»¡¼¼\¼3(¼1¼5¼6¼6¼´ÿ´ÿ´ÿ´ÿ´ÿ´ã´Â7´¡Rµ€`µ]iµ5oµrµsµtµtµ«ÿ«ÿ«ÿ«ÿ¬ÿD¬ãf¬Ây¬¢†¬Ž¬^”¬7—¬™¬š¬›¬›¬¡ÿ¡ÿ¡ÿ/¡ÿh¡ÿƒ¢ä–¢Ã¢¢¢«¢±¢`¶¢9¸¢º¢»¢»£»£x•ÿx•ÿx•ÿ€•ÿ›•ÿ­–亖ÃÄ–£Ë–‚ЖaÔ–<֖זؖؖؖ©†ÿ©†ÿ©†ÿ®†ÿÁ†ÿχåÚ‡Ä⇤臃ì‡bïˆ>ñˆòˆóˆóˆóˆÏrÿÏrÿÏrÿÔrÿãsÿîså÷tÄþt¤ÿt„ÿtdÿtAÿt ÿtÿuÿuÿuñWÿñWÿñWÿôWÿÿXÿÿXæÿYÅÿY¥ÿY…ÿYeÿYCÿZÿZÿZÿZÿZÿÿÿÿÿÿÿÿÿ!ÿÿ"æÿ$Æÿ$¦ÿ%‡ÿ&gÿ&Fÿ&ÿ&ÿ'ÿ'ÿ'ÿÿÿÿÿÿÿÿÿÿÿçÿÇÿ§ÿˆÿiÿIÿ$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÈÿ¨ÿ‰ÿkÿLÿ*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÈÿ©ÿ‹ÿmÿOÿ/ÿÿÿÿâÿâÿâÿâÿâÿãõãÓã±ããkãAãããããÞÿÞÿÞÿÞÿÞÿßõßÓß±ßßkßBßßßßßÚÿÚÿÚÿÚÿÚÿÚõÚÓÚ²ÚÚlÚCÚÚÚÚÚÔÿÔÿÔÿÔÿÔÿÔõÕÔÕ²ÕÕmÕDÕÕÕÕÕÎÿÎÿÎÿÎÿÎÿÎöÎÔβΑÏm6ÏFDÏLÏOÏQÏQÏÆÿÆÿÆÿÆÿÆÿÇöÇÔNdzeÇ‘sÇn|ÇG‚DžLJLjLjǾÿ¾ÿ¾ÿ¾ÿ¾ÿ[¾öx¾Õ‹¾³—¾’ ¾o¦¿Iª¿­¿®¿¯¿¯¿e³ÿe³ÿe³ÿe³ÿ|³ÿ–´÷§´Õ´´´½´“Ä´pÉ´KÌ´δϴдд §ÿ §ÿ §ÿ §ÿ®§ÿ¿§÷ͨÖרµÞ¨”ä¨rç¨Mê¨ì¨í¨í¨í¨Ê˜ÿʘÿʘÿʘÿÕ˜ÿã™øí™Öö™µü™”ÿ™sÿ™Oÿ™ÿšÿšÿšÿšî…ÿî…ÿî…ÿî…ÿö†ÿÿ†øÿ†×ÿ†¶ÿ‡–ÿ‡tÿ‡Qÿ‡%ÿ‡ÿ‡ÿ‡ÿ‡ÿlÿÿlÿÿlÿÿlÿÿlÿÿmùÿmØÿn·ÿn—ÿnvÿnTÿn*ÿnÿnÿnÿnÿDÿÿDÿÿDÿÿDÿÿEÿÿEùÿFÙÿG¸ÿG˜ÿGwÿGVÿH/ÿHÿHÿHÿHÿÿÿÿÿÿÿÿÿÿÿúÿÙÿ¹ÿ™ÿyÿXÿ4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿÚÿºÿšÿ{ÿ[ÿ9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÛÿ»ÿœÿ}ÿ^ÿ=ÿÿÿÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷ÿ÷å÷Ãø ø|øSøøøøøóÿóÿóÿóÿóÿóÿóæóÃó¡ó|óTóóóóóîÿîÿîÿîÿîÿîÿîæîÄî¡î}îUîîîîîèÿèÿèÿèÿèÿèÿèæèÄè¢è~èWéééééáÿáÿáÿáÿáÿáÿáçâÅâ¢;âPâX\â!câgâiâjâÙÿÙÿÙÿÙÿÙÿÙÿ<ÚçbÚÅwÚ£…Ú€ŽÚY•Ú%™Ú›ÚœÚÚ>Ðÿ>Ðÿ>Ðÿ>Ðÿ>ÐÿpÐÿ‹ÑèœÑƩѤ²Ñ¹Ñ[½Ñ)ÀÑÂÑÃÑÃÑÆÿÆÿÆÿÆÿÆÿ¨ÆÿºÆèÆÆÆÐƤ×Ç‚ÜÇ\àÇ-âÇãÇäÇäÇÁ¹ÿÁ¹ÿÁ¹ÿÁ¹ÿÁ¹ÿÒºÿàºéêºÇñº¥÷ºƒüº^ÿº1ÿºÿºÿºÿºèªÿèªÿèªÿèªÿèªÿö«ÿÿ«éÿ«Èÿ«¦ÿ¬„ÿ¬`ÿ¬5ÿ¬ÿ¬ÿ¬ÿ¬ÿ˜ÿÿ˜ÿÿ˜ÿÿ˜ÿÿ˜ÿÿ™ÿÿ™êÿ™Éÿ™§ÿ™…ÿšbÿš9ÿšÿšÿšÿšÿÿÿÿÿÿÿÿÿÿÿÿÿëÿ‚Éÿ‚¨ÿ‚‡ÿ‚dÿ‚=ÿ‚ÿƒÿƒÿƒÿ_ÿÿ_ÿÿ_ÿÿ_ÿÿ_ÿÿ_ÿÿ`ëÿ`Êÿa©ÿaˆÿafÿaAÿaÿbÿbÿbÿÿÿÿÿÿÿÿÿÿÿ ÿÿìÿËÿ«ÿŠÿiÿDÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿÌÿ¬ÿŒÿkÿHÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿÍÿ­ÿÿlÿJÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÕÿ²ÿÿfÿ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÖÿ³ÿŽÿfÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÖÿ³ÿÿgÿ5ÿÿÿÿüÿüÿüÿüÿüÿüÿüúü×ü´üüiü7üüü"üõÿõÿõÿõÿõÿõÿõúõ×2õ´Uõfõjrõ:yõ}õõõìÿìÿìÿìÿìÿíÿVíúwíØŠíµ˜í‘¡ík¨í=¬í¯í±í±íxãÿxãÿxãÿxãÿxãÿ„ãÿãû¯äØ»ä¶Åä’ÌämÑä?ÔäÖä×äØä´Øÿ´Øÿ´Øÿ´Øÿ´Øÿ»ÙÿÌÙûÙÙÙãÙ¶êÙ“ðÙnôÙBöÙøÙùÙúÙàÌÿàÌÿàÌÿàÌÿàÌÿåÌÿóÌüýÌÚÿÍ·ÿÍ”ÿÍpÿÍEÿÍÿÍÿÍÿÍÿ½ÿÿ½ÿÿ½ÿÿ½ÿÿ½ÿÿ½ÿÿ¾ýÿ¾Úÿ¾¸ÿ¾–ÿ¾qÿ¾Hÿ¾ÿ¾ÿ¾ÿ¾ÿ«ÿÿ«ÿÿ«ÿÿ«ÿÿ«ÿÿ«ÿÿ¬ýÿ¬Ûÿ¬¹ÿ¬—ÿ¬sÿ¬Kÿ­ÿ­ÿ­ÿ­ÿ•ÿÿ•ÿÿ•ÿÿ•ÿÿ•ÿÿ•ÿÿ•þÿ–Üÿ–ºÿ–˜ÿ–uÿ–Oÿ–ÿ–ÿ–ÿ–ÿwÿÿwÿÿwÿÿwÿÿwÿÿwÿÿwÿÿxÝÿx»ÿxšÿxwÿyRÿyÿyÿyÿyÿMÿÿMÿÿMÿÿMÿÿMÿÿMÿÿNÿÿOÞÿO¼ÿP›ÿPyÿPUÿP&ÿPÿPÿPÿMÿÿMÿÿMÿÿMÿÿMÿÿMÿÿNÿÿOÞÿO¼ÿP›ÿPyÿPUÿP&ÿPÿPÿPÿMÿÿMÿÿMÿÿMÿÿMÿÿMÿÿNÿÿOÞÿO¼ÿP›ÿPyÿPUÿP&ÿPÿPÿPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÄÿŸÿxÿHÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéÿÅÿ ÿyÿIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéÿÅÿ¡ÿzÿKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêÿÆÿ¡ÿ{ÿM4ÿBÿIÿMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêQÿÇkÿ¢|ÿ|‡ÿOŽÿ’ÿ•ÿ—ÿKÿÿKÿÿKÿÿKÿÿKÿÿKÿÿnÿÿŠÿëÿÇ«ÿ£´ÿ}»ÿQÀÿÃÿÅÿÆÿ öÿ öÿ öÿ öÿ öÿ öÿ°÷ÿÁ÷ëÎ÷ÈØ÷¤ß÷~ä÷Sè÷ê÷ì÷í÷ÓëÿÓëÿÓëÿÓëÿÓëÿÓëÿßìÿìììöìÉþì¥ÿì€ÿìVÿì ÿìÿìÿìýßÿýßÿýßÿýßÿýßÿýßÿÿßÿÿßíÿßÊÿߦÿàÿàXÿàÿàÿàÿàÿÐÿÿÐÿÿÐÿÿÐÿÿÐÿÿÐÿÿÐÿÿÐíÿÑËÿѧÿуÿÑ[ÿÑ ÿÑÿÑÿÑÿ¿ÿÿ¿ÿÿ¿ÿÿ¿ÿÿ¿ÿÿ¿ÿÿ¿ÿÿ¿îÿ¿Ìÿ¿©ÿ¿…ÿÀ]ÿÀ(ÿÀÿÀÿÀÿ©ÿÿ©ÿÿ©ÿÿ©ÿÿ©ÿÿ©ÿÿ©ÿÿªïÿªÍÿªªÿª‡ÿª`ÿª/ÿªÿªÿªÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¢ÿÿ¢ïÿ¢Íÿ¢ªÿ¢‡ÿ£aÿ£1ÿ£ÿ£ÿ£ÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¢ÿÿ¢ïÿ¢Íÿ¢ªÿ¢‡ÿ£aÿ£1ÿ£ÿ£ÿ£ÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¢ÿÿ¢ïÿ¢Íÿ¢ªÿ¢‡ÿ£aÿ£1ÿ£ÿ£ÿ£ÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¡ÿÿ¢ÿÿ¢ïÿ¢Íÿ¢ªÿ¢‡ÿ£aÿ£1ÿ£ÿ£ÿ£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿ×ÿ²ÿŠÿ\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿ×ÿ²ÿ‹ÿ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿØÿ³ÿŒÿ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÙÿ´ÿEÿaWÿaÿhÿkÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?ÿýjÿÙÿµ‘ÿŽ›ÿc£ÿ ¨ÿ«ÿ­ÿÿÿÿÿÿÿÿÿÿÿÿÿ„ÿÿžÿþ°ÿÚ¾ÿµÇÿÏÿeÔÿ&×ÿÚÿÛÿÁÿÿÁÿÿÁÿÿÁÿÿÁÿÿÁÿÿÃÿÿÔÿþáÿÛëÿ¶òÿ‘øÿgüÿ,ÿÿÿÿÿÿñÿÿñÿÿñÿÿñÿÿñÿÿñÿÿòÿÿÿÿÿÿÿÛÿÿ·ÿÿ’ÿÿiÿÿ1ÿÿÿÿÿÿÿòÿÿòÿÿòÿÿòÿÿòÿÿòÿÿòÿÿòÿÿòÜÿó¸ÿó“ÿókÿó6ÿóÿóÿóÿãÿÿãÿÿãÿÿãÿÿãÿÿãÿÿãÿÿäÿÿäÝÿäºÿä•ÿämÿä;ÿäÿäÿäÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×Þÿ×»ÿØ–ÿØoÿØ?ÿØÿØÿØÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×Þÿ×»ÿØ–ÿØoÿØ?ÿØÿØÿØÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×Þÿ×»ÿØ–ÿØoÿØ?ÿØÿØÿØÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×Þÿ×»ÿØ–ÿØoÿØ?ÿØÿØÿØÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×Þÿ×»ÿØ–ÿØoÿØ?ÿØÿØÿØÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×ÿÿ×Þÿ×»ÿØ–ÿØoÿØ?ÿØÿØÿØ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿXYZ óMÂtextCopyright (c) 1997 Microsoft Corp., Heidelberger Druckmaschinen AG, Hewlett-Packard Co., All Rights Reserved.lcms-1.19/testbed/testcms.c0000777000175300010010000016152411272606371015152 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2007 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // Test Suite for Little cms // #define ICM_COMPARATIVE 1 // #define CHECK_SPEED 1 #ifdef __BORLANDC__ # include #endif #include "lcms.h" #include #include #include #ifndef NON_WINDOWS #include #endif #define PREC 20 #define TYPE_XYZA_16 (COLORSPACE_SH(PT_XYZ)|CHANNELS_SH(3)|BYTES_SH(2)|EXTRA_SH(1)) #define TYPE_LABA_16 (COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(2)|EXTRA_SH(1)) typedef struct {BYTE r, g, b, a;} Scanline_rgb1; typedef struct {WORD r, g, b, a;} Scanline_rgb2; typedef struct {BYTE r, g, b;} Scanline_rgb8; typedef struct {WORD r, g, b;} Scanline_rgb0; // Print a dot for gauging static void Dot(void) { fprintf(stdout, "."); fflush(stdout); } // #ifndef LCMS_DLL // Are we little or big endian? From Harbison&Steele. static int CheckEndianess(void) { int BigEndian, IsOk; union { long l; char c[sizeof (long)]; } u; u.l = 1; BigEndian = (u.c[sizeof (long) - 1] == 1); #ifdef USE_BIG_ENDIAN IsOk = BigEndian; #else IsOk = !BigEndian; #endif if (!IsOk) { printf("\nOOOPPSS! You have USE_BIG_ENDIAN toggle misconfigured!\n\n"); printf("Please, edit lcms.h and %s the USE_BIG_ENDIAN toggle.\n", BigEndian? "uncomment" : "comment"); return 0; } return 1; } static int CheckSwab(void) { unsigned char Test[] = { 1, 2, 3, 4, 5, 6}; #ifdef USE_CUSTOM_SWAB return 1; #endif #ifdef USE_BIG_ENDIAN return 1; #endif swab((char*) Test, (char*) Test, 6); if (strncmp((char*) Test, "\x2\x1\x4\x3\x6\x5", 6) != 0) { printf("\nOOOPPSS! swab() does not work as expected in your machine!\n\n"); printf("Please, edit lcms.h and uncomment the USE_CUSTOM_SWAB toggle.\n"); return 0; } return 1; } static int CheckQuickFloor(void) { if ((_cmsQuickFloor(1.234) != 1) || (_cmsQuickFloor(32767.234) != 32767) || (_cmsQuickFloor(-1.234) != -2) || (_cmsQuickFloor(-32767.1) != -32768)) { printf("\nOOOPPSS! _cmsFloor() does not work as expected in your machine!\n\n"); printf("Please, edit lcms.h and uncomment the LCMS_DEFAULT_FLOOR_CONVERSION toggle.\n"); return 0; } return 1; } typedef struct _Stats { double n, x, y, x2, y2, xy; double Peak; } STATS, FAR* LPSTATS; static void ClearStats(LPSTATS p) { p -> n = p -> x = p -> y = p -> x2 = p -> y2 = p -> xy = p -> Peak = 0.0; } static double Std(LPSTATS p) { return sqrt((p->n*p->x2 - p->x * p->x) / (p->n*(p->n-1))); } static void PrintStatistics(clock_t atime, LPSTATS Stats) { clock_t diff; double a; diff = clock() - atime; a = (double) diff / CLOCKS_PER_SEC; // These are statistics of 16 bit, so divide // by 257 to get dE relative to 8 bits printf("\n"); if (Stats) printf("dE: mean=%g, SD=%g, max=%g ", (Stats->x / Stats -> n) / 257., (Std(Stats)) / 257., Stats -> Peak / 257.); if (atime > 0) printf("[%d tics, %g sec.]", (int) diff, a); } // Simpler fixed-point math static void TestFixedPoint(void) { Fixed32 a, b, c, d; double f; a = DOUBLE_TO_FIXED(1.1234); b = DOUBLE_TO_FIXED(2.5678); c = FixedMul(a, b); d = FIXED_REST_TO_INT(c); f = ((double) d / 0xffff) * 1000000.0; printf("Testing fixed point:\t%f = %d.%d\n", (1.1234 * 2.5678), FIXED_TO_INT(c), (int) f); } static int TestFixedScaling(void) { int i, j, nfl, nfx; double FloatFactor; Fixed32 FixedFactor; printf("Testing fixed scaling..."); for (j=5; j<100; j++) { FloatFactor = (double) j / 100.0 ; FloatFactor = FIXED_TO_DOUBLE(DOUBLE_TO_FIXED(FloatFactor)); FixedFactor = DOUBLE_TO_FIXED(FloatFactor); for (i=0; i < 0x10000L; i++) { nfl = (WORD) ((double) i * FloatFactor); nfx = FixedScale((WORD) i, FixedFactor); if (nfl != nfx) { printf("Failed!\ni=%x (%d), float=%x, fixed=%x", i, i, nfl, nfx); return 0; } } } printf ("pass.\n"); return 1; } // Curve joining test. Joining two high-gamma of 3.0 curves should // give something like linear static int TestJointCurves(void) { LPGAMMATABLE Forward, Reverse, Result; LCMSBOOL rc; printf("Testing curves join ..."); Forward = cmsBuildGamma(256, 3.0); Reverse = cmsBuildGamma(256, 3.0); Result = cmsJoinGammaEx(Forward, Reverse, 256); cmsFreeGamma(Forward); cmsFreeGamma(Reverse); rc = cmsIsLinear(Result->GammaTable, Result ->nEntries); cmsFreeGamma(Result); if (!rc) { printf("failed!\n"); return 0; } else { printf("pass.\n"); return 1; } } // Check reversing of gamma curves #define NPOINTS 1024 static int TestReversingOfCurves(void) { LPGAMMATABLE Gamma, Reverse, Computed; int i; double dE; STATS Stats; printf("Testing reversing of curves ..."); ClearStats(&Stats); Gamma = cmsBuildGamma(NPOINTS, 3.0); Reverse = cmsBuildGamma(NPOINTS, 1.0/3.0); Computed = cmsReverseGamma(NPOINTS, Gamma); for (i=0; i < NPOINTS; i++) { dE = fabs(Reverse->GammaTable[i] - Computed->GammaTable[i]); Stats.x += dE; Stats.x2 += (dE * dE); Stats.n += 1.0; if (dE > Stats.Peak) { Stats.Peak = dE; } if (dE > 0x0010) { printf("Coarse error! %x on entry %d: %X/%X", (int) dE, i, Reverse->GammaTable[i], Computed->GammaTable[i]); return 0; } } if (Stats.Peak > 0) PrintStatistics(0, &Stats); printf(" pass.\n"); cmsFreeGamma(Gamma); cmsFreeGamma(Reverse); cmsFreeGamma(Computed); return 1; } // Linear interpolation test. Here I check the cmsLinearInterpLUT16 // Tables are supposed to be monotonic, but the algorithm works on // non-monotonic as well. static int TestLinearInterpolation(int lExhaustive) { static WORD Tab[4098]; int j, i, k = 0; L16PARAMS p; int n; clock_t time; printf("Testing linear interpolation ..."); // First I will check exact values. Since prime factors of 65535 (FFFF) are, // // 0xFFFF = 1 * 3 * 5 * 17 * 257 // // I test tables of 2, 4, 6, and 18 points, that will be exact. // Then, a table of 3 elements are tested. Error must be < 1 // Since no floating point is involved, This will be a measure of speed. // Perform 10 times, so i can measure average times time = clock(); for (j=0; j < 10; j++) { // 2 points - exact Tab[0] = 0; Tab[1] = 0xffffU; cmsCalcL16Params(2, &p); for (i=0; i <= 0xffffL; i++) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (n != i) { printf("Error in Linear interpolation (2p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 3 points - Here the error must be <= 1, since // 2 == (3 - 1) is not a factor of 0xffff Tab[0] = 0; Tab[1] = 0x7FFF; Tab[2] = 0xffffU; cmsCalcL16Params(3, &p); for (i=0; i <= 0xffffL; i++) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (abs(n - i) > 1) { printf("Error in Linear interpolation (3p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 4 points - exact Tab[0] = 0; Tab[1] = 0x5555U; Tab[2] = 0xAAAAU; Tab[3] = 0xffffU; cmsCalcL16Params(4, &p); for (i=0; i <= 0xffffL; i++) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (n != i) { printf("Error in Linear interpolation (4p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 6 - points Tab[0] = 0; Tab[1] = 0x3333U; Tab[2] = 0x6666U; Tab[3] = 0x9999U; Tab[4] = 0xCCCCU; Tab[5] = 0xFFFFU; cmsCalcL16Params(6, &p); for (i=0; i <= 0xffffL; i++) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (n != i) { printf("Error in Linear interpolation (6p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 18 points for (i=0; i < 18; i++) Tab[i] = (WORD) (0x0f0fU*i); cmsCalcL16Params(18, &p); for (i=0; i <= 0xffffL; i++) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (n != i) { printf("Error in Linear interpolation (18p): Must be i=%x, But is n=%x\n", i, n); return 0; } } } printf("pass. (%d tics)\n", (int) (clock() - time)); // Now test descending tables printf("Testing descending tables (linear interpolation)..."); // 2 points - exact Tab[1] = 0; Tab[0] = 0xffffU; cmsCalcL16Params(2, &p); for (i=0xffffL; i > 0; --i) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if ((0xffffL - n) != i) { printf("Error in Linear interpolation (descending) (2p): Must be i=%x, But is n=%x\n", i, 0xffff - n); return 0; } } // 3 points - Here the error must be <= 1, since // 2 = (3 - 1) is not a factor of 0xffff Tab[2] = 0; Tab[1] = 0x7FFF; Tab[0] = 0xffffU; cmsCalcL16Params(3, &p); for (i=0xffffL; i > 0; --i) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (abs((0xffffL - n) - i) > 1) { printf("Error in Linear interpolation (descending) (3p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 4 points - exact Tab[3] = 0; Tab[2] = 0x5555U; Tab[1] = 0xAAAAU; Tab[0] = 0xffffU; cmsCalcL16Params(4, &p); for (i=0xffffL; i > 0; --i) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if ((0xffffL - n) != i) { printf("Error in Linear interpolation (descending) (4p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 6 - points Tab[5] = 0; Tab[4] = 0x3333U; Tab[3] = 0x6666U; Tab[2] = 0x9999U; Tab[1] = 0xCCCCU; Tab[0] = 0xFFFFU; cmsCalcL16Params(6, &p); for (i=0xffffL; i > 0; --i) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if ((0xffffL - n) != i) { printf("Error in Linear interpolation (descending) (6p): Must be i=%x, But is n=%x\n", i, n); return 0; } } // 18 points for (i=0; i < 18; i++) Tab[17-i] = (WORD) (0x0f0fU*i); cmsCalcL16Params(18, &p); for (i=0xffffL; i > 0; --i) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if ((0xffffL - n) != i) { printf("Error in Linear interpolation (descending) (18p): Must be i=%x, But is n=%x\n", i, n); return 0; } } printf("pass.\n"); if (!lExhaustive) return 1; printf("Now, testing interpolation errors for tables of n elements ...\n"); for (j=10; j < 4096; j ++) { if ((j % 10) == 0) printf("%d\r", j); for (i=0; i <= j; i++) { Tab[i] = (WORD) floor((((double) i / ((double) j-1)) * 65535.0) + .5); } k =0; cmsCalcL16Params(j, &p); for (i=0; i <= 0xffffL; i++) { n = cmsLinearInterpLUT16((WORD) i, Tab, &p); if (n != i) k++; } } printf("\n%d: %d errors\n\n", j, k); return 1; } static int IsGood(const char *frm, WORD in, WORD out) { // 1 for rounding if ((abs(in - out) > 1)) { printf("error %s %x - %x\n", frm, in, out); return 0; } return 1; } static LCMSBOOL TestReverseLinearInterpolation(void) { WORD Tab[20]; L16PARAMS p; int i, n, v; printf("Testing reverse linear interpolation\n"); cmsCalcL16Params(16, &p); for (i=0; i < 16; i++) Tab[i] = (WORD) i * 0x1111; printf("\ton normal monotonic curve..."); for (i=0; i < 16; i++) { v = (i * 0x1111); n = cmsReverseLinearInterpLUT16((WORD) v, Tab, &p); if (!IsGood("unexpected result", (WORD) v, (WORD) n)) return FALSE; } printf("pass.\n"); Tab[0] = 0; Tab[1] = 0; Tab[2] = 0; Tab[3] = 0; Tab[4] = 0; Tab[5] = 0x5555; Tab[6] = 0x6666; Tab[7] = 0x7777; Tab[8] = 0x8888; Tab[9] = 0x9999; Tab[10]= 0xffff; Tab[11]= 0xffff; Tab[12]= 0xffff; Tab[13]= 0xffff; Tab[14]= 0xffff; Tab[15]= 0xffff; printf("\ton degenerated curve ..."); for (i=0; i < 16; i++) { v = (i * 0x1111); n = cmsReverseLinearInterpLUT16((WORD) v, Tab, &p); if (i > 5 && i <= 9) { if (!IsGood("unexpected result", (WORD) v, (WORD) n)) return FALSE; } } printf("pass.\n"); return TRUE; } // 3D LUT test static int Test3D(void) { LPLUT MyLut; LPWORD Table; WORD In[3], Out[3]; int r, g, b, i; double *SampleTablePtr, SampleTable[] = { //R G B 0, 0, 0, // B=0,G=0,R=0 0, 0, .25, // B=1,G=0,R=0 0, .5, 0, // B=0,G=1,R=0 0, .5, .25, // B=1,G=1,R=0 1, 0, 0, // B=0,G=0,R=1 1, 0, .25, // B=1,G=0,R=1 1, .5, 0, // B=0,G=1,R=1 1, .5, .25 // B=1,G=1,R=1 }; printf("Testing 3D interpolation on LUT..."); // 1.- Allocate an empty LUT MyLut = cmsAllocLUT(); // 2.- In this LUT, allocate a 3D grid of 2 points, from 3 components (RGB) // to 3 components. First 3 is input dimension, last 3 is output one. // 2 is number of grid points. MyLut = cmsAlloc3DGrid(MyLut, 2, 3, 3); // 3.- Fill the LUT table with values. Table = MyLut -> T; SampleTablePtr = SampleTable; for (i= 0; i < 3; i++) for (r = 0; r < 2; r++) for (g = 0; g < 2; g++) for (b = 0; b < 2; b++) { WORD a = (WORD) floor(*SampleTablePtr++ * 65535. + .5); *Table++ = a; } // The sample table gives // // r = input, // g = input divided by 2 // b = input divided by 4 // // So, I should obtain on output r, g/2, g/4 for (i=0; i < 0xffff; i++) { In[0] = In[1] = In[2] = (WORD) i; cmsEvalLUT(MyLut, In, Out); // Check results, I will tolerate error <= 1 for rounding if (!IsGood("Channel 1", Out[0], In[0])) return 0; if (!IsGood("Channel 2", Out[1], (WORD) ((double) In[1] / 2))) return 0; if (!IsGood("Channel 3", Out[2], (WORD) ((double) In[2] / 4))) return 0; } // Last, remember free stuff cmsFreeLUT(MyLut); printf("pass.\n"); return 1; } static void PrintMatrix(LPMAT3 lpM) { int i, j; for (i=0; i < 3; i++) { printf ("[ "); for (j=0; j < 3; j++) { printf("%1.6f ", (*lpM).v[i].n[j]); } printf("]\n"); } printf("\n"); } static LCMSBOOL CmpMatrix(LPMAT3 lpM1, LPMAT3 lpM2, double tolerance) { int i, j; for (i=0; i < 3; i++) { for (j=0; j < 3; j++) { if (fabs(lpM1 -> v[i].n[j] - lpM2 -> v[i].n[j]) > tolerance) return FALSE; } } return TRUE; } static LCMSBOOL TestMatrixCreation(void) { MAT3 Mat; int rc; cmsCIExyY WhitePt = {0.3127, 0.3290, 1.0}; cmsCIExyYTRIPLE Primaries = { {0.6400, 0.3300, 1.0}, {0.3000, 0.6000, 1.0}, {0.1500, 0.0600, 1.0} }; MAT3 sRGB = {{ {{ 0.436066, 0.385147, 0.143066 }}, {{ 0.222488, 0.716873, 0.060608 }}, {{ 0.013916, 0.097076, 0.714096 }} }}; printf("Testing virtual profiles (Emulating sRGB)..."); rc = cmsBuildRGB2XYZtransferMatrix(&Mat, &WhitePt, &Primaries); cmsAdaptMatrixToD50(&Mat, &WhitePt); if (rc < 0) { printf("TestMatrixCreation failed, rc = %d\n", rc); return FALSE; } if (!CmpMatrix(&Mat, &sRGB, 0.001)) { printf("FAILED!\n"); printf("sRGB final matrix is:\n"); PrintMatrix(&sRGB); printf("\nlcms calculated matrix is:\n"); PrintMatrix(&Mat); return FALSE; } printf("pass.\n"); return TRUE; } /* Used for debug purposes */ #if 0 static void AdaptationMatrixTest(void) { cmsCIExyY D65 = {0.3127, 0.329001, 1.0}; // D65 MAT3 sRGB, TosRGB; VEC3init(&sRGB.v[0], 0.4124, 0.3576, 0.1805); VEC3init(&sRGB.v[1], 0.2126, 0.7152, 0.0722); VEC3init(&sRGB.v[2], 0.0193, 0.1192, 0.9505); cmsAdaptMatrixToD50(&sRGB, &D65); printf("Adaptation matrix D65 -> D50 (to PCS)\n"); PrintMatrix(&sRGB); MAT3inverse(&sRGB, &TosRGB); printf("inverse\n"); PrintMatrix(&TosRGB); cmsAdaptMatrixFromD50(&TosRGB, &D65); printf("adaptated to D65\n"); PrintMatrix(&TosRGB); } #endif // #endif static double VecDist(Scanline_rgb2 *bin, Scanline_rgb2 *bout) { double rdist, gdist, bdist; rdist = fabs(bout -> r - bin -> r); gdist = fabs(bout -> g - bin -> g); bdist = fabs(bout -> b - bin -> b); return (sqrt((rdist*rdist + gdist*gdist + bdist*bdist))); } // Perform sampling in the full spectrum & acotate error. // I choose red for the lowest incidence in eye. // Green is most lightful, eye is most accurate on blue. static int TestFullSpectrum(cmsHTRANSFORM xform, int nRedInterv, int MaxErr) { int r, g, b; double err; Scanline_rgb2 *bin, *bout; STATS Stats; clock_t t; bin = (Scanline_rgb2 *) _cmsMalloc(256*sizeof(Scanline_rgb2)); bout = (Scanline_rgb2 *) _cmsMalloc(256*sizeof(Scanline_rgb2)); ClearStats(&Stats); Stats.x = 0.0; Stats.n = 0.0; // GCC BUG HERE!!!! t = clock(); for (r=0; r < 256; r+= nRedInterv) { // printf("\r%02x:", r); Dot(); for (g=0; g < 256; g++) { for (b=0; b < 256; b++) { bin[b].r = (WORD) r << 8; // For L 0nly to 0xFF00 bin[b].g = RGB_8_TO_16(g); bin[b].b = RGB_8_TO_16(b); bin[b].a = 0; } cmsDoTransform(xform, bin, bout, 256); // I'm using b as index for (b=0; b < 256; b ++) { // I measure the error using vector distance err = VecDist(bin+b, bout+b); Stats.x += (double) err; Stats.x2 += (double) err * err; Stats.n += 1.0; if (err > Stats.Peak) Stats.Peak = err; if (err > MaxErr) { printf("Coarse error! : In=(%x,%x,%x) Out=(%x,%x,%x)\n", bin[b].r, bin[b].g, bin[b].b, bout[b].r, bout[b].g, bout[b].b); _cmsFree(bin); _cmsFree(bout); return 0; } } } } PrintStatistics(t, &Stats); _cmsFree(bin); _cmsFree(bout); return 1; } static int TestInducedError(DWORD Type) { cmsHPROFILE In, Out; cmsHTRANSFORM xform; int nMaxError; In = cmsCreateLabProfile(NULL); Out = cmsCreateLabProfile(NULL); printf("Error Induced by the CMM due to roundoff (dE) "); xform = cmsCreateTransform(In, Type, Out, Type, INTENT_RELATIVE_COLORIMETRIC, 0); nMaxError = TestFullSpectrum(xform, 31, 0x800); printf("\n"); cmsDeleteTransform(xform); cmsCloseProfile(In); cmsCloseProfile(Out); return nMaxError; } static double ConvertL(WORD v) { int fix32; fix32 = v; return (double)fix32/652.800; /* 0xff00/100.0 */ } static double Convertab(WORD v) { int fix32; fix32 = v; return ((double)fix32/256.0)-128.0; } #define BASE 255 static int CompareTransforms(cmsHTRANSFORM xform1, cmsHTRANSFORM xform2, int nRedInterv, int lWithStats, LCMSBOOL lIsLab) { int r, g, b; double err; Scanline_rgb2 *bin, *bout1, *bout2; STATS Stats; int OutOfGamut = 0; bin = (Scanline_rgb2 *) _cmsMalloc(256*sizeof(Scanline_rgb2)); bout1 = (Scanline_rgb2 *) _cmsMalloc(256*sizeof(Scanline_rgb2)); bout2 = (Scanline_rgb2 *) _cmsMalloc(256*sizeof(Scanline_rgb2)); ClearStats(&Stats); Stats.x = 0.0; Stats.n = 0.0; // GCC BUG HERE!!!! for (r=0; r <= BASE; r+= nRedInterv) { // printf("\r%02x:", r); Dot(); for (g=0; g <= BASE; g++) { // I will test random LSB for (b=0; b <= BASE; b++) // 256 { bin[b].r = RGB_8_TO_16(r); bin[b].g = RGB_8_TO_16(g); bin[b].b = RGB_8_TO_16(b); bin[b].a = 0; } cmsDoTransform(xform1, bin, bout1, 256); cmsDoTransform(xform2, bin, bout2, 256); // I'm using b as index for (b=0; b <= BASE; b ++) { // I measure the error using vector distance // Only if encodable values if (bout1[b].r != 0xffff && bout1[b].g != 0xffff && bout1[b].b != 0xffff) { err = VecDist(bout1+b, bout2+b); if (err > 0x1000L) { if (lIsLab) { printf("Coarse error: In=(%x,%x,%x) Out1=(%g,%g,%g) Out2=(%g,%g,%g)\n", bin[b].r, bin[b].g, bin[b].b, ConvertL(bout1[b].r), Convertab(bout1[b].g), Convertab(bout1[b].b), ConvertL(bout2[b].r), Convertab(bout2[b].g), Convertab(bout2[b].b)); } else { printf("Coarse error: In=(%x,%x,%x) Out1=(%x,%x,%x) Out2=(%x,%x,%x)\n", bin[b].r, bin[b].g, bin[b].b, bout1[b].r, bout1[b].g, bout1[b].b, bout2[b].r, bout2[b].g, bout2[b].b); } return 0; } else { Stats.x += (double) err; Stats.x2 += (double) err * err; Stats.n += 1.0; if (err > Stats.Peak) Stats.Peak = err; } } else OutOfGamut++; } } } if (lWithStats) { PrintStatistics(0, &Stats); printf(" pass.\n"); } if (OutOfGamut > 0) printf("Out of encodeable representation=%d\n\n", OutOfGamut); _cmsFree(bin); _cmsFree(bout1); _cmsFree(bout2); return 1; } static LCMSBOOL CheckXYZ(LPcmsCIEXYZ Check, double X, double Y, double Z) { return ((fabs(Check->X - X) < 0.001) && (fabs(Check->Y - Y) < 0.001) && (fabs(Check->Z - Z) < 0.001)); } static LPGAMMATABLE Build_sRGBGamma(void) { double Parameters[5]; Parameters[0] = 2.4; Parameters[1] = 1. / 1.055; Parameters[2] = 0.055 / 1.055; Parameters[3] = 1. / 12.92; Parameters[4] = 0.04045; // d return cmsBuildParametricGamma(1024, 4, Parameters); } static LCMSBOOL Check_sRGBGamma(LPGAMMATABLE Shape) { LPGAMMATABLE sRGB = Build_sRGBGamma(); int i; if (Shape ->nEntries != 1024) { printf("because wrong sizes (%d != 1024), ", Shape -> nEntries); return 0; } for (i=0; i < Shape -> nEntries; i++) { double nErr = Shape ->GammaTable[i] - sRGB ->GammaTable[i]; if (fabs(nErr) > 1.0) { int j; printf("because %x != %x on index %d\n", Shape ->GammaTable[i], sRGB ->GammaTable[i], i); printf("table dump follows:\n"); for (j=0; j < 10; j++) printf("%d) %X\n", j, Shape ->GammaTable[j]); printf("\nso, "); return 0; } } cmsFreeGamma(sRGB); return 1; } static int GetInfoTest(void) { cmsHPROFILE hProfile; cmsCIEXYZ WhitePoint; cmsCIEXYZTRIPLE Primaries; const char* Product; LPGAMMATABLE Shapes[3]; printf("Testing profile decoding (sRGB)"); hProfile = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "rb"); cmsTakeMediaWhitePoint(&WhitePoint, hProfile); Dot(); if (!CheckXYZ(&WhitePoint, 0.95045, 1.0, 1.08905)) { printf("White point read failed!\n"); return 0; } Dot(); cmsTakeColorants(&Primaries, hProfile); if (!CheckXYZ(&Primaries.Red, 0.43607, 0.22249, 0.01392)) { printf("Red colorant failed!\n"); return 0; } if (!CheckXYZ(&Primaries.Green, 0.38515,0.71617, 0.09708)) { printf("Green colorant failed!\n"); return 0; } if (!CheckXYZ(&Primaries.Blue, 0.14307, 0.06061, 0.71410)) { printf("Blue colorant failed!\n"); return 0; } Dot(); Product = cmsTakeProductName(hProfile); if (strcmp(Product, "IEC 61966-2.1 Default RGB colour space - sRGB") != 0) { printf("Product name mismatch!\n"); } Dot(); Shapes[0] = cmsReadICCGamma(hProfile, icSigRedTRCTag); Shapes[1] = cmsReadICCGamma(hProfile, icSigGreenTRCTag); Shapes[2] = cmsReadICCGamma(hProfile, icSigBlueTRCTag); if (!Check_sRGBGamma(Shapes[0]) || !Check_sRGBGamma(Shapes[1]) || !Check_sRGBGamma(Shapes[2])) { printf("Gamma curves mismatch!\n"); return 0; } cmsFreeGammaTriple(Shapes); Dot(); cmsCloseProfile(hProfile); printf("pass.\n"); return 1; } static int Test_sRGB(void) { cmsHPROFILE In1, In2, Out1, Out2; cmsHTRANSFORM xform1, xform2; int nMaxErr; printf("Testing sRGB built-in space"); In1 = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "rb"); Out1 = cmsCreateXYZProfile(); In2 = cmsCreate_sRGBProfile(); Out2 = cmsCreateXYZProfile(); xform1 = cmsCreateTransform(In1, TYPE_RGBA_16, Out1, TYPE_XYZA_16, 0, cmsFLAGS_NOTPRECALC); xform2 = cmsCreateTransform(In2, TYPE_RGBA_16, Out2, TYPE_XYZA_16, 0, cmsFLAGS_NOTPRECALC); nMaxErr = CompareTransforms(xform1, xform2, 31, TRUE, FALSE); cmsDeleteTransform(xform1); cmsCloseProfile(In1); cmsCloseProfile(Out1); cmsDeleteTransform(xform2); cmsCloseProfile(In2); cmsCloseProfile(Out2); return nMaxErr; } static int RealProfilesTest(void) { cmsHPROFILE In1, In2, Out1, Out2; cmsHTRANSFORM xform1, xform2; int nMaxErr; printf("Using two real profiles"); // sRGB is a simpler, public domain XYZ PCS profile // sRGBSpac comes with Win95 Platform SDK, in the public domain. // (not latest revisions) // Using LAB identity as output profile, I'm forcing an // implicit XYZ => L*a*b conversion in xform1. // xform2 is 8 bits - LUT based, and PCS is L*a*b In1 = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "rb"); Out1 = cmsCreateXYZProfile(); In2 = cmsOpenProfileFromFile("sRGBSpac.icm", "rb"); Out2 = cmsCreateXYZProfile(); // Since LUT is 8-bits width, xform1 = cmsCreateTransform(In1, TYPE_RGBA_16, Out1, TYPE_XYZA_16, 0, cmsFLAGS_NOTPRECALC|cmsFLAGS_MATRIXINPUT); xform2 = cmsCreateTransform(In2, TYPE_RGBA_16, Out2, TYPE_XYZA_16, 0, cmsFLAGS_NOTPRECALC); nMaxErr = CompareTransforms(xform1, xform2, 31, FALSE, FALSE); printf("pass\n"); cmsDeleteTransform(xform1); cmsCloseProfile(In1); cmsCloseProfile(Out1); cmsDeleteTransform(xform2); cmsCloseProfile(In2); cmsCloseProfile(Out2); return nMaxErr; } // --------------------------------------------------------- static int TestPreview(void) { cmsHPROFILE In, Out, Proof; cmsHTRANSFORM xform; int nMaxErr; printf("Testing preview"); In = cmsCreateLabProfile(NULL); Out = cmsCreateLabProfile(NULL); Proof = cmsCreateLabProfile(NULL); xform = cmsCreateProofingTransform(In, TYPE_LABA_16, Out, TYPE_LABA_16, Proof, 0, 0, cmsFLAGS_SOFTPROOFING); nMaxErr = TestFullSpectrum(xform, 31, 0x1000L); cmsDeleteTransform(xform); cmsCloseProfile(In); cmsCloseProfile(Out); cmsCloseProfile(Proof); printf("\n"); return nMaxErr; } // Check induced error on multiprofile transforms static int TestMultiprofile(void) { cmsHPROFILE hsRGB, hXYZ, hLab; cmsHTRANSFORM hXForm; cmsHPROFILE Profiles[10]; int nMaxErr; hsRGB = cmsCreate_sRGBProfile(); hLab = cmsCreateLabProfile(NULL); hXYZ = cmsCreateXYZProfile(); Profiles[0] = hsRGB; Profiles[1] = hLab; Profiles[2] = hsRGB; Profiles[3] = hsRGB; Profiles[4] = hLab; Profiles[5] = hXYZ; Profiles[6] = hsRGB; hXForm = cmsCreateMultiprofileTransform(Profiles, 7, TYPE_RGBA_16, TYPE_RGBA_16, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_HIGHRESPRECALC); printf("Testing multiprofile transforms (6 profiles)"); nMaxErr = TestFullSpectrum(hXForm, 31, 0x1000L); cmsDeleteTransform(hXForm); cmsCloseProfile(hsRGB); cmsCloseProfile(hXYZ); cmsCloseProfile(hLab); printf("\n"); return nMaxErr; } // Check linearization and other goodies static int TestLinearizationDevicelink() { LPGAMMATABLE Transfer[3]; cmsHPROFILE hLin1, hLin2; cmsHTRANSFORM hXForm; cmsHPROFILE Profiles[10]; int nMaxErr; printf("Testing linearization devicelink"); Transfer[0] = cmsBuildGamma(256, 1./2.2); Transfer[1] = cmsBuildGamma(256, 1./2.2); Transfer[2] = cmsBuildGamma(256, 1./2.2); hLin1 = cmsCreateLinearizationDeviceLink(icSigRgbData, Transfer); cmsFreeGammaTriple(Transfer); Transfer[0] = cmsBuildGamma(256, 2.2); Transfer[1] = cmsBuildGamma(256, 2.2); Transfer[2] = cmsBuildGamma(256, 2.2); hLin2 = cmsCreateLinearizationDeviceLink(icSigRgbData, Transfer); cmsFreeGammaTriple(Transfer); Profiles[0] = hLin1; Profiles[1] = hLin2; hXForm = cmsCreateMultiprofileTransform(Profiles, 2, TYPE_RGBA_16, TYPE_RGBA_16, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_HIGHRESPRECALC); if (!hXForm) { printf("Error!\n"); return 1; } nMaxErr = TestFullSpectrum(hXForm, 31, 0x1000L); cmsDeleteTransform(hXForm); cmsCloseProfile(hLin1); cmsCloseProfile(hLin2); printf("\n"); return nMaxErr; } static int TestLinearizationDevicelink2() { LPGAMMATABLE Transfer[3]; cmsHPROFILE hLin1; cmsHTRANSFORM hXForm; int nMaxErr; printf("Testing saved linearization devicelink"); Transfer[0] = cmsBuildGamma(256, 1); Transfer[1] = cmsBuildGamma(256, 1); Transfer[2] = cmsBuildGamma(256, 1); hLin1 = cmsCreateLinearizationDeviceLink(icSigRgbData, Transfer); _cmsSaveProfile(hLin1, "lin1.icc"); cmsFreeGammaTriple(Transfer); cmsCloseProfile(hLin1); hLin1 = cmsOpenProfileFromFile("lin1.icc", "r"); hXForm = cmsCreateTransform(hLin1, TYPE_RGBA_16, NULL, TYPE_RGBA_16, INTENT_ABSOLUTE_COLORIMETRIC, 0); if (!hXForm) { printf("Error!\n"); return 1; } nMaxErr = TestFullSpectrum(hXForm, 31, 1); cmsDeleteTransform(hXForm); cmsCloseProfile(hLin1); unlink("lin1.icc"); printf("\n"); return nMaxErr; } static int TestDeviceLinkGeneration() { cmsHTRANSFORM hXForm, hIdentity; cmsHPROFILE hDevLink, hsRGB; int nMaxErr; printf("Testing devicelink generation"); hsRGB = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "r"); hIdentity = cmsCreateTransform(hsRGB, TYPE_RGBA_16, hsRGB, TYPE_RGBA_16, INTENT_RELATIVE_COLORIMETRIC, 0); hDevLink = cmsTransform2DeviceLink(hIdentity, 0); _cmsSaveProfile(hDevLink, "devicelink.icm"); cmsCloseProfile(hDevLink); cmsCloseProfile(hsRGB); cmsDeleteTransform(hIdentity); hDevLink = cmsOpenProfileFromFile("devicelink.icm", "r"); hXForm = cmsCreateTransform(hDevLink, TYPE_RGBA_16, NULL, TYPE_RGBA_16, INTENT_RELATIVE_COLORIMETRIC, 0); nMaxErr = TestFullSpectrum(hXForm, 31, 0x1000L); cmsDeleteTransform(hXForm); cmsCloseProfile(hDevLink); printf("\n"); unlink("devicelink.icm"); return nMaxErr; } static int TestInkLimiting() { cmsHPROFILE hIL; cmsHTRANSFORM hXForm; BYTE In[4], Out[4]; int i, j, k, l, res; printf("Testing ink limiting "); hIL = cmsCreateInkLimitingDeviceLink(icSigCmykData, 100); hXForm = cmsCreateTransform(hIL, TYPE_CMYK_8, NULL, TYPE_CMYK_8, INTENT_RELATIVE_COLORIMETRIC, 0); if (!hXForm) { printf("Error!\n"); return 0; } for (l=0; l < 255; l += 8) { Dot(); for (k=0; k < 255; k += 8) for (j=0; j < 255; j += 8) for (i=0; i < 255; i += 8) { In[0] = (BYTE) i; In[1] = (BYTE) j; In[2] = (BYTE) k; In[3] = (BYTE) l; cmsDoTransform(hXForm, In, Out, 1); res = Out[0] + Out[1] + Out[2] + Out[3]; if (res > 0x100) { printf("Failed! (%d) \n", res); return 0; } } } cmsDeleteTransform(hXForm); cmsCloseProfile(hIL); printf(" pass.\n"); return 1; } static void CheckPlanar(void) { cmsHTRANSFORM xform; cmsHPROFILE hsRGB; int i; BYTE Out[12]; BYTE Bmp[] = { 0x00, 0x10, 0x20, 0x30, // R Plane 0x00, 0x10, 0x20, 0x30, // G Plane 0x00, 0x10, 0x20, 0x30 }; // B Plane hsRGB = cmsCreate_sRGBProfile(); xform = cmsCreateTransform(hsRGB, TYPE_RGB_8_PLANAR, hsRGB, TYPE_RGB_8_PLANAR, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC); cmsDoTransform(xform, Bmp, Out, 4); for (i=0; i < 12; i += 3) { printf("RGB=(%x, %x, %x)\n", Out[i+0], Out[i+1], Out[i+2]); } cmsDeleteTransform(xform); cmsCloseProfile(hsRGB); } #ifdef ICM_COMPARATIVE #ifndef NON_WINDOWS static void CompareWithICM_16bit(void) { HTRANSFORM hICMxform; HPROFILE hICMProfileFrom, hICMProfileTo; LOGCOLORSPACE LogColorSpace; COLOR In, Out; COLOR *InBlk, *OutBlk, *InPtr; size_t size; int r, g, b; PROFILE Profile; clock_t atime; double seconds, diff; cmsHPROFILE hlcmsProfileIn, hlcmsProfileOut; cmsHTRANSFORM hlcmsxform; printf("\n\nComparative with MS-Windows ICM (16 bits per sample):\n"); Profile.dwType = PROFILE_FILENAME; Profile.pProfileData = "sRGBSpac.icm"; Profile.cbDataSize = strlen("sRGBSpac.icm"); hICMProfileFrom = OpenColorProfile(&Profile, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); Profile.pProfileData = "sRGBSpac.icm"; Profile.cbDataSize = strlen("sRGBSpac.icm"); hICMProfileTo = OpenColorProfile(&Profile, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); ZeroMemory(&LogColorSpace, sizeof(LOGCOLORSPACE)); LogColorSpace.lcsSignature = LCS_SIGNATURE; LogColorSpace.lcsVersion = 0x400; LogColorSpace.lcsCSType = LCS_CALIBRATED_RGB; strcpy(LogColorSpace.lcsFilename, "sRGBSpac.icm"); hICMxform = CreateColorTransform(&LogColorSpace, hICMProfileTo, NULL, BEST_MODE); size = 256 * 256 * 256; InBlk = _cmsMalloc((size_t) size * sizeof(COLOR)); OutBlk = _cmsMalloc((size_t) size * sizeof(COLOR)); if (InBlk == NULL || OutBlk == NULL) { printf("Out of memory\n"); exit(2); } printf("Windows ICM is transforming full spectrum..."); InPtr = InBlk; for (r=0; r < 255; r++) for (g=0; g < 255; g++) for (b=0; b < 255; b++) { InPtr->rgb.red = (r << 8) | r; InPtr->rgb.green = (g << 8) | g; InPtr->rgb.blue = (b << 8) | b; InPtr++; } atime = clock(); TranslateColors( hICMxform, InBlk, size, COLOR_RGB, OutBlk, COLOR_RGB); diff = clock() - atime; seconds = (double) diff / CLOCKS_PER_SEC; printf("done. [%d tics, %g sec.]\n", (int) diff, seconds); CloseColorProfile(hICMProfileFrom); CloseColorProfile(hICMProfileTo); DeleteColorTransform(hICMxform); hlcmsProfileIn = cmsOpenProfileFromFile("sRGBSpac.icm", "r"); hlcmsProfileOut = cmsOpenProfileFromFile("sRGBSpac.icm", "r"); hlcmsxform = cmsCreateTransform(hlcmsProfileIn, TYPE_RGB_16, hlcmsProfileOut, TYPE_RGB_16, INTENT_PERCEPTUAL, 0); printf("lcms is transforming full spectrum..."); atime = clock(); cmsDoTransform(hlcmsxform, InBlk, OutBlk, size); diff = clock() - atime; seconds = (double) diff / CLOCKS_PER_SEC; printf("done. [%d tics, %g sec.]\n", (int) diff, seconds); cmsDeleteTransform(hlcmsxform); cmsCloseProfile(hlcmsProfileIn); cmsCloseProfile(hlcmsProfileOut); _cmsFree(InBlk); _cmsFree(OutBlk); } static void CompareWithICM_8bit(void) { HTRANSFORM hICMxform; HPROFILE hICMProfileFrom, hICMProfileTo; LOGCOLORSPACE LogColorSpace; RGBQUAD In, Out; int r, g, b; PROFILE Profile; clock_t atime; double seconds, diff; cmsHPROFILE hlcmsProfileIn, hlcmsProfileOut; cmsHTRANSFORM hlcmsxform; printf("\n\nComparative with MS-Windows ICM (8 bits per sample):\n"); Profile.dwType = PROFILE_FILENAME; Profile.pProfileData = "sRGBSpac.icm"; Profile.cbDataSize = strlen("sRGBSpac.icm"); hICMProfileFrom = OpenColorProfile(&Profile, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); Profile.pProfileData = "sRGBSpac.icm"; Profile.cbDataSize = strlen("sRGBSpac.icm"); hICMProfileTo = OpenColorProfile(&Profile, PROFILE_READ, FILE_SHARE_READ, OPEN_EXISTING); ZeroMemory(&LogColorSpace, sizeof(LOGCOLORSPACE)); LogColorSpace.lcsSignature = LCS_SIGNATURE; LogColorSpace.lcsVersion = 0x400; LogColorSpace.lcsCSType = LCS_CALIBRATED_RGB; strcpy(LogColorSpace.lcsFilename, "sRGBSpac.icm"); hICMxform = CreateColorTransform(&LogColorSpace, hICMProfileTo, NULL, BEST_MODE); printf("Windows ICM is transforming full spectrum..."); atime = clock(); for (r=0; r < 255; r++) for (g=0; g < 255; g++) for (b=0; b < 255; b++) { In.rgbRed = r; In.rgbGreen = g; In.rgbBlue = b; if (!TranslateBitmapBits(hICMxform, &In, BM_RGBTRIPLETS, 1, 1, 0, &Out, BM_RGBTRIPLETS, 0, NULL, 0)) exit(2); } diff = clock() - atime; seconds = (double) diff / CLOCKS_PER_SEC; printf("done. [%d tics, %g sec.]\n", (int) diff, seconds); CloseColorProfile(hICMProfileFrom); CloseColorProfile(hICMProfileTo); DeleteColorTransform(hICMxform); hlcmsProfileIn = cmsOpenProfileFromFile("sRGBSpac.icm", "r"); hlcmsProfileOut = cmsOpenProfileFromFile("sRGBSpac.icm", "r"); hlcmsxform = cmsCreateTransform(hlcmsProfileIn, TYPE_BGRA_8, hlcmsProfileOut, TYPE_BGRA_8, INTENT_PERCEPTUAL, 0); printf("lcms is transforming full spectrum..."); atime = clock(); for (r=0; r < 255; r++) for (g=0; g < 255; g++) for (b=0; b < 255; b++) { In.rgbRed = r; In.rgbGreen = g; In.rgbBlue = b; cmsDoTransform(hlcmsxform, &In, &Out, 1); } diff = clock() - atime; seconds = (double) diff / CLOCKS_PER_SEC; printf("done. [%d tics, %g sec.]\n", (int) diff, seconds); cmsDeleteTransform(hlcmsxform); cmsCloseProfile(hlcmsProfileIn); cmsCloseProfile(hlcmsProfileOut); } #endif #endif #ifdef CHECK_SPEED static void SpeedTest(void) { int r, g, b, j; clock_t atime; double seconds, diff; cmsHPROFILE hlcmsProfileIn, hlcmsProfileOut; cmsHTRANSFORM hlcmsxform; Scanline_rgb0 *In; size_t Mb; hlcmsProfileIn = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "r"); hlcmsProfileOut = cmsOpenProfileFromFile("sRGBSpac.icm", "r"); hlcmsxform = cmsCreateTransform(hlcmsProfileIn, TYPE_RGB_16, hlcmsProfileOut, TYPE_RGB_16, INTENT_PERCEPTUAL, cmsFLAGS_NOTCACHE); Mb = 256*256*256*sizeof(Scanline_rgb0); In = (Scanline_rgb0*) _cmsMalloc(Mb); j = 0; for (r=0; r < 256; r++) for (g=0; g < 256; g++) for (b=0; b < 256; b++) { In[j].r = (WORD) ((r << 8) | r); In[j].g = (WORD) ((g << 8) | g); In[j].b = (WORD) ((b << 8) | b); j++; } printf("lcms is transforming full spectrum..."); atime = clock(); cmsDoTransform(hlcmsxform, In, In, 256*256*256); diff = clock() - atime; seconds = (double) diff / CLOCKS_PER_SEC; _cmsFree(In); printf("done.\n[%d tics, %g sec, %g Mpixel/sec.]\n", (int) diff, seconds, Mb / (1024*1024*seconds*3*2) ); cmsDeleteTransform(hlcmsxform); cmsCloseProfile(hlcmsProfileIn); cmsCloseProfile(hlcmsProfileOut); } static void SpeedTest2(void) { int r, g, b, j; clock_t atime; double seconds, diff; cmsHPROFILE hlcmsProfileIn, hlcmsProfileOut; cmsHTRANSFORM hlcmsxform; Scanline_rgb8 *In; size_t Mb; hlcmsProfileIn = cmsOpenProfileFromFile("sRGB Color Space Profile.icm", "r"); hlcmsProfileOut = cmsOpenProfileFromFile("sRGBSpac.icm", "r"); hlcmsxform = cmsCreateTransform(hlcmsProfileIn, TYPE_RGB_8, hlcmsProfileOut, TYPE_RGB_8, INTENT_PERCEPTUAL, cmsFLAGS_NOTCACHE); Mb = 256*256*256*sizeof(Scanline_rgb8); In = (Scanline_rgb8*) _cmsMalloc(Mb); j = 0; for (r=0; r < 256; r++) for (g=0; g < 256; g++) for (b=0; b < 256; b++) { In[j].r = (BYTE) r; In[j].g = (BYTE) g; In[j].b = (BYTE) b; j++; } printf("lcms is transforming full spectrum..."); atime = clock(); cmsDoTransform(hlcmsxform, In, In, 256*256*256); diff = clock() - atime; seconds = (double) diff / CLOCKS_PER_SEC; _cmsFree(In); printf("done.\n[%d tics, %g sec, %g Mpixels/sec.]\n", (int) diff, seconds, Mb / (1024*1024*seconds*3) ); cmsDeleteTransform(hlcmsxform); cmsCloseProfile(hlcmsProfileIn); cmsCloseProfile(hlcmsProfileOut); } #endif static int TestSaveToMem(void) { void *memPtr=0; size_t bytesNeeded=0; int rc = FALSE; cmsHPROFILE hProfile = cmsCreate_sRGBProfile(); printf("Testing save to memory: "); // pass 1 - compute length if (!_cmsSaveProfileToMem(hProfile, memPtr, &bytesNeeded)) { printf("Failed!\n"); return FALSE; } // pass 2 - generate profile if(!bytesNeeded) { printf("Failed!\n"); return FALSE; } memPtr = _cmsMalloc(bytesNeeded); if (_cmsSaveProfileToMem(hProfile, memPtr, &bytesNeeded)) { cmsHPROFILE newProfile = cmsOpenProfileFromMem(memPtr, (DWORD) bytesNeeded); const char* s = cmsTakeProductName(newProfile); if (strncmp(s, "sRGB", 4) == 0) rc = TRUE; cmsCloseProfile(newProfile); _cmsFree(memPtr); } cmsCloseProfile(hProfile); printf (rc ? "pass.\n" : "failed!\n"); return rc; } static int TestNamedColor(void) { LPcmsNAMEDCOLORLIST nc2; cmsHPROFILE hProfile, hDevicelink, hsRGB, hLab; cmsHTRANSFORM xform, rgb2lab; int i; printf("Testing Named color profiles: "); hsRGB = cmsCreate_sRGBProfile(); hLab = cmsCreateLabProfile(NULL); rgb2lab = cmsCreateTransform(hsRGB, TYPE_RGB_16, hLab, TYPE_Lab_16, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC); nc2 = cmsAllocNamedColorList(64); nc2 ->ColorantCount = 3; strcpy(nc2 ->Prefix, "prefix"); strcpy(nc2 ->Suffix, "suffix"); for (i=0; i < 64; i++) { WORD vv = RGB_8_TO_16((i*4)); nc2 ->List[i].DeviceColorant[0] = vv; nc2 ->List[i].DeviceColorant[1] = vv; nc2 ->List[i].DeviceColorant[2] = vv; cmsDoTransform(rgb2lab, nc2 ->List[i].DeviceColorant, nc2 ->List[i].PCS, 1); sprintf(nc2 ->List[i].Name, "Color #%d", i); } hProfile = cmsOpenProfileFromFile("named.icc", "w"); cmsSetDeviceClass(hProfile, icSigNamedColorClass); cmsSetPCS(hProfile, icSigLabData); cmsSetColorSpace(hProfile, icSigRgbData); cmsAddTag(hProfile, icSigNamedColor2Tag, (void*) nc2); cmsAddTag(hProfile, icSigMediaWhitePointTag, cmsD50_XYZ()); cmsCloseProfile(hProfile); cmsFreeNamedColorList(nc2); hProfile = cmsOpenProfileFromFile("named.icc", "r"); xform = cmsCreateTransform(hProfile, TYPE_NAMED_COLOR_INDEX, NULL, TYPE_RGB_16, INTENT_PERCEPTUAL, 0); for (i=0; i < 64; i++) { WORD index; WORD Color[3]; index = (WORD) i; cmsDoTransform(xform, &index, Color, 1); if (Color[0] != RGB_8_TO_16((i*4)) || Color[1] != RGB_8_TO_16((i*4)) || Color[2] != RGB_8_TO_16((i*4))) { printf(" fail on spot color #%d\n", i); return 0; } } cmsDeleteTransform(xform); cmsCloseProfile(hProfile); cmsDeleteTransform(rgb2lab); cmsCloseProfile(hLab); hProfile = cmsOpenProfileFromFile("named.icc", "r"); xform = cmsCreateTransform(hProfile, TYPE_NAMED_COLOR_INDEX, hsRGB, TYPE_RGB_16, INTENT_PERCEPTUAL, 0); hDevicelink = cmsTransform2DeviceLink(xform, 0); _cmsSaveProfile(hDevicelink, "named2.icc"); cmsCloseProfile(hDevicelink); cmsDeleteTransform(xform); cmsCloseProfile(hProfile); cmsCloseProfile(hsRGB); unlink("named.icc"); unlink("named2.icc"); printf(" pass.\n"); return 1; } static int TestColorantTableTag() { LPcmsNAMEDCOLORLIST nc2; cmsHPROFILE hProfile = cmsOpenProfileFromFile("colTable.icc", "w"); nc2 = cmsAllocNamedColorList(3); strcpy(nc2 ->List[0].Name, "Red"); strcpy(nc2 ->List[1].Name, "Green"); strcpy(nc2 ->List[2].Name, "Blue"); cmsSetDeviceClass(hProfile, icSigOutputClass); cmsSetPCS(hProfile, icSigLabData); cmsSetColorSpace(hProfile, icSigRgbData); cmsAddTag(hProfile, icSigColorantTableTag, (void*) nc2); cmsAddTag(hProfile, icSigMediaWhitePointTag, cmsD50_XYZ()); cmsCloseProfile(hProfile); cmsFreeNamedColorList(nc2); hProfile = cmsOpenProfileFromFile("colTable.icc", "r"); nc2 = cmsReadColorantTable(hProfile, icSigColorantTableTag); cmsFreeNamedColorList(nc2); cmsCloseProfile(hProfile); unlink("colTable.icc"); return 1; } // New to 1.13 -- CGATS/IT8.7 #define NPOINTS_IT8 10 // (17*17*17*17) static int TestIT8(void) { LCMSHANDLE it8; int i; printf("Testing CGATS parser: "); it8 = cmsIT8Alloc(); cmsIT8SetSheetType(it8, "LCMS/TESTING"); cmsIT8SetPropertyStr(it8, "ORIGINATOR", "1 2 3 4"); cmsIT8SetPropertyUncooked(it8, "DESCRIPTOR", "1234"); cmsIT8SetPropertyStr(it8, "MANUFACTURER", "3"); cmsIT8SetPropertyDbl(it8, "CREATED", 4); cmsIT8SetPropertyDbl(it8, "SERIAL", 5); cmsIT8SetPropertyHex(it8, "MATERIAL", 0x123); cmsIT8SetPropertyDbl(it8, "NUMBER_OF_SETS", NPOINTS_IT8); cmsIT8SetPropertyDbl(it8, "NUMBER_OF_FIELDS", 4); cmsIT8SetDataFormat(it8, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(it8, 1, "RGB_R"); cmsIT8SetDataFormat(it8, 2, "RGB_G"); cmsIT8SetDataFormat(it8, 3, "RGB_B"); for (i=0; i < NPOINTS_IT8; i++) { char Patch[20]; sprintf(Patch, "P%d", i); cmsIT8SetDataRowCol(it8, i, 0, Patch); cmsIT8SetDataRowColDbl(it8, i, 1, i); cmsIT8SetDataRowColDbl(it8, i, 2, i); cmsIT8SetDataRowColDbl(it8, i, 3, i); } cmsIT8SaveToFile(it8, "TEST.IT8"); cmsIT8Free(it8); it8 = cmsIT8LoadFromFile("TEST.IT8"); cmsIT8SaveToFile(it8, "TEST.IT8"); cmsIT8Free(it8); it8 = cmsIT8LoadFromFile("TEST.IT8"); if (cmsIT8GetPropertyDbl(it8, "DESCRIPTOR") != 1234) { printf("fail!\n"); return 0; } cmsIT8SetPropertyDbl(it8, "DESCRIPTOR", 5678); if (cmsIT8GetPropertyDbl(it8, "DESCRIPTOR") != 5678) { printf("fail!\n"); return 0; } if (cmsIT8GetDataDbl(it8, "P3", "RGB_G") != 3) { printf("fail!\n"); return 0; } cmsIT8Free(it8); unlink("TEST.IT8"); printf("pass.\n"); return 1; } // Create CSA/CRD static void GenerateCSA(const char* cInProf) { cmsHPROFILE hProfile; DWORD n; char* Buffer; if (cInProf == NULL) hProfile = cmsCreateLabProfile(NULL); else hProfile = cmsOpenProfileFromFile(cInProf, "r"); n = cmsGetPostScriptCSA(hProfile, 0, NULL, 0); if (n == 0) return; Buffer = (char*) _cmsMalloc(n + 1); cmsGetPostScriptCSA(hProfile, 0, Buffer, n); Buffer[n] = 0; _cmsFree(Buffer); cmsCloseProfile(hProfile); } static void GenerateCRD(const char* cOutProf) { cmsHPROFILE hProfile; DWORD n; char* Buffer; DWORD dwFlags = 0; if (cOutProf == NULL) hProfile = cmsCreateLabProfile(NULL); else hProfile = cmsOpenProfileFromFile(cOutProf, "r"); n = cmsGetPostScriptCRDEx(hProfile, 0, dwFlags, NULL, 0); if (n == 0) return; Buffer = (char*) _cmsMalloc(n + 1); cmsGetPostScriptCRDEx(hProfile, 0, dwFlags, Buffer, n); Buffer[n] = 0; _cmsFree(Buffer); cmsCloseProfile(hProfile); } static int TestPostScript() { GenerateCSA("sRGB Color Space Profile.icm"); GenerateCRD("sRGB Color Space Profile.icm"); GenerateCSA(NULL); GenerateCRD(NULL); return 1; } static void TestLabFloat() { #define TYPE_LabA_DBL (COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(0)|EXTRA_SH(1)|DOSWAP_SH(1)) struct { double L, a, b; double A; } a; cmsCIELab b; cmsHPROFILE hLab = cmsCreateLabProfile(NULL); cmsHTRANSFORM xform = cmsCreateTransform(hLab, TYPE_LabA_DBL, hLab, TYPE_Lab_DBL, 0, 0); a.L = 100; a.a = 0; a.b= 0; cmsDoTransform(xform, &a, &b, 1); cmsDeleteTransform(xform); cmsCloseProfile(hLab); } int main(int argc, char *argv[]) { int lExhaustive = 0; // #include "crtdbg.h" // _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); printf("little cms testbed. Ver %1.2f [build %s %s]\n\n", LCMS_VERSION / 100., __DATE__, __TIME__); #ifndef LCMS_DLL if (!CheckEndianess()) return 1; if (!CheckSwab()) return 1; if (!CheckQuickFloor()) return 1; TestFixedPoint(); if (!TestFixedScaling()) return 1; if (!TestJointCurves()) return 1; if (!TestReversingOfCurves()) return 1; if (!TestLinearInterpolation(lExhaustive)) return 1; if (!TestReverseLinearInterpolation()) return 1; if (!Test3D()) return 1; if (!TestMatrixCreation()) return 1; if (!GetInfoTest()) return 1; #endif if (!Test_sRGB()) return 1; if (!RealProfilesTest()) return 1; if (!TestInducedError(TYPE_LABA_16)) return 1; if (!TestPreview()) return 1; if (!TestMultiprofile()) return 1; if (!TestLinearizationDevicelink()) return 1; if (!TestDeviceLinkGeneration()) return 1; if (!TestLinearizationDevicelink2()) return 1; if (!TestInkLimiting()) return 1; if (!TestSaveToMem()) return 1; if (!TestNamedColor()) return 1; if (!TestIT8()) return 1; if (!TestPostScript()) return 1; if (!TestColorantTableTag()) return 1; #ifdef ICM_COMPARATIVE #ifndef NON_WINDOWS CompareWithICM_8bit(); CompareWithICM_16bit(); #endif #endif #ifdef CHECK_SPEED SpeedTest(); SpeedTest2(); #endif printf("\nSuccess.\n"); return 0; } lcms-1.19/tifficc/0000777000175300010010000000000011272606372013266 5ustar MartiNingunolcms-1.19/tifficc/getopt.c0000777000175300010010000000327511272606372014746 0ustar MartiNinguno/* getopt.c */ #include #include #include int xoptind = 1; /* index of which argument is next */ char *xoptarg; /* pointer to argument of current option */ int xopterr = 0; /* allow error message */ static char *letP = NULL; /* remember next option char's location */ char SW = '-'; /* DOS switch character, either '-' or '/' */ /* Parse the command line options, System V style. Standard option syntax is: option ::= SW [optLetter]* [argLetter space* argument] */ int xgetopt(int argc, char *argv[], char *optionS) { unsigned char ch; char *optP; if (SW == 0) { SW = '/'; } if (argc > xoptind) { if (letP == NULL) { if ((letP = argv[xoptind]) == NULL || *(letP++) != SW) goto gopEOF; if (*letP == SW) { xoptind++; goto gopEOF; } } if (0 == (ch = *(letP++))) { xoptind++; goto gopEOF; } if (':' == ch || (optP = strchr(optionS, ch)) == NULL) goto gopError; if (':' == *(++optP)) { xoptind++; if (0 == *letP) { if (argc <= xoptind) goto gopError; letP = argv[xoptind++]; } xoptarg = letP; letP = NULL; } else { if (0 == *letP) { xoptind++; letP = NULL; } xoptarg = NULL; } return ch; } gopEOF: xoptarg = letP = NULL; return EOF; gopError: xoptarg = NULL; errno = EINVAL; if (xopterr) perror ("get command line option"); return ('?'); } lcms-1.19/tifficc/Makefile.am0000777000175300010010000000127411272606372015331 0ustar MartiNinguno# # Makefile for building tifficc # Originally written by Bob Friesenhahn, June 2003 # bugs introduced by Marti Maria on October 2004 # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include if HasTIFF bin_PROGRAMS = tifficc tiffdiff else bin_PROGRAMS = endif tifficc_LDADD = $(top_builddir)/src/liblcms.la @TIFFICC_DEPLIBS@ tifficc_LDFLAGS = @LDFLAGS@ tifficc_SOURCES = tifficc.c ../samples/xgetopt.c ../samples/vprf.c man_MANS = tifficc.1 tiffdiff_LDADD = $(top_builddir)/src/liblcms.la @TIFFICC_DEPLIBS@ tiffdiff_LDFLAGS = @LDFLAGS@ tiffdiff_SOURCES = tiffdiff.c ../samples/xgetopt.c EXTRA_DIST = $(man_MANS)lcms-1.19/tifficc/Makefile.in0000644000175300010010000005176311230106052015323 0ustar MartiNinguno# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in 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. @SET_MAKE@ # # Makefile for building tifficc # Originally written by Bob Friesenhahn, June 2003 # bugs introduced by Marti Maria on October 2004 VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ @HasTIFF_TRUE@bin_PROGRAMS = tifficc$(EXEEXT) tiffdiff$(EXEEXT) subdir = tifficc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_tiffdiff_OBJECTS = tiffdiff.$(OBJEXT) xgetopt.$(OBJEXT) tiffdiff_OBJECTS = $(am_tiffdiff_OBJECTS) tiffdiff_DEPENDENCIES = $(top_builddir)/src/liblcms.la tiffdiff_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(tiffdiff_LDFLAGS) \ $(LDFLAGS) -o $@ am_tifficc_OBJECTS = tifficc.$(OBJEXT) xgetopt.$(OBJEXT) \ vprf.$(OBJEXT) tifficc_OBJECTS = $(am_tifficc_OBJECTS) tifficc_DEPENDENCIES = $(top_builddir)/src/liblcms.la tifficc_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(tifficc_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(tiffdiff_SOURCES) $(tifficc_SOURCES) DIST_SOURCES = $(tiffdiff_SOURCES) $(tifficc_SOURCES) man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT16_T = @INT16_T@ INT32_T = @INT32_T@ INT64_T = @INT64_T@ INT8_T = @INT8_T@ JPEGICC_DEPLIBS = @JPEGICC_DEPLIBS@ LCMS_LIB_DEPLIBS = @LCMS_LIB_DEPLIBS@ LCMS_PYEXECDIR = @LCMS_PYEXECDIR@ LCMS_PYINCLUDE = @LCMS_PYINCLUDE@ LCMS_PYLIB = @LCMS_PYLIB@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBRARY_AGE = @LIBRARY_AGE@ LIBRARY_CURRENT = @LIBRARY_CURRENT@ LIBRARY_REVISION = @LIBRARY_REVISION@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIB_JPEG = @LIB_JPEG@ LIB_MATH = @LIB_MATH@ LIB_TIFF = @LIB_TIFF@ LIB_ZLIB = @LIB_ZLIB@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_VERSION = @PYTHON_VERSION@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TIFFICC_DEPLIBS = @TIFFICC_DEPLIBS@ UINT16_T = @UINT16_T@ UINT32_T = @UINT32_T@ UINT64_T = @UINT64_T@ UINT8_T = @UINT8_T@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inline = @inline@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgpyexecdir = @pkgpyexecdir@ pkgpythondir = @pkgpythondir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # Don't require all the GNU mandated files AUTOMAKE_OPTIONS = 1.7 foreign AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include tifficc_LDADD = $(top_builddir)/src/liblcms.la @TIFFICC_DEPLIBS@ tifficc_LDFLAGS = @LDFLAGS@ tifficc_SOURCES = tifficc.c ../samples/xgetopt.c ../samples/vprf.c man_MANS = tifficc.1 tiffdiff_LDADD = $(top_builddir)/src/liblcms.la @TIFFICC_DEPLIBS@ tiffdiff_LDFLAGS = @LDFLAGS@ tiffdiff_SOURCES = tiffdiff.c ../samples/xgetopt.c EXTRA_DIST = $(man_MANS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tifficc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign tifficc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done tiffdiff$(EXEEXT): $(tiffdiff_OBJECTS) $(tiffdiff_DEPENDENCIES) @rm -f tiffdiff$(EXEEXT) $(tiffdiff_LINK) $(tiffdiff_OBJECTS) $(tiffdiff_LDADD) $(LIBS) tifficc$(EXEEXT): $(tifficc_OBJECTS) $(tifficc_DEPENDENCIES) @rm -f tifficc$(EXEEXT) $(tifficc_LINK) $(tifficc_OBJECTS) $(tifficc_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tiffdiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tifficc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vprf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetopt.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< xgetopt.o: ../samples/xgetopt.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xgetopt.o -MD -MP -MF $(DEPDIR)/xgetopt.Tpo -c -o xgetopt.o `test -f '../samples/xgetopt.c' || echo '$(srcdir)/'`../samples/xgetopt.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xgetopt.Tpo $(DEPDIR)/xgetopt.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/xgetopt.c' object='xgetopt.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xgetopt.o `test -f '../samples/xgetopt.c' || echo '$(srcdir)/'`../samples/xgetopt.c xgetopt.obj: ../samples/xgetopt.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xgetopt.obj -MD -MP -MF $(DEPDIR)/xgetopt.Tpo -c -o xgetopt.obj `if test -f '../samples/xgetopt.c'; then $(CYGPATH_W) '../samples/xgetopt.c'; else $(CYGPATH_W) '$(srcdir)/../samples/xgetopt.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xgetopt.Tpo $(DEPDIR)/xgetopt.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/xgetopt.c' object='xgetopt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xgetopt.obj `if test -f '../samples/xgetopt.c'; then $(CYGPATH_W) '../samples/xgetopt.c'; else $(CYGPATH_W) '$(srcdir)/../samples/xgetopt.c'; fi` vprf.o: ../samples/vprf.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vprf.o -MD -MP -MF $(DEPDIR)/vprf.Tpo -c -o vprf.o `test -f '../samples/vprf.c' || echo '$(srcdir)/'`../samples/vprf.c @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/vprf.Tpo $(DEPDIR)/vprf.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/vprf.c' object='vprf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vprf.o `test -f '../samples/vprf.c' || echo '$(srcdir)/'`../samples/vprf.c vprf.obj: ../samples/vprf.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vprf.obj -MD -MP -MF $(DEPDIR)/vprf.Tpo -c -o vprf.obj `if test -f '../samples/vprf.c'; then $(CYGPATH_W) '../samples/vprf.c'; else $(CYGPATH_W) '$(srcdir)/../samples/vprf.c'; fi` @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/vprf.Tpo $(DEPDIR)/vprf.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../samples/vprf.c' object='vprf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vprf.obj `if test -f '../samples/vprf.c'; then $(CYGPATH_W) '../samples/vprf.c'; else $(CYGPATH_W) '$(srcdir)/../samples/vprf.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-exec-am: install-binPROGRAMS install-html: install-html-am install-info: install-info-am install-man: install-man1 install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-man \ uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lcms-1.19/tifficc/makefile.simple0000777000175300010010000000065307705545242016271 0ustar MartiNingunoSHELL = /bin/sh CFLAGS = -g -O4 -fomit-frame-pointer -Wall -I../include BASEDIR = $(DESTDIR)/usr BINDIR = $(BASEDIR)/bin all: tifficc tifficc: tifficc.o getopt.o $(CC) $(CFLAGS) tifficc.o getopt.o ../src/liblcms.a -o $@ -lm -ljpeg -ltiff -lz tifficc.o: tifficc.c getopt.o: getopt.c install utils:: tifficc -cp tifficc $(BINDIR) -cp tifficc.exe $(BINDIR) clean: -rm tifficc.o getopt.o tifficc tifficc.exe lcms-1.19/tifficc/tiffdiff.c0000777000175300010010000005151011272606372015220 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2006 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. #include "lcms.h" #include "tiffio.h" #include // xgetopt() interface ----------------------------------------------------- extern int xoptind; extern char *xoptarg; extern int xopterr; extern char SW; int cdecl xgetopt(int argc, char *argv[], char *optionS); // ------------------------------------------------------------------------ static TIFF *Tiff1, *Tiff2, *TiffDiff; static const char* TiffDiffFilename; static const char* CGATSout; static LCMSBOOL Verbose = FALSE; typedef struct { double n, x, x2; double Min, Peak; } STAT, *LPSTAT; static STAT ColorantStat[4]; static STAT EuclideanStat; static STAT ColorimetricStat; static uint16 Channels; static cmsHPROFILE hLab; static void ConsoleWarningHandler(const char* module, const char* fmt, va_list ap) { char e[512] = { '\0' }; if (module != NULL) strcat(strcpy(e, module), ": "); vsprintf(e+strlen(e), fmt, ap); strcat(e, "."); if (Verbose) { fprintf(stderr, "\nWarning"); fprintf(stderr, " %s\n", e); fflush(stderr); } } static void ConsoleErrorHandler(const char* module, const char* fmt, va_list ap) { char e[512] = { '\0' }; if (module != NULL) strcat(strcpy(e, module), ": "); vsprintf(e+strlen(e), fmt, ap); strcat(e, "."); fprintf(stderr, "\nError"); fprintf(stderr, " %s\n", e); fflush(stderr); } // Force an error and exit w/ return code 1 static void FatalError(const char *frm, ...) { va_list args; va_start(args, frm); ConsoleErrorHandler("TIFFDIFF", frm, args); va_end(args); if (hLab) cmsCloseProfile(hLab); if (Tiff1) TIFFClose(Tiff1); if (Tiff2) TIFFClose(Tiff2); if (TiffDiff) TIFFClose(TiffDiff); exit(1); } static void Help() { fprintf(stderr, "Little cms TIFF compare utility. v1.0\n\n"); fprintf(stderr, "usage: tiffdiff [flags] input.tif output.tif\n"); fprintf(stderr, "\nflags:\n\n"); fprintf(stderr, "%co - Output TIFF file\n", SW); fprintf(stderr, "%cg - Output results in CGATS file\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cv - Verbose (show warnings)\n", SW); fprintf(stderr, "%ch - This help\n", SW); fflush(stderr); exit(0); } // The toggles stuff static void HandleSwitches(int argc, char *argv[]) { int s; while ((s=xgetopt(argc,argv,"o:O:hHvVg:G:")) != EOF) { switch (s) { case 'v': case 'V': Verbose = TRUE; break; case 'o': case 'O': TiffDiffFilename = xoptarg; break; case 'H': case 'h': Help(); break; case 'g': case 'G': CGATSout = xoptarg; break; default: FatalError("Unknown option - run without args to see valid ones"); } } } static void ClearStatistics(LPSTAT st) { st ->n = st ->x = st->x2 = st->Peak = 0; st ->Min = 1E10; } static void AddOnePixel(LPSTAT st, double dE) { st-> x += dE; st ->x2 += (dE * dE); st->n += 1.0; if (dE > st ->Peak) st ->Peak = dE; if (dE < st ->Min) st ->Min= dE; } static double Std(LPSTAT st) { return sqrt((st->n * st->x2 - st->x * st->x) / (st->n*(st->n-1))); } static double Mean(LPSTAT st) { return st ->x/st ->n; } // Build up the pixeltype descriptor static DWORD GetInputPixelType(TIFF *Bank) { uint16 Photometric, bps, spp, extra, PlanarConfig, *info; uint16 Compression, reverse = 0; int ColorChannels, IsPlanar = 0, pt = 0; TIFFGetField(Bank, TIFFTAG_PHOTOMETRIC, &Photometric); TIFFGetFieldDefaulted(Bank, TIFFTAG_BITSPERSAMPLE, &bps); if (bps == 1) FatalError("Sorry, bilevel TIFFs has nothig to do with ICC profiles"); if (bps != 8 && bps != 16) FatalError("Sorry, 8 or 16 bits per sample only"); TIFFGetFieldDefaulted(Bank, TIFFTAG_SAMPLESPERPIXEL, &spp); TIFFGetFieldDefaulted(Bank, TIFFTAG_PLANARCONFIG, &PlanarConfig); switch (PlanarConfig) { case PLANARCONFIG_CONTIG: IsPlanar = 0; break; case PLANARCONFIG_SEPARATE: FatalError("Planar TIFF are not supported"); default: FatalError("Unsupported planar configuration (=%d) ", (int) PlanarConfig); } // If Samples per pixel == 1, PlanarConfiguration is irrelevant and need // not to be included. if (spp == 1) IsPlanar = 0; // Any alpha? TIFFGetFieldDefaulted(Bank, TIFFTAG_EXTRASAMPLES, &extra, &info); ColorChannels = spp - extra; switch (Photometric) { case PHOTOMETRIC_MINISWHITE: reverse = 1; case PHOTOMETRIC_MINISBLACK: pt = PT_GRAY; break; case PHOTOMETRIC_RGB: pt = PT_RGB; break; case PHOTOMETRIC_PALETTE: FatalError("Sorry, palette images not supported (at least on this version)"); case PHOTOMETRIC_SEPARATED: if (ColorChannels == 4) pt = PT_CMYK; else if (ColorChannels == 3) pt = PT_CMY; else if (ColorChannels == 6) pt = PT_HiFi; else if (ColorChannels == 7) pt = PT_HiFi7; else if (ColorChannels == 8) pt = PT_HiFi8; else if (ColorChannels == 9) pt = PT_HiFi9; else if (ColorChannels == 10) pt = PT_HiFi10; else if (ColorChannels == 11) pt = PT_HiFi11; else if (ColorChannels == 12) pt = PT_HiFi8; else if (ColorChannels == 13) pt = PT_HiFi13; else if (ColorChannels == 14) pt = PT_HiFi14; else if (ColorChannels == 15) pt = PT_HiFi15; else FatalError("What a weird separation of %d channels?!?!", ColorChannels); break; case PHOTOMETRIC_YCBCR: TIFFGetField(Bank, TIFFTAG_COMPRESSION, &Compression); { uint16 subx, suby; pt = PT_YCbCr; TIFFGetFieldDefaulted(Bank, TIFFTAG_YCBCRSUBSAMPLING, &subx, &suby); if (subx != 1 || suby != 1) FatalError("Sorry, subsampled images not supported"); } break; case 9: case PHOTOMETRIC_CIELAB: pt = PT_Lab; break; case PHOTOMETRIC_LOGLUV: /* CIE Log2(L) (u',v') */ TIFFSetField(Bank, TIFFTAG_SGILOGDATAFMT, SGILOGDATAFMT_16BIT); pt = PT_YUV; // *ICCSpace = icSigLuvData; bps = 16; // 16 bits forced by LibTiff break; default: FatalError("Unsupported TIFF color space (Photometric %d)", Photometric); } // Convert bits per sample to bytes per sample bps >>= 3; return (COLORSPACE_SH(pt)|PLANAR_SH(IsPlanar)|EXTRA_SH(extra)|CHANNELS_SH(ColorChannels)|BYTES_SH(bps)|FLAVOR_SH(reverse)); } static DWORD OpenEmbedded(TIFF* tiff, cmsHPROFILE* PtrProfile, cmsHTRANSFORM* PtrXform) { DWORD EmbedLen, dwFormat = 0; LPBYTE EmbedBuffer; *PtrProfile = NULL; *PtrXform = NULL; if (TIFFGetField(tiff, TIFFTAG_ICCPROFILE, &EmbedLen, &EmbedBuffer)) { *PtrProfile = cmsOpenProfileFromMem(EmbedBuffer, EmbedLen); if (Verbose) { fprintf(stdout, "Embedded profile found : %s\n", cmsTakeProductDesc(*PtrProfile)); fflush(stdout); } dwFormat = GetInputPixelType(tiff); *PtrXform = cmsCreateTransform(*PtrProfile, dwFormat, hLab, TYPE_Lab_DBL, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOTPRECALC); } return dwFormat; } static size_t PixelSize(DWORD dwFormat) { return T_BYTES(dwFormat) * (T_CHANNELS(dwFormat) + T_EXTRA(dwFormat)); } static int CmpImages(TIFF* tiff1, TIFF* tiff2, TIFF* diff) { LPBYTE buf1, buf2, buf3; int row, cols, imagewidth = 0, imagelength = 0; uint16 Photometric; double dE; double dR, dG, dB, dC, dM, dY, dK; int rc = 0; cmsHPROFILE hProfile1 = 0, hProfile2 = 0; cmsHTRANSFORM xform1 = 0, xform2 = 0; DWORD dwFormat1, dwFormat2; TIFFGetField(tiff1, TIFFTAG_PHOTOMETRIC, &Photometric); TIFFGetField(tiff1, TIFFTAG_IMAGEWIDTH, &imagewidth); TIFFGetField(tiff1, TIFFTAG_IMAGELENGTH, &imagelength); TIFFGetField(tiff1, TIFFTAG_SAMPLESPERPIXEL, &Channels); dwFormat1 = OpenEmbedded(tiff1, &hProfile1, &xform1); dwFormat2 = OpenEmbedded(tiff2, &hProfile2, &xform2); buf1 = (LPBYTE)_TIFFmalloc(TIFFScanlineSize(tiff1)); buf2 = (LPBYTE)_TIFFmalloc(TIFFScanlineSize(tiff2)); if (diff) { TIFFSetField(diff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); TIFFSetField(diff, TIFFTAG_COMPRESSION, COMPRESSION_NONE); TIFFSetField(diff, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); TIFFSetField(diff, TIFFTAG_IMAGEWIDTH, imagewidth); TIFFSetField(diff, TIFFTAG_IMAGELENGTH, imagelength); TIFFSetField(diff, TIFFTAG_SAMPLESPERPIXEL, 1); TIFFSetField(diff, TIFFTAG_BITSPERSAMPLE, 8); buf3 = (LPBYTE)_TIFFmalloc(TIFFScanlineSize(diff)); } for (row = 0; row < imagelength; row++) { if (TIFFReadScanline(tiff1, buf1, row, 0) < 0) goto Error; if (TIFFReadScanline(tiff2, buf2, row, 0) < 0) goto Error; for (cols = 0; cols < imagewidth; cols++) { switch (Photometric) { case PHOTOMETRIC_MINISWHITE: case PHOTOMETRIC_MINISBLACK: dE = fabs(buf2[cols] - buf1[cols]); AddOnePixel(&ColorantStat[0], dE); AddOnePixel(&EuclideanStat, dE); break; case PHOTOMETRIC_RGB: { int index = 3 * cols; dR = fabs(buf2[index+0] - buf1[index+0]); dG = fabs(buf2[index+1] - buf1[index+1]); dB = fabs(buf2[index+2] - buf1[index+2]); dE = sqrt(dR * dR + dG * dG + dB * dB) / sqrt(3.); } AddOnePixel(&ColorantStat[0], dR); AddOnePixel(&ColorantStat[1], dG); AddOnePixel(&ColorantStat[2], dB); AddOnePixel(&EuclideanStat, dE); break; case PHOTOMETRIC_SEPARATED: { int index = 4 * cols; dC = fabs(buf2[index+0] - buf1[index+0]); dM = fabs(buf2[index+1] - buf1[index+1]); dY = fabs(buf2[index+2] - buf1[index+2]); dK = fabs(buf2[index+3] - buf1[index+3]); dE = sqrt(dC * dC + dM * dM + dY * dY + dK * dK) / 2.; } AddOnePixel(&ColorantStat[0], dC); AddOnePixel(&ColorantStat[1], dM); AddOnePixel(&ColorantStat[2], dY); AddOnePixel(&ColorantStat[3], dK); AddOnePixel(&EuclideanStat, dE); break; default: FatalError("Unsupported channels: %d", Channels); return 0; } if (xform1 && xform2) { cmsCIELab Lab1, Lab2; size_t index1 = cols * PixelSize(dwFormat1); size_t index2 = cols * PixelSize(dwFormat2); cmsDoTransform(xform1, &buf1[index1], &Lab1, 1); cmsDoTransform(xform2, &buf2[index2], &Lab2, 1); dE = cmsDeltaE(&Lab1, &Lab2); AddOnePixel(&ColorimetricStat, dE); } if (diff) { buf3[cols] = (BYTE) (dE + 0.5); } } if (diff) { if (TIFFWriteScanline(diff, buf3, row, 0) < 0) goto Error; } } rc = 1; Error: if (hProfile1) cmsCloseProfile(hProfile1); if (hProfile2) cmsCloseProfile(hProfile2); if (xform1) cmsDeleteTransform(xform1); if (xform2) cmsDeleteTransform(xform2); _TIFFfree(buf1); _TIFFfree(buf2); if (diff) { TIFFWriteDirectory(diff); _TIFFfree(buf3); } return rc; } static void AssureShortTagIs(TIFF* tif1, TIFF* tiff2, int tag, int Val, const char* Error) { uint16 v1; if (!TIFFGetField(tif1, tag, &v1)) goto Err; if (v1 != Val) goto Err; if (!TIFFGetField(tiff2, tag, &v1)) goto Err; if (v1 != Val) goto Err; return; Err: FatalError("%s is not proper", Error); } static int CmpShortTag(TIFF* tif1, TIFF* tif2, int tag) { uint16 v1, v2; if (!TIFFGetField(tif1, tag, &v1)) return 0; if (!TIFFGetField(tif2, tag, &v2)) return 0; return v1 == v2; } static int CmpLongTag(TIFF* tif1, TIFF* tif2, int tag) { uint32 v1, v2; if (!TIFFGetField(tif1, tag, &v1)) return 0; if (!TIFFGetField(tif2, tag, &v2)) return 0; return v1 == v2; } static void EqualShortTag(TIFF* tif1, TIFF* tif2, int tag, const char* Error) { if (!CmpShortTag(tif1, tif2, tag)) FatalError("%s is different", Error); } static void EqualLongTag(TIFF* tif1, TIFF* tif2, int tag, const char* Error) { if (!CmpLongTag(tif1, tif2, tag)) FatalError("%s is different", Error); } static void AddOneCGATSRow(LCMSHANDLE hIT8, char *Name, LPSTAT st) { double Per100 = 100.0 * ((255.0 - Mean(st)) / 255.0); cmsIT8SetData(hIT8, Name, "SAMPLE_ID", Name); cmsIT8SetDataDbl(hIT8, Name, "PER100_EQUAL", Per100); cmsIT8SetDataDbl(hIT8, Name, "MEAN_DE", Mean(st)); cmsIT8SetDataDbl(hIT8, Name, "STDEV_DE", Std(st)); cmsIT8SetDataDbl(hIT8, Name, "MIN_DE", st ->Min); cmsIT8SetDataDbl(hIT8, Name, "MAX_DE", st ->Peak); } static void CreateCGATS(const char* TiffName1, const char* TiffName2) { LCMSHANDLE hIT8 = cmsIT8Alloc(); time_t ltime; char Buffer[256]; cmsIT8SetSheetType(hIT8, "TIFFDIFF"); sprintf(Buffer, "Differences between %s and %s", TiffName1, TiffName2); cmsIT8SetComment(hIT8, Buffer); cmsIT8SetPropertyStr(hIT8, "ORIGINATOR", "TIFFDIFF"); time( <ime ); strcpy(Buffer, ctime(<ime)); Buffer[strlen(Buffer)-1] = 0; // Remove the nasty "\n" cmsIT8SetPropertyStr(hIT8, "CREATED", Buffer); cmsIT8SetComment(hIT8, " "); cmsIT8SetPropertyDbl(hIT8, "NUMBER_OF_FIELDS", 6); cmsIT8SetDataFormat(hIT8, 0, "SAMPLE_ID"); cmsIT8SetDataFormat(hIT8, 1, "PER100_EQUAL"); cmsIT8SetDataFormat(hIT8, 2, "MEAN_DE"); cmsIT8SetDataFormat(hIT8, 3, "STDEV_DE"); cmsIT8SetDataFormat(hIT8, 4, "MIN_DE"); cmsIT8SetDataFormat(hIT8, 5, "MAX_DE"); switch (Channels) { case 1: cmsIT8SetPropertyDbl(hIT8, "NUMBER_OF_SETS", 3); AddOneCGATSRow(hIT8, "GRAY_PLANE", &ColorantStat[0]); break; case 3: cmsIT8SetPropertyDbl(hIT8, "NUMBER_OF_SETS", 5); AddOneCGATSRow(hIT8, "R_PLANE", &ColorantStat[0]); AddOneCGATSRow(hIT8, "G_PLANE", &ColorantStat[1]); AddOneCGATSRow(hIT8, "B_PLANE", &ColorantStat[2]); break; case 4: cmsIT8SetPropertyDbl(hIT8, "NUMBER_OF_SETS", 6); AddOneCGATSRow(hIT8, "C_PLANE", &ColorantStat[0]); AddOneCGATSRow(hIT8, "M_PLANE", &ColorantStat[1]); AddOneCGATSRow(hIT8, "Y_PLANE", &ColorantStat[2]); AddOneCGATSRow(hIT8, "K_PLANE", &ColorantStat[3]); break; default: FatalError("Internal error: Bad ColorSpace"); } AddOneCGATSRow(hIT8, "EUCLIDEAN", &EuclideanStat); AddOneCGATSRow(hIT8, "COLORIMETRIC", &ColorimetricStat); cmsIT8SaveToFile(hIT8, CGATSout); cmsIT8Free(hIT8); } int main(int argc, char* argv[]) { int i; Tiff1 = Tiff2 = TiffDiff = NULL; HandleSwitches(argc, argv); if ((argc - xoptind) != 2) { Help(); } TIFFSetErrorHandler(ConsoleErrorHandler); TIFFSetWarningHandler(ConsoleWarningHandler); Tiff1 = TIFFOpen(argv[xoptind], "r"); if (Tiff1 == NULL) FatalError("Unable to open '%s'", argv[xoptind]); Tiff2 = TIFFOpen(argv[xoptind+1], "r"); if (Tiff2 == NULL) FatalError("Unable to open '%s'", argv[xoptind+1]); if (TiffDiffFilename) { TiffDiff = TIFFOpen(TiffDiffFilename, "w"); if (TiffDiff == NULL) FatalError("Unable to create '%s'", TiffDiffFilename); } AssureShortTagIs(Tiff1, Tiff2, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG, "Planar Config"); AssureShortTagIs(Tiff1, Tiff2, TIFFTAG_BITSPERSAMPLE, 8, "8 bit per sample"); EqualLongTag(Tiff1, Tiff2, TIFFTAG_IMAGEWIDTH, "Image width"); EqualLongTag(Tiff1, Tiff2, TIFFTAG_IMAGELENGTH, "Image length"); EqualShortTag(Tiff1, Tiff2, TIFFTAG_SAMPLESPERPIXEL, "Samples per pixel"); hLab = cmsCreateLabProfile(NULL); ClearStatistics(&EuclideanStat); for (i=0; i < 4; i++) ClearStatistics(&ColorantStat[i]); if (!CmpImages(Tiff1, Tiff2, TiffDiff)) FatalError("Error comparing images"); if (CGATSout) { CreateCGATS(argv[xoptind], argv[xoptind+1]); } else { double Per100 = 100.0 * ((255.0 - Mean(&EuclideanStat)) / 255.0); printf("Digital counts %g%% equal. mean %g, min %g, max %g, Std %g\n", Per100, Mean(&EuclideanStat), EuclideanStat.Min, EuclideanStat.Peak, Std(&EuclideanStat)); if (ColorimetricStat.n > 0) { Per100 = 100.0 * ((255.0 - Mean(&ColorimetricStat)) / 255.0); printf("dE Colorimetric %g%% equal. mean %g, min %g, max %g, Std %g\n", Per100, Mean(&ColorimetricStat), ColorimetricStat.Min, ColorimetricStat.Peak, Std(&ColorimetricStat)); } } if (hLab) cmsCloseProfile(hLab); if (Tiff1) TIFFClose(Tiff1); if (Tiff2) TIFFClose(Tiff2); if (TiffDiff) TIFFClose(TiffDiff); return 0; } lcms-1.19/tifficc/tifficc.10000777000175300010010000000426211272606372014766 0ustar MartiNinguno.\"Shiju P. Nair September 30, 2004 .TH TIFFICC 1 "October 23, 2004" .SH NAME tifficc - little cms ICC profile applier for TIFF. .SH SYNOPSIS .B tifficc .RI [ options ] " input.tif output.tif" .SH DESCRIPTION lcms is a standalone CMM engine, which deals with the color management. It implements a fast transformation between ICC profiles. .B tifficc is little cms ICC profile applier for TIFF. .SH OPTIONS .TP .B \-a Handle channels > 4 as alpha. .TP .B \-b Black point compensation. .TP .B \-c <0,1,2,3> Precalculates transform. (0=Off, 1=Normal, 2=Hi-res, 3=LoRes) [defaults to 1] .TP .B \-e Embed destination profile. .TP .B \-g Marks out-of-gamut colors on softproof. .TP .B \-h <0,1,2> Show summary of options and examples. .TP .BI \-i\ profile Input profile (defaults to sRGB). .TP .B -k <0..400> Ink-limiting in % (CMYK only). .TP .BI \-l\ profile Transform by device-link profile. .TP .B \-m <0,1,2,3> SoftProof intent. .TP .B \-n Ignore embedded profile on input. .TP .BI \-p\ profile Soft proof profile. .TP .BI \-o\ profile .p Output profile (defaults to sRGB). .TP .BI \-s\ profile Save embedded profile as .TP .B \-t <0,1,2,3> Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute). .TP .B \-v Verbose. .TP .B \-w Wide output (generates 16 bps tiff). .TP You can also use following builtins *Lab - CIE Lab D50 based *XYZ - XYZ *adobe1998RBB - AdobeRGB *colormatchrgb - ColorMatch RGB *applergb - Apple RGB .SH EXAMPLES .nf To color correct from scanner to sRGB: tifficc -iscanner.icm in.tif out.tif To convert from monitor1 to monitor2: tifficc -imon1.icm -omon2.icm in.tif out.tif To make a CMYK separation: tifficc -oprinter.icm inrgb.tif outcmyk.tif To recover sRGB from a CMYK separation: tifficc -iprinter.icm incmyk.tif outrgb.tif To convert from CIELab TIFF to sRGB tifficc -iTiffLab8Spac.icm in.tif out.tif .fi .SH NOTES For suggestions, comments, bug reports etc. send mail to info@littlecms.com. .SH SEE ALSO .BR jpegicc (1), .BR icc2ps (1), .BR icclink (1), .BR icctrans (1), .BR wtpt (1) .SH AUTHOR This manual page was originally written by Shiju p. Nair , for the Debian project. Modified by Marti Maria to reflect further changes. lcms-1.19/tifficc/tifficc.c0000777000175300010010000011600411272606372015046 0ustar MartiNinguno// // Little cms // Copyright (C) 1998-2006 Marti Maria // // 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 AUTHORS OR COPYRIGHT HOLDERS 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. // This program does apply profiles to (some) TIFF files #include "lcms.h" #include #include #include #include #ifndef NON_WINDOWS #include #endif #include "tiffio.h" // xgetopt() interface ----------------------------------------------------- extern int xoptind; extern char *xoptarg; extern int xopterr; extern char SW; int cdecl xgetopt(int argc, char *argv[], char *optionS); // ------------------------------------------------------------------------ extern cmsHPROFILE OpenStockProfile(const char* File); // Flags static LCMSBOOL Verbose = FALSE; static LCMSBOOL BlackWhiteCompensation = FALSE; static LCMSBOOL IgnoreEmbedded = FALSE; static LCMSBOOL EmbedProfile = FALSE; static LCMSBOOL Width16 = FALSE; static LCMSBOOL GamutCheck = FALSE; static LCMSBOOL lIsDeviceLink = FALSE; static LCMSBOOL StoreAsAlpha = FALSE; static LCMSBOOL Dither = FALSE; static int PreserveBlack = 0; static LCMSBOOL InputLabUsingICC = FALSE; static int Intent = INTENT_PERCEPTUAL; static int ProofingIntent = INTENT_PERCEPTUAL; static int PrecalcMode = 1; static double InkLimit = 400; static double ObserverAdaptationState = 0; static const char *cInpProf = NULL; static const char *cOutProf = NULL; static const char *cProofing = NULL; static const char* SaveEmbedded = NULL; // Console error & warning static void ConsoleWarningHandler(const char* module, const char* fmt, va_list ap) { char e[512] = { '\0' }; if (module != NULL) strcat(strcpy(e, module), ": "); vsprintf(e+strlen(e), fmt, ap); strcat(e, "."); if (Verbose) { fprintf(stderr, "\nWarning"); fprintf(stderr, " %s\n", e); fflush(stderr); } } static void ConsoleErrorHandler(const char* module, const char* fmt, va_list ap) { char e[512] = { '\0' }; if (module != NULL) strcat(strcpy(e, module), ": "); vsprintf(e+strlen(e), fmt, ap); strcat(e, "."); fprintf(stderr, "\nError"); fprintf(stderr, " %s\n", e); fflush(stderr); } // Force an error and exit w/ return code 1 static void FatalError(const char *frm, ...) { va_list args; va_start(args, frm); ConsoleErrorHandler("TIFFICC", frm, args); va_end(args); exit(1); } // Issue a warning static void Warning(const char *frm, ...) { va_list args; va_start(args, frm); ConsoleWarningHandler("TIFFICC", frm, args); va_end(args); } static int MyErrorHandler(int ErrorCode, const char *ErrorText) { FatalError("%s", ErrorText); return 0; } // Out of mem static void OutOfMem(size_t size) { FatalError("Out of memory on allocating %d bytes.", size); } // Build up the pixeltype descriptor static DWORD GetInputPixelType(TIFF *Bank) { uint16 Photometric, bps, spp, extra, PlanarConfig, *info; uint16 Compression, reverse = 0; int ColorChannels, IsPlanar = 0, pt = 0; TIFFGetField(Bank, TIFFTAG_PHOTOMETRIC, &Photometric); TIFFGetFieldDefaulted(Bank, TIFFTAG_BITSPERSAMPLE, &bps); if (bps == 1) FatalError("Sorry, bilevel TIFFs has nothig to do with ICC profiles"); if (bps != 8 && bps != 16) FatalError("Sorry, 8 or 16 bits per sample only"); TIFFGetFieldDefaulted(Bank, TIFFTAG_SAMPLESPERPIXEL, &spp); TIFFGetFieldDefaulted(Bank, TIFFTAG_PLANARCONFIG, &PlanarConfig); switch (PlanarConfig) { case PLANARCONFIG_CONTIG: IsPlanar = 0; break; case PLANARCONFIG_SEPARATE: IsPlanar = 1; break; default: FatalError("Unsupported planar configuration (=%d) ", (int) PlanarConfig); } // If Samples per pixel == 1, PlanarConfiguration is irrelevant and need // not to be included. if (spp == 1) IsPlanar = 0; // Any alpha? TIFFGetFieldDefaulted(Bank, TIFFTAG_EXTRASAMPLES, &extra, &info); // Read alpha channels as colorant if (StoreAsAlpha) { ColorChannels = spp; extra = 0; } else ColorChannels = spp - extra; switch (Photometric) { case PHOTOMETRIC_MINISWHITE: reverse = 1; case PHOTOMETRIC_MINISBLACK: pt = PT_GRAY; break; case PHOTOMETRIC_RGB: pt = PT_RGB; break; case PHOTOMETRIC_PALETTE: FatalError("Sorry, palette images not supported (at least on this version)"); case PHOTOMETRIC_SEPARATED: if (ColorChannels == 4) pt = PT_CMYK; else if (ColorChannels == 3) pt = PT_CMY; else if (ColorChannels == 6) pt = PT_HiFi; else if (ColorChannels == 7) pt = PT_HiFi7; else if (ColorChannels == 8) pt = PT_HiFi8; else if (ColorChannels == 9) pt = PT_HiFi9; else if (ColorChannels == 10) pt = PT_HiFi10; else if (ColorChannels == 11) pt = PT_HiFi11; else if (ColorChannels == 12) pt = PT_HiFi8; else if (ColorChannels == 13) pt = PT_HiFi13; else if (ColorChannels == 14) pt = PT_HiFi14; else if (ColorChannels == 15) pt = PT_HiFi15; else FatalError("What a weird separation of %d channels?!?!", ColorChannels); break; case PHOTOMETRIC_YCBCR: TIFFGetField(Bank, TIFFTAG_COMPRESSION, &Compression); { uint16 subx, suby; pt = PT_YCbCr; TIFFGetFieldDefaulted(Bank, TIFFTAG_YCBCRSUBSAMPLING, &subx, &suby); if (subx != 1 || suby != 1) FatalError("Sorry, subsampled images not supported"); } break; case 9: pt = PT_Lab; InputLabUsingICC = TRUE; break; case PHOTOMETRIC_CIELAB: pt = PT_Lab; InputLabUsingICC = FALSE; break; case PHOTOMETRIC_LOGLUV: /* CIE Log2(L) (u',v') */ TIFFSetField(Bank, TIFFTAG_SGILOGDATAFMT, SGILOGDATAFMT_16BIT); pt = PT_YUV; // *ICCSpace = icSigLuvData; bps = 16; // 16 bits forced by LibTiff break; default: FatalError("Unsupported TIFF color space (Photometric %d)", Photometric); } // Convert bits per sample to bytes per sample bps >>= 3; return (COLORSPACE_SH(pt)|PLANAR_SH(IsPlanar)|EXTRA_SH(extra)|CHANNELS_SH(ColorChannels)|BYTES_SH(bps)|FLAVOR_SH(reverse)); } // Rearrange pixel type to build output descriptor static DWORD ComputeOutputFormatDescriptor(DWORD dwInput, int OutColorSpace, int bps) { int IsPlanar = T_PLANAR(dwInput); int Channels = 0; switch (OutColorSpace) { case PT_GRAY: Channels = 1; break; case PT_RGB: case PT_CMY: case PT_Lab: case PT_YUV: case PT_YCbCr: Channels = 3; break; case PT_CMYK: Channels = 4; break; case PT_HiFi: Channels = 6; break; case PT_HiFi7: Channels = 7; break; case PT_HiFi8: Channels = 8; break; case PT_HiFi9: Channels = 9; break; case PT_HiFi10: Channels = 10; break; case PT_HiFi11: Channels = 11; break; case PT_HiFi12: Channels = 12; break; case PT_HiFi13: Channels = 13; break; case PT_HiFi14: Channels = 14; break; case PT_HiFi15: Channels = 15; break; default: FatalError("Unsupported output color space"); } return (COLORSPACE_SH(OutColorSpace)|PLANAR_SH(IsPlanar)|CHANNELS_SH(Channels)|BYTES_SH(bps)|DITHER_SH(Dither)); } // Tile based transforms static int TileBasedXform(cmsHTRANSFORM hXForm, TIFF* in, TIFF* out, int nPlanes) { tsize_t BufSizeIn = TIFFTileSize(in); tsize_t BufSizeOut = TIFFTileSize(out); unsigned char *BufferIn, *BufferOut; ttile_t i, TileCount = TIFFNumberOfTiles(in) / nPlanes; uint32 tw, tl; int PixelCount, j; TIFFGetFieldDefaulted(in, TIFFTAG_TILEWIDTH, &tw); TIFFGetFieldDefaulted(in, TIFFTAG_TILELENGTH, &tl); PixelCount = (int) tw * tl; BufferIn = (unsigned char *) _TIFFmalloc(BufSizeIn * nPlanes); if (!BufferIn) OutOfMem(BufSizeIn * nPlanes); BufferOut = (unsigned char *) _TIFFmalloc(BufSizeOut * nPlanes); if (!BufferOut) OutOfMem(BufSizeOut * nPlanes); for (i = 0; i < TileCount; i++) { for (j=0; j < nPlanes; j++) { if (TIFFReadEncodedTile(in, i + (j* TileCount), BufferIn + (j*BufSizeIn), BufSizeIn) < 0) goto cleanup; } cmsDoTransform(hXForm, BufferIn, BufferOut, PixelCount); for (j=0; j < nPlanes; j++) { if (TIFFWriteEncodedTile(out, i + (j*TileCount), BufferOut + (j*BufSizeOut), BufSizeOut) < 0) goto cleanup; } } _TIFFfree(BufferIn); _TIFFfree(BufferOut); return 1; cleanup: _TIFFfree(BufferIn); _TIFFfree(BufferOut); return 0; } // Strip based transforms static int StripBasedXform(cmsHTRANSFORM hXForm, TIFF* in, TIFF* out, int nPlanes) { tsize_t BufSizeIn = TIFFStripSize(in); tsize_t BufSizeOut = TIFFStripSize(out); unsigned char *BufferIn, *BufferOut; ttile_t i, StripCount = TIFFNumberOfStrips(in) / nPlanes; uint32 sw; uint32 sl; uint32 iml; int j; int PixelCount; TIFFGetFieldDefaulted(in, TIFFTAG_IMAGEWIDTH, &sw); TIFFGetFieldDefaulted(in, TIFFTAG_ROWSPERSTRIP, &sl); TIFFGetFieldDefaulted(in, TIFFTAG_IMAGELENGTH, &iml); BufferIn = (unsigned char *) _TIFFmalloc(BufSizeIn * nPlanes); if (!BufferIn) OutOfMem(BufSizeIn * nPlanes); BufferOut = (unsigned char *) _TIFFmalloc(BufSizeOut * nPlanes); if (!BufferOut) OutOfMem(BufSizeOut * nPlanes); for (i = 0; i < StripCount; i++) { for (j=0; j < nPlanes; j++) { if (TIFFReadEncodedStrip(in, i + (j * StripCount), BufferIn + (j * BufSizeIn), BufSizeIn) < 0) goto cleanup; } PixelCount = (int) sw * (iml < sl ? iml : sl); iml -= sl; cmsDoTransform(hXForm, BufferIn, BufferOut, PixelCount); for (j=0; j < nPlanes; j++) { if (TIFFWriteEncodedStrip(out, i + (j * StripCount), BufferOut + j * BufSizeOut, BufSizeOut) < 0) goto cleanup; } } _TIFFfree(BufferIn); _TIFFfree(BufferOut); return 1; cleanup: _TIFFfree(BufferIn); _TIFFfree(BufferOut); return 0; } // Creates minimum required tags static void WriteOutputTags(TIFF *out, int Colorspace, int BytesPerSample) { int BitsPerSample = (8 * BytesPerSample); uint16 Extra[] = { EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA, EXTRASAMPLE_UNASSALPHA }; switch (Colorspace) { case PT_GRAY: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 1); TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_RGB: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 3); TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_CMY: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 3); TIFFSetField(out, TIFFTAG_INKSET, 2); TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_CMYK: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 4); TIFFSetField(out, TIFFTAG_INKSET, INKSET_CMYK); TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_Lab: if (BitsPerSample == 16) TIFFSetField(out, TIFFTAG_PHOTOMETRIC, 9); else TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_CIELAB); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 3); TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); // Needed by TIFF Spec break; case PT_HiFi: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 6); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 2, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi7: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 7); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 3, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi8: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 8); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 4, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi9: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 9); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 5, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi10: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 10); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 6, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi11: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 11); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 7, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi12: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 12); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 8, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi13: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 13); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 9, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi14: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 14); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 10, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; case PT_HiFi15: TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_SEPARATED); TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 15); if (StoreAsAlpha) { TIFFSetField(out, TIFFTAG_EXTRASAMPLES, 11, Extra); } else { TIFFSetField(out, TIFFTAG_INKSET, 2); } TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, BitsPerSample); break; default: FatalError("Unsupported output colorspace"); } } // Copies a bunch of tages static void CopyOtherTags(TIFF* in, TIFF* out) { #define CopyField(tag, v) \ if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v) short shortv; uint32 ow, ol; float floatv; char *stringv; uint32 longv; CopyField(TIFFTAG_SUBFILETYPE, longv); TIFFGetField(in, TIFFTAG_IMAGEWIDTH, &ow); TIFFGetField(in, TIFFTAG_IMAGELENGTH, &ol); TIFFSetField(out, TIFFTAG_IMAGEWIDTH, ow); TIFFSetField(out, TIFFTAG_IMAGELENGTH, ol); CopyField(TIFFTAG_PLANARCONFIG, shortv); CopyField(TIFFTAG_COMPRESSION, shortv); CopyField(TIFFTAG_PREDICTOR, shortv); CopyField(TIFFTAG_THRESHHOLDING, shortv); CopyField(TIFFTAG_FILLORDER, shortv); CopyField(TIFFTAG_ORIENTATION, shortv); CopyField(TIFFTAG_MINSAMPLEVALUE, shortv); CopyField(TIFFTAG_MAXSAMPLEVALUE, shortv); CopyField(TIFFTAG_XRESOLUTION, floatv); CopyField(TIFFTAG_YRESOLUTION, floatv); CopyField(TIFFTAG_RESOLUTIONUNIT, shortv); CopyField(TIFFTAG_ROWSPERSTRIP, longv); CopyField(TIFFTAG_XPOSITION, floatv); CopyField(TIFFTAG_YPOSITION, floatv); CopyField(TIFFTAG_IMAGEDEPTH, longv); CopyField(TIFFTAG_TILEDEPTH, longv); CopyField(TIFFTAG_TILEWIDTH, longv); CopyField(TIFFTAG_TILELENGTH, longv); CopyField(TIFFTAG_ARTIST, stringv); CopyField(TIFFTAG_IMAGEDESCRIPTION, stringv); CopyField(TIFFTAG_MAKE, stringv); CopyField(TIFFTAG_MODEL, stringv); CopyField(TIFFTAG_DATETIME, stringv); CopyField(TIFFTAG_HOSTCOMPUTER, stringv); CopyField(TIFFTAG_PAGENAME, stringv); CopyField(TIFFTAG_DOCUMENTNAME, stringv); } // A replacement for (the nonstandard) filelenght static int xfilelength(int fd) { #ifdef _MSC_VER return _filelength(fd); #else struct stat sb; if (fstat(fd, &sb) < 0) return(-1); return(sb.st_size); #endif } static void DoEmbedProfile(TIFF* Out, const char* ProfileFile) { FILE* f; size_t size, EmbedLen; LPBYTE EmbedBuffer; f = fopen(ProfileFile, "rb"); if (f == NULL) return; size = xfilelength(fileno(f)); EmbedBuffer = (LPBYTE) _cmsMalloc(size + 1); EmbedLen = fread(EmbedBuffer, 1, size, f); fclose(f); EmbedBuffer[EmbedLen] = 0; TIFFSetField(Out, TIFFTAG_ICCPROFILE, EmbedLen, EmbedBuffer); free(EmbedBuffer); } static void SaveMemoryBlock(const LPBYTE Buffer, DWORD dwLen, const char* Filename) { FILE* out = fopen(Filename, "wb"); if (out == NULL) FatalError("Cannot create '%s'", Filename); if (fwrite(Buffer, 1, dwLen, out) != dwLen) FatalError("Cannot write %ld bytes to %s", dwLen, Filename); if (fclose(out) != 0) FatalError("Error flushing file '%s'", Filename); } static cmsHPROFILE GetTIFFProfile(TIFF* in) { cmsCIExyYTRIPLE Primaries; float* chr; cmsCIExyY WhitePoint; float* wp; int i; LPGAMMATABLE Gamma[3]; LPWORD gmr, gmg, gmb; cmsHPROFILE hProfile; DWORD EmbedLen; LPBYTE EmbedBuffer; if (IgnoreEmbedded) return NULL; if (TIFFGetField(in, TIFFTAG_ICCPROFILE, &EmbedLen, &EmbedBuffer)) { hProfile = cmsOpenProfileFromMem(EmbedBuffer, EmbedLen); if (Verbose) { fprintf(stdout, " (Embedded profile found)\n"); fprintf(stdout, "Product name: %s\n", cmsTakeProductName(hProfile)); fprintf(stdout, "Description : %s\n", cmsTakeProductDesc(hProfile)); fflush(stdout); } if (hProfile != NULL && SaveEmbedded != NULL) SaveMemoryBlock(EmbedBuffer, EmbedLen, SaveEmbedded); if (hProfile) return hProfile; } // Try to see if "colorimetric" tiff if (TIFFGetField(in, TIFFTAG_PRIMARYCHROMATICITIES, &chr)) { Primaries.Red.x = chr[0]; Primaries.Red.y = chr[1]; Primaries.Green.x = chr[2]; Primaries.Green.y = chr[3]; Primaries.Blue.x = chr[4]; Primaries.Blue.y = chr[5]; Primaries.Red.Y = Primaries.Green.Y = Primaries.Blue.Y = 1.0; if (TIFFGetField(in, TIFFTAG_WHITEPOINT, &wp)) { WhitePoint.x = wp[0]; WhitePoint.y = wp[1]; WhitePoint.Y = 1.0; // Transferfunction is a bit harder.... for (i=0; i < 3; i++) Gamma[i] = cmsAllocGamma(256); TIFFGetFieldDefaulted(in, TIFFTAG_TRANSFERFUNCTION, &gmr, &gmg, &gmb); CopyMemory(Gamma[0]->GammaTable, gmr, 256*sizeof(WORD)); CopyMemory(Gamma[1]->GammaTable, gmg, 256*sizeof(WORD)); CopyMemory(Gamma[2]->GammaTable, gmb, 256*sizeof(WORD)); hProfile = cmsCreateRGBProfile(&WhitePoint, &Primaries, Gamma); for (i=0; i < 3; i++) cmsFreeGamma(Gamma[i]); if (Verbose) { fprintf(stdout, " (Colorimetric TIFF)\n"); } return hProfile; } } return NULL; } static WORD SaturateWord(int a) { if (a > 0xFFFF) return 0xFFFF; if (a < 0) return 0; return a; } // Formatter for 8bit Lab TIFF (photometric 8) static unsigned char* UnrollTIFFLab8(register void* nfo, register WORD wIn[], register LPBYTE accum) { _LPcmsTRANSFORM info = (_LPcmsTRANSFORM) nfo; wIn[0] = (accum[0]) << 8; wIn[1] = ((accum[1] > 127) ? (accum[1] - 128) : (accum[1] + 128)) << 8; wIn[2] = ((accum[2] > 127) ? (accum[2] - 128) : (accum[2] + 128)) << 8; return accum + 3; } static unsigned char* PackTIFFLab8(register void* nfo, register WORD wOut[], register LPBYTE output) { _LPcmsTRANSFORM info = (_LPcmsTRANSFORM) nfo; int a, b; *output++ = SaturateWord(wOut[0] + 0x0080) >> 8; a = SaturateWord(wOut[1] + 0x0080) >> 8; b = SaturateWord(wOut[2] + 0x0080) >> 8; *output++ = (a < 128) ? (a + 128) : (a - 128); *output++ = (b < 128) ? (b + 128) : (b - 128); return output; } // Transform one image static int TransformImage(TIFF* in, TIFF* out, const char *cDefInpProf, const char *cOutProf) { cmsHPROFILE hIn, hOut, hProof, hInkLimit = NULL; cmsHTRANSFORM xform; DWORD wInput, wOutput; int OutputColorSpace; int bps = (Width16 ? 2 : 1); DWORD dwFlags = 0; int nPlanes; // Observer adaptation state (only meaningful on absolute colorimetric intent) cmsSetAdaptationState(ObserverAdaptationState); if (EmbedProfile && cOutProf) DoEmbedProfile(out, cOutProf); if (BlackWhiteCompensation) dwFlags |= cmsFLAGS_WHITEBLACKCOMPENSATION; if (PreserveBlack) { dwFlags |= cmsFLAGS_PRESERVEBLACK; if (PrecalcMode == 0) PrecalcMode = 1; cmsSetCMYKPreservationStrategy(PreserveBlack-1); } switch (PrecalcMode) { case 0: dwFlags |= cmsFLAGS_NOTPRECALC; break; case 2: dwFlags |= cmsFLAGS_HIGHRESPRECALC; break; case 3: dwFlags |= cmsFLAGS_LOWRESPRECALC; break; case 1: break; default: FatalError("Unknown precalculation mode '%d'", PrecalcMode); } if (GamutCheck) dwFlags |= cmsFLAGS_GAMUTCHECK; hProof = NULL; hOut = NULL; if (lIsDeviceLink) { hIn = cmsOpenProfileFromFile(cDefInpProf, "r"); } else { hIn = GetTIFFProfile(in); if (hIn == NULL) hIn = OpenStockProfile(cDefInpProf); hOut = OpenStockProfile(cOutProf); if (cProofing != NULL) { hProof = OpenStockProfile(cProofing); dwFlags |= cmsFLAGS_SOFTPROOFING; } } // Take input color space wInput = GetInputPixelType(in); // Assure both, input profile and input TIFF are on same colorspace if (_cmsLCMScolorSpace(cmsGetColorSpace(hIn)) != (int) T_COLORSPACE(wInput)) FatalError("Input profile is not operating in proper color space"); if (!lIsDeviceLink) OutputColorSpace = _cmsLCMScolorSpace(cmsGetColorSpace(hOut)); else OutputColorSpace = _cmsLCMScolorSpace(cmsGetPCS(hIn)); wOutput = ComputeOutputFormatDescriptor(wInput, OutputColorSpace, bps); WriteOutputTags(out, OutputColorSpace, bps); CopyOtherTags(in, out); // Ink limit if (InkLimit != 400.0 && (OutputColorSpace == PT_CMYK || OutputColorSpace == PT_CMY)) { cmsHPROFILE hProfiles[10]; int nProfiles = 0; hInkLimit = cmsCreateInkLimitingDeviceLink(cmsGetColorSpace(hOut), InkLimit); hProfiles[nProfiles++] = hIn; if (hProof) { hProfiles[nProfiles++] = hProof; hProfiles[nProfiles++] = hProof; } hProfiles[nProfiles++] = hOut; hProfiles[nProfiles++] = hInkLimit; xform = cmsCreateMultiprofileTransform(hProfiles, nProfiles, wInput, wOutput, Intent, dwFlags); } else { xform = cmsCreateProofingTransform(hIn, wInput, hOut, wOutput, hProof, Intent, ProofingIntent, dwFlags); } // Planar stuff if (T_PLANAR(wInput)) nPlanes = T_CHANNELS(wInput) + T_EXTRA(wInput); else nPlanes = 1; // TIFF Lab of 8 bits need special handling if (wInput == TYPE_Lab_8 && !InputLabUsingICC && cInpProf != NULL && stricmp(cInpProf, "*Lab") == 0) { cmsSetUserFormatters(xform, TYPE_Lab_8, UnrollTIFFLab8, TYPE_Lab_8, NULL); } if (wOutput == TYPE_Lab_8 && cOutProf != NULL && stricmp(cOutProf, "*Lab") == 0) { cmsSetUserFormatters(xform, TYPE_Lab_8, NULL, TYPE_Lab_8, PackTIFFLab8); } // Handle tile by tile or strip by strip if (TIFFIsTiled(in)) { TileBasedXform(xform, in, out, nPlanes); } else { StripBasedXform(xform, in, out, nPlanes); } cmsDeleteTransform(xform); cmsCloseProfile(hIn); cmsCloseProfile(hOut); if (hInkLimit) cmsCloseProfile(hInkLimit); if (hProof) cmsCloseProfile(hProof); TIFFWriteDirectory(out); return 1; } // Simply print help static void Help(int level) { fprintf(stderr, "little cms ICC profile applier for TIFF - v6.0\n\n"); fflush(stderr); switch(level) { default: case 0: fprintf(stderr, "usage: tifficc [flags] input.tif output.tif\n"); fprintf(stderr, "\nflags:\n\n"); fprintf(stderr, "%cv - Verbose\n", SW); fprintf(stderr, "%ci - Input profile (defaults to sRGB)\n", SW); fprintf(stderr, "%co - Output profile (defaults to sRGB)\n", SW); fprintf(stderr, "%cl - Transform by device-link profile\n", SW); fprintf(stderr, "%ct<0,1,2,3> - Intent (0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute)\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cc<0,1,2,3> - Precalculates transform (0=Off, 1=Normal, 2=Hi-res, 3=LoRes) [defaults to 1]\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cw - Wide output (generates 16 bps tiff)\n", SW); fprintf(stderr, "%ca - Handle channels > 4 as alpha\n", SW); fprintf(stderr, "%cn - Ignore embedded profile on input\n", SW); fprintf(stderr, "%ce - Embed destination profile\n", SW); fprintf(stderr, "%cs - Save embedded profile as \n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cp - Soft proof profile\n", SW); fprintf(stderr, "%cm<0,1,2,3> - Soft proof intent\n", SW); fprintf(stderr, "%cg - Marks out-of-gamut colors on softproof\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%cq - Dither 8 bit images\n", SW); fprintf(stderr, "%cb - Black point compensation\n", SW); fprintf(stderr, "%cf - Preserve black (CMYK only) 0=off, 1=black ink only, 2=full K plane\n", SW); fprintf(stderr, "%ck<0..400> - Ink-limiting in %% (CMYK only)\n", SW); fprintf(stderr, "%cd<0..1> - Observer adaptation state (abs.col. only)\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "%ch<0,1,2> - More help\n", SW); fprintf(stderr, "\n"); fprintf(stderr, "You can also use '*Lab' and '*XYZ' as predefined, built-in\n"); fprintf(stderr, "profiles for CIE L*a*b* and XYZ color spaces.\n"); break; case 1: fprintf(stderr, "Examples:\n\n" "To color correct from scanner to sRGB:\n" "\ttifficc %ciscanner.icm in.tif out.tif\n" "To convert from monitor1 to monitor2:\n" "\ttifficc %cimon1.icm %comon2.icm in.tif out.tif\n" "To make a CMYK separation:\n" "\ttifficc %coprinter.icm inrgb.tif outcmyk.tif\n" "To recover sRGB from a CMYK separation:\n" "\ttifficc %ciprinter.icm incmyk.tif outrgb.tif\n" "To convert from CIELab TIFF to sRGB\n" "\ttifficc %ci*Lab in.tif out.tif\n\n", SW, SW, SW, SW, SW, SW); break; case 2: fprintf(stderr, "This program is intended to be a demo of the little cms\n" "engine. Both lcms and this program are freeware. You can\n" "obtain both in source code at http://www.littlecms.com\n" "For suggestions, comments, bug reports etc. send mail to\n" "info@littlecms.com\n\n"); break; } fflush(stderr); exit(0); } // The toggles stuff static void HandleSwitches(int argc, char *argv[]) { int s; while ((s=xgetopt(argc,argv,"aAeEbBwWnNvVGgh:H:i:I:o:O:P:p:t:T:c:C:l:L:M:m:K:k:S:s:D:d:f:F:Qq")) != EOF) { switch (s) { case 'a': case 'A': StoreAsAlpha = TRUE; break; case 'b': case 'B': BlackWhiteCompensation = TRUE; break; case 'c': case 'C': PrecalcMode = atoi(xoptarg); if (PrecalcMode < 0 || PrecalcMode > 3) FatalError("Unknown precalc mode '%d'", PrecalcMode); break; case 'd': case 'D': ObserverAdaptationState = atof(xoptarg); if (ObserverAdaptationState != 0 && ObserverAdaptationState != 1.0) Warning("Adaptation states other that 0 or 1 are not yet implemented"); break; case 'e': case 'E': EmbedProfile = TRUE; break; case 'f': case 'F': PreserveBlack = atoi(xoptarg); if (PreserveBlack < 0 || PreserveBlack > 2) FatalError("Unknown PreserveBlack '%d'", PreserveBlack); break; case 'g': case 'G': GamutCheck = TRUE; break; case 'H': case 'h': { int a = atoi(xoptarg); Help(a); } break; case 'i': case 'I': if (lIsDeviceLink) FatalError("Device-link already specified"); cInpProf = xoptarg; break; case 'k': case 'K': InkLimit = atof(xoptarg); if (InkLimit < 0.0 || InkLimit > 400.0) FatalError("Ink limit must be 0%%..400%%"); break; case 'l': case 'L': cInpProf = xoptarg; lIsDeviceLink = TRUE; break; case 'm': case 'M': ProofingIntent = atoi(xoptarg); if (ProofingIntent > 3) ProofingIntent = 3; if (ProofingIntent < 0) ProofingIntent = 0; break; case 'N': case 'n': IgnoreEmbedded = TRUE; break; case 'o': case 'O': if (lIsDeviceLink) FatalError("Device-link already specified"); cOutProf = xoptarg; break; case 'p': case 'P': cProofing = xoptarg; break; case 'q': case 'Q': Dither= TRUE; break; case 't': case 'T': Intent = atoi(xoptarg); if (Intent > 3) Intent = 3; if (Intent < 0) Intent = 0; break; case 's': case 'S': SaveEmbedded = xoptarg; break; case 'v': case 'V': Verbose = TRUE; break; case 'W': case 'w': Width16 = TRUE; break; default: FatalError("Unknown option - run without args to see valid ones"); } } } // The main sink int main(int argc, char* argv[]) { TIFF *in, *out; char *Intents[] = {"perceptual", "relative colorimetric", "saturation", "absolute colorimetric" }; HandleSwitches(argc, argv); cmsSetErrorHandler(MyErrorHandler); if ((argc - xoptind) != 2) { Help(0); } if (Verbose) { if (lIsDeviceLink) fprintf(stdout, "%s(device link) -> %s [%s]", argv[xoptind], argv[xoptind+1], Intents[Intent]); else fprintf(stdout, "%s(%s) -> %s(%s) [%s]", argv[xoptind], (cInpProf == NULL ? "sRGB default": cInpProf), argv[xoptind+1], (cOutProf == NULL ? "sRGB default" : cOutProf), Intents[Intent]); fflush(stdout); } TIFFSetErrorHandler(ConsoleErrorHandler); TIFFSetWarningHandler(ConsoleWarningHandler); in = TIFFOpen(argv[xoptind], "r"); if (in == NULL) FatalError("Unable to open '%s'", argv[xoptind]); out = TIFFOpen(argv[xoptind+1], "w"); if (out == NULL) { TIFFClose(in); FatalError("Unable to write '%s'", argv[xoptind+1]); } do { TransformImage(in, out, cInpProf, cOutProf); } while (TIFFReadDirectory(in)); if (Verbose) { fprintf(stdout, "\n"); fflush(stdout); } TIFFClose(in); TIFFClose(out); return 0; }