bug 559854 - Compile target xpidl only if libIDL is configured when cross compiling. r=ted

This commit is contained in:
Jacek Caban 2010-04-16 17:25:29 +02:00
Родитель a001bfb0c2
Коммит ae41b47c6b
2 изменённых файлов: 26 добавлений и 41 удалений

Просмотреть файл

@ -2193,9 +2193,6 @@ ia64*-hpux*)
XARGS=xargs
XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib'
ZIP=zip
LIBIDL_CFLAGS="-I$MOZ_TOOLS_DIR/include ${GLIB_CFLAGS}"
LIBIDL_LIBS="$MOZ_TOOLS_DIR/lib/libidl-0.6_s.lib $MOZ_TOOLS_DIR/lib/glib-1.2_s.lib"
STATIC_LIBIDL=1
MOZ_TREE_FREETYPE=1
AC_DEFINE(HAVE_SNPRINTF)
@ -7836,6 +7833,13 @@ case "$target_os" in
msvc*|mks*|cygwin*|mingw*|wince*|winmo*)
SKIP_IDL_CHECK="yes"
;;
darwin*)
if test -n "$CROSS_COMPILE"; then
SKIP_IDL_CHECK="yes"
else
SKIP_IDL_CHECK="no"
fi
;;
*)
SKIP_IDL_CHECK="no"
;;

Просмотреть файл

@ -44,18 +44,12 @@ include $(DEPTH)/config/autoconf.mk
MODULE = xpcom
ifneq (,$(filter-out WINCE SYMBIAN,$(OS_ARCH)))
# Sadly, the code here is too smart for the WinCE/Symbian compiler's brain
PROGRAM = xpidl$(BIN_SUFFIX)
SDK_BINARY = $(PROGRAM)
endif
INTERNAL_TOOLS = 1
# glib and libIDL link against the non-debug msvcrt
MOZ_NO_DEBUG_RTL=1
CSRCS = \
XPIDL_CSRCS = \
xpidl.c \
xpidl_idl.c \
xpidl_util.c \
@ -66,11 +60,28 @@ CSRCS = \
$(NULL)
ifdef CROSS_COMPILE
HOST_PROGRAM = host_xpidl$(HOST_BIN_SUFFIX)
HOST_CSRCS = $(CSRCS)
HOST_CSRCS = $(XPIDL_CSRCS)
ifdef WINCE
HOST_LDFLAGS += -ladvapi32.lib
endif
ifdef LIBIDL_LIBS
BUILD_TARGET = 1
endif
else # CROSS_COMPILE
BUILD_TARGET = 1
endif # CROSS_COMPILE
ifdef BUILD_TARGET
PROGRAM = xpidl$(BIN_SUFFIX)
CSRCS = $(XPIDL_CSRCS)
SDK_BINARY = $(PROGRAM)
endif
USE_STATIC_LIBS = 1
@ -82,37 +93,7 @@ ifeq ($(OS_ARCH),Darwin)
# case in order to successfully link. Because the target xpidl isn't
# currently built in a cross compile, though, this point is moot for the
# time being.
ifndef CROSS_COMPILE
# When doing a native build, don't build xpidl against the SDK. libIDL
# was most likely configured for the system headers, and bringing in the
# SDK's headers instead will cause problems.
_STRIP_SDK = 1
else
# Cross-compiling
# Don't build xpidl for the target. This is not intended to be a permanent
# solution. It's necessary because it is presently difficult to build
# xpidl's prerequisites (libIDL and glib) as fat and suitable for a cross.
# This will be fixed. -mm
PROGRAM=
# Since only host_xpidl will be built for now, always strip out the SDK
# (as above).
_STRIP_SDK=1
# When fat xpidl prerequisites are available, the PROGRAM= and _STRIP_SDK=1
# above are expected to disappear, and be replaced with the following
# conditonal.
# ifeq (86_powerpc,$(findstring 86,$(host_cpu))_$(TARGET_CPU))
# # When cross-compiling from x86 to ppc, an old (10.2-ish) SDK might be in
# # use, and libIDL will have been configured for new (10.4-ish) headers.
# _STRIP_SDK = 1
# endif
endif # CROSS_COMPILE
ifneq (,$(_STRIP_SDK)$(MACOS_SDK_DIR))
# libIDL is configured for the system's headers, with no SDK involved.