You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
822 lines
26 KiB
822 lines
26 KiB
This file is part of MXE. See LICENSE.md for licensing information.
|
|
|
|
Contains ad hoc patches for cross building.
|
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: darealshinji <djcj@gmx.de>
|
|
Date: Fri, 25 May 2018 00:43:55 +0200
|
|
Subject: [PATCH 1/1] cross-build fixes, symbol visibility option
|
|
|
|
|
|
diff --git a/Makefile.in b/Makefile.in
|
|
index 1111111..2222222 100644
|
|
--- a/Makefile.in
|
|
+++ b/Makefile.in
|
|
@@ -173,6 +173,9 @@ CAPOPT= @HAVE_MKSTEMP@ @HAVE_FILE64@ @HAVE_FSEEKO@ @HAVE_MKSTEMP64@ @HAVE_FONTCO
|
|
|
|
GS=@GS@
|
|
GS_SO_BASE=@GS@
|
|
+GS_SONAME=@GS_SONAME@
|
|
+GS_SONAME_MAJOR=@GS_SONAME_MAJOR@
|
|
+GS_SONAME_MAJOR_MINOR=@GS_SONAME_MAJOR_MINOR@
|
|
|
|
PCL=@PCL@
|
|
PCL_SO_BASE=@PCL@
|
|
@@ -184,7 +187,7 @@ GPDL=@GPDL@
|
|
GPDL_SO_BASE=@GPDL@
|
|
|
|
XE=@EXEEXT@
|
|
-XEAUX=@EXEEXT@
|
|
+XEAUX=@AUXEXEEXT@
|
|
|
|
PCL_TARGET=@PCL_TARGET@
|
|
XPS_TARGET=@XPS_TARGET@
|
|
diff --git a/base/gp_unix.c b/base/gp_unix.c
|
|
index 1111111..2222222 100644
|
|
--- a/base/gp_unix.c
|
|
+++ b/base/gp_unix.c
|
|
@@ -16,6 +16,9 @@
|
|
|
|
/* Unix-specific routines for Ghostscript */
|
|
|
|
+#ifdef __MINGW32__
|
|
+# include "windows_.h"
|
|
+#endif
|
|
#include "pipe_.h"
|
|
#include "string_.h"
|
|
#include "time_.h"
|
|
@@ -454,3 +457,54 @@ void gp_enumerate_fonts_free(void *enum_state)
|
|
}
|
|
#endif
|
|
}
|
|
+
|
|
+/* A function to decode the next codepoint of the supplied args from the
|
|
+ * local windows codepage, or -1 for EOF.
|
|
+ * (copied from gp_win32.c)
|
|
+ */
|
|
+
|
|
+#ifdef __MINGW32__
|
|
+int
|
|
+gp_local_arg_encoding_get_codepoint(FILE *file, const char **astr)
|
|
+{
|
|
+ int len;
|
|
+ int c;
|
|
+ char arg[3];
|
|
+ wchar_t unicode[2];
|
|
+ char utf8[4];
|
|
+
|
|
+ if (file) {
|
|
+ c = fgetc(file);
|
|
+ if (c == EOF)
|
|
+ return EOF;
|
|
+ } else if (**astr) {
|
|
+ c = *(*astr)++;
|
|
+ if (c == 0)
|
|
+ return EOF;
|
|
+ } else {
|
|
+ return EOF;
|
|
+ }
|
|
+
|
|
+ arg[0] = c;
|
|
+ if (IsDBCSLeadByte(c)) {
|
|
+ if (file) {
|
|
+ c = fgetc(file);
|
|
+ if (c == EOF)
|
|
+ return EOF;
|
|
+ } else if (**astr) {
|
|
+ c = *(*astr)++;
|
|
+ if (c == 0)
|
|
+ return EOF;
|
|
+ }
|
|
+ arg[1] = c;
|
|
+ len = 2;
|
|
+ } else {
|
|
+ len = 1;
|
|
+ }
|
|
+
|
|
+ /* Convert the string (unterminated in, unterminated out) */
|
|
+ len = MultiByteToWideChar(CP_ACP, 0, arg, len, unicode, 2);
|
|
+
|
|
+ return unicode[0];
|
|
+}
|
|
+#endif /* __MINGW32__ */
|
|
diff --git a/base/unix-aux.mak b/base/unix-aux.mak
|
|
index 1111111..2222222 100644
|
|
--- a/base/unix-aux.mak
|
|
+++ b/base/unix-aux.mak
|
|
@@ -67,23 +67,29 @@ $(GLOBJ)gp_sysv.$(OBJ): $(GLSRC)gp_sysv.c $(stdio__h) $(time__h) $(AK)\
|
|
# -------------------------- Auxiliary programs --------------------------- #
|
|
|
|
$(ECHOGS_XE): $(GLSRC)echogs.c $(AK) $(stdpre_h) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(ECHOGS_XE) || \
|
|
$(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(ECHOGS_XE) $(GLSRC)echogs.c $(AUXEXTRALIBS)
|
|
|
|
$(PACKPS_XE): $(GLSRC)pack_ps.c $(stdpre_h) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(PACKPS_XE) || \
|
|
$(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(PACKPS_XE) $(GLSRC)pack_ps.c $(AUXEXTRALIBS)
|
|
|
|
# On the RS/6000 (at least), compiling genarch.c with gcc with -O
|
|
# produces a buggy executable.
|
|
$(GENARCH_XE): $(GLSRC)genarch.c $(AK) $(GENARCH_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(GENARCH_XE) || \
|
|
$(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENARCH_XE) $(GLSRC)genarch.c $(AUXEXTRALIBS)
|
|
|
|
$(GENCONF_XE): $(GLSRC)genconf.c $(AK) $(GENCONF_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(GENCONF_XE) || \
|
|
$(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENCONF_XE) $(GLSRC)genconf.c $(AUXEXTRALIBS)
|
|
|
|
$(GENDEV_XE): $(GLSRC)gendev.c $(AK) $(GENDEV_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(GENDEV_XE) || \
|
|
$(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENDEV_XE) $(GLSRC)gendev.c $(AUXEXTRALIBS)
|
|
|
|
$(GENHT_XE): $(GLSRC)genht.c $(AK) $(GENHT_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(GENHT_XE) || \
|
|
$(CCAUX_) $(GENHT_CFLAGS) $(O_)$(GENHT_XE) $(GLSRC)genht.c $(AUXEXTRALIBS)
|
|
|
|
# To get GS to use the system zlib, you remove/hide the gs/zlib directory
|
|
@@ -94,6 +100,7 @@ MKROMFS_OBJS_0=$(MKROMFS_ZLIB_OBJS) $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
|
|
$(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ) $(AUX)memento.$(OBJ)
|
|
|
|
$(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(MKROMFS_XE)_0 || \
|
|
$(CCAUX_) $(GENOPTAUX) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_0 $(MKROMFS_OBJS_0) $(AUXEXTRALIBS)
|
|
|
|
# .... and one using the zlib library linked via the command line
|
|
@@ -103,9 +110,11 @@ MKROMFS_OBJS_1=$(AUX)gscdefs.$(OBJ) \
|
|
$(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ)
|
|
|
|
$(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(MKROMFS_XE)_1 || \
|
|
$(CCAUX_) $(GENOPTAUX) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_1 $(MKROMFS_OBJS_1) $(AUXEXTRALIBS)
|
|
|
|
$(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(UNIX_AUX_MAK) $(MAKEDIRS)
|
|
+ test -e $(MKROMFS_XE) || \
|
|
$(CP_) $(MKROMFS_XE)_$(SHARE_ZLIB) $(MKROMFS_XE)
|
|
|
|
# Query the environment to construct gconfig_.h.
|
|
diff --git a/base/unix-dll.mak b/base/unix-dll.mak
|
|
index 1111111..2222222 100644
|
|
--- a/base/unix-dll.mak
|
|
+++ b/base/unix-dll.mak
|
|
@@ -66,10 +66,6 @@ GPDL_SONAME_BASE=lib$(GPDL_SO_BASE)
|
|
GS_SOEXT=$(SO_LIB_EXT)
|
|
GS_DLLEXT=$(DLL_EXT)
|
|
|
|
-GS_SONAME=$(GS_SONAME_BASE)$(GS_SOEXT)$(GS_DLLEXT)
|
|
-GS_SONAME_MAJOR=$(GS_SONAME_BASE)$(GS_SOEXT)$(SO_LIB_VERSION_SEPARATOR)$(GS_VERSION_MAJOR)$(GS_DLLEXT)
|
|
-GS_SONAME_MAJOR_MINOR=$(GS_SONAME_BASE)$(GS_SOEXT)$(SO_LIB_VERSION_SEPARATOR)$(GS_VERSION_MAJOR)$(SO_LIB_VERSION_SEPARATOR)$(GS_VERSION_MINOR)$(GS_DLLEXT)
|
|
-
|
|
PCL_SONAME=$(PCL_SONAME_BASE)$(GS_SOEXT)$(GS_DLLEXT)
|
|
PCL_SONAME_MAJOR=$(PCL_SONAME_BASE)$(GS_SOEXT)$(SO_LIB_VERSION_SEPARATOR)$(GS_VERSION_MAJOR)$(GS_DLLEXT)
|
|
PCL_SONAME_MAJOR_MINOR=$(PCL_SONAME_BASE)$(GS_SOEXT)$(SO_LIB_VERSION_SEPARATOR)$(GS_VERSION_MAJOR)$(SO_LIB_VERSION_SEPARATOR)$(GS_VERSION_MINOR)$(GS_DLLEXT)
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 1111111..2222222 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -23,6 +23,7 @@ AC_INIT
|
|
AC_PREREQ(2.63)
|
|
AC_LANG(C)
|
|
AC_CONFIG_SRCDIR(psi/gs.c)
|
|
+AC_CANONICAL_HOST
|
|
|
|
dnl Inherit compiler flags from the environment...
|
|
CFLAGS="${CFLAGS:=}"
|
|
@@ -125,8 +126,11 @@ AUXEXTRALIBSTMP="\$(EXTRALIBS)"
|
|
|
|
# purposefully do not include "help" output for this
|
|
AC_ARG_ENABLE([save_confaux])
|
|
+AC_ARG_ENABLE([auxtools_only])
|
|
|
|
-if test x"$CCAUX" != x"" ; then
|
|
+absolute_source_path=$(cd "$(dirname "$0")" && pwd)
|
|
+
|
|
+if test x"$host" != x"$build" ; then
|
|
# rerun configure for the AUX tools, disabling a load of tests not relevant for CCAUX
|
|
olddir=`pwd`
|
|
if test x"$enable_save_confaux" = x"yes"; then
|
|
@@ -146,9 +150,10 @@ if test x"$CCAUX" != x"" ; then
|
|
echo $AUXFLAGS_MAK_LINE06 >> $AUXFLAGS_MAK.in
|
|
echo $AUXFLAGS_MAK_LINE07 >> $AUXFLAGS_MAK.in
|
|
|
|
- ../$0 CC="$CCAUX" CFLAGS="$CFLAGSAUX" LDFLAGS="$LDFLAGSAUX" CCAUX= CFLAGSAUX= CFLAGSAUX= MAKEFILE=$AUXFLAGS_MAK --host= --build= --without-libtiff --disable-contrib --disable-fontconfig --disable-dbus --disable-freetype --disable-fapi --disable-cups --disable-openjpeg --disable-gtk --with-libiconv=no --without-libidn --without-libpaper --without-pdftoraster --without-ijs --without-luratech --without-jbig2dec --without-x --with-drivers=""
|
|
- status=$?
|
|
- cp config.log ../configaux.log
|
|
+ AC_MSG_NOTICE([Begin recursive call to configure script (for auxiliary tools)])
|
|
+ "$absolute_source_path/configure" CC="$CCAUX" CFLAGS="$CFLAGSAUX" LDFLAGS="$LDFLAGSAUX" CCAUX= CFLAGSAUX= CFLAGSAUX= MAKEFILE=$AUXFLAGS_MAK --host=$build --build=$build --enable-auxtools_only --disable-hidden-visibility --with-local-zlib --without-libtiff --disable-contrib --disable-fontconfig --disable-dbus --disable-freetype --disable-fapi --disable-cups --disable-openjpeg --disable-gtk --with-libiconv=no --without-libidn --without-libpaper --without-pdftoraster --without-ijs --without-luratech --without-jbig2dec --without-x --with-drivers=""
|
|
+ status=$?
|
|
+ cp config.log $olddir/configaux.log
|
|
if test $status -eq 0 ; then
|
|
CCAUX=$(grep CCAUX $AUXFLAGS_MAK | sed "s/CCAUX=//g")
|
|
GCFLAGSAUXTMP=$(grep GCFLAGSAUX $AUXFLAGS_MAK | sed "s/GCFLAGSAUX=//g")
|
|
@@ -167,6 +172,8 @@ if test x"$CCAUX" != x"" ; then
|
|
|
|
if test $status -ne 0 ; then
|
|
AC_MSG_ERROR([Recursive call to configure (for auxiliary tools) script failed], $status)
|
|
+ else
|
|
+ AC_MSG_NOTICE([Recursive call to configure script succeeded])
|
|
fi
|
|
fi
|
|
|
|
@@ -204,7 +211,7 @@ AC_PATH_TOOL(PKGCONFIG, pkg-config)
|
|
# but if we are cross compiling, and there isn't a matching
|
|
# pkconfig for the --host setting, then don't use the 'local'
|
|
# pkconfig at all
|
|
-if test x"$cross_compiling" = x"yes"; then
|
|
+if test x"$host" != x"$build" ; then
|
|
AC_PATH_PROG(BUILD_PKGCONFIG, pkg-config)
|
|
if test x"$BUILD_PKGCONFIG" = x"$PKGCONFIG" ; then
|
|
PKGCONFIG=
|
|
@@ -217,7 +224,7 @@ AC_PATH_TOOL(STRIP_XE, strip)
|
|
# but if we are cross compiling, and there isn't a matching
|
|
# pkconfig for the --host setting, then don't use the 'local'
|
|
# pkconfig at all
|
|
-if test x"$cross_compiling" = x"yes"; then
|
|
+if test x"$host" != x"$build" ; then
|
|
AC_PATH_PROG(BUILD_STRIP_XE, strip)
|
|
if test x"$BUILD_STRIP_XE" = x"$STRIP_XE" ; then
|
|
STRIP_XE=
|
|
@@ -234,18 +241,14 @@ CONTRIBINCLUDE="include $srcdir/contrib/contrib.mak"
|
|
INSTALL_CONTRIB="install-contrib-extras"
|
|
|
|
if test x"$enable_contrib" = x; then
|
|
- if test x"$cross_compiling" = x"yes"; then
|
|
- enable_contrib=
|
|
- else
|
|
- case `uname` in
|
|
- MINGW*|MSYS*)
|
|
+ case $host in
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
AC_MSG_WARN([disabling contrib devices])
|
|
enable_contrib=no
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
- fi
|
|
fi
|
|
|
|
if test x"$enable_contrib" != x"no"; then
|
|
@@ -274,33 +277,34 @@ dnl --------------------------------------------------
|
|
CC_OPT_FLAGS_TO_TRY="-O"
|
|
SET_DT_SONAME="-soname="
|
|
|
|
-if test x"$cross_compiling" = x"yes"; then
|
|
- if test $ac_cv_prog_gcc = yes; then
|
|
- CC_OPT_FLAGS_TO_TRY="-O2"
|
|
- CC_DBG_FLAGS_TO_TRY="-gdwarf-2 -g3 -O0"
|
|
- fi
|
|
-else
|
|
- case `uname` in
|
|
- Linux*|GNU*)
|
|
+case $host in
|
|
+ *-linux*|*-gnu)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
CC_OPT_FLAGS_TO_TRY="-O2"
|
|
CC_DBG_FLAGS_TO_TRY="-gdwarf-2 -g3 -O0"
|
|
fi
|
|
;;
|
|
- *BSD)
|
|
+ *bsd*)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
CC_OPT_FLAGS_TO_TRY="-O2"
|
|
CC_DBG_FLAGS_TO_TRY="-gdwarf-2 -g3 -O0"
|
|
fi
|
|
;;
|
|
- Darwin*)
|
|
+ *-arwin*)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
CC_OPT_FLAGS_TO_TRY="-O2"
|
|
CC_DBG_FLAGS_TO_TRY="-gdwarf-2 -g3 -O0"
|
|
fi
|
|
SET_DT_SONAME=""
|
|
;;
|
|
- SunOS)
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
+ if test $ac_cv_prog_gcc = yes; then
|
|
+ CC_OPT_FLAGS_TO_TRY="-O2"
|
|
+ CC_DBG_FLAGS_TO_TRY="-gdwarf-2 -g3 -O0"
|
|
+ fi
|
|
+ SET_DT_SONAME=""
|
|
+ ;;
|
|
+ *-sun*)
|
|
CC_OPT_FLAGS_TO_TRY="-O2"
|
|
# the trailing space is required!
|
|
if test $ac_cv_prog_gcc = no; then
|
|
@@ -313,15 +317,14 @@ else
|
|
CC_DBG_FLAGS_TO_TRY="-g -O0"
|
|
fi
|
|
;;
|
|
- AIX)
|
|
+ *-aix*)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
CC_OPT_FLAGS_TO_TRY="-O2"
|
|
CC_DBG_FLAGS_TO_TRY="-gdwarf-2 -g3 -O0"
|
|
SET_DT_SONAME="so"
|
|
fi
|
|
;;
|
|
- esac
|
|
-fi
|
|
+esac
|
|
|
|
AC_SUBST(SET_DT_SONAME)
|
|
|
|
@@ -346,18 +349,20 @@ AC_ARG_WITH([arch_h], AC_HELP_STRING([--with-arch_h=<arch.h to use>],
|
|
ARCH_CONF_HEADER=
|
|
|
|
if test x"$with_arch_h" = x""; then
|
|
- if test x"$cross_compiling" = x"yes"; then
|
|
- ARCH_CONF_HEADER="\$(GLSRCDIR)/../$ARCH_AUTOCONF_HEADER"
|
|
- else
|
|
- case `uname` in
|
|
- Darwin*)
|
|
+ case $host in
|
|
+ x86_64*-mingw*|x86_64*-msys*|x86_64*-cygwin*)
|
|
+ ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/windows-x64-msvc.h"
|
|
+ ;;
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
+ ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/windows-x86-msvc.h"
|
|
+ ;;
|
|
+ *-darwin*)
|
|
ARCH_CONF_HEADER="\$(GLSRCDIR)/../arch/osx-x86-x86_64-ppc-gcc.h"
|
|
;;
|
|
*)
|
|
ARCH_CONF_HEADER=
|
|
;;
|
|
esac
|
|
- fi
|
|
else
|
|
ARCH_CONF_HEADER=$with_arch_h
|
|
fi
|
|
@@ -489,13 +494,23 @@ dnl - BSD Make treats obj special and cd into it first.
|
|
dnl --------------------------------------------------
|
|
|
|
OBJDIR_BSDMAKE_WORKAROUND=obj
|
|
+SUB_MAKE_OPTION=
|
|
+ORDER_ONLY=""
|
|
|
|
-case `uname` in
|
|
- *BSD)
|
|
- OBJDIR_BSDMAKEWORKAOROUND="notobj"
|
|
- ;;
|
|
-esac
|
|
+AC_MSG_CHECKING(if make is GNU make)
|
|
+if make --version 2> /dev/null | grep GNU 2>&1 > /dev/null ; then
|
|
+ AC_MSG_RESULT(yes)
|
|
+ SUB_MAKE_OPTION="-f \$(MAKEFILE)"
|
|
+ ORDER_ONLY="|"
|
|
+else
|
|
+ AC_MSG_RESULT(no)
|
|
+ # BSD Make treats obj special and cd into it first
|
|
+ OBJDIR_BSDMAKEWORKAOROUND="notobj"
|
|
+fi
|
|
+
|
|
AC_SUBST(OBJDIR_BSDMAKE_WORKAROUND)
|
|
+AC_SUBST(ORDER_ONLY)
|
|
+AC_SUBST(SUB_MAKE_OPTION)
|
|
AC_CHECK_HEADER([sys/window.h])
|
|
|
|
dnl --------------------------------------------------
|
|
@@ -636,15 +651,7 @@ dnl Set options that we want to pass into all other
|
|
dnl configure scripts we might call
|
|
dnl --------------------------------------------------
|
|
|
|
-SUBCONFIG_OPTS=""
|
|
-
|
|
-if test x"$build_alias" != x""; then
|
|
- SUBCONFIG_OPTS="$SUBCONFIG_OPTS --build=$build_alias"
|
|
-fi
|
|
-
|
|
-if test x"$host_alias" != x""; then
|
|
- SUBCONFIG_OPTS="$SUBCONFIG_OPTS --host=$host_alias"
|
|
-fi
|
|
+SUBCONFIG_OPTS="--build=$build --host=$host"
|
|
|
|
dnl --------------------------------------------------
|
|
dnl Check for libraries
|
|
@@ -974,7 +981,7 @@ if test x"$enable_fapi" != xno; then
|
|
if $PKGCONFIG --atleast-version=12.0.6 freetype2; then
|
|
AC_MSG_RESULT(yes)
|
|
FT_CFLAGS="$CFLAGS `$PKGCONFIG --cflags freetype2`"
|
|
- FT_LIBS="`$PKGCONFIG --libs freetype2`"
|
|
+ FT_LIBS="`$PKGCONFIG --libs-only-l freetype2`"
|
|
FT_BRIDGE=1
|
|
SHARE_FT=1
|
|
else
|
|
@@ -1025,6 +1032,14 @@ AC_SUBST(FTSRCDIR)
|
|
AC_SUBST(FT_CFLAGS)
|
|
AC_SUBST(FT_LIBS)
|
|
|
|
+if test x"$enable_auxtools_only" = x"yes" ; then
|
|
+ LIBJPEGDIR=
|
|
+ SHARE_LIBJPEG=0
|
|
+ AC_DEFINE([DONT_HAVE_JMEMSYS_H], 1, [])
|
|
+ AC_SUBST(SHARE_LIBJPEG)
|
|
+ AC_SUBST(LIBJPEGDIR)
|
|
+else
|
|
+
|
|
AC_MSG_CHECKING([for local jpeg library source])
|
|
dnl At present, we give the local source priority over the shared
|
|
dnl build, so that the D_MAX_BLOCKS_IN_MCU patch will be applied.
|
|
@@ -1066,6 +1081,13 @@ else
|
|
[define if the libjpeg memory system prototypes aren't available])
|
|
fi
|
|
|
|
+fi # $enable_auxtools_only
|
|
+
|
|
+# this option is useful if you're cross-compiling and want to use
|
|
+# your toolchain's zlib for $host but the local one for $build
|
|
+AC_ARG_WITH([local-zlib], AC_HELP_STRING([--without-local-zlib],
|
|
+ [do not check for local zlib sources (has no effect on AUX toolchain when cross-building)]))
|
|
+
|
|
AC_MSG_CHECKING([for local zlib source])
|
|
dnl zlib is needed for language level 3, and libpng
|
|
# we must define ZLIBDIR regardless because png.mak does a -I$(ZLIBDIR)
|
|
@@ -1074,6 +1096,13 @@ ZLIBDIR=src
|
|
AUX_SHARED_ZLIB=
|
|
ZLIBCFLAGS=""
|
|
|
|
+if test x"$with_local_zlib" = x"no" ; then
|
|
+ AC_MSG_RESULT([skip])
|
|
+ AC_CHECK_LIB(z, deflate, [
|
|
+ AC_CHECK_HEADERS(zlib.h, [SHARE_ZLIB=1; AUX_SHARED_ZLIB="-l\$(ZLIB_NAME)"])
|
|
+ ])
|
|
+else
|
|
+
|
|
if test -d $srcdir/zlib; then
|
|
AC_MSG_RESULT([yes])
|
|
SHARE_ZLIB=0
|
|
@@ -1088,6 +1117,7 @@ else
|
|
AC_CHECK_HEADERS(zlib.h, [SHARE_ZLIB=1; AUX_SHARED_ZLIB="-l\$(ZLIB_NAME)"])
|
|
])
|
|
fi
|
|
+fi # $with_local_zlib
|
|
if test -z "$SHARE_ZLIB"; then
|
|
AC_MSG_ERROR([I did not find a copy of zlib on your system.
|
|
Please either install it, or unpack a copy of the source in a
|
|
@@ -1114,6 +1144,11 @@ AC_SUBST(ZLIBDIR)
|
|
AC_SUBST(FT_SYS_ZLIB)
|
|
|
|
dnl png for the png output device; it also requires zlib
|
|
+if test x"$enable_auxtools_only" = x"yes" ; then
|
|
+ LIBPNGDIR=""
|
|
+ SHARE_LIBPNG=0
|
|
+else
|
|
+
|
|
LIBPNGDIR=src
|
|
PNGDEVS=''
|
|
PNGDEVS_ALL='png48 png16m pnggray pngmono pngmonod png256 png16 pngalpha'
|
|
@@ -1135,12 +1170,19 @@ fi
|
|
if test -z "$PNGDEVS"; then
|
|
AC_MSG_NOTICE([disabling png output devices])
|
|
fi
|
|
+fi # $enable_auxtools_only
|
|
AC_SUBST(SHARE_LIBPNG)
|
|
AC_SUBST(LIBPNGDIR)
|
|
#AC_SUBST(PNGDEVS)
|
|
|
|
WHICHLCMS=
|
|
|
|
+if test x"$enable_auxtools_only" = x"yes" ; then
|
|
+ SHARELCMS=0
|
|
+ LCMS2DIR=
|
|
+ LCMS2MTDIR=
|
|
+else
|
|
+
|
|
AC_MSG_CHECKING([for local lcms2 library source])
|
|
LCMS2DIR=src
|
|
LCMS2ARTDIR=src
|
|
@@ -1172,6 +1214,7 @@ else
|
|
fi
|
|
fi
|
|
fi
|
|
+fi # $enable_auxtools_only
|
|
|
|
AC_SUBST(SHARELCMS)
|
|
AC_SUBST(WHICHLCMS)
|
|
@@ -1314,7 +1357,7 @@ EXPATDIR=src
|
|
EXPAT_CFLAGS=
|
|
EXPAT_LIBS=
|
|
|
|
-if test x"$with_xps" != x"no" ; then
|
|
+if test x"$with_xps" != x"no" -a x"$enable_auxtools_only" != x"yes" ; then
|
|
if test -f $srcdir/xps/xps.mak; then
|
|
AC_MSG_CHECKING([for local expat library source])
|
|
if test -f $srcdir/expat/lib/expat.h ; then
|
|
@@ -1493,16 +1536,14 @@ dnl look for IJS implementation
|
|
AC_ARG_WITH([ijs], AC_HELP_STRING([--without-ijs],
|
|
[disable IJS driver support]))
|
|
|
|
-if test x"$cross_compiling" != x"yes"; then
|
|
- case `uname` in
|
|
- MINGW*|MSYS*)
|
|
+case $host in
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
AC_MSG_WARN([disabling the ijs device])
|
|
with_ijs=no
|
|
;;
|
|
*)
|
|
;;
|
|
- esac
|
|
-fi
|
|
+esac
|
|
|
|
dnl set safe defaults
|
|
IJSDIR=src
|
|
@@ -1554,18 +1595,11 @@ if test x$with_luratech != xno; then
|
|
SHARE_JBIG2=0
|
|
JBIG2DIR=$srcdir/luratech/ldf_jb2
|
|
|
|
- if test x"$cross_compiling" = x"yes"; then
|
|
- if test x"$JBIG2_CFLAGS" != x""; then
|
|
- JBIG2_AUTOCONF_CFLAGS="-DUSE_LDF_JB2 -fsigned-char $JBIG2_CFLAGS"
|
|
- else
|
|
- JBIG2_AUTOCONF_CFLAGS="-DUSE_LDF_JB2 -fsigned-char -DLINUX=1 -DFORTE"
|
|
- fi
|
|
- else
|
|
- case `uname` in
|
|
- Darwin*)
|
|
+ case $host in
|
|
+ *-darwin*)
|
|
JBIG2_AUTOCONF_CFLAGS="-DUSE_LDF_JB2 -DMAC -DMAC_OS_X_BUILD -fsigned-char"
|
|
;;
|
|
- AIX)
|
|
+ *-aix*)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
JBIG2_AUTOCONF_CFLAGS="-DUSE_LDF_JB2 -fsigned-char -DLINUX=1 -DFORTE"
|
|
else
|
|
@@ -1576,7 +1610,6 @@ if test x$with_luratech != xno; then
|
|
JBIG2_AUTOCONF_CFLAGS="-DUSE_LDF_JB2 -fsigned-char -DLINUX=1 -DFORTE"
|
|
;;
|
|
esac
|
|
- fi
|
|
|
|
JBIG2FILEDEVS='$(DD)gdevjbig2.dev'
|
|
JBIG2DEVS='$(PSD)jbig2.dev'
|
|
@@ -1683,18 +1716,11 @@ if test x$with_luratech != xno; then
|
|
SHARE_JPX=0
|
|
JPXDIR=$srcdir/luratech/lwf_jp2
|
|
|
|
- if test x"$cross_compiling" = x"yes"; then
|
|
- if test x"$JPX_CFLAGS" != x""; then
|
|
- JPX_AUTOCONF_CFLAGS="-DUSE_LWF_JP2 $JPX_CFLAGS"
|
|
- else
|
|
- JPX_AUTOCONF_CFLAGS="-DUSE_LWF_JP2 -DLINUX=1 -DFORTE"
|
|
- fi
|
|
- else
|
|
- case `uname` in
|
|
- Darwin*)
|
|
+ case $host in
|
|
+ *-darwin*)
|
|
JPX_AUTOCONF_CFLAGS="-DUSE_LWF_JP2 -DMAC -DMAC_OS_X_BUILD"
|
|
;;
|
|
- AIX)
|
|
+ *-aix*)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
JPX_AUTOCONF_CFLAGS="-DUSE_LWF_JP2 -fsigned-char -DLINUX=1 -DFORTE"
|
|
else
|
|
@@ -1705,7 +1731,6 @@ if test x$with_luratech != xno; then
|
|
JPX_AUTOCONF_CFLAGS="-DUSE_LWF_JP2 -DLINUX=1 -DFORTE"
|
|
;;
|
|
esac
|
|
- fi
|
|
JPXDEVS='$(PSD)jpx.dev'
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
@@ -2318,21 +2343,30 @@ SO_LIB_EXT=".so"
|
|
DLL_EXT=""
|
|
SO_LIB_VERSION_SEPARATOR="."
|
|
|
|
-if test x"$cross_compiling" = x"yes"; then
|
|
- DYNAMIC_CFLAGS="-fPIC"
|
|
- GS_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(GS_SONAME_MAJOR)"
|
|
- PCL_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(PCL_SONAME_MAJOR)"
|
|
- XPS_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(XPS_SONAME_MAJOR)"
|
|
- if test $ac_cv_prog_gcc = yes; then
|
|
- # GCC high level flag
|
|
- DYNAMIC_LIBS="-rdynamic"
|
|
- else
|
|
- DYNAMIC_LIBS=""
|
|
- fi
|
|
- SO_LIB_EXT=".so"
|
|
-else
|
|
- case `uname` in
|
|
- Linux*|GNU*)
|
|
+libname1="_SO_BASE)\$(GS_SOEXT)\$(DLL_EXT)"
|
|
+libname2="_SO_BASE)\$(GS_SOEXT)\$(SO_LIB_VERSION_SEPARATOR)\$(GS_VERSION_MAJOR)\$(DLL_EXT)"
|
|
+libname3="_SO_BASE)\$(GS_SOEXT)\$(SO_LIB_VERSION_SEPARATOR)\$(GS_VERSION_MAJOR)\$(SO_LIB_VERSION_SEPARATOR)\$(GS_VERSION_MINOR)\$(DLL_EXT)"
|
|
+GS_SONAME="lib\$(GS${libname1}"
|
|
+GS_SONAME_MAJOR="lib\$(GS${libname2}"
|
|
+GS_SONAME_MAJOR_MINOR="lib\$(GS${libname3}"
|
|
+
|
|
+hide_symbols=no
|
|
+attr_default=
|
|
+attr_hidden=
|
|
+_ldflags=
|
|
+
|
|
+AC_ARG_ENABLE([hidden-visibility],
|
|
+ AC_HELP_STRING([--enable-hidden-visibility],
|
|
+ [hide all shared library symbols which are not part of its public API]),
|
|
+ [hide_symbols=yes])
|
|
+
|
|
+if test x$hide_symbols = xyes -a $ac_cv_prog_gcc = yes; then
|
|
+ attr_default="__attribute__((visibility(\\\"default\\\")))"
|
|
+ attr_hidden="__attribute__((visibility(\\\"hidden\\\")))"
|
|
+fi
|
|
+
|
|
+case $host in
|
|
+ *-linux*|*-gnu)
|
|
DYNAMIC_CFLAGS="-fPIC"
|
|
GS_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(GS_SONAME_MAJOR)"
|
|
PCL_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(PCL_SONAME_MAJOR)"
|
|
@@ -2345,16 +2379,25 @@ else
|
|
fi
|
|
SO_LIB_EXT=".so"
|
|
;;
|
|
- MINGW*|MSYS*)
|
|
- DYNAMIC_CFLAGS=""
|
|
- GS_DYNAMIC_LDFLAGS="-shared -Wl,--out-implib=\$(BINDIR)/lib\$(GS_SO_BASE).dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import"
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
+ if test x$hide_symbols = xyes; then
|
|
+ DYNAMIC_CFLAGS="-fvisibility=hidden -DGSDLLEXPORT=\"__declspec(dllexport)\""
|
|
+ else
|
|
+ _ldflags="-Wl,--export-all-symbols"
|
|
+ fi
|
|
+ _ldflags="$_ldflags -Wl,--enable-auto-import"
|
|
+ GS_DYNAMIC_LDFLAGS="-shared -Wl,--out-implib=\$(BINDIR)/lib\$(GS_SO_BASE).dll.a $_ldflags"
|
|
PCL_DYNAMIC_LDFLAGS="-shared -Wl,--out-implib=\$(BINDIR)/lib\$(PCL_SO_BASE).dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import"
|
|
XPS_DYNAMIC_LDFLAGS="-shared -Wl,--out-implib=\$(BINDIR)/lib\$(XPS_SO_BASE).dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import"
|
|
SO_LIB_EXT=""
|
|
DLL_EXT=".dll"
|
|
SO_LIB_VERSION_SEPARATOR="-"
|
|
+ # make sure the import library doesn't link a program against the DLL with the minor version in it
|
|
+ GS_SONAME="lib\$(GS${libname1}"
|
|
+ GS_SONAME_MAJOR="lib\$(GS${libname3}"
|
|
+ GS_SONAME_MAJOR_MINOR="lib\$(GS${libname2}"
|
|
;;
|
|
- *BSD)
|
|
+ *bsd*)
|
|
DYNAMIC_CFLAGS="-fPIC"
|
|
GS_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(GS_SONAME_MAJOR)"
|
|
PCL_DYNAMIC_LDFLAGS="-shared -Wl,\$(LD_SET_DT_SONAME)\$(LDFLAGS_SO_PREFIX)\$(PCL_SONAME_MAJOR)"
|
|
@@ -2362,14 +2405,14 @@ else
|
|
DYNAMIC_LIBS=""
|
|
SO_LIB_EXT=".so"
|
|
;;
|
|
- Darwin*)
|
|
+ *-darwin*)
|
|
GS_DYNAMIC_LDFLAGS="-dynamiclib -install_name \$(GS_SONAME_MAJOR_MINOR)"
|
|
PCL_DYNAMIC_LDFLAGS="-dynamiclib -install_name \$(PCL_SONAME_MAJOR_MINOR)"
|
|
XPS_DYNAMIC_LDFLAGS="-dynamiclib -install_name \$(XPS_SONAME_MAJOR_MINOR)"
|
|
DYNAMIC_LIBS=""
|
|
SO_LIB_EXT=".dylib"
|
|
;;
|
|
- SunOS)
|
|
+ *-sun*)
|
|
if test $ac_cv_prog_gcc = yes; then
|
|
DYNAMIC_CFLAGS="-fPIC"
|
|
else
|
|
@@ -2381,7 +2424,7 @@ else
|
|
DYNAMIC_LIBS=""
|
|
SO_LIB_EXT=".so"
|
|
;;
|
|
- AIX)
|
|
+ *-aix*)
|
|
DYNAMIC_CFLAGS="-fPIC"
|
|
GCFLAGS="-Wl,-brtl -D_LARGE_FILES $GCFLAGS"
|
|
GS_DYNAMIC_LDFLAGS="-shared -Wl,-brtl,-G -fPIC"
|
|
@@ -2389,15 +2432,18 @@ else
|
|
XPS_DYNAMIC_LDFLAGS="-shared -Wl,-brtl,-G -fPIC"
|
|
SO_LIB_EXT=".so"
|
|
;;
|
|
- esac
|
|
-fi
|
|
+esac
|
|
+
|
|
+AC_SUBST(GS_SONAME)
|
|
+AC_SUBST(GS_SONAME_MAJOR)
|
|
+AC_SUBST(GS_SONAME_MAJOR_MINOR)
|
|
|
|
AC_ARG_ENABLE([dynamic], AC_HELP_STRING([--enable-dynamic],
|
|
[Enable dynamically loaded drivers]),
|
|
[
|
|
if test "x$enable_dynamic" != xno; then
|
|
- case `uname` in
|
|
- Linux*|GNU*)
|
|
+ case $host in
|
|
+ *-linux*|*-gnu)
|
|
INSTALL_SHARED="install-shared"
|
|
if test "x$X_DEVS" != x; then
|
|
DYNAMIC_DEVS="\$(GLOBJDIR)/X11.so"
|
|
@@ -2409,21 +2455,21 @@ AC_ARG_ENABLE([dynamic], AC_HELP_STRING([--enable-dynamic],
|
|
OPT_CFLAGS="$DYNAMIC_CFLAGS $OPT_CFLAGS"
|
|
DBG_CFLAGS="$DYNAMIC_CFLAGS $DBG_CFLAGS"
|
|
;;
|
|
- *BSD)
|
|
+ *bsd*)
|
|
DYNAMIC_DEVS="\$(GLOBJDIR)/X11.so"
|
|
DYNAMIC_FLAGS="-DGS_DEVS_SHARED -DGS_DEVS_SHARED_DIR=\\\"\$(gssharedir)\\\""
|
|
X11_DEVS=""
|
|
OPT_CFLAGS="$DYNAMIC_CFLAGS $OPT_CFLAGS"
|
|
DBG_CFLAGS="$DYNAMIC_CFLAGS $DBG_CFLAGS"
|
|
;;
|
|
- Darwin*)
|
|
+ *-darwin*)
|
|
INSTALL_SHARED="install-shared"
|
|
DYNAMIC_FLAGS="-DGS_DEVS_SHARED -DGS_DEVS_SHARED_DIR=\\\"\$(gssharedir)\\\""
|
|
X11_DEVS=""
|
|
OPT_CFLAGS="$DYNAMIC_CFLAGS $OPT_CFLAGS"
|
|
DBG_CFLAGS="$DYNAMIC_CFLAGS $DBG_CFLAGS"
|
|
;;
|
|
- SunOS)
|
|
+ *-sun*)
|
|
DYNAMIC_DEVS="\$(GLOBJDIR)/X11.so"
|
|
DYNAMIC_FLAGS="-DGS_DEVS_SHARED -DGS_DEVS_SHARED_DIR=\\\"\$(gssharedir)\\\""
|
|
OPT_CFLAGS="$DYNAMIC_CFLAGS $OPT_CFLAGS"
|
|
@@ -2529,7 +2575,7 @@ dnl --------------------------------------------------
|
|
dnl disable the memory header ID code on SPARC
|
|
dnl --------------------------------------------------
|
|
|
|
-case `uname -a` in
|
|
+case $host in
|
|
*sparc*)
|
|
GCFLAGS="$GCFLAGS -DGS_USE_MEMORY_HEADER_ID=0"
|
|
;;
|
|
@@ -2757,23 +2803,31 @@ AC_SUBST(AUXDIRPOSTFIX)
|
|
# usually empty on Unix-like systems
|
|
# --------------------------------------------------
|
|
EXEEXT=""
|
|
+AUXEXEEXT=""
|
|
+
|
|
+case $host in
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
+ EXEEXT=".exe"
|
|
+ ;;
|
|
+ *)
|
|
+ ;;
|
|
+esac
|
|
|
|
AC_ARG_WITH([exe-ext], AC_HELP_STRING([--with-exe-ext=EXT],
|
|
- [set the file name executable extension (must include any separator e.g. the period in ".exe")]),[], [exe_ext=])
|
|
+ [set the file name executable extension (must include any separator e.g. the period in ".exe")]),
|
|
+ [EXEEXT="$with_exe_ext"])
|
|
|
|
-if test "x"$with_exe_ext != "x"; then
|
|
- EXEEXT="$with_exe_ext"
|
|
-else
|
|
- if test x"$cross_compiling" != x"yes"; then
|
|
- case `uname` in
|
|
- MINGW*|MSYS*)
|
|
- EXEEXT=".exe"
|
|
- ;;
|
|
- esac
|
|
- fi
|
|
-fi
|
|
+case $build in
|
|
+ *-mingw*|*-msys*|*-cygwin*)
|
|
+ AUXEXEEXT=".exe"
|
|
+ ;;
|
|
+ *)
|
|
+ AUXEXEEXT="$EXEEXT"
|
|
+ ;;
|
|
+esac
|
|
|
|
AC_SUBST(EXEEXT)
|
|
+AC_SUBST(AUXEXEEXT)
|
|
|
|
# --------------------------------------------------
|
|
# Check for disabling of versioned path option.
|
|
@@ -2828,7 +2882,7 @@ fi
|
|
|
|
AC_SUBST(CLUSTER_CFLAGS)
|
|
|
|
-if test x"$CCAUX" != x"$CC"; then
|
|
+if test x"$build" != x"$host"; then
|
|
|
|
ilog2()
|
|
{
|
|
@@ -2968,7 +3022,7 @@ AC_SUBST(AUXEXTRALIBS)
|
|
|
|
CONFIG_FILES_LIST="$CONFIG_FILES_LIST $THEMAKEFILE"
|
|
|
|
-if test x"$THEMAKEFILE" != x"$MAKEFILE" && test x"$CCAUX" = x"$CC"; then
|
|
+if test x"$THEMAKEFILE" != x"$MAKEFILE" && test x"$build" = x"$host"; then
|
|
CONFIG_FILES_LIST="$CONFIG_FILES_LIST"
|
|
fi
|
|
|
|
diff --git a/psi/iapi.h b/psi/iapi.h
|
|
index 1111111..2222222 100644
|
|
--- a/psi/iapi.h
|
|
+++ b/psi/iapi.h
|
|
@@ -68,6 +68,11 @@ extern "C" {
|
|
# define GSDLLEXPORT
|
|
# endif
|
|
# endif
|
|
+# ifdef __MINGW32__
|
|
+/* export stdcall functions as "name" instead of "_name@ordinal" */
|
|
+# undef GSDLLAPI
|
|
+# define GSDLLAPI
|
|
+# endif
|
|
# ifndef GSDLLAPI
|
|
# define GSDLLAPI __stdcall
|
|
# endif
|