1 __deps__ := A52DEC BZIP2 LIBVPX FFMPEG FONTCONFIG FREETYPE LAME LIBASS LIBDCA \
2 LIBDVDREAD LIBDVDNAV LIBICONV LIBOGG LIBSAMPLERATE LIBTHEORA LIBVORBIS \
3 LIBXML2 PTHREADW32 X264 X265 ZLIB LIBBLURAY FDKAAC LIBMFX LIBGNURX JANSSON
5 $(eval $(call import.MODULE.defs,LIBHB,libhb,$(__deps__)))
6 $(eval $(call import.GCC,LIBHB))
8 ###############################################################################
10 LIBHB.src/ = $(SRC/)libhb/
11 LIBHB.build/ = $(BUILD/)libhb/
13 LIBHB.m4.in = $(wildcard $(LIBHB.src/)*.m4)
14 LIBHB.m4.out = $(patsubst $(LIBHB.src/)%.m4,$(LIBHB.build/)%,$(LIBHB.m4.in))
16 LIBHB.c = $(wildcard $(LIBHB.src/)*.c)
17 LIBHB.c.o = $(patsubst $(SRC/)%.c,$(BUILD/)%.o,$(LIBHB.c))
18 LIBHB.m.o = $(patsubst $(SRC/)%.m,$(BUILD/)%.o,$(LIBHB.m))
19 LIBHB.d = $(LIBHB.m4.out) $(LIBHB.h.out) \
20 $(foreach n,$(LIBHB.prerequisites),$($n.INSTALL.target) )
22 LIBHB.h.in = $(wildcard $(LIBHB.src/)*.h)
23 LIBHB.h.in += $(wildcard $(LIBHB.src/)extras/*.h)
24 LIBHB.h.out = $(patsubst $(SRC/)%,$(BUILD/)%,$(LIBHB.h.in))
26 ###############################################################################
28 LIBHB.a = $(LIBHB.build/)$(call TARGET.archive,handbrake)
30 ###############################################################################
32 LIBHB.out += $(LIBHB.m4.out)
33 LIBHB.out += $(LIBHB.c.o)
34 LIBHB.out += $(LIBHB.m.o)
35 LIBHB.out += $(LIBHB.h.out)
36 LIBHB.out += $(LIBHB.a)
38 ###############################################################################
40 ifeq (1,$(FEATURE.hwd))
41 LIBHB.GCC.D += USE_HWD
44 ifeq (1,$(FEATURE.libav_aac))
45 LIBHB.GCC.D += USE_LIBAV_AAC
47 LIBHB.GCC.D += __LIBHB__ USE_PTHREAD
48 LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include
50 ifneq (,$(filter $(BUILD.system),darwin cygwin mingw))
51 LIBHB.GCC.I += $(CONTRIB.build/)include/libxml2
53 LIBHB.GCC.I += /usr/include/libxml2
56 ifeq ($(BUILD.system),cygwin)
57 LIBHB.GCC.D += SYS_CYGWIN
58 else ifeq ($(BUILD.system),darwin)
59 LIBHB.GCC.D += SYS_DARWIN
60 LIBHB.c += $(wildcard $(LIBHB.src/)platform/macosx/*.c)
61 LIBHB.m += $(wildcard $(LIBHB.src/)platform/macosx/*.m)
62 else ifeq ($(BUILD.system),linux)
63 LIBHB.GCC.D += SYS_LINUX _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64
64 else ifeq ($(BUILD.system),mingw)
65 LIBHB.GCC.D += SYS_MINGW
66 ifneq ($(HAS.pthread),1)
67 LIBHB.GCC.D += PTW32_STATIC_LIB
69 LIBHB.GCC.args.extra.dylib++ += -Wl,--enable-auto-import -static
70 else ifeq ($(BUILD.system),solaris)
71 LIBHB.GCC.D += SYS_SunOS _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64 _POSIX_C_SOURCE=200112L __EXTENSIONS__
73 LIBHB.platform.D = SYS_UNKNOWN
76 ifeq (1,$(FEATURE.qsv))
77 LIBHB.GCC.D += USE_QSV HAVE_THREADS=1
80 ifeq (1,$(FEATURE.x265))
81 LIBHB.GCC.D += USE_X265
84 ifeq (1,$(COMPAT.strtok_r))
85 LIBHB.GCC.D += HB_NEED_STRTOK_R
88 ## required for <libdvdread/*.h>
89 ifneq (,$(filter $(BUILD.arch),ppc ppc64))
90 LIBHB.GCC.D += WORDS_BIGENDIAN
93 ###############################################################################
95 ## when defined this gives us the subdir name, or flavor of asm implementation
96 ifneq (disabled,$(FEATURE.asm))
98 LIBHB.yasm.src/ = $(LIBHB.src/)$(FEATURE.asm)/
99 LIBHB.yasm.build/ = $(LIBHB.build/)$(FEATURE.asm)/
100 LIBHB.yasm.asm = $(LIBHB.yasm.src/)deinterlace-a.asm
101 LIBHB.yasm.o = $(LIBHB.yasm.asm:$(LIBHB.yasm.src/)%.asm=$(LIBHB.yasm.build/)%.o)
102 LIBHB.yasm.d = $(wildcard $(LIBHB.yasmsrc/)*.h)
104 LIBHB.YASM.I = $(LIBHB.yasm.src/)
105 LIBHB.YASM.ASM_O = $(strip $(YASM.exe) \
108 $(LIBHB.YASM.D:%=-D%) \
109 $(LIBHB.YASM.I:%=-I%) \
112 LIBHB.out += $(LIBHB.yasm.o)
116 ###############################################################################
118 ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))
120 LIBHB.dll = $(LIBHB.build/)hb.dll
121 LIBHB.lib = $(LIBHB.build/)hb.lib
123 LIBHB.dll.libs = $(foreach n, \
124 ass avcodec avformat avutil avresample dvdnav dvdread fontconfig \
125 freetype mp3lame ogg samplerate swscale vpx theora vorbis vorbisenc \
126 x264 xml2 bluray jansson, \
127 $(CONTRIB.build/)lib/lib$(n).a )
129 ifeq (1,$(FEATURE.fdk_aac))
130 LIBHB.dll.libs += $(CONTRIB.build/)lib/libfdk-aac.a
133 ifeq (1,$(FEATURE.qsv))
134 LIBHB.dll.libs += $(CONTRIB.build/)lib/libmfx.a
137 ifeq (1,$(FEATURE.x265))
138 LIBHB.dll.libs += $(CONTRIB.build/)lib/libx265.a
141 ifneq ($(HAS.iconv),1)
142 LIBHB.dll.libs += $(CONTRIB.build/)lib/libiconv.a
147 ifneq ($(HAS.regex),1)
148 LIBHB.dll.libs += $(CONTRIB.build/)lib/libregex.a
153 ifeq (1,$(FRIBIDI.enabled))
154 LIBHB.dll.libs += $(CONTRIB.build/)lib/libfribidi.a
156 LIBHB.GCC.l += fribidi
159 ifeq ($(HAS.pthread),1)
160 LIBHB.GCC.l += pthread
161 else ifneq ($(HAS.pthreadGC2),1)
162 LIBHB.dll.libs += $(CONTRIB.build/)lib/libpthreadGC2.a
164 LIBHB.GCC.l += pthreadGC2
168 LIBHB.dll.libs += $(CONTRIB.build/)lib/libbz2.a
173 ifneq ($(HAS.libz),1)
174 LIBHB.dll.libs += $(CONTRIB.build/)lib/libz.a
179 LIBHB.GCC.args.extra.dylib++ += -Wl,--out-implib,$(LIBHB.lib)
180 LIBHB.GCC.l += ws2_32 uuid ole32
181 ifeq ($(HAS.dlfcn),1)
184 LIBHB.out += $(LIBHB.dll) $(LIBHB.lib)
188 ###############################################################################
190 BUILD.out += $(LIBHB.out)