HandBrake/libhb/module.defs

200 lines
5.5 KiB
Plaintext

__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 <libdvdread/*.h>
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)