Blame view

buildroot/buildroot-2016.08.1/package/freerdp/freerdp.mk 7.63 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
  ################################################################################
  #
  # freerdp
  #
  ################################################################################
  
  # Changeset on the master branch
  FREERDP_VERSION = 17834af7bb378f85a3b3cc4dcadaa5125a337e16
  FREERDP_SITE = $(call github,FreeRDP,FreeRDP,$(FREERDP_VERSION))
  FREERDP_DEPENDENCIES = libglib2 openssl zlib
  FREERDP_LICENSE = Apache-2.0
  FREERDP_LICENSE_FILES = LICENSE
  
  FREERDP_INSTALL_STAGING = YES
  
  FREERDP_CONF_OPTS = -DWITH_MANPAGES=OFF -Wno-dev
  
  ifeq ($(BR2_PACKAGE_FREERDP_GSTREAMER),y)
  FREERDP_CONF_OPTS += -DWITH_GSTREAMER_0_10=ON
  FREERDP_DEPENDENCIES += gstreamer gst-plugins-base libxml2 host-pkgconf
  else
  FREERDP_CONF_OPTS += -DWITH_GSTREAMER_0_10=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_FREERDP_GSTREAMER1),y)
  FREERDP_CONF_OPTS += -DWITH_GSTREAMER_1_0=ON
  FREERDP_DEPENDENCIES += gstreamer1 gst1-plugins-base
  else
  FREERDP_CONF_OPTS += -DWITH_GSTREAMER_1_0=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_CUPS),y)
  FREERDP_CONF_OPTS += -DWITH_CUPS=ON
  FREERDP_DEPENDENCIES += cups
  else
  FREERDP_CONF_OPTS += -DWITH_CUPS=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_FFMPEG),y)
  FREERDP_CONF_OPTS += -DWITH_FFMPEG=ON
  FREERDP_DEPENDENCIES += ffmpeg
  else
  FREERDP_CONF_OPTS += -DWITH_FFMPEG=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_ALSA_LIB_MIXER),y)
  FREERDP_CONF_OPTS += -DWITH_ALSA=ON
  FREERDP_DEPENDENCIES += alsa-lib
  else
  FREERDP_CONF_OPTS += -DWITH_ALSA=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
  FREERDP_CONF_OPTS += -DWITH_PULSEAUDIO=ON
  FREERDP_DEPENDENCIES += pulseaudio
  else
  FREERDP_CONF_OPTS += -DWITH_PULSEAUDIO=OFF
  endif
  
  ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
  FREERDP_CONF_OPTS += -DWITH_NEON=ON
  else
  FREERDP_CONF_OPTS += -DWITH_NEON=OFF
  endif
  
  ifeq ($(BR2_X86_CPU_HAS_SSE2),y)
  FREERDP_CONF_OPTS += -DWITH_SSE2=ON
  else
  FREERDP_CONF_OPTS += -DWITH_SSE2=OFF
  endif
  
  ifeq ($(BR2_arm)$(BR2_armeb),y)
  FREERDP_CONF_OPTS += -DARM_FP_ABI=$(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
  endif
  
  #---------------------------------------
  # Enabling server and/or client
  
  # Clients and server interface must always be enabled to build the
  # corresponding libraries.
  FREERDP_CONF_OPTS += -DWITH_SERVER_INTERFACE=ON
  FREERDP_CONF_OPTS += -DWITH_CLIENT_INTERFACE=ON
  
  ifeq ($(BR2_PACKAGE_FREERDP_SERVER),y)
  FREERDP_CONF_OPTS += -DWITH_SERVER=ON
  endif
  
  ifneq ($(BR2_PACKAGE_FREERDP_CLIENT_X11)$(BR2_PACKAGE_FREERDP_CLIENT_WL),)
  FREERDP_CONF_OPTS += -DWITH_CLIENT=ON
  endif
  
  #---------------------------------------
  # Libraries for client and/or server
  
  # The FreeRDP buildsystem uses non-orthogonal options. For example it
  # is not possible to build the server and the wayland client without
  # also building the X client. That's because the dependencies of the
  # server (the X libraries) are a superset of those of the X client.
  # So, as soon as FreeRDP is configured for the server and the wayland
  # client, it will believe it also has to build the X client, because
  # the libraries it needs are enabled.
  #
  # Furthermore, the shadow server is always built, even if there's nothing
  # it can serve (i.e. the X libs are disabled).
  #
  # So, we do not care whether we build too much; we remove, as
  # post-install hooks, whatever we do not want.
  
  # If Xorg is enabled, and the server or the X client are, then libX11
  # and libXext are forcibly enabled at the Kconfig level. However, if
  # Xorg is enabled but neither the server nor the X client are, then
  # there's nothing that guarantees those two libs are enabled. So we
  # really must check for them.
  ifeq ($(BR2_PACKAGE_XLIB_LIBX11)$(BR2_PACKAGE_XLIB_LIBX11),yy)
  FREERDP_DEPENDENCIES += xlib_libX11 xlib_libXext
  FREERDP_CONF_OPTS += -DWITH_X11=ON
  else
  FREERDP_CONF_OPTS += -DWITH_X11=OFF
  endif
  
  # The following libs are either optional or mandatory only for either
  # the server or the client. A mandatory library for either one is
  # selected from Kconfig, so we can make it conditional here
  ifeq ($(BR2_PACKAGE_XLIB_LIBXCURSOR),y)
  FREERDP_CONF_OPTS += -DWITH_XCURSOR=ON
  FREERDP_DEPENDENCIES += xlib_libXcursor
  else
  FREERDP_CONF_OPTS += -DWITH_XCURSOR=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXDAMAGE),y)
  FREERDP_CONF_OPTS += -DWITH_XDAMAGE=ON
  FREERDP_DEPENDENCIES += xlib_libXdamage
  else
  FREERDP_CONF_OPTS += -DWITH_XDAMAGE=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXFIXES),y)
  FREERDP_CONF_OPTS += -DWITH_XFIXES=ON
  FREERDP_DEPENDENCIES += xlib_libXfixes
  else
  FREERDP_CONF_OPTS += -DWITH_XFIXES=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXI),y)
  FREERDP_CONF_OPTS += -DWITH_XI=ON
  FREERDP_DEPENDENCIES += xlib_libXi
  else
  FREERDP_CONF_OPTS += -DWITH_XI=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXINERAMA),y)
  FREERDP_CONF_OPTS += -DWITH_XINERAMA=ON
  FREERDP_DEPENDENCIES += xlib_libXinerama
  else
  FREERDP_CONF_OPTS += -DWITH_XINERAMA=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXKBFILE),y)
  FREERDP_CONF_OPTS += -DWITH_XKBFILE=ON
  FREERDP_DEPENDENCIES += xlib_libxkbfile
  else
  FREERDP_CONF_OPTS += -DWITH_XKBFILE=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXRANDR),y)
  FREERDP_CONF_OPTS += -DWITH_XRANDR=ON
  FREERDP_DEPENDENCIES += xlib_libXrandr
  else
  FREERDP_CONF_OPTS += -DWITH_XRANDR=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXRENDER),y)
  FREERDP_CONF_OPTS += -DWITH_XRENDER=ON
  FREERDP_DEPENDENCIES += xlib_libXrender
  else
  FREERDP_CONF_OPTS += -DWITH_XRENDER=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXTST),y)
  FREERDP_CONF_OPTS += -DWITH_XTEST=ON
  FREERDP_DEPENDENCIES += xlib_libXtst
  else
  FREERDP_CONF_OPTS += -DWITH_XTEST=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_XLIB_LIBXV),y)
  FREERDP_CONF_OPTS += -DWITH_XV=ON
  FREERDP_DEPENDENCIES += xlib_libXv
  else
  FREERDP_CONF_OPTS += -DWITH_XV=OFF
  endif
  
  ifeq ($(BR2_PACKAGE_WAYLAND),y)
  FREERDP_DEPENDENCIES += wayland
  FREERDP_CONF_OPTS += -DWITH_WAYLAND=ON
  else
  FREERDP_CONF_OPTS += -DWITH_WAYLAND=OFF
  endif
  
  #---------------------------------------
  # Post-install hooks to cleanup and install missing stuff
  
  # Shadow server is always installed, no matter what, so we manually
  # remove it if the user does not want the server.
  ifeq ($(BR2_PACKAGE_FREERDP_SERVER),)
  define FREERDP_RM_SHADOW_SERVER
  	rm -f $(TARGET_DIR)/usr/bin/freerdp-shadow
  endef
  FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_SHADOW_SERVER
  endif # ! server
  
  # X client is always built as soon as a client is enabled and the
  # necessary libs are enabled (e.g. because of the server), so manually
  # remove it if the user does not want it.
  ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_X11),)
  define FREERDP_RM_CLIENT_X11
  	rm -f $(TARGET_DIR)/usr/bin/xfreerdp
  	rm -f $(TARGET_DIR)/usr/lib/libxfreerdp-client*
  endef
  FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_CLIENT_X11
  define FREERDP_RM_CLIENT_X11_LIB
  	rm -f $(STAGING_DIR)/usr/lib/libxfreerdp-client*
  endef
  FREERDP_POST_INSTALL_STAGING_HOOKS += FREERDP_RM_CLIENT_X11_LIB
  endif # ! X client
  
  # Wayland client is always built as soon as wayland is enabled, so
  # manually remove it if the user does not want it.
  ifeq ($(BR2_PACKAGE_FREERDP_CLIENT_WL),)
  define FREERDP_RM_CLIENT_WL
  	rm -f $(TARGET_DIR)/usr/bin/wlfreerdp
  endef
  FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_RM_CLIENT_WL
  endif
  
  # Remove static libraries in unusual dir
  define FREERDP_CLEANUP
  	rm -rf $(TARGET_DIR)/usr/lib/freerdp
  endef
  FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_CLEANUP
  
  # Install the server key and certificate, so that a client can connect.
  # A user can override them with its own in a post-build script, if needed.
  # We install them even if the server is not enabled, since another server
  # can be built and linked with libfreerdp (e.g. weston with the  RDP
  # backend). Key and cert are installed world-readable, so non-root users
  # can start a server.
  define FREERDP_INSTALL_KEYS
  	$(INSTALL) -m 0644 -D $(@D)/server/Sample/server.key \
  		$(TARGET_DIR)/etc/freerdp/keys/server.key
  	$(INSTALL) -m 0644 -D $(@D)/server/Sample/server.crt \
  		$(TARGET_DIR)/etc/freerdp/keys/server.crt
  endef
  FREERDP_POST_INSTALL_TARGET_HOOKS += FREERDP_INSTALL_KEYS
  
  $(eval $(cmake-package))