--- b/multimedia/x265/Makefile +++ b/multimedia/x265/Makefile @@ -1,58 +1,101 @@ # Created by: adamw # $FreeBSD$ PORTNAME= x265 PORTVERSION= 3.2.1 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= https://bitbucket.org/multicoreware/x265/downloads/ \ https://downloads.videolan.org/pub/videolan/x265/ \ https://mirror.leaseweb.com/videolan/x265/ \ http://downloads.videolan.org/pub/videolan/x265/ \ http://mirror.leaseweb.com/videolan/x265/ DISTNAME= ${PORTNAME}_${PORTVERSION} -MAINTAINER= mi@aldan.algebra.com +MAINTAINER= jamie@catflap.org COMMENT= H.265/High Efficiency Video Coding (HEVC) format LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC:H}/COPYING -BUILD_DEPENDS= nasm:devel/nasm +BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} +BUILD_DEPENDS_amd64= nasm:devel/nasm +BUILD_DEPENDS_i386= nasm:devel/nasm -USES= cmake compiler:c++14-lang pathfix +USES= cmake compiler:c++14-lang libtool:build pathfix OPTIONS_DEFINE= DEBUG OPTIMIZED_FLAGS VMAF -OPTIONS_DEFINE_amd64= HI10P HI12P SVTHEVC +OPTIONS_DEFINE_amd64= SVTHEVC DEBUG_PREVENTS= OPTIMIZED_FLAGS DEBUG_PREVENTS_MSG= Optimizations are incompatible with debugging code -DEBUG_VARS_OFF= CFLAGS+=-DNDEBUG CPPFLAGS+=-DNDEBUG -HI10P_CMAKE_BOOL= HIGH_BIT_DEPTH -HI12P_CMAKE_BOOL= MAIN12 -HI12P_IMPLIES= HI10P -OPTIMIZED_FLAGS_VARS= CFLAGS+=-O3 CXXFLAGS+=-O3 +DEBUG_VARS_OFF= CFLAGS+=-DNDEBUG +OPTIMIZED_FLAGS_VARS= CFLAGS+=-O3 SVTHEVC_LIB_DEPENDS= libSvtHevcEnc.so:multimedia/svt-hevc SVTHEVC_CMAKE_BOOL= ENABLE_SVT_HEVC SVTHEVC_CMAKE_ON= -DSVT_HEVC_INCLUDE_DIR:PATH="${LOCALBASE}/include/svt-hevc" VMAF_BUILD_DEPENDS= ${LOCALBASE}/lib/libvmaf.a:multimedia/vmaf VMAF_USES= localbase:ldflags VMAF_CMAKE_BOOL= ENABLE_LIBVMAF DEBUG_DESC= Enable debugging -HI10P_DESC= Enable HI10P Support (64-bit only) -HI12P_DESC= Enable HI12P Support (64-bit only) OPTIMIZED_FLAGS_DESC= Enable O3 optimization SVTHEVC_DESC= HEVC encoding via SVT-HEVC VMAF_DESC= Per frame and aggregate VMAF score USE_LDCONFIG= yes -CMAKE_ARGS= -DENABLE_PIC=on -DENABLE_TESTS=on +CMAKE_ARGS= -DENABLE_PIC=on LDFLAGS_i386= -Wl,-znotext EXTRACT_AFTER_ARGS+= --exclude compat PATCH_WRKSRC= ${WRKSRC:H} WRKSRC= ${WRKDIR}/${PORTNAME}_${PORTVERSION}/source +.include + +.if ${ARCH} == "aarch64" || "amd64" +do-build: + cd ${WRKSRC}/.. && $(MKDIR) 12bit 10bit && cd 12bit && \ + $(CMAKE_BIN) ../source ${CMAKE_ARGS} \ + -DHIGH_BIT_DEPTH=true -DMAIN12=true \ + -DEXPORT_C_API=false -DENABLE_CLI=false \ + -DENABLE_SHARED=false && \ + ${MAKE_CMD} ${MAKE_ARGS} && \ + cd ../10bit && \ + $(CMAKE_BIN) ../source ${CMAKE_ARGS} \ + -DHIGH_BIT_DEPTH=true -DEXPORT_C_API=false \ + -DENABLE_CLI=false -DENABLE_SHARED=false && \ + ${MAKE_CMD} ${MAKE_ARGS} && \ + cd ../source && \ + $(LN) -s ../12bit/libx265.a libx265_main12.a && \ + $(LN) -s ../10bit/libx265.a libx265_main10.a && \ + $(CMAKE_BIN) ${CMAKE_ARGS} \ + -DENABLE_SHARED=true \ + -DENABLE_HDR10_PLUS=true \ + -DEXTRA_LIB='x265_main10.a;x265_main12.a' \ + -DEXTRA_LINK_FLAGS='-L.' \ + -DLINKED_10BIT=true -DLINKED_12BIT=true -DENABLE_TESTS=on && \ + ${MAKE_CMD} ${MAKE_ARGS} && \ + $(MV) libx265.a libx265_main.a && \ + libtool --mode=link $(CC) -static -o libx265.a libx265_main.a libx265_main10.a libx265_main12.a + +.else +do-build: + cd ${WRKSRC} && \ + $(CMAKE_BIN) ${CMAKE_ARGS} -DENABLE_TESTS=on && \ + ${MAKE_CMD} ${MAKE_ARGS} + +.endif + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/x265 ${STAGEDIR}${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/x265.h ${STAGEDIR}${PREFIX}/include + ${INSTALL_DATA} ${WRKSRC}/x265_config.h ${STAGEDIR}${PREFIX}/include + ${INSTALL_DATA} ${WRKSRC}/libx265.a ${STAGEDIR}${PREFIX}/lib + ${INSTALL_LIB} ${WRKSRC}/libx265.so ${STAGEDIR}${PREFIX}/lib + ${RLN} ${STAGEDIR}${PREFIX}/lib/libx265.so ${STAGEDIR}${PREFIX}/lib/libx265.so.179 + ${INSTALL_DATA} ${WRKSRC}/x265.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig/x265.pc + do-test: ${WRKSRC}/test/TestBench .include