gecko/gfx/ycbcr/Makefile.in

100 lines
2.1 KiB
Makefile

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