Skip to content

Commit 6cf432b

Browse files
authored
Merge pull request #97 from WebPlatformForEmbedded/agebicz/packager/4
Add possibility to generate DEBIAN 2.0 binary packages from the Buildroot
2 parents 9c3026f + 7fe6667 commit 6cf432b

File tree

8 files changed

+273
-8
lines changed

8 files changed

+273
-8
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@ unexport RUBYOPT
377377

378378
include package/pkg-utils.mk
379379
include package/doc-asciidoc.mk
380+
include package/simple-opkg-tools.mk
380381

381382
ifeq ($(BR2_HAVE_DOT_CONFIG),y)
382383

package/netflix/netflix.mk

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@ NETFLIX_INSTALL_TARGET = YES
1313
NETFLIX_SUBDIR = netflix
1414
NETFLIX_RESOURCE_LOC = $(call qstrip,${BR2_PACKAGE_NETFLIX_RESOURCE_LOCATION})
1515

16+
# netflix binary package config
17+
NETFLIX_OPKG_NAME = "netflix"
18+
NETFLIX_OPKG_VERSION = "1.0.0"
19+
NETFLIX_OPKG_ARCHITECTURE = "${BR2_ARCH}"
20+
NETFLIX_OPKG_DEPENDS = ""
21+
NETFLIX_OPKG_MAINTAINER = "Metrological"
22+
NETFLIX_OPKG_PRIORITY = "optional"
23+
NETFLIX_OPKG_SECTION = "graphics"
24+
NETFLIX_OPKG_SOURCE = ${NETFLIX_SITE}
25+
NETFLIX_OPKG_DESCRIPTION = "This is a description for the Netflix package"
26+
1627
NETFLIX_CONF_OPTS = \
1728
-DBUILD_DPI_DIRECTORY=$(@D)/partner/dpi \
1829
-DCMAKE_INSTALL_PREFIX=$(@D)/release \
@@ -235,18 +246,48 @@ define NETFLIX_INSTALL_STAGING_CMDS
235246
$(STAGING_DIR)/usr/include/netflix/nrdbase/tr1.h
236247
endef
237248

238-
define NETFLIX_INSTALL_TARGET_CMDS
249+
define NETFLIX_INSTALL_TARGET_FILES
250+
@# install files
251+
$(INSTALL) -d $(TARGET_DIR)/usr/lib
239252
$(INSTALL) -m 755 $(@D)/netflix/src/platform/gibbon/libnetflix.so $(TARGET_DIR)/usr/lib
240-
endef
253+
endef # NETFLIX_INSTALL_TARGET_FILES
241254

242-
else
255+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
256+
257+
NETFLIX_DEPENDENCIES += ${SIMPLE_OPKG_TOOLS_DEPENDENCIES}
258+
259+
define NETFLIX_INSTALL_TARGET_CMDS
260+
@# prepare package metadata
261+
$(call SIMPLE_OPKG_TOOLS_INIT,NETFLIX,${@D})
262+
263+
@# set install target
264+
$(call SIMPLE_OPKG_TOOLS_SET_TARGET,NETFLIX,${@D})
243265

266+
@# install target files
267+
$(call NETFLIX_INSTALL_TARGET_FILES)
268+
269+
@# build package
270+
$(call SIMPLE_OPKG_TOOLS_BUILD_PACKAGE,${@D})
271+
272+
@# install package
273+
$(call SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE,${@D}/${NETFLIX_OPKG_NAME}_${NETFLIX_OPKG_VERSION}_${NETFLIX_OPKG_ARCHITECTURE}.ipk)
274+
275+
@# set previous TARGET_DIR
276+
$(call SIMPLE_OPKG_TOOLS_UNSET_TARGET,NETFLIX)
277+
endef # NETFLIX_INSTALL_TARGET_CMDS
278+
else # ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
279+
define NETFLIX_INSTALL_TARGET_CMDS
280+
@# install target files
281+
$(call NETFLIX_INSTALL_TARGET_FILES)
282+
endef # NETFLIX_INSTALL_TARGET_CMDS
283+
endif # ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
284+
285+
else # ($(BR2_PACKAGE_NETFLIX_LIB),y)
244286
define NETFLIX_INSTALL_TARGET_CMDS
245287
$(INSTALL) -m 755 $(@D)/netflix/src/platform/gibbon/netflix $(TARGET_DIR)/usr/bin
246288
$(INSTALL) -m 755 $(@D)/netflix/src/platform/gibbon/manufss $(TARGET_DIR)/usr/bin
247-
endef
248-
249-
endif
289+
endef # NETFLIX_INSTALL_TARGET_CMDS
290+
endif # ($(BR2_PACKAGE_NETFLIX_LIB),y)
250291

