__deps__ := BZIP2 LIBVPX SVT-AV1 FFMPEG FREETYPE LAME LIBASS \ LIBDVDREAD LIBDVDNAV LIBICONV LIBTHEORA LIBVORBIS LIBOGG \ X264 X265 ZLIB LIBBLURAY FDKAAC LIBVPL LIBGNURX JANSSON \ HARFBUZZ LIBOPUS LIBSPEEX LIBDAV1D LIBJPEGTURBO LIBDOVI ifeq (,$(filter $(HOST.system),darwin cygwin mingw)) __deps__ += FONTCONFIG endif ifeq (netbsd,$(HOST.system)) __deps__ += LIBJPEGTURBO endif $(eval $(call import.MODULE.defs,LIBHB,libhb,$(__deps__))) $(eval $(call import.GCC,LIBHB)) $(eval $(call import.METAL,LIBHB)) ############################################################################### LIBHB.src/ = $(SRC/)libhb/ LIBHB.build/ = $(BUILD/)libhb/ LIBHB.m4.in = $(wildcard $(LIBHB.src/)handbrake/*.m4) LIBHB.m4.out = $(patsubst $(LIBHB.src/)%.m4,$(LIBHB.build/)%,$(LIBHB.m4.in)) LIBHB.c = $(wildcard $(LIBHB.src/)*.c) LIBHB.c.o = $(patsubst $(SRC/)%.c,$(BUILD/)%.o,$(LIBHB.c)) LIBHB.m.o = $(patsubst $(SRC/)%.m,$(BUILD/)%.o,$(LIBHB.m)) LIBHB.metal.o = $(patsubst $(SRC/)%.metal,$(BUILD/)%.o,$(LIBHB.metal)) LIBHB.d = $(LIBHB.m4.out) $(LIBHB.h.out) \ $(foreach n,$(LIBHB.prerequisites),$($n.INSTALL.target) ) LIBHB.h.in = $(wildcard $(LIBHB.src/)handbrake/*.h) LIBHB.h.in += $(wildcard $(LIBHB.src/)extras/*.h) LIBHB.h.out = $(patsubst $(SRC/)%,$(BUILD/)%,$(LIBHB.h.in)) ############################################################################### LIBHB.a = $(LIBHB.build/)$(call TARGET.archive,handbrake) ############################################################################### LIBHB.out += $(LIBHB.m4.out) LIBHB.out += $(LIBHB.c.o) LIBHB.out += $(LIBHB.m.o) LIBHB.out += $(LIBHB.metal.o) LIBHB.out += $(LIBHB.h.out) LIBHB.out += $(LIBHB.a) ############################################################################### LIBHB.GCC.D += __LIBHB__ LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include ifeq (1,$(FEATURE.qsv)) ifeq ($(HOST.system),freebsd) LIBHB.GCC.I += $(LOCALBASE)/include/vpl else LIBHB.GCC.I += $(CONTRIB.build/)include/vpl endif endif ifneq (,$(filter $(HOST.system),freebsd netbsd openbsd)) LIBHB.GCC.I += $(LOCALBASE)/include endif ifeq ($(HOST.system),cygwin) LIBHB.GCC.D += SYS_CYGWIN else ifeq ($(HOST.system),darwin) LIBHB.GCC.D += SYS_DARWIN LIBHB.c += $(wildcard $(LIBHB.src/)platform/macosx/*.c) LIBHB.m += $(wildcard $(LIBHB.src/)platform/macosx/*.m) LIBHB.metal += $(wildcard $(LIBHB.src/)platform/macosx/shaders/*.metal) else ifeq ($(HOST.system),linux) LIBHB.GCC.D += SYS_LINUX _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64 else ifeq ($(HOST.system),freebsd) LIBHB.GCC.D += SYS_FREEBSD _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64 else ifeq ($(HOST.system),netbsd) LIBHB.GCC.D += SYS_NETBSD _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64 else ifeq ($(HOST.system),openbsd) LIBHB.GCC.D += SYS_OPENBSD else ifeq ($(HOST.system),mingw) LIBHB.GCC.D += SYS_MINGW ifneq ($(HAS.pthread),1) LIBHB.GCC.D += PTW32_STATIC_LIB endif LIBHB.GCC.args.extra.dylib++ += -Wl,--enable-auto-import -static else ifeq ($(HOST.system),solaris) LIBHB.GCC.D += SYS_SunOS _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64 _POSIX_C_SOURCE=200112L __EXTENSIONS__ else LIBHB.platform.D = SYS_UNKNOWN endif ifeq (1,$(FEATURE.qsv)) LIBHB.GCC.D += ONEVPL_EXPERIMENTAL LIBHB.GCC.D += HAVE_THREADS=1 endif ifeq (1,$(COMPAT.strtok_r)) LIBHB.GCC.D += HB_NEED_STRTOK_R endif ifeq (1,$(HAS.strerror_r)) LIBHB.GCC.D += HAS_STRERROR_R endif ## required for ifneq (,$(filter $(HOST.arch),ppc ppc64)) LIBHB.GCC.D += WORDS_BIGENDIAN endif ############################################################################### ifeq (1-mingw,$(HOST.cross)-$(HOST.system)) LIBHB.dll = $(LIBHB.build/)hb.dll LIBHB.lib = $(LIBHB.build/)hb.lib LIBHB.dll.libs = $(foreach n, \ ass avformat avfilter avcodec avutil swresample dvdnav dvdread \ freetype mp3lame swscale vpx theora vorbis vorbisenc ogg x264 \ bluray jansson harfbuzz opus speex dav1d turbojpeg zimg SvtAv1Enc, \ $(CONTRIB.build/)lib/lib$(n).a ) ifeq (1,$(FEATURE.fdk_aac)) LIBHB.dll.libs += $(CONTRIB.build/)lib/libfdk-aac.a endif ifeq (1,$(FEATURE.qsv)) LIBHB.GCC.D += ONEVPL_EXPERIMENTAL LIBHB.dll.libs += $(CONTRIB.build/)lib/libvpl.a endif ifeq (1,$(FEATURE.x265)) LIBHB.dll.libs += $(CONTRIB.build/)lib/libx265.a endif ifeq (1,$(FEATURE.libdovi)) LIBHB.dll.libs += $(CONTRIB.build/)lib/libdovi.a endif ifneq ($(HAS.iconv),1) LIBHB.dll.libs += $(CONTRIB.build/)lib/libiconv.a else LIBHB.GCC.l += iconv endif ifneq ($(HAS.regex),1) LIBHB.dll.libs += $(CONTRIB.build/)lib/libregex.a else LIBHB.GCC.l += regex endif ifeq (1,$(FRIBIDI.enabled)) LIBHB.dll.libs += $(CONTRIB.build/)lib/libfribidi.a else LIBHB.GCC.l += fribidi endif ifeq ($(HAS.pthread),1) LIBHB.GCC.l += pthread endif ifneq ($(HAS.bz2),1) LIBHB.dll.libs += $(CONTRIB.build/)lib/libbz2.a else LIBHB.GCC.l += bz2 endif ifneq ($(HAS.libz),1) LIBHB.dll.libs += $(CONTRIB.build/)lib/libz.a else LIBHB.GCC.l += z endif ifneq ($(HAS.xz),1) LIBHB.dll.libs += $(CONTRIB.build/)lib/liblzma.a else LIBHB.GCC.l += lzma endif LIBHB.GCC.args.extra.dylib++ += -Wl,--out-implib,$(LIBHB.lib) LIBHB.GCC.l += bcrypt ws2_32 uuid ole32 gdi32 userenv ntdll ifeq (1,$(FEATURE.mf)) LIBHB.GCC.l += mfplat strmiids endif ifeq ($(HAS.dlfcn),1) LIBHB.GCC.l += dl endif LIBHB.out += $(LIBHB.dll) $(LIBHB.lib) ifeq ($(HOST.machine),$(filter $(HOST.machine),aarch64)) ifneq (none,$(GCC.g)) LIBHB.out += $(LIBHB.pdb) endif endif endif ############################################################################### BUILD.out += $(LIBHB.out)