1# $NetBSD: Makefile,v 1.42 2022/12/17 09:46:21 mrg Exp $ 2 3NOLINT= 1 # defined 4 5.include <bsd.own.mk> 6 7LIB= pixman-1 8 9DIST= ${X11SRCDIR.pixman}/pixman 10.PATH: ${DIST} 11 12SRCS= \ 13 pixman.c \ 14 pixman-access.c \ 15 pixman-access-accessors.c \ 16 pixman-bits-image.c \ 17 pixman-combine32.c \ 18 pixman-combine-float.c \ 19 pixman-conical-gradient.c \ 20 pixman-edge.c \ 21 pixman-edge-accessors.c \ 22 pixman-fast-path.c \ 23 pixman-filter.c \ 24 pixman-glyph.c \ 25 pixman-general.c \ 26 pixman-gradient-walker.c \ 27 pixman-image.c \ 28 pixman-implementation.c \ 29 pixman-linear-gradient.c \ 30 pixman-matrix.c \ 31 pixman-noop.c \ 32 pixman-radial-gradient.c \ 33 pixman-region16.c \ 34 pixman-region32.c \ 35 pixman-solid-fill.c \ 36 pixman-timer.c \ 37 pixman-trap.c \ 38 pixman-utils.c 39 40SRCS+= \ 41 pixman-x86.c \ 42 pixman-mips.c \ 43 pixman-arm.c \ 44 pixman-ppc.c 45 46# XXX 47 48# missing: HAVE_GCC_VECTOR_EXTENSIONS 49 50.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 51. if ${MACHINE_ARCH} == "i386" 52SRCS+= pixman-mmx.c 53COPTS.pixman-mmx.c= -mmmx -fvisibility=hidden 54. if defined(HAVE_LLVM) 55COPTS.pixman-mmx.c+= -Wno-error=attributes 56. endif 57#CPPFLAGS+= -DUSE_X86_MMX 58MKDEPFLAGS+= -mmmx 59. endif 60SRCS+= pixman-sse2.c pixman-ssse3.c 61COPTS.pixman-sse2.c= -msse2 -fvisibility=hidden 62COPTS.pixman-ssse3.c= -msse3 -mssse3 -fvisibility=hidden 63#CPPFLAGS+= -DUSE_SSE2 -DUSE_SSSE3 64MKDEPFLAGS+= -msse2 -msse3 -mssse3 -fvisibility=hidden 65.endif 66 67.if ${MACHINE_ARCH} == "powerpc" 68SRCS+= pixman-vmx.c 69COPTS.pixman-vmx.c= -maltivec 70#CPPFLAGS+= -DUSE_VMX 71MKDEPFLAGS+= -maltivec 72.endif 73 74.if !empty(MACHINE_ARCH:Mearm*) 75# ARM SIMD 76SRCS+= pixman-arm-simd.c \ 77 pixman-arm-simd-asm.S \ 78 pixman-arm-simd-asm-scaled.S 79# ARM NEON 80SRCS+= pixman-arm-neon.c \ 81 pixman-arm-neon-asm.S \ 82 pixman-arm-neon-asm-bilinear.S 83 84AFLAGS+= ${${ACTIVE_CC} == "clang" :? -fno-integrated-as :} 85# ARM iwMMX 86#SRCS+= pixman-mmx.c 87#COPTS.pixman-mmx.c= -mcpu=iwmmxt 88.endif 89 90.if !empty(MACHINE_ARCH:Maarch64*) 91# XXX not yet; new pixman bad on arm64. 92# ARM64 NEON 93#SRCS+= pixman-arm-neon.c \ 94# pixman-arma64-neon-asm.S \ 95# pixman-arma64-neon-asm-bilinear.S 96#CPPFLAGS+= -DUSE_ARM_A64_NEON 97# 98# XXX: not sure if needed? 99#AFLAGS+= ${${ACTIVE_CC} == "clang" :? -fno-integrated-as :} 100.endif 101 102.if !empty(MACHINE_ARCH:Mmips*64el) && empty(COPTS:M-march=*) 103# Loongson MMI 104SRCS+= pixman-mmx.c 105#CPPFLAGS+= -DUSE_LOONGSON_MMI 106# SIMD instructions use floatpoint registers so we need to enable their use 107COPTS.pixman-mmx.c= -march=loongson2f -mhard-float -Wa,-mhard-float 108.endif 109 110.if ${MACHINE_CPU} == "sh3" 111# XXX pixman-fast-path.c:1204:1: internal compiler error: Segmentation fault 112COPTS.pixman-fast-path.c+= -O1 113.endif 114 115.include "Makefile.cflags" 116 117INCS= pixman.h pixman-version.h 118INCSDIR=${X11INCDIR}/pixman-1 119 120# With pixman 0.28.3, HAVE_PTHREAD_SETSPECIFIC is much faster than TLS 121CPPFLAGS+= -DHAVE_PTHREAD_SETSPECIFIC 122#CPPFLAGS+= -DTLS=__thread 123 124LIBDPLIBS= m ${.CURDIR}/../../../../../lib/libm 125 126PKGCONFIG= pixman-1 127PKGDIST= pixman 128 129.include <bsd.x11.mk> 130.include <bsd.lib.mk> 131