Blame view

buildroot/buildroot-2016.08.1/package/tvheadend/tvheadend.mk 3.56 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  ################################################################################
  #
  # tvheadend
  #
  ################################################################################
  
  TVHEADEND_VERSION = 8e637f9f903f6d820f701a1461b144e67665c6fa
  TVHEADEND_SITE = $(call github,tvheadend,tvheadend,$(TVHEADEND_VERSION))
  TVHEADEND_LICENSE = GPLv3+
  TVHEADEND_LICENSE_FILES = LICENSE.md
  TVHEADEND_DEPENDENCIES = \
  	host-gettext \
  	host-pkgconf \
  	$(if $(BR2_PACKAGE_PYTHON3),host-python3,host-python) \
  	openssl
  
  ifeq ($(BR2_PACKAGE_AVAHI),y)
  TVHEADEND_DEPENDENCIES += avahi
  endif
  
  ifeq ($(BR2_PACKAGE_DBUS),y)
  TVHEADEND_DEPENDENCIES += dbus
  TVHEADEND_CONF_OPTS += --enable-dbus-1
  else
  TVHEADEND_CONF_OPTS += --disable-dbus-1
  endif
  
  ifeq ($(BR2_PACKAGE_FFMPEG),y)
  TVHEADEND_DEPENDENCIES += ffmpeg
  TVHEADEND_CONF_OPTS += --enable-libav
  else
  TVHEADEND_CONF_OPTS += --disable-libav
  endif
  
  ifeq ($(BR2_PACKAGE_LIBDVBCSA),y)
  TVHEADEND_DEPENDENCIES += libdvbcsa
  TVHEADEND_CONF_OPTS += --enable-dvbcsa
  else
  TVHEADEND_CONF_OPTS += --disable-dvbcsa
  endif
  
  ifeq ($(BR2_PACKAGE_LIBHDHOMERUN),y)
  TVHEADEND_DEPENDENCIES += libhdhomerun
  TVHEADEND_CONF_OPTS += --enable-hdhomerun_client
  else
  TVHEADEND_CONF_OPTS += --disable-hdhomerun_client
  endif
  
  ifeq ($(BR2_PACKAGE_LIBICONV),y)
  TVHEADEND_DEPENDENCIES += libiconv
  endif
  
  TVHEADEND_CFLAGS = $(TARGET_CFLAGS)
  ifeq ($(BR2_PACKAGE_LIBURIPARSER),y)
  TVHEADEND_DEPENDENCIES += liburiparser
  TVHEADEND_CFLAGS += $(if $(BR2_USE_WCHAR),,-DURI_NO_UNICODE)
  endif
  
  TVHEADEND_DEPENDENCIES += dtv-scan-tables
  
  # The tvheadend build system expects the transponder data to be present inside
  # its source tree. To prevent a download initiated by the build system just
  # copy the data files in the right place and add the corresponding stamp file.
  define TVHEADEND_INSTALL_DTV_SCAN_TABLES
  	$(INSTALL) -d $(@D)/data/dvb-scan
  	cp -r $(TARGET_DIR)/usr/share/dvb/* $(@D)/data/dvb-scan/
  	touch $(@D)/data/dvb-scan/.stamp
  endef
  TVHEADEND_PRE_CONFIGURE_HOOKS += TVHEADEND_INSTALL_DTV_SCAN_TABLES
  
  define TVHEADEND_CONFIGURE_CMDS
  	(cd $(@D);						\
  		$(TARGET_CONFIGURE_OPTS)			\
  		$(TARGET_CONFIGURE_ARGS)			\
  		CFLAGS="$(TVHEADEND_CFLAGS)"			\
  		./configure					\
  			--prefix=/usr				\
  			--arch="$(ARCH)"			\
  			--cpu="$(BR2_GCC_TARGET_CPU)"		\
  			--nowerror				\
  			--python="$(HOST_DIR)/usr/bin/python"	\
  			--enable-dvbscan			\
  			--enable-bundle				\
  			--disable-ffmpeg_static			\
  			--disable-hdhomerun_static		\
  			$(TVHEADEND_CONF_OPTS)			\
  	)
  endef
  
  define TVHEADEND_BUILD_CMDS
  	$(MAKE) -C $(@D)
  endef
  
  define TVHEADEND_INSTALL_TARGET_CMDS
  	$(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install
  endef
  
  # Remove documentation and source files that are not needed because we
  # use the bundled web interface version.
  define TVHEADEND_CLEAN_SHARE
  	rm -rf $(TARGET_DIR)/usr/share/tvheadend/docs
  	rm -rf $(TARGET_DIR)/usr/share/tvheadend/src
  endef
  
  TVHEADEND_POST_INSTALL_TARGET_HOOKS += TVHEADEND_CLEAN_SHARE
  
  #----------------------------------------------------------------------------
  # To run tvheadend, we need:
  #  - a startup script, and its config file
  #  - a non-root user to run as, and a home for it that is not accessible
  #    to the other users (because there will be crendentials in there)
  
  define TVHEADEND_INSTALL_INIT_SYSV
  	$(INSTALL) -D package/tvheadend/etc.default.tvheadend $(TARGET_DIR)/etc/default/tvheadend
  	$(INSTALL) -D package/tvheadend/S99tvheadend          $(TARGET_DIR)/etc/init.d/S99tvheadend
  endef
  
  define TVHEADEND_USERS
  	tvheadend -1 tvheadend -1 * /home/tvheadend - video TVHeadend daemon
  endef
  define TVHEADEND_PERMISSIONS
  	/home/tvheadend r 0700 tvheadend tvheadend - - - - -
  endef
  
  $(eval $(generic-package))