gfx/ycbcr/Makefile.in
author Mike Hommey <mh+mozilla@glandium.org>
Wed, 28 Dec 2011 12:12:09 +0100
changeset 84137 db6e5b2bf92d2118b71df19b17f9e67070f8e08f
parent 76667 6bedd46abb820db6d7d807ad42d8a6233ced3209
child 103234 d848e7c66c613b460819c721d69df169853c16c0
permissions -rw-r--r--
Backout 45820730dfa7 and 860035a3c04a (bug 701371) and 8ac6f34b44ff (bug 709776) because of Android random oranges.

DEPTH		= ../..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@

include $(DEPTH)/config/autoconf.mk

MODULE       = ycbcr
LIBRARY_NAME = ycbcr
LIBXUL_LIBRARY = 1
EXPORT_LIBRARY = 1

DEFINES += -D_IMPL_NS_GFX

EXPORTS      = chromium_types.h \
               yuv_convert.h \
               yuv_row.h \
               ycbcr_to_rgb565.h \
               $(NULL)

CPPSRCS = yuv_convert.cpp \
          yuv_row_c.cpp \
          yuv_row_table.cpp \
          ycbcr_to_rgb565.cpp \
          $(NULL)

# Are we targeting x86 or x64?  If so, build yuv_convert_mmx.cpp and
# yuv_convert_sse2.cpp.
ifneq (,$(INTEL_ARCHITECTURE))
CPPSRCS += yuv_convert_sse2.cpp

# MSVC doesn't support MMX when targeting AMD64.
ifdef _MSC_VER
ifneq ($(OS_TEST),x86_64)
CPPSRCS += yuv_convert_mmx.cpp
endif
else
CPPSRCS += yuv_convert_mmx.cpp
endif
endif

ifdef _MSC_VER
ifeq ($(OS_TEST),x86_64)
ifeq (1400,$(_MSC_VER))
# VC8 doesn't support some SSE2 built-in functions
CPPSRCS += yuv_row_win.cpp \
           $(NULL)
else
CPPSRCS += yuv_row_win64.cpp \
           $(NULL)
endif
else
CPPSRCS += yuv_row_win.cpp \
           $(NULL)
endif
else
ifeq ($(OS_ARCH),Linux)
CPPSRCS += yuv_row_posix.cpp \
           $(NULL)
else
ifeq ($(OS_ARCH),SunOS)
CPPSRCS += yuv_row_posix.cpp \
           $(NULL)
else
ifeq ($(OS_ARCH),Darwin)
CPPSRCS += yuv_row_posix.cpp \
           $(NULL)
else
CPPSRCS += yuv_row_other.cpp \
           $(NULL)
endif # Darwin
endif # SunOS
endif # linux
endif # windows

ifeq (arm,$(findstring arm,$(OS_TEST)))
ifdef HAVE_ARM_NEON
CPPSRCS += yuv_convert_arm.cpp \
           $(NULL)
ASFILES = yuv_row_arm.$(ASM_SUFFIX) \
          $(NULL)
endif
endif

include $(topsrcdir)/config/rules.mk

# These files use MMX and SSE2 intrinsics, so they need special compile flags
# on some compilers.
ifneq (,$(INTEL_ARCHITECTURE))
ifdef GNU_CC
yuv_convert_mmx.$(OBJ_SUFFIX): CXXFLAGS += -mmmx
yuv_convert_sse2.$(OBJ_SUFFIX): CXXFLAGS += -msse2
endif

ifdef SOLARIS_SUNPRO_CXX
yuv_convert_mmx.$(OBJ_SUFFIX): CXXFLAGS += -xarch=mmx -xO4
yuv_convert_sse2.$(OBJ_SUFFIX): CXXFLAGS += -xarch=sse2 -xO4
endif
endif