Bug 242870 - (optionally) statically link libIDL/glib with xpidl on Windows instead of having to use compiler-specific DLLs r=cls

git-svn-id: svn://10.0.0.236/trunk@188098 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bsmedberg%covad.net 2006-01-24 18:15:11 +00:00
parent d2d0ad89c2
commit 72e2677a8b
6 changed files with 56 additions and 12 deletions

View File

@ -492,6 +492,7 @@ GLIB_LIBS = @GLIB_LIBS@
GLIB_GMODULE_LIBS = @GLIB_GMODULE_LIBS@
LIBIDL_CFLAGS = @LIBIDL_CFLAGS@
LIBIDL_LIBS = @LIBIDL_LIBS@
STATIC_LIBIDL = @STATIC_LIBIDL@
MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@

View File

@ -575,17 +575,12 @@ ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_)
#//
#//------------------------------------------------------------------------
ifdef USE_STATIC_LIBS
ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER)))
RTL_FLAGS=-ML # Statically linked non-multithreaded LIBC RTL
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
RTL_FLAGS=-MLd # Statically linked non-multithreaded LIBC debug RTL
endif # MOZ_DEBUG || NS_TRACE_MALLOC
else
RTL_FLAGS=-MT # Statically linked multithreaded RTL
ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC))
ifndef MOZ_NO_DEBUG_RTL
RTL_FLAGS=-MTd # Statically linked multithreaded MSVC4.0 debug RTL
endif
endif # MOZ_DEBUG || NS_TRACE_MALLOC
endif # _MSC_VER
else # !USE_STATIC_LIBS

View File

@ -1753,7 +1753,13 @@ case "$target" in
AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/include/glib.h .])
fi
GLIB_CFLAGS="-I${_GLIB_PREFIX_DIR}/include"
GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
if test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"; then
GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"
elif test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"; then
GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
else
AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/lib/glib-1.2.lib or $_GLIB_PREFIX_DIR/lib/glib-1.2_s.lib])
fi
if test -n "$LIBIDL_PREFIX"; then
_LIBIDL_PREFIX_DIR=`cd $LIBIDL_PREFIX && pwd`
@ -1772,17 +1778,40 @@ case "$target" in
AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/include/libIDL/IDL.h .])
fi
LIBIDL_CFLAGS="-I${_LIBIDL_PREFIX_DIR}/include ${GLIB_CFLAGS}"
LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib ${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
if test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"; then
LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"
STATIC_LIBIDL=1
elif test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"; then
LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"
else
AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib])
fi
LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
;;
*) # else cross-compiling
if test -n "$GLIB_PREFIX"; then
GLIB_CFLAGS="-I${GLIB_PREFIX}/include"
GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
if test -f "${GLIB_PREFIX}/lib/glib-1.2_s.lib"; then
GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2_s.lib"
elif test -f "${GLIB_PREFIX}/lib/glib-1.2.lib"; then
GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
else
AC_MSG_ERROR([Cannot find $GLIB_PREFIX/lib/glib-1.2.lib or $GLIB_PREFIX/lib/glib-1.2_s.lib])
fi
fi
if test -n "$LIBIDL_PREFIX"; then
LIBIDL_CFLAGS="-I${LIBIDL_PREFIX}/include ${GLIB_CFLAGS}"
LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6.lib ${GLIB_LIBS}"
if test -f "${LIBIDL_PREFIX}/lib/libidl-0.6_s.lib"; then
LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libidl-0.6_s.lib"
STATIC_LIBIDL=1
elif test -f "${LIBIDL_PREFIX}/lib/libidl-0.6.lib"; then
LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libidl-0.6.lib"
else
AC_MSG_ERROR([Cannot find $LIBIDL_PREFIX/lib/libidl-0.6.lib or $LIBIDL_PREFIX/lib/libidl-0.6_s.lib])
fi
fi
LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
;;
esac
@ -6542,6 +6571,7 @@ fi
AC_SUBST(LIBIDL_CFLAGS)
AC_SUBST(LIBIDL_LIBS)
AC_SUBST(STATIC_LIBIDL)
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_GMODULE_LIBS)

View File

@ -70,6 +70,10 @@ HOST_PROGRAM = host_xpidl$(HOST_BIN_SUFFIX)
HOST_CSRCS = $(CSRCS)
endif
ifdef STATIC_LIBIDL
USE_STATIC_LIBS = 1
endif
include $(topsrcdir)/config/rules.mk
CFLAGS += $(LIBIDL_CFLAGS)
@ -79,7 +83,16 @@ CFLAGS += $(LIBIDL_CFLAGS)
ifneq (,$(filter WINNT WINCE OS2,$(OS_ARCH)))
DEFINES += -DEXPORT_XPT_API
ifndef GNU_CC
LDFLAGS += -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRTD
LDFLAGS += \
-SUBSYSTEM:CONSOLE \
-NODEFAULTLIB:MSVCRTD \
-NODEFAULTLIB:LIBC \
$(NULL)
ifdef STATIC_LIBIDL
LDFLAGS += -NODEFAULTLIB:MSVCRT
endif
endif
endif

View File

@ -662,6 +662,7 @@ free_gslist_data(gpointer data, gpointer user_data)
#include <unistd.h>
#elif XP_WIN
/* We get it from stdio.h. */
#define unlink _unlink
#endif
int

View File

@ -41,6 +41,10 @@
#include "xpidl.h"
#ifdef XP_WIN
#define strdup _strdup
#endif
/* XXXbe static */ char OOM[] = "ERROR: out of memory\n";
void *