/* mplibstuff.w Copyright 2021 LuaTeX team This file is part of LuaTeX. LuaTeX 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. LuaTeX 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 Lesser General Public License for more details. You should have received a copy of the GNU General Public License along with LuaTeX; if not, see . */ /*tex The \PNG\ and \SVG\ backends are not available in \LUATEX, because it's complex to manage the math formulas at run time. In this respect \POSTSCRIPT\ and the highlevel |objects| are better, and they are the standard way. Another problem is how to emit the warning: the |normal_warning| function is not available when \LUATEX\ is called as \LUA\ only. */ #include extern void normal_warning(const char *t, const char *p); extern int lua_only; #define mplibstuff_message(MSG) do { \ if (lua_only) { \ fprintf(stdout,"mplib: " #MSG " not available.\n"); \ } else { \ normal_warning("mplib", #MSG " not available."); \ } \ } while (0) void mp_png_backend_initialize (void *mp); void mp_png_backend_free (void *mp); int mp_png_gr_ship_out (void *hh, void *options, int standalone); int mp_png_ship_out (void *hh, const char *options); void mp_svg_backend_initialize (void *mp); void mp_svg_backend_free (void *mp); int mp_svg_ship_out (void *hh, int prologues); int mp_svg_gr_ship_out (void *hh, int qprologues, int standalone); void *mp_initialize_binary_math(void *mp); void mp_png_backend_initialize (void *mp) { return; } void mp_png_backend_free (void *mp) { return; } int mp_png_gr_ship_out (void *hh, void *options, int standalone) { mplibstuff_message(png backend); return 1; } int mp_png_ship_out (void *hh, const char *options) { mplibstuff_message(png backend); return 1; } void mp_svg_backend_initialize (void *mp) { return; } void mp_svg_backend_free (void *mp) { return; } int mp_svg_ship_out (void *hh, int prologues) { mplibstuff_message(svg bakend); return 1; } int mp_svg_gr_ship_out (void *hh, int qprologues, int standalone) { mplibstuff_message(svg backend); return 1; } void *mp_initialize_binary_math(void *mp) {mplibstuff_message(math binary);return NULL; } const char* cairo_version_string (void); const char* mpfr_get_version(void); const char* pixman_version_string (void); #define CAIRO_VERSION_STRING "CAIRO NOT AVAILABLE" const char *COMPILED_CAIRO_VERSION_STRING = CAIRO_VERSION_STRING; #define MPFR_VERSION_STRING "MPFR NOT AVAILABLE" const char *COMPILED_MPFR_VERSION_STRING = MPFR_VERSION_STRING; #define __GNU_MP_VERSION -1 #define __GNU_MP_VERSION_MINOR -1 #define __GNU_MP_VERSION_PATCHLEVEL -1 int COMPILED__GNU_MP_VERSION = __GNU_MP_VERSION ; int COMPILED__GNU_MP_VERSION_MINOR = __GNU_MP_VERSION_MINOR ; int COMPILED__GNU_MP_VERSION_PATCHLEVEL = __GNU_MP_VERSION_PATCHLEVEL ; const char * const COMPILED_gmp_version="GMP NOT AVAILABLE"; #define PIXMAN_VERSION_STRING "PIXMAN NOT AVAILABLE" const char *COMPILED_PIXMAN_VERSION_STRING = PIXMAN_VERSION_STRING; const char* cairo_version_string (void) { return CAIRO_VERSION_STRING; } const char* mpfr_get_version(void) { return MPFR_VERSION_STRING; } const char* pixman_version_string (void) { return PIXMAN_VERSION_STRING; } char png_libpng_ver[] = "PNG NOT AVAILABLE";