1 __deps__ := A52DEC BZIP2 FAAC FAAD2 FFMPEG LAME LIBDCA \
2 LIBDVDREAD LIBDVDNAV LIBICONV LIBMKV LIBOGG LIBSAMPLERATE LIBTHEORA LIBVORBIS \
3 MP4V2 MPEG2DEC PTHREADW32 X264 ZLIB
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.d = $(LIBHB.m4.out) $(LIBHB.h.out) \
19 $(foreach n,$(LIBHB.prerequisites),$($n.INSTALL.target) )
21 LIBHB.h.in = $(wildcard $(LIBHB.src/)*.h)
22 LIBHB.h.out = $(patsubst $(SRC/)%,$(BUILD/)%,$(LIBHB.h.in))
24 ###############################################################################
26 LIBHB.a = $(LIBHB.build/)$(call TARGET.archive,hb)
28 ###############################################################################
30 LIBHB.out += $(LIBHB.m4.out)
31 LIBHB.out += $(LIBHB.c.o)
32 LIBHB.out += $(LIBHB.h.out)
33 LIBHB.out += $(LIBHB.a)
35 ###############################################################################
37 LIBHB.GCC.D += __LIBHB__ USE_PTHREAD
38 LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include
40 ifeq ($(BUILD.system),cygwin)
41 LIBHB.GCC.D += SYS_CYGWIN
42 else ifeq ($(BUILD.system),darwin)
43 LIBHB.GCC.D += SYS_DARWIN
44 LIBHB.c += $(wildcard $(LIBHB.src/)platform/macosx/*.c)
45 else ifeq ($(BUILD.system),linux)
46 LIBHB.GCC.D += SYS_LINUX _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64
47 else ifeq ($(BUILD.system),mingw)
48 LIBHB.GCC.D += SYS_MINGW PTW32_STATIC_LIB
49 LIBHB.GCC.args.extra.dylib++ += -Wl,--enable-auto-import
50 else ifeq ($(BUILD.system),solaris)
51 LIBHB.GCC.D += SYS_SunOS _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64
53 LIBHB.platform.D = SYS_UNKNOWN
56 ## required for <libdvdread/*.h>
57 ifneq (,$(filter $(BUILD.arch),ppc ppc64))
58 LIBHB.GCC.D += WORDS_BIGENDIAN
61 ###############################################################################
63 ## when defined this gives us the subdir name, or flavor of asm implementation
64 ifneq (disabled,$(FEATURE.asm))
66 LIBHB.yasm.src/ = $(LIBHB.src/)$(FEATURE.asm)/
67 LIBHB.yasm.build/ = $(LIBHB.build/)$(FEATURE.asm)/
68 LIBHB.yasm.asm = $(LIBHB.yasm.src/)deinterlace-a.asm
69 LIBHB.yasm.o = $(LIBHB.yasm.asm:$(LIBHB.yasm.src/)%.asm=$(LIBHB.yasm.build/)%.o)
70 LIBHB.yasm.d = $(wildcard $(LIBHB.yasmsrc/)*.h)
72 LIBHB.YASM.I = $(LIBHB.yasm.src/)
73 LIBHB.YASM.ASM_O = $(strip $(YASM.exe) \
76 $(LIBHB.YASM.D:%=-D%) \
77 $(LIBHB.YASM.I:%=-I%) \
80 LIBHB.out += $(LIBHB.yasm.o)
84 ###############################################################################
86 ifeq (1-mingw,$(BUILD.cross)-$(BUILD.system))
88 LIBHB.dll = $(LIBHB.build/)hb.dll
89 LIBHB.lib = $(LIBHB.build/)hb.lib
91 LIBHB.dll.libs = $(foreach n, \
92 a52 avcodec avformat avutil dca dvdnav dvdread faac faad mkv mpeg2 mp3lame mp4v2 \
93 ogg samplerate swscale theora vorbis vorbisenc x264, \
94 $(CONTRIB.build/)lib/lib$(n).a )
96 ifneq ($(HAS.iconv),1)
97 LIBHB.dll.libs += $(CONTRIB.build/)lib/libiconv.a
102 ifneq ($(HAS.pthread),1)
103 LIBHB.dll.libs += $(CONTRIB.build/)lib/libpthreadGC2.a
105 LIBHB.GCC.l += pthreadGC2
109 LIBHB.dll.libs += $(CONTRIB.build/)lib/libbz2.a
114 ifneq ($(HAS.libz),1)
115 LIBHB.dll.libs += $(CONTRIB.build/)lib/libz.a
120 LIBHB.GCC.args.extra.dylib++ += -Wl,--out-implib,$(LIBHB.lib)
121 LIBHB.GCC.l += iberty ws2_32
122 ifeq ($(HAS.dlfcn),1)
125 LIBHB.out += $(LIBHB.dll) $(LIBHB.lib)
129 ###############################################################################
131 BUILD.out += $(LIBHB.out)