251292
define NETFLIX_PREPARE_DPI
252293
mkdir -p $(TARGET_DIR)/root/Netflix/dpi

package/simple-opkg-tools.mk

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# directory name that will hold temporary package generation files
2+
SIMPLE_OPKG_TOOLS_TEMP_FILENAME=package.tmp
3+
# directory where generated packages will be installed
4+
SIMPLE_OPKG_TOOLS_PKG_OUTPUT_DIR=${BASE_DIR}/ipkg
5+
# packages that needs to be built before
6+
SIMPLE_OPKG_TOOLS_DEPENDENCIES=host-opkg-utils
7+
8+
define inner-sot-ensure-var-set
9+
@# Checks whether given variable is set and strips it from quotes
10+
$(if ${${1}},\
11+
@echo "${1}=${${1}}",\
12+
$(error "${1} not defined!")\
13+
)
14+
15+
$(eval ${1} := $(call qstrip,${${1}}))
16+
endef # inner-sot-ensure-var-set
17+
18+
define SIMPLE_OPKG_TOOLS_INIT
19+
@# Creates necessary files and directories to build package
20+
@# Input arguments:
21+
@# 1 - package name
22+
@# 2 - workdir/destination
23+
24+
@# ensure that all REQUIRED fields are present
25+
$(call inner-sot-ensure-var-set,${1}_OPKG_NAME)
26+
$(call inner-sot-ensure-var-set,${1}_OPKG_VERSION)
27+
$(call inner-sot-ensure-var-set,${1}_OPKG_DEPENDS)
28+
$(call inner-sot-ensure-var-set,${1}_OPKG_ARCHITECTURE)
29+
$(call inner-sot-ensure-var-set,${1}_OPKG_MAINTAINER)
30+
$(call inner-sot-ensure-var-set,${1}_OPKG_SOURCE)
31+
$(call inner-sot-ensure-var-set,${1}_OPKG_SECTION)
32+
$(call inner-sot-ensure-var-set,${1}_OPKG_PRIORITY)
33+
$(call inner-sot-ensure-var-set,${1}_OPKG_DESCRIPTION)
34+
35+
@# prepare necessary files
36+
${INSTALL} -d ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}
37+
$(RM) -r ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/*
38+
${INSTALL} -d ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL
39+
40+
@# create fields in control file
41+
@echo "Package: ${${1}_OPKG_NAME}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
42+
@echo "Version: ${${1}_OPKG_VERSION}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
43+
@echo "Depends: ${${1}_OPKG_DEPENDS}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
44+
@echo "Architecture: ${${1}_OPKG_ARCHITECTURE}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
45+
@echo "Maintainer: ${${1}_OPKG_MAINTAINER}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
46+
@echo "Section: ${${1}_OPKG_SECTION}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
47+
@echo "Source: ${${1}_OPKG_SOURCE}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
48+
@echo "Priority: ${${1}_OPKG_PRIORITY}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
49+
@echo "Description: ${${1}_OPKG_DESCRIPTION}" >> ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
50+
endef # SIMPLE_OPKG_TOOLS_INIT
51+
52+
define SIMPLE_OPKG_TOOLS_SET_CUSTOM_FIELD
53+
@# Adds custom field to package control file
54+
@# Input arguments:
55+
@# 1 - workdir/destination
56+
@# 2 - custom field key
57+
@# 3 - custom field value
58+
@echo "${2}: ${3}" >> ${1}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME}/CONTROL/control
59+
endef # SIMPLE_OPKG_TOOLS_SET_CUSTOM_FIELD
60+
61+
define SIMPLE_OPKG_TOOLS_BUILD_PACKAGE
62+
@# Builds package from already prepared directory
63+
@# Input arguments:
64+
@# 1 - package target directory
65+
opkg-build ${1}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME} ${1}
66+
endef # SIMPLE_OPKG_TOOLS_BUILD_PACKAGE
67+
68+
define SIMPLE_OPKG_TOOLS_SET_TARGET
69+
@# Sets new target path to package temporary directory
70+
@# Input arguments:
71+
@# 1 - package name
72+
@# 2 - new TARGET_DIR
73+
$(eval ${1}_ORIGINAL_TARGET := ${TARGET_DIR})
74+
$(eval TARGET_DIR := ${2}/${SIMPLE_OPKG_TOOLS_TEMP_FILENAME})
75+
@echo "New TARGET_DIR=${TARGET_DIR}"
76+
endef # SIMPLE_OPKG_TOOLS_SET_TARGET
77+
78+
define SIMPLE_OPKG_TOOLS_UNSET_TARGET
79+
@# Reverts target path, set by SIMPLE_OPKG_TOOLS_SET_TARGET
80+
@# Input arguments:
81+
@# 1 - package name
82+
$(eval TARGET_DIR := ${${1}_ORIGINAL_TARGET})
83+
@echo "New TARGET_DIR=${TARGET_DIR}"
84+
endef # SIMPLE_OPKG_TOOLS_UNSET_TARGET
85+
86+
define SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE
87+
@# Installs built package in output path
88+
@# Input arguments:
89+
@# 1 - package path
90+
${INSTALL} -d ${SIMPLE_OPKG_TOOLS_PKG_OUTPUT_DIR}
91+
${INSTALL} -m 755 ${1} ${SIMPLE_OPKG_TOOLS_PKG_OUTPUT_DIR}
92+
endef # SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE
93+
94+
define SIMPLE_OPKG_TOOLS_MAKE_PACKAGE
95+
@# Makes package from CPack generated makefile
96+
${MAKE} package -C ${@D}
97+
endef # SIMPLE_OPKG_TOOLS_MAKE_PACKAGE
98+
99+
define SIMPLE_OPKG_TOOLS_CREATE_CPACK_METADATA
100+
@# Creates CMake build parameters for CPack configuration
101+
@# Input arguments:
102+
@# 1 - package name
103+
$(call inner-sot-ensure-var-set,${1}_OPKG_NAME)
104+
$(call inner-sot-ensure-var-set,${1}_OPKG_VERSION)
105+
$(call inner-sot-ensure-var-set,${1}_OPKG_ARCHITECTURE)
106+
$(call inner-sot-ensure-var-set,${1}_OPKG_MAINTAINER)
107+
$(call inner-sot-ensure-var-set,${1}_OPKG_DESCRIPTION)
108+
109+
$(eval ${1}_OPKG_CPACK_METADATA += -D${1}_OPKG_NAME="${${1}_OPKG_NAME}")
110+
$(eval ${1}_OPKG_CPACK_METADATA += -D${1}_OPKG_VERSION="${${1}_OPKG_VERSION}")
111+
$(eval ${1}_OPKG_CPACK_METADATA += -D${1}_OPKG_ARCHITECTURE="${${1}_OPKG_ARCHITECTURE}")
112+
$(eval ${1}_OPKG_CPACK_METADATA += -D${1}_OPKG_MAINTAINER="${${1}_OPKG_MAINTAINER}")
113+
$(eval ${1}_OPKG_CPACK_METADATA += -D${1}_OPKG_DESCRIPTION="${${1}_OPKG_DESCRIPTION}")
114+
$(eval ${1}_OPKG_CPACK_METADATA += -D${1}_OPKG_FILE_NAME="${${1}_OPKG_NAME}_${${1}_OPKG_VERSION}_${${1}_OPKG_ARCHITECTURE}")
115+
endef # SIMPLE_OPKG_TOOLS_CREATE_CPACK_METADATA
116+
117+
define SIMPLE_OPKG_TOOLS_REMOVE_FROM_TARGET
118+
@# Remove files installed by CMake in TARGET_DIR, that already belongs to the packages
119+
@( \
120+
for manifest in ${@D}/install_manifest_*; \
121+
do \
122+
echo "Removing file(s) included in $${manifest}..."; \
123+
cat $${manifest} | xargs printf -- "$${TARGET_DIR}/%s\n"; \
124+
cat $${manifest} | xargs printf -- "$${TARGET_DIR}/%s\n" | xargs rm; \
125+
done \
126+
)
127+
endef # SIMPLE_OPKG_TOOLS_REMOVE_FROM_TARGET

package/wpe/wpeframework-netflix/wpeframework-netflix.mk

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ WPEFRAMEWORK_NETFLIX_SITE_METHOD = git
2020
WPEFRAMEWORK_NETFLIX_SITE = [email protected]:WebPlatformForEmbedded/WPEPluginNetflix.git
2121
WPEFRAMEWORK_NETFLIX_INSTALL_STAGING = YES
2222

23+
# wpeframework-netflix binary package config
24+
WPEFRAMEWORK_NETFLIX_OPKG_NAME = "wpeframework-netflix"
25+
WPEFRAMEWORK_NETFLIX_OPKG_VERSION = "1.0.0"
26+
WPEFRAMEWORK_NETFLIX_OPKG_ARCHITECTURE = "${BR2_ARCH}"
27+
WPEFRAMEWORK_NETFLIX_OPKG_MAINTAINER = "Metrological"
28+
WPEFRAMEWORK_NETFLIX_OPKG_DESCRIPTION = "WPEFramework Netflix plugin"
29+
2330
WPEFRAMEWORK_NETFLIX_CONF_OPTS += -DBUILD_REFERENCE=${WPEFRAMEWORK_NETFLIX_VERSION}
2431

2532
# TODO: Do not have WPEFRAMEWORK versioning yet
@@ -57,5 +64,22 @@ WPEFRAMEWORK_NETFLIX_DEPENDENCIES += gst1-libav
5764
endif
5865
endif
5966

67+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
68+
69+
WPEFRAMEWORK_NETFLIX_CONF_OPTS += -DWPEFRAMEWORK_CREATE_IPKG_TARGETS=ON
70+
71+
$(call SIMPLE_OPKG_TOOLS_CREATE_CPACK_METADATA,WPEFRAMEWORK_NETFLIX)
72+
WPEFRAMEWORK_NETFLIX_CONF_OPTS += ${WPEFRAMEWORK_NETFLIX_OPKG_CPACK_METADATA}
73+
74+
WPEFRAMEWORK_NETFLIX_POST_BUILD_HOOKS += SIMPLE_OPKG_TOOLS_MAKE_PACKAGE
75+
76+
define WPEFRAMEWORK_NETFLIX_INSTALL_TARGET_CMDS
77+
@# install package
78+
$(call SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE,\
79+
${@D}/${WPEFRAMEWORK_NETFLIX_OPKG_NAME}_${WPEFRAMEWORK_NETFLIX_OPKG_VERSION}_${WPEFRAMEWORK_NETFLIX_OPKG_ARCHITECTURE}.deb)
80+
endef # WPEFRAMEWORK_NETFLIX_INSTALL_TARGET_CMDS
81+
82+
endif # ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
83+
6084
$(eval $(cmake-package))
6185

package/wpe/wpeframework-packager/wpeframework-packager.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
################################################################################
66

7-
WPEFRAMEWORK_PACKAGER_VERSION = 8401322e9fa285373fef5e546fd4db00bed87cf4
7+
WPEFRAMEWORK_PACKAGER_VERSION = 1eb4b913a6c106be71cba84fc0e6cd62dfc3bb25
88
WPEFRAMEWORK_PACKAGER_SITE_METHOD = git
99
WPEFRAMEWORK_PACKAGER_SITE = [email protected]:WebPlatformForEmbedded/WPEPluginPackager.git
1010
WPEFRAMEWORK_PACKAGER_INSTALL_STAGING = YES

package/wpe/wpeframework-plugins/wpeframework-plugins.mk

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ WPEFRAMEWORK_PLUGINS_SITE = $(call github,WebPlatformForEmbedded,WPEFrameworkPlu
99
WPEFRAMEWORK_PLUGINS_INSTALL_STAGING = YES
1010
WPEFRAMEWORK_PLUGINS_DEPENDENCIES = wpeframework libpng
1111

12+
# wpeframework-netflix binary package config
13+
WPEFRAMEWORK_PLUGINS_OPKG_NAME = "wpeframework-plugins"
14+
WPEFRAMEWORK_PLUGINS_OPKG_VERSION = "1.0.0"
15+
WPEFRAMEWORK_PLUGINS_OPKG_ARCHITECTURE = "${BR2_ARCH}"
16+
WPEFRAMEWORK_PLUGINS_OPKG_MAINTAINER = "Metrological"
17+
WPEFRAMEWORK_PLUGINS_OPKG_DESCRIPTION = "WPEFramework plugins"
18+
1219
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DBUILD_REFERENCE=${WPEFRAMEWORK_PLUGINS_VERSION}
1320

1421
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_DEBUG),y)
@@ -478,4 +485,22 @@ endif
478485

479486
endif
480487

488+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
489+
$(call SIMPLE_OPKG_TOOLS_CREATE_CPACK_METADATA,WPEFRAMEWORK_PLUGINS)
490+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += -DWPEFRAMEWORK_CREATE_IPKG_TARGETS=ON
491+
WPEFRAMEWORK_PLUGINS_CONF_OPTS += ${WPEFRAMEWORK_PLUGINS_OPKG_CPACK_METADATA}
492+
493+
WPEFRAMEWORK_PLUGINS_POST_BUILD_HOOKS += SIMPLE_OPKG_TOOLS_MAKE_PACKAGE
494+
WPEFRAMEWORK_PLUGINS_POST_INSTALL_TARGET_HOOKS += WPEFRAMEWORK_PLUGINS_INSTALL_IPKG_CMDS
495+
496+
define WPEFRAMEWORK_PLUGINS_INSTALL_IPKG_CMDS
497+
$(eval PACKAGE_NAME_PREFIX := ${WPEFRAMEWORK_PLUGINS_OPKG_NAME}_${WPEFRAMEWORK_PLUGINS_OPKG_VERSION}_${WPEFRAMEWORK_PLUGINS_OPKG_ARCHITECTURE})
498+
$(call SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE,${@D}/${PACKAGE_NAME_PREFIX}-WPEFrameworkWebKitBrowser.deb)
499+
$(call SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE,${@D}/${PACKAGE_NAME_PREFIX}-WPEInjectedBundle.deb)
500+
501+
$(call SIMPLE_OPKG_TOOLS_REMOVE_FROM_TARGET)
502+
endef # WPEFRAMEWORK_PLUGINS_INSTALL_TARGET_CMDS
503+
504+
endif # ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
505+
481506
$(eval $(cmake-package))

package/wpe/wpeframework/Config.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@ config BR2_PACKAGE_WPEFRAMEWORK_BUILD_TYPE_PRODUCTION
4040

4141
endchoice
4242

43+
config BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS
44+
bool "create ipkg targets"
45+
select BR2_PACKAGE_HOST_OPKG_UTILS
46+
depends on BR2_PACKAGE_WPEFRAMEWORK_PACKAGER
47+
help
48+
Creates from configured targets, a DEBIAN 2.0 (ipk, opk, deb) packages. Configured packages will install theirs
49+
staging file, but not target files on the root filesystem
50+
4351
config BR2_PACKAGE_WPEFRAMEWORK_PORT
4452
string "port"
4553
default "80"

package/wpe/wpewebkit/wpewebkit.mk

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ WPEWEBKIT_USE_PORT=JSCOnly
2727
endif
2828
endif
2929

30+
# wpewebkit binary package config
31+
WPEWEBKIT_OPKG_NAME = "wpewebkit"
32+
WPEWEBKIT_OPKG_VERSION = "0.0.20170728"
33+
WPEWEBKIT_OPKG_ARCHITECTURE = "${BR2_ARCH}"
34+
WPEWEBKIT_OPKG_DEPENDS = ""
35+
WPEWEBKIT_OPKG_MAINTAINER = "Metrological"
36+
WPEWEBKIT_OPKG_PRIORITY = "optional"
37+
WPEWEBKIT_OPKG_SECTION = "graphics"
38+
WPEWEBKIT_OPKG_SOURCE = "${WPEWEBKIT_SITE}"
39+
WPEWEBKIT_OPKG_DESCRIPTION = "This is a description for WPEWebKit package"
40+
3041
WPEWEBKIT_DEPENDENCIES = host-bison host-cmake host-flex host-gperf host-ruby icu pcre
3142

3243
ifeq ($(WPEWEBKIT_BUILD_WEBKIT),y)
@@ -270,6 +281,7 @@ endef
270281

271282
ifeq ($(WPEWEBKIT_BUILD_JSC),y)
272283
define WPEWEBKIT_INSTALL_TARGET_CMDS_JSC
284+
$(INSTALL) -d $(TARGET_DIR)/usr/bin/ && \
273285
cp $(WPEWEBKIT_BUILDDIR)/bin/jsc $(TARGET_DIR)/usr/bin/ && \
274286
$(STRIPCMD) $(TARGET_DIR)/usr/bin/jsc
275287
endef
@@ -279,20 +291,47 @@ endif
279291

280292
ifeq ($(WPEWEBKIT_BUILD_WEBKIT),y)
281293
define WPEWEBKIT_INSTALL_TARGET_CMDS_WEBKIT
294+
$(INSTALL) -d $(TARGET_DIR)/usr/bin/ && \
282295
cp $(WPEWEBKIT_BUILDDIR)/bin/WPE{Network,Storage,Web}Process $(TARGET_DIR)/usr/bin/ && \
283296
cp $(WPEWEBKIT_BUILDDIR)/bin/WPEWebDriver $(TARGET_DIR)/usr/bin/ && \
297+
$(INSTALL) -d $(TARGET_DIR)/usr/lib/ && \
284298
cp -d $(WPEWEBKIT_BUILDDIR)/lib/libWPE* $(TARGET_DIR)/usr/lib/ && \
285299
$(STRIPCMD) $(TARGET_DIR)/usr/lib/libWPEWebKit*.so.*
286300
endef
287301
else
288302
WPEWEBKIT_INSTALL_TARGET_CMDS_WEBKIT = true
289303
endif
290304

305+
ifeq ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
306+
307+
WPEWEBKIT_DEPENDENCIES += ${SIMPLE_OPKG_TOOLS_DEPENDENCIES}
308+
291309
define WPEWEBKIT_INSTALL_TARGET_CMDS
310+
@# prepare package metadata
311+
$(call SIMPLE_OPKG_TOOLS_INIT,WPEWEBKIT,${@D})
312+
313+
@# set install target
314+
$(call SIMPLE_OPKG_TOOLS_SET_TARGET,WPEWEBKIT,${@D})
315+
316+
@# install target files
292317
($(WPEWEBKIT_INSTALL_TARGET_CMDS_JSC) && \
293318
$(WPEWEBKIT_INSTALL_TARGET_CMDS_WEBKIT))
294-
endef
295319

320+
@# build package
321+
$(call SIMPLE_OPKG_TOOLS_BUILD_PACKAGE,${@D})
322+
323+
@# install package
324+
$(call SIMPLE_OPKG_TOOLS_INSTALL_PACKAGE,${@D}/${WPEWEBKIT_OPKG_NAME}_${WPEWEBKIT_OPKG_VERSION}_${WPEWEBKIT_OPKG_ARCHITECTURE}.ipk)
325+
326+
@# set previous TARGET_DIR
327+
$(call SIMPLE_OPKG_TOOLS_UNSET_TARGET,WPEWEBKIT)
328+
endef
329+
else # ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
330+
define WPEWEBKIT_INSTALL_TARGET_CMDS
331+
($(WPEWEBKIT_INSTALL_TARGET_CMDS_JSC) && \
332+
$(WPEWEBKIT_INSTALL_TARGET_CMDS_WEBKIT))
333+
endef
334+
endif # ($(BR2_PACKAGE_WPEFRAMEWORK_CREATE_IPKG_TARGETS),y)
296335
endif
297336

298337
RSYNC_VCS_EXCLUSIONS += --exclude LayoutTests --exclude WebKitBuild

0 commit comments

Comments
 (0)