HybridOS Cross Compile
Table of Contents
- Introduction
- Environment variable
-
Building
- ncurses
- readline
- util-linux
- freetype
- z
- png
- jpeg
- libgpg-error
- libgcrypt
- libxml2
- libxslt
- mtdev
- kmod
- eudev
- libevdev
- libinput
- sqlite3
- chipmunk
- pcre
- fontconfig
- harfbuzz
- libdrm
- libffi
- glib
- minigui
- minigui-res
- pixman
- hicairo
- libcroco
- libpsl
- adwaita-icon-theme
- libsecret
- libproxy
- openjpeg
- atk
- libpango
- hirsvg
- hidriver
- expat
- mesa
- libgmp
- libnettle
- libtasn1
- libunistring
- openssl
- libunbound
- libgnutls
- glib-networking
- libbrotlidec
- libwebp
- libenchant
- libsoup
- libwoff2
- libhyphen
- lzma
- libseccomp
- orc
- icu
- hiwebkit
- mgutils
- mgplus
- mgeff
- mgncs
- jerryscript
- sec_config
- mbedtls
- hiacejs
- hishell
- hiview-render
- mg-samples
- Run
- r818
- px30
Introduction
This article describes how to cross compile HybridOS.
Environment variable
Toolchain
# for arch
export TOOLCHAIN=aarch64-openwrt-linux-gnu
# for path
BSP_DIR=/home/work/cross/r818
export TOOLCHAIN_DIR=$BSP_DIR/prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain
export PATH="$TOOLCHAIN_DIR/bin:$PATH"
# for Output
WEBKIT_TOP_PATH=$(pwd)
WEBKIT_OUTPUT=$WEBKIT_TOP_PATH/Output/HBD/Root
export WEBKIT_INCLUDE_DIR=$WEBKIT_OUTPUT/include
export WEBKIT_LIB_DIR=$WEBKIT_OUTPUT/lib
export SYSROOT_DIR=$WEBKIT_OUTPUT
#export STAGING_DIR=$WEBKIT_OUTPUT
# for gcc
export AR="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ar"
export AS="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-as.bin"
export LD="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ld.bin"
export NM="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-nm"
export CC="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-gcc.bin --sysroot=$SYSROOT_DIR"
export GCC="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-gcc.bin --sysroot=$SYSROOT_DIR"
export CPP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-cpp.bin --sysroot=$SYSROOT_DIR"
export CXX="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-g++.bin --sysroot=$SYSROOT_DIR"
export RANLIB="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ranlib"
export STRIP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-strip"
export OBJCOPY="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-objcopy"
export OBJDUMP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-objdump"
export SIZE="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-size"
# for pkg_config
export PKG_CONFIG_SYSROOT_DIR=$SYSROOT_DIR
export PKG_CONFIG="/usr/bin/pkg-config"
export PKG_CONFIG_PATH="$SYSROOT_DIR/usr/lib/pkgconfig:$SYSROOT_DIR/usr/share/pkgconfig"
export PKG_CONFIG_LIBDIR="$SYSROOT_DIR/usr/lib/pkgconfig:$SYSROOT_DIR/usr/share/pkgconfig"
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
# for cmake
export CMAKE_INCLUDE_PATH=$SYSROOT_DIR/usr/include
export CMAKE_LIBRARY_PATH=$SYSROOT_DIR/usr/lib:$SYSROOT_DIR/lib
Autotools
# for common compile options
COMMON_CFLAGS="-I$SYSROOT_DIR/usr/include -I$SYSROOT_DIR/usr/include/freetype2 -I$SYSROOT_DIR/usr/include/GL -I$SYSROOT_DIR/usr/include/glib-2.0 \
-I$SYSROOT_DIR/usr/lib/glib-2.0/include -I$SYSROOT_DIR/usr/include/harfbuzz -I$SYSROOT_DIR/usr/include/cairo -I$SYSROOT_DIR/usr/include/librsvg-2.0 --sysroot=$SYSROOT_DIR -O2"
COMMON_CXXFLAGS=$COMMON_CFLAGS
COMMON_CCFLAGS=$COMMON_CFLAGS
COMMON_LDFLAGS="-Wl,-rpath-link,$SYSROOT_DIR/lib:$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/lib --sysroot=$SYSROOT_DIR -O2 -Wl,-rpath,$SYSROOT_DIR/usr/lib"
COMMON_OPTION="--host=aarch64-linux-gnu --target=aarch64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no"
CMake
- rockchip.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm64)
set(CMAKE_SYSROOT /home/work/cross/hybirdosR818/Output/HBD/Root/)
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_STAGING_PREFIX "/usr")
set(CMAKE_PREFIX_PATH ${CMAKE_SYSROOT})
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
set(TOOL_CHAIN_DIR /home/work/cross/r818//prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain)
set(CMAKE_C_COMPILER ${TOOL_CHAIN_DIR}/bin/aarch64-openwrt-linux-gnu-gcc.bin)
set(CMAKE_CXX_COMPILER ${TOOL_CHAIN_DIR}/bin/aarch64-openwrt-linux-gnu-g++.bin)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/include" CACHE INTERNAL "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/include" CACHE INTERNAL "" FORCE)
INCLUDE_DIRECTORIES(${CMAKE_SYSROOT}/usr/include /home/work/cross/hybirdosR818/Output/HBD/Root/usr/include ${CMAKE_SYSROOT}/usr/include/freetype2 ${CMAKE_SYSROOT}/usr/include/GL ${CMAKE_SYSROOT}/usr/include/glib-2.0 ${CMAKE_SYSROOT}/usr/lib/glib-2.0/include ${CMAKE_SYSROOT}/usr/include/harfbuzz ${CMAKE_SYSROOT}/usr/include/cairo)
LINK_DIRECTORIES(${CMAKE_SYSROOT}/lib ${CMAKE_SYSROOT}/usr/lib)
set(CMAKE_LIBRARY_PATH
${CMAKE_SYSROOT}/usr/lib
${CMAKE_SYSROOT}/lib
)
ADD_COMPILE_OPTIONS(--sysroot=${CMAKE_SYSROOT})
set(CMAKE_FIND_ROOT_PATH "${CMAKE_SYSROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
#TARGET_LINK_LIBRARIES()
#ADD_DEFINITIONS(
# -O3 -g -W -Wall
# -Wunused-variable -Wunused-parameter -Wunused-function -Wunused
# -Wno-deprecated -Woverloaded-virtual -Wwrite-strings
# -D__WUR= -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DTIXML_USE_STL
#)
- hiwebkit.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm64)
set(CMAKE_SYSROOT /home/xue/work/cross/hybirdosR818/Output/HBD/Root/)
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_STAGING_PREFIX "/usr")
set(CMAKE_PREFIX_PATH ${CMAKE_SYSROOT})
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
set(TOOL_CHAIN_DIR /home/xue/work/cross/r818//prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain)
set(CMAKE_C_COMPILER ${TOOL_CHAIN_DIR}/bin/aarch64-openwrt-linux-gnu-gcc.bin)
set(CMAKE_CXX_COMPILER ${TOOL_CHAIN_DIR}/bin/aarch64-openwrt-linux-gnu-g++.bin)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/include" CACHE INTERNAL "" FORCE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/include" CACHE INTERNAL "" FORCE)
INCLUDE_DIRECTORIES(${CMAKE_SYSROOT}/usr/include /home/xue/work/cross/hybirdosR818/Output/HBD/Root/usr/include ${CMAKE_SYSROOT}/usr/include/freetype2 ${CMAKE_SYSROOT}/usr/include/GL ${CMAKE_SYSROOT}/usr/include/glib-2.0 ${CMAKE_SYSROOT}/usr/lib/glib-2.0/include ${CMAKE_SYSROOT}/usr/include/harfbuzz ${CMAKE_SYSROOT}/usr/include/cairo)
LINK_DIRECTORIES(${CMAKE_SYSROOT}/lib ${CMAKE_SYSROOT}/usr/lib)
set(CMAKE_LIBRARY_PATH
${CMAKE_SYSROOT}/usr/lib
${CMAKE_SYSROOT}/lib
)
ADD_COMPILE_OPTIONS(--sysroot=${CMAKE_SYSROOT} -g -rdynamic -funwind-tables)
set(CMAKE_FIND_ROOT_PATH "${CMAKE_SYSROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
#TARGET_LINK_LIBRARIES()
#ADD_DEFINITIONS(
# -O3 -g -W -Wall
# -Wunused-variable -Wunused-parameter -Wunused-function -Wunused
# -Wno-deprecated -Woverloaded-virtual -Wwrite-strings
# -D__WUR= -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DTIXML_USE_STL
#)
- OptionsHBD.cmake
include(GNUInstallDirs)
include(VersioningUtils)
WEBKIT_OPTION_BEGIN()
SET_PROJECT_VERSION(2 29 1)
set(WEBKITHBD_API_VERSION 1.0)
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT 83 0 46)
CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 35 1 17)
# These are shared variables, but we special case their definition so that we can use the
# CMAKE_INSTALL_* variables that are populated by the GNUInstallDirs macro.
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE PATH "Absolute path to library installation directory")
set(EXEC_INSTALL_DIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE PATH "Absolute path to executable installation directory")
set(LIBEXEC_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBEXECDIR}/webkit2hbd-${WEBKITHBD_API_VERSION}" CACHE PATH "Absolute path to install executables executed by the library")
set(WEBKITHBD_HEADER_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/hiwebkit")
set(INTROSPECTION_INSTALL_GIRDIR "${CMAKE_INSTALL_FULL_DATADIR}/gir-1.0")
set(INTROSPECTION_INSTALL_TYPELIBDIR "${LIB_INSTALL_DIR}/girepository-1.0")
set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
if (USER_AGENT_BRANDING)
add_definitions(-DUSER_AGENT_BRANDING="${USER_AGENT_BRANDING}")
endif ()
find_package(Cairo 1.14.0 REQUIRED)
find_package(Fontconfig 2.8.0 REQUIRED)
find_package(Freetype 2.4.2 REQUIRED)
find_package(LibGcrypt 1.6.0 REQUIRED)
find_package(GLIB 2.44.0 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule)
#find_package(GTK ${GTK_MINIMUM_VERSION} REQUIRED OPTIONAL_COMPONENTS unix-print)
find_package(HarfBuzz 0.9.18 REQUIRED COMPONENTS ICU)
find_package(ICU 60.2 REQUIRED COMPONENTS data i18n uc)
find_package(MiniGUI 5.0.2 REQUIRED)
find_package(JPEG REQUIRED)
find_package(LibSoup 2.54.0 REQUIRED)
find_package(LibXml2 2.8.0 REQUIRED)
find_package(PNG REQUIRED)
find_package(SQLite3 REQUIRED)
find_package(Mysqlclient REQUIRED)
find_package(Threads REQUIRED)
find_package(ZLIB REQUIRED)
find_package(ATK 2.16.0 REQUIRED)
find_package(WebP REQUIRED COMPONENTS demux)
find_package(ATSPI 2.5.3)
find_package(EGL)
find_package(OpenGL)
find_package(OpenGLES2)
include(GStreamerDefinitions)
SET_AND_EXPOSE_TO_BUILD(USE_ATK TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_XDGMIME TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_GCRYPT TRUE)
if (WTF_CPU_ARM OR WTF_CPU_MIPS)
SET_AND_EXPOSE_TO_BUILD(USE_CAPSTONE ${DEVELOPER_MODE})
endif ()
# For old versions of HarfBuzz that do not expose an API for the OpenType MATH
# table, we enable our own code to parse that table.
if ("${PC_HARFBUZZ_VERSION}" VERSION_LESS "1.3.3")
add_definitions(-DENABLE_OPENTYPE_MATH=1)
endif ()
# Set the default value for ENABLE_GLES2 automatically.
# We are not enabling or disabling automatically a feature here, because
# the feature is by default always on (ENABLE_GRAPHICS_CONTEXT_GL=ON).
# What we select here automatically is if we use OPENGL (ENABLE_GLES2=OFF)
# or OPENGLES2 (ENABLE_GLES2=ON) for building the feature.
set(ENABLE_GLES2_DEFAULT OFF)
if (NOT OPENGL_FOUND AND OPENGLES2_FOUND)
set(ENABLE_GLES2_DEFAULT ON)
endif ()
# Public options specific to the HBD port. Do not add any options here unless
# there is a strong reason we should support changing the value of the option,
# and the option is not relevant to any other WebKit ports.
WEBKIT_OPTION_DEFINE(ENABLE_GLES2 "Whether to enable OpenGL ES 2.0." PUBLIC ${ENABLE_GLES2_DEFAULT})
#WEBKIT_OPTION_DEFINE(ENABLE_GTKDOC "Whether or not to use generate gtkdoc." PUBLIC OFF)
WEBKIT_OPTION_DEFINE(ENABLE_INTROSPECTION "Whether to enable GObject introspection." PUBLIC OFF)
WEBKIT_OPTION_DEFINE(ENABLE_GRAPHICS_CONTEXT_GL "Whether to use OpenGL." PUBLIC OFF)
#WEBKIT_OPTION_DEFINE(ENABLE_QUARTZ_TARGET "Whether to enable support for the Quartz windowing target." PUBLIC ${GTK_SUPPORTS_QUARTZ})
#WEBKIT_OPTION_DEFINE(ENABLE_X11_TARGET "Whether to enable support for the X11 windowing target." PUBLIC ${GTK_SUPPORTS_X11})
#WEBKIT_OPTION_DEFINE(ENABLE_WAYLAND_TARGET "Whether to enable support for the Wayland windowing target." PUBLIC ${GTK_SUPPORTS_WAYLAND})
WEBKIT_OPTION_DEFINE(USE_LIBNOTIFY "Whether to enable the default web notification implementation." PUBLIC OFF)
WEBKIT_OPTION_DEFINE(USE_LIBHYPHEN "Whether to enable the default automatic hyphenation implementation." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_LIBSECRET "Whether to enable the persistent credential storage using libsecret." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_OPENJPEG "Whether to enable support for JPEG2000 images." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_WOFF2 "Whether to enable support for WOFF2 Web Fonts." PUBLIC ON)
WEBKIT_OPTION_DEFINE(USE_WPE_RENDERER "Whether to enable WPE rendering" PUBLIC OFF)
WEBKIT_OPTION_DEFINE(USE_SYSTEMD "Whether to enable journald logging" PUBLIC OFF)
# Private options specific to the HBD port. Changing these options is
# completely unsupported. They are intended for use only by WebKit developers.
WEBKIT_OPTION_DEFINE(USE_ANGLE_WEBGL "Whether to use ANGLE as WebGL backend." PRIVATE OFF)
# FIXME: Can we use cairo-glesv2 to avoid this conflict?
WEBKIT_OPTION_CONFLICT(ENABLE_ACCELERATED_2D_CANVAS ENABLE_GLES2)
WEBKIT_OPTION_DEPEND(ENABLE_3D_TRANSFORMS ENABLE_GRAPHICS_CONTEXT_GL)
WEBKIT_OPTION_DEPEND(ENABLE_ACCELERATED_2D_CANVAS ENABLE_GRAPHICS_CONTEXT_GL)
WEBKIT_OPTION_DEPEND(ENABLE_ASYNC_SCROLLING ENABLE_GRAPHICS_CONTEXT_GL)
WEBKIT_OPTION_DEPEND(ENABLE_GLES2 ENABLE_GRAPHICS_CONTEXT_GL)
WEBKIT_OPTION_DEPEND(ENABLE_WEBGL ENABLE_GRAPHICS_CONTEXT_GL)
WEBKIT_OPTION_DEPEND(USE_ANGLE_WEBGL ENABLE_WEBGL)
WEBKIT_OPTION_DEPEND(USE_WPE_RENDERER ENABLE_GRAPHICS_CONTEXT_GL)
#WEBKIT_OPTION_DEPEND(USE_WPE_RENDERER ENABLE_WAYLAND_TARGET)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIVIEW_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIMETER_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIHAND_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIPICKER_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIITEM_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PARAMLIST_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIDATAMAP_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIDATABIND_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_HIL10N_ELEMENT PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RSQL PUBLIC ON)
SET_AND_EXPOSE_TO_BUILD(ENABLE_DEVELOPER_MODE ${DEVELOPER_MODE})
if (DEVELOPER_MODE)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE ON)
else ()
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS PRIVATE OFF)
endif ()
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE ON)
else ()
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER PRIVATE OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_USAGE PRIVATE OFF)
endif ()
if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT EXISTS "/.flatpak-info")
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC ON)
else ()
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BUBBLEWRAP_SANDBOX PUBLIC OFF)
endif ()
# Enable variation fonts when cairo >= 1.16, fontconfig >= 2.13.0, freetype >= 2.9.0 and harfbuzz >= 1.4.2.
if (("${PC_CAIRO_VERSION}" VERSION_GREATER "1.16.0" OR "${PC_CAIRO_VERSION}" STREQUAL "1.16.0")
AND ("${PC_FONTCONFIG_VERSION}" VERSION_GREATER "2.13.0" OR "${PC_FONTCONFIG_VERSION}" STREQUAL "2.13.0")
AND ("${FREETYPE_VERSION_STRING}" VERSION_GREATER "2.9.0" OR "${FREETYPE_VERSION_STRING}" STREQUAL "2.9.0")
AND ("${PC_HARFBUZZ_VERSION}" VERSION_GREATER "1.4.2" OR "${PC_HARFBUZZ_VERSION}" STREQUAL "1.4.2"))
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VARIATION_FONTS PRIVATE ON)
endif ()
# Public options shared with other WebKit ports. Do not add any options here
# without approval from a HBD reviewer. There must be strong reason to support
# changing the value of the option.
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ACCELERATED_2D_CANVAS PUBLIC OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ASYNC_SCROLLING PRIVATE OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_CRYPTO PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBDRIVER PUBLIC ON)
# Private options shared with other WebKit ports. Add options here when
# we need a value different from the default defined in WebKitFeatures.cmake.
# Changing these options is completely unsupported.
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_AUTOCAPITALIZE PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CONTENT_EXTENSIONS PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_CONIC_GRADIENTS PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_PAINTING_API PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_TYPED_OM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CURSOR_VISIBILITY PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DARK_MODE_CSS PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ENCRYPTED_MEDIA PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTPDIR PRIVATE OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GAMEPAD PRIVATE OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GPU_PROCESS PRIVATE OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LAYOUT_FORMATTING_CONTEXT PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MOUSE_CURSOR_SCALE PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_CACHE_STALE_WHILE_REVALIDATE PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFSCREEN_CANVAS PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PERIODIC_MEMORY_MONITOR PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_POINTER_LOCK PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_RESOURCE_LOAD_STATISTICS PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SERVICE_WORKER PRIVATE ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHAREABLE_RESOURCE PUBLIC ON)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_RTC PRIVATE ${ENABLE_EXPERIMENTAL_FEATURES})
include(GStreamerDependencies)
# Finalize the value for all options. Do not attempt to use an option before
# this point, and do not attempt to change any option after this point.
WEBKIT_OPTION_END()
#SET_AND_EXPOSE_TO_BUILD(WTF_PLATFORM_QUARTZ ${ENABLE_QUARTZ_TARGET})
#SET_AND_EXPOSE_TO_BUILD(WTF_PLATFORM_X11 ${ENABLE_X11_TARGET})
#SET_AND_EXPOSE_TO_BUILD(WTF_PLATFORM_WAYLAND ${ENABLE_WAYLAND_TARGET})
if (ENABLE_NETSCAPE_PLUGIN_API)
# MOZ_X11 and XP_UNIX are required by npapi.h. Their value is not checked;
# only their definedness is. They should only be defined in the true case.
# if (ENABLE_X11_TARGET)
# SET_AND_EXPOSE_TO_BUILD(MOZ_X11 1)
# endif ()
SET_AND_EXPOSE_TO_BUILD(XP_UNIX 1)
endif ()
SET_AND_EXPOSE_TO_BUILD(ENABLE_PLUGIN_PROCESS ${ENABLE_NETSCAPE_PLUGIN_API})
add_definitions(-DBUILDING_HBD__=1)
add_definitions(-DGETTEXT_PACKAGE="WebKit2HBD-${WEBKITHBD_API_VERSION}")
add_definitions(-DWEBKITHBD_API_VERSION_STRING="${WEBKITHBD_API_VERSION}")
add_definitions(-DJSC_GLIB_API_ENABLED)
set(MINIGUI_LIBRARIES ${MiniGUI_LIBRARIES})
set(MINIGUI_INCLUDE_DIRS ${MiniGUI_INCLUDE_DIRS})
if (EXISTS "${TOOLS_DIR}/glib/svn-revision")
execute_process(COMMAND ${TOOLS_DIR}/glib/svn-revision ERROR_QUIET OUTPUT_VARIABLE SVN_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE)
else ()
set(SVN_REVISION "tarball")
endif ()
add_definitions(-DSVN_REVISION="${SVN_REVISION}")
#SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_UNIX_PRINTING ${GTK_UNIX_PRINT_FOUND})
if (USE_WPE_RENDERER)
find_package(WPE 1.3.0)
if (NOT WPE_FOUND)
message(FATAL_ERROR "libwpe is required for USE_WPE_RENDERER")
endif ()
find_package(WPEBackend_fdo 1.3.1)
if (NOT WPEBACKEND_FDO_FOUND)
message(FATAL_ERROR "WPEBackend-fdo is required for USE_WPE_RENDERER")
endif ()
endif ()
if (ENABLE_GAMEPAD)
find_package(Manette 0.2.4)
if (NOT Manette_FOUND)
message(FATAL_ERROR "libmanette is required for ENABLE_GAMEPAD")
endif ()
SET_AND_EXPOSE_TO_BUILD(USE_MANETTE TRUE)
endif ()
if (ENABLE_XSLT)
find_package(LibXslt 1.1.7 REQUIRED)
endif ()
if (ENABLE_ACCELERATED_2D_CANVAS)
if (GLX_FOUND)
list(APPEND CAIROGL_COMPONENTS cairo-glx)
endif ()
if (EGL_FOUND)
list(APPEND CAIROGL_COMPONENTS cairo-egl)
endif ()
find_package(CairoGL 1.10.2 COMPONENTS ${CAIROGL_COMPONENTS})
if (NOT CAIROGL_FOUND)
message(FATAL_ERROR "CairoGL is needed for ENABLE_ACCELERATED_2D_CANVAS")
endif ()
endif ()
if (USE_LIBSECRET)
find_package(Libsecret)
if (NOT LIBSECRET_FOUND)
message(FATAL_ERROR "libsecret is needed for USE_LIBSECRET")
endif ()
endif ()
if (ENABLE_INTROSPECTION)
find_package(GObjectIntrospection)
if (NOT INTROSPECTION_FOUND)
message(FATAL_ERROR "GObjectIntrospection is needed for ENABLE_INTROSPECTION.")
endif ()
endif ()
if (ENABLE_WEB_CRYPTO)
find_package(Libtasn1 REQUIRED)
if (NOT LIBTASN1_FOUND)
message(FATAL_ERROR "libtasn1 is required to enable Web Crypto API support.")
endif ()
if (LIBGCRYPT_VERSION VERSION_LESS 1.7.0)
message(FATAL_ERROR "libgcrypt 1.7.0 is required to enable Web Crypto API support.")
endif ()
endif ()
if (ENABLE_WEBDRIVER)
SET_AND_EXPOSE_TO_BUILD(ENABLE_WEBDRIVER_KEYBOARD_INTERACTIONS ON)
SET_AND_EXPOSE_TO_BUILD(ENABLE_WEBDRIVER_MOUSE_INTERACTIONS ON)
SET_AND_EXPOSE_TO_BUILD(ENABLE_WEBDRIVER_TOUCH_INTERACTIONS OFF)
endif ()
SET_AND_EXPOSE_TO_BUILD(USE_TEXTURE_MAPPER TRUE)
if (ENABLE_GRAPHICS_CONTEXT_GL)
# ENABLE_GRAPHICS_CONTEXT_GL is true if either USE_OPENGL or ENABLE_GLES2 is true.
# But USE_OPENGL is the opposite of ENABLE_GLES2.
if (ENABLE_GLES2)
find_package(OpenGLES2 REQUIRED)
SET_AND_EXPOSE_TO_BUILD(USE_OPENGL_ES TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_OPENGL FALSE)
if (NOT EGL_FOUND)
message(FATAL_ERROR "EGL is needed for ENABLE_GLES2.")
endif ()
else ()
if (NOT OPENGL_FOUND)
message(FATAL_ERROR "Either OpenGL or OpenGLES2 is needed for ENABLE_GRAPHICS_CONTEXT_GL.")
endif ()
SET_AND_EXPOSE_TO_BUILD(USE_OPENGL TRUE)
endif ()
if (NOT EGL_FOUND AND (NOT ENABLE_X11_TARGET OR NOT GLX_FOUND))
message(FATAL_ERROR "Either GLX or EGL is needed for ENABLE_GRAPHICS_CONTEXT_GL.")
endif ()
SET_AND_EXPOSE_TO_BUILD(USE_TEXTURE_MAPPER_GL TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_EGL ${EGL_FOUND})
if (ENABLE_X11_TARGET AND GLX_FOUND AND USE_OPENGL)
SET_AND_EXPOSE_TO_BUILD(USE_GLX TRUE)
endif ()
SET_AND_EXPOSE_TO_BUILD(USE_COORDINATED_GRAPHICS TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_NICOSIA TRUE)
endif ()
if (USE_ANGLE_WEBGL)
SET_AND_EXPOSE_TO_BUILD(USE_ANGLE TRUE)
SET_AND_EXPOSE_TO_BUILD(USE_ANGLE_EGL TRUE)
endif ()
if (ENABLE_SPELLCHECK)
find_package(Enchant)
if (NOT PC_ENCHANT_FOUND)
message(FATAL_ERROR "Enchant is needed for ENABLE_SPELLCHECK")
endif ()
endif ()
if (ENABLE_QUARTZ_TARGET)
if (NOT GTK_SUPPORTS_QUARTZ)
message(FATAL_ERROR "Recompile GTK with Quartz backend to use ENABLE_QUARTZ_TARGET")
endif ()
endif ()
if (ENABLE_X11_TARGET)
if (NOT GTK_SUPPORTS_X11)
message(FATAL_ERROR "Recompile GTK with X11 backend to use ENABLE_X11_TARGET")
endif ()
find_package(X11 REQUIRED)
if (NOT X11_Xcomposite_FOUND)
message(FATAL_ERROR "libXcomposite is required for ENABLE_X11_TARGET")
elseif (NOT X11_Xdamage_FOUND)
message(FATAL_ERROR "libXdamage is required for ENABLE_X11_TARGET")
elseif (NOT X11_Xrender_FOUND)
message(FATAL_ERROR "libXrender is required for ENABLE_X11_TARGET")
elseif (NOT X11_Xt_FOUND)
message(FATAL_ERROR "libXt is required for ENABLE_X11_TARGET")
endif ()
endif ()
if (ENABLE_WAYLAND_TARGET)
if (NOT GTK_SUPPORTS_WAYLAND)
message(FATAL_ERROR "Recompile GTK with Wayland backend to use ENABLE_WAYLAND_TARGET")
endif ()
if (NOT EGL_FOUND)
message(FATAL_ERROR "EGL is required to use ENABLE_WAYLAND_TARGET")
endif ()
find_package(Wayland REQUIRED)
find_package(WaylandProtocols 1.12 REQUIRED)
endif ()
if (USE_LIBNOTIFY)
find_package(LibNotify)
if (NOT LIBNOTIFY_FOUND)
message(FATAL_ERROR "libnotify is needed for USE_LIBNOTIFY.")
endif ()
endif ()
if (USE_LIBHYPHEN)
find_package(Hyphen)
if (NOT HYPHEN_FOUND)
message(FATAL_ERROR "libhyphen is needed for USE_LIBHYPHEN.")
endif ()
endif ()
if (USE_OPENJPEG)
find_package(OpenJPEG 2.2.0)
if (NOT OpenJPEG_FOUND)
message(FATAL_ERROR "libopenjpeg 2.2.0 is required for USE_OPENJPEG.")
endif ()
endif ()
if (USE_WOFF2)
find_package(WOFF2Dec 1.0.2)
if (NOT WOFF2DEC_FOUND)
message(FATAL_ERROR "libwoff2dec is needed for USE_WOFF2.")
endif ()
endif ()
if (USE_SYSTEMD)
find_package(Systemd)
if (Systemd_FOUND)
message(STATUS "Release logs will be sent to the Systemd journal")
SET_AND_EXPOSE_TO_BUILD(USE_JOURNALD TRUE)
else ()
message(FATAL_ERROR "libsystemd is needed for USE_SYSTEMD")
endif ()
endif ()
# https://bugs.webkit.org/show_bug.cgi?id=182247
if (ENABLED_COMPILER_SANITIZERS)
set(ENABLE_INTROSPECTION OFF)
endif ()
# Override the cached variable, gtk-doc does not really work when building on Mac.
if (APPLE)
set(ENABLE_GTKDOC OFF)
endif ()
set(DERIVED_SOURCES_WEBKITHBD_DIR ${DERIVED_SOURCES_DIR}/webkithbd)
set(DERIVED_SOURCES_WEBKITHBD_API_DIR ${DERIVED_SOURCES_WEBKITHBD_DIR}/webkit)
set(DERIVED_SOURCES_WEBKIT2HBD_DIR ${DERIVED_SOURCES_DIR}/webkit2hbd)
set(DERIVED_SOURCES_WEBKIT2HBD_API_DIR ${DERIVED_SOURCES_WEBKIT2HBD_DIR}/webkit2)
set(DERIVED_SOURCES_JAVASCRIPCOREHBD_DIR ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/javascriptcorehbd)
set(DERIVED_SOURCES_JAVASCRIPCORE_GLIB_API_DIR ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/javascriptcorehbd/jsc)
set(FORWARDING_HEADERS_WEBKIT2HBD_DIR ${FORWARDING_HEADERS_DIR}/webkit2hbd)
set(FORWARDING_HEADERS_WEBKIT2HBD_VERSIONED_DIR ${FORWARDING_HEADERS_DIR}/webkit2hbd-${WEBKITHBD_API_VERSION})
set(FORWARDING_HEADERS_WEBKIT2HBD_EXTENSION_DIR ${FORWARDING_HEADERS_DIR}/webkit2hbd-webextension)
set(JavaScriptCore_PKGCONFIG_FILE ${CMAKE_BINARY_DIR}/Source/JavaScriptCore/javascriptcorehbd-${WEBKITHBD_API_VERSION}.pc)
set(WebKit2_PKGCONFIG_FILE ${CMAKE_BINARY_DIR}/Source/WebKit/webkit2hbd-${WEBKITHBD_API_VERSION}.pc)
set(WebKit2WebExtension_PKGCONFIG_FILE ${CMAKE_BINARY_DIR}/Source/WebKit/webkit2hbd-web-extension-${WEBKITHBD_API_VERSION}.pc)
set(JavaScriptCore_LIBRARY_TYPE SHARED)
set(SHOULD_INSTALL_JS_SHELL ON)
# Add a typelib file to the list of all typelib dependencies. This makes it easy to
# expose a 'gir' target with all gobject-introspection files.
macro(ADD_TYPELIB typelib)
if (ENABLE_INTROSPECTION)
get_filename_component(target_name ${typelib} NAME_WE)
add_custom_target(${target_name}-gir ALL DEPENDS ${typelib})
list(APPEND GObjectIntrospectionTargets ${target_name}-gir)
set(GObjectIntrospectionTargets ${GObjectIntrospectionTargets} PARENT_SCOPE)
endif ()
endmacro()
# CMake does not automatically add --whole-archive when building shared objects from
# a list of convenience libraries. This can lead to missing symbols in the final output.
# We add --whole-archive to all libraries manually to prevent the linker from trimming
# symbols that we actually need later. With ld64 on darwin, we use -all_load instead.
macro(ADD_WHOLE_ARCHIVE_TO_LIBRARIES _list_name)
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
list(APPEND ${_list_name} -Wl,-all_load)
else ()
set(_tmp)
foreach (item IN LISTS ${_list_name})
if ("${item}" STREQUAL "PRIVATE" OR "${item}" STREQUAL "PUBLIC")
list(APPEND _tmp "${item}")
else ()
list(APPEND _tmp -Wl,--whole-archive "${item}" -Wl,--no-whole-archive)
endif ()
endforeach ()
set(${_list_name} ${_tmp})
endif ()
endmacro()
include(BubblewrapSandboxChecks)
include(GStreamerChecks)
Meson
- meson_tools.txt
[constants]
arch = 'aarch64-openwrt-linux-gnu'
[binaries]
c = ['ccache', 'TOOLCHAIN/bin/aarch64-openwrt-linux-gnu-gcc.bin']
cpp = ['ccache', 'TOOLCHAIN/bin/aarch64-openwrt-linux-gnu-g++.bin']
c_ld = 'bfd'
cpp_ld = 'bfd'
ar = 'TOOLCHAIN/bin/aarch64-openwrt-linux-gnu-ar'
strip = 'TOOLCHAIN/bin/aarch64-openwrt-linux-gnu-strip'
#c_ld = 'TOOLCHAIN/bin/aarch64-openwrt-linux-gnu-ld'
#cpp_ld = 'TOOLCHAIN/bin/aarch64-openwrt-linux-gnu-ld'
pkgconfig = '/usr/bin/pkg-config'
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'ROCKCHIP-ARMv8'
endian = 'little'
[build_machine]
system = 'linux'
cpu_family = 'x86_64'
cpu = 'i686'
endian = 'little'
[properties]
c_args = ['-ISYSROOT_DIR/usr/include', '-ISYSROOT_DIR/usr/include/freetype2', '-ISYSROOT_DIR/usr/include/GL', '-ISYSROOT_DIR/usr/include/glib-2.0', '-ISYSROOT_DIR/usr/lib/glib-2.0/include', '-ISYSROOT_DIR/usr/include/harfbuzz', '-ISYSROOT_DIR/usr/include/cairo', '--sysroot=SYSROOT_DIR', '-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64']
c_link_args = ['-Wl,-rpath-link,SYSROOT_DIR/lib:SYSROOT_DIR/usr/lib', '-LSYSROOT_DIR/usr/lib', '-LSYSROOT_DIR/lib', '--sysroot=SYSROOT_DIR']
cpp_args = ['-ISYSROOT_DIR/usr/include', '-ISYSROOT_DIR/usr/include/freetype2', '-ISYSROOT_DIR/usr/include/GL', '-ISYSROOT_DIR/usr/include/glib-2.0', '-ISYSROOT_DIR/usr/lib/glib-2.0/include', '-ISYSROOT_DIR/usr/include/harfbuzz', '-ISYSROOT_DIR/usr/include/cairo', '--sysroot=SYSROOT_DIR', '-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64']
cpp_link_args = ['-Wl,-rpath-link,SYSROOT_DIR/lib:SYSROOT_DIR/usr/lib', '-LSYSROOT_DIR/usr/lib', '-LSYSROOT_DIR/lib', '--sysroot=SYSROOT_DIR']
sys_root = 'SYSROOT_DIR'
pkg_config_libdir = 'SYSROOT_DIR/usr/lib/pkgconfig:SYSROOT_DIR/usr/share/pkgconfig'
[paths]
libdir = '/usr/lib'
prefix = '/usr'
[built-in options]
#c_std = 'c11'
Building
ncurses
wget -c https://invisible-mirror.net/archives/ncurses/ncurses-6.0.tar.gz -P ./dl/
cd ./Source/
tar xvf ../dl/ncurses-6.0.tar.gz
cd ncurses-6.0
patch -p1 < ../../patch/ncurses-6.0/0001-gcc-5.x-MKlib_gen.patch
patch -p1 < ../../patch/ncurses-6.0/0002-recognise-uclinux.patch
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --without-cxx --without-cxx-binding --without-ada --without-tests --disable-big-core --without-profile --disable-rpath --disable-rpath-hack --enable-echo --enable-const --enable-overwrite --enable-pc-files --with-pkg-config-libdir=/usr/lib/pkgconfig --without-progs --without-manpages --with-shared --without-normal --without-gpm --without-debug
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make V=1 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
readline
wget -c ftp://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz -P ./Source/
cd ./Source/
tar xvf readline-7.0.tar.gz
cd readline-7.0
patch -p1 < ../../patch/readline-7.0/0000-curses-link.patch
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make V=1 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
util-linux
# libuuid libmount libblkid
# rebuild utils-linux to remove some error in rootfs
wget -c http://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-2.35.tar.xz -P ./dl
cd ./Source
rm -rf util-linux-2.35
tar xvf ../dl/util-linux-2.35.tar.xz
cd util-linux-2.35
./autogen.sh
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-rpath --disable-makeinstall-chown --without-systemd --with-systemdsystemunitdir=no --without-ncursesw --with-ncurses --disable-widechar --without-selinux --disable-all-programs --disable-agetty --disable-bfs --disable-cal --disable-chfn-chsh --disable-chmem --disable-cramfs --disable-eject --disable-fallocate --disable-fdformat --disable-fsck --disable-hwclock --disable-ipcrm --disable-ipcs --disable-kill --disable-last --enable-libblkid --disable-libfdisk --enable-libmount --disable-libsmartcols --enable-libuuid --disable-line --disable-logger --disable-login --disable-losetup --disable-lslogins --disable-lsmem --disable-mesg --disable-minix --disable-more --disable-mount --disable-mountpoint --disable-newgrp --disable-nologin --disable-nsenter --disable-partx --disable-pg --disable-pivot_root --disable-raw --disable-rename --disable-rfkill --disable-runuser --disable-schedutils --disable-setpriv --disable-setterm --disable-su --disable-sulogin --disable-switch_root --disable-tunelp --disable-ul --disable-unshare --disable-utmpdump --disable-uuidd --disable-vipw --disable-wall --disable-wdctl --disable-write --disable-zramctl --without-python --with-readline --without-audit
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
freetype
# libfreetype
# for freetype
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/freetype/freetype-2.9.1.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/freetype-2.9.1.tar.bz2
cd freetype-2.9.1
export TOP_DIR=$(pwd)
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-harfbuzz=no
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
export TOP_DIR=
cd ../../
z
wget -c http://www.zlib.net/zlib-1.2.11.tar.xz -P ./dl/
cd Source
tar xvf ../dl/zlib-1.2.11.tar.xz
cd zlib-1.2.11
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure --prefix=/usr
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
png
wget -c https://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.34/libpng-1.6.34.tar.xz -P ./dl/
cd Source
tar xvf ../dl/libpng-1.6.34.tar.xz
cd libpng-1.6.34
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
jpeg
wget -c http://www.ijg.org/files/jpegsrc.v9d.tar.gz -P ./dl/
cd Source
tar xvf ../dl/jpegsrc.v9d.tar.gz
cd jpeg-9d
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../
libgpg-error
# for libgpg-error
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libgpg-error/libgpg-error-1.36.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/libgpg-error-1.36.tar.bz2
cd libgpg-error-1.36
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libgcrypt
# for libgcrypt
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libgcrypt/libgcrypt-1.8.4.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/libgcrypt-1.8.4.tar.bz2
cd libgcrypt-1.8.4
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libxml2
wget -c ftp://xmlsoft.org/libxml2/libxml2-2.9.7.tar.gz -P ./dl/
cd Source
tar xvf ../dl/libxml2-2.9.7.tar.gz
cd libxml2-2.9.7
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION -disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --with-gnu-ld --without-python --without-debug --with-zlib=$SYSROOT_DIR/usr --without-lzma --with-iconv
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../..
libxslt
# for libxslt
wget -c http://xmlsoft.org/sources/libxslt-1.1.34.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/libxslt-1.1.34.tar.gz
cd libxslt-1.1.34
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-python=no
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
mtdev
# http://bitmath.org/code/mtdev/
wget -c http://bitmath.org/code/mtdev/mtdev-1.1.4.tar.gz -P ./dl
cd Source
tar xvf ../dl/mtdev-1.1.4.tar.gz
cd mtdev-1.1.4
cp ../../patch/mtdev-1.1.4/config.guess config-aux/
cp ../../patch/mtdev-1.1.4/config.sub config-aux/
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
kmod
wget -c https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/snapshot/kmod-24.tar.gz -P ./dl
cd Source
tar xvf ../dl/kmod-24.tar.gz
cd kmod-24
patch -p1 < ../../patch/kmod-24/0001-fix-O_CLOEXEC.patch
patch -p1 < ../../patch/kmod-24/0002-shared-util.c-assert_cc-can-only-be-used-inside-func.patch
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-static --enable-shared --disable-manpages --with-zlib --disable-tools
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
eudev
wget -c https://dev.gentoo.org/~blueness/eudev/eudev-3.2.7.tar.gz -P ./dl
cd Source
tar xvf ../dl/eudev-3.2.7.tar.gz
cd eudev-3.2.7
patch -p1 < ../../patch/eudev-3.2.7/0001-Only-use-pragma-for-ignoring-diagnostics-if-.patch
patch -p1 < ../../patch/eudev-3.2.7/0002-missing.h-add-KEY_ALS_TOGGLE.patch
patch -p1 < ../../patch/eudev-3.2.7/0003-missing.h-add-BTN_DPAD_UP.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-manpages --sbindir=/sbin --libexecdir=/lib --disable-introspection --enable-kmod --enable-blkid --with-rootlibdir=/lib --enable-split-usr --disable-rule-generator --enable-hwdb --disable-selinux
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libevdev
wget -c https://www.freedesktop.org/software/libevdev/libevdev-1.5.8.tar.xz -P ./dl
cd Source
tar xvf ../dl/libevdev-1.5.8.tar.xz
cd libevdev-1.5.8
patch -p1 < ../../patch/libevdev-1.5.8/0001-configure-add-disable-runtime-tests-option.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-runtime-tests
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libinput
#wget -c https://www.freedesktop.org/software/libinput/libinput-1.8.2.tar.xz -P ./dl
wget -c https://www.freedesktop.org/software/libinput/libinput-1.10.902.tar.xz -P ./dl
cd Source
tar xvf ../dl/libinput-1.10.902.tar.xz
cd libinput-1.10.902
#CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
#./configure $COMMON_OPTION --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-tests --disable-libwacom --disable-debug-gui
#find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
#make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
#sudo make install DESTDIR=$WEBKIT_OUTPUT
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false -Dlibwacom=false -Ddocumentation=false -Ddebug-gui=false -Dtests=false builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../
sqlite3
# for sqlite3
wget -c https://www.sqlite.org/snapshot/sqlite-snapshot-202010201440.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/sqlite-snapshot-202010201440.tar.gz
cd sqlite-snapshot-202010201440
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -O2" CXXFLAGS="$COMMON_CXXFLAGS -O2" CCFLAGS="$COMMON_CCFLAGS -O2" LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
chipmunk
git clone git4os@gitlab.fmsoft.cn:VincentWei/chipmunk.git ./dl/chipmunk
cd ./Source/
cp -r ../dl/chipmunk .
cd chipmunk
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" -D CMAKE_BUILD_TYPE=Release .
make -j8
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
pcre
wget -c https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.bz2 -P ./dl
cd ./Source
tar xvf ../dl/pcre-8.41.tar.bz2
cd pcre-8.41
patch -p1 < ../../patch/pcre-8.41/0001-Kill-compatibility-bits.patch
patch -p1 < ../../patch/pcre-8.41/0002-Disable-C-unit-tests.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --enable-pcre8 --disable-pcre16 --disable-pcre32 --enable-utf --enable-unicode-properties
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
fontconfig
# libfontconfig
# for fontconfig
wget https://files.fmsoft.cn/hiwebkit/dependencies/software/fontconfig/release/fontconfig-2.13.1.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/fontconfig-2.13.1.tar.bz2
cd fontconfig-2.13.1
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-libxml2 --disable-docs
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
harfbuzz
# for harfbuzz
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/software/harfbuzz/release/harfbuzz-2.2.0.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/harfbuzz-2.2.0.tar.bz2
cd harfbuzz-2.2.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-icu=no --with-glib=yes --with-freetype=yes --with-fontconfig=yes LIBS="-lz -lpng -lpthread -lpcre "
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libdrm
wget -c https://dri.freedesktop.org/libdrm/libdrm-2.4.89.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/libdrm-2.4.89.tar.gz
cd libdrm-2.4.89
patch -p1 < ../../patch/libdrm-2.4.89/0001-Add-ARM-support-into-xf86drm.h.patch
patch -p1 < ../../patch/libdrm-2.4.89/0002-xf86atomic-require-CAS-support-in-libatomic_ops.patch
patch -p1 < ../../patch/libdrm-2.4.89/0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
patch -p1 < ../../patch/libdrm-2.4.89/0004-drm_fourcc-add-DRM_FORMAT_NV12_10.patch
patch -p1 < ../../patch/libdrm-2.4.89/0005-CHROMIUM-libdrm-add-support-for-rockchip.patch
patch -p1 < ../../patch/libdrm-2.4.89/0006-CHROMIUM-rockchip-Add-API-to-create-BO-object-from-e.patch
patch -p1 < ../../patch/libdrm-2.4.89/0007-Skip-busid-check-in-drmOpenByName.patch
patch -p1 < ../../patch/libdrm-2.4.89/0008-modetest-Speed-up-dumping-info.patch
patch -p1 < ../../patch/libdrm-2.4.89/0009-modetest-Add-option-to-enable-atomic-capabilities.patch
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-cairo-tests --disable-manpages --disable-intel --disable-radeon --disable-amdgpu --disable-nouveau --disable-vmwgfx --disable-omap-experimental-api --disable-etnaviv-experimental-api --disable-exynos-experimental-api --disable-freedreno --disable-tegra-experimental-api --disable-vc4 --enable-rockchip-experimental-api --enable-udev --disable-valgrind --enable-install-test-programs
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libffi
wget -c https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz -P ./dl
cd Source
tar xvf ../dl/libffi-3.2.1.tar.gz
cd libffi-3.2.1
patch -p1 < ../../patch/libffi-3.2.1/0001-Fix-installation-location-of-libffi.patch
patch -p1 < ../../patch/libffi-3.2.1/0002-Fix-use-of-compact-eh-frames-on-MIPS.patch
patch -p1 < ../../patch/libffi-3.2.1/0003-libffi-enable-hardfloat-in-the-MIPS-assembly-code.patch
patch -p1 < ../../patch/libffi-3.2.1/0004-m68k-support-ISA-A-Coldfire-CPUs.patch
patch -p1 < ../../patch/libffi-3.2.1/0005-mips-use-__linux__-and-not-linux.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
sudo cp $WEBKIT_OUTPUT/usr/lib/libffi-3.2.1/include/*.h $WEBKIT_OUTPUT/usr/include/
# 手工修改了libffi.la
cd ../../
glib
# for glib
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/glib/2.58/glib-2.58.1.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/glib-2.58.1.tar.xz
cd glib-2.58.1
make distclean
#ln -s $SYSROOT_DIR/usr/include/GLES $SYSROOT_DIR/usr/include/GL
./autogen.sh
cp ../../glib.cache .
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --cache-file=glib.cache --disable-selinux --disable-xattr --disable-libelf
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
minigui
# for minigui
#git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/minigui -b rel-5-0 ./Source/minigui
cd ./Source/minigui
#./autogen.sh
#CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
#CXXFLAGS="$COMMON_CXXFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " CCFLAGS="$COMMON_CCFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
#LDFLAGS="$COMMON_LDFLAGS " \
#./configure $COMMON_OPTION --enable-procs --enable-compositing --with-ttfsupport=ft2 --enable-develmode --disable-splash --disable-videopcxvfb --enable-virtualwindow
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
minigui-res
# for minigui-res
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/minigui-res -b rel-5-0 ./Source/minigui-res
cd ./Source/minigui-res
./autogen.sh
./configure --prefix=/usr --build=x86_64-linux-gnu
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
pixman
# for pixman
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/releases/pixman-0.36.0.tar.gz -P ./dl
cd ./Source
tar xf ../dl/pixman-0.36.0.tar.gz
cd pixman-0.36.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-gtk=no --disable-arm-iwmmxt
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
hicairo
# build hicairo to support minigui
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hicairo -b minigui-backend ./Source/hicairo
cd ./Source/hicairo
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DGL_MIRRORED_REPEAT=0x8370 " CXXFLAGS="$COMMON_CXXFLAGS -DGL_MIRRORED_REPEAT=0x8370 " \
CCFLAGS="$COMMON_CCFLAGS -DGL_MIRRORED_REPEAT=0x8370 " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-drm=no --enable-glesv3=no --enable-egl=no --enable-glx=no
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libcroco
# for libcroco
wget -c http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.8.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/libcroco-0.6.8.tar.xz
cd libcroco-0.6.8
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libpsl
# for libpsl
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/rockdaboot/libpsl/releases/download/libpsl-0.20.2/libpsl-0.20.2.tar.gz -P ./dl
cd ./Source
tar xf ../dl/libpsl-0.20.2.tar.gz
cd libpsl-0.20.2
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-runtime
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
adwaita-icon-theme
# for adwaita-icon-theme
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/adwaita-icon-theme/3.24/adwaita-icon-theme-3.24.0.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/adwaita-icon-theme-3.24.0.tar.xz
cd adwaita-icon-theme-3.24.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libsecret
# for libsecret
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/libsecret/0.18/libsecret-0.18.5.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/libsecret-0.18.5.tar.xz
cd libsecret-0.18.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libproxy
# for libproxy
wget -c https://github.com/libproxy/libproxy/releases/download/0.4.15/libproxy-0.4.15.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/libproxy-0.4.15.tar.xz
cd libproxy-0.4.15
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
openjpeg
# for openjpeg
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/uclouvain/openjpeg/archive/v2.3.0.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/v2.3.0.tar.gz
cd openjpeg-2.3.0
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make VERBOSE=1 -j8
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
atk
# for atk
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/atk/2.33/atk-2.33.3.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/atk-2.33.3.tar.xz
cd atk-2.33.3
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
libpango
# for libpango
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/pango-1.40.5.tar.xz
cd pango-1.40.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " \
LDFLAGS="-Wl,-rpath-link,$SYSROOT_DIR/lib:$SYSROOT_DIR/usr/lib:../pango/.libs -L$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/lib --sysroot=$SYSROOT_DIR " \
./configure $COMMON_OPTION --with-cairo --disable-introspection \
HARFBUZZ_CFLAGS="-I$SYSROOT_DIR/usr/include" HARFBUZZ_LIBS="-L$SYSROOT_DIR/usr/lib -lharfbuzz" \
FONTCONFIG_CFLAGS="-I$SYSROOT_DIR/usr/include" FONTCONFIG_LIBS="-L$SYSROOT_DIR/usr/lib -lfontconfig" \
FREETYPE_CFLAGS="-I$SYSROOT_DIR/usr/include" FREETYPE_LIBS="-L$SYSROOT_DIR/usr/lib -lfreetype" \
CAIRO_CFLAGS="-I$SYSROOT_DIR/usr/include" CAIRO_LIBS="-L$SYSROOT_DIR/usr/lib -lcairo -lcairo-gobject -lcairo-script-interpreter" \
GLIB_CFLAGS="-I$SYSROOT_DIR/usr/include" GLIB_LIBS="-L$SYSROOT_DIR/usr/lib -lglib-2.0 -lgobject-2.0 "
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
hirsvg
# for hirsvg
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hirsvg -b minigui-backend ./Source/hirsvg
cd ./Source/hirsvg
cp ../../hirsvg_configure.ac configure.ac
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-introspection --disable-pixbuf-loader --enable-minigui-backend
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
LIBTOOL_PATH=$(find -name libtool)
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
hidriver
#for hidriver
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hidrmdrivers -b master ./Source/hidrmdrivers
cd ./Source/hidrmdrivers
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
expat
wget -c https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2 -P ./dl/
cd Source
tar xvf ../dl/expat-2.2.5.tar.bz2
cd expat-2.2.5
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-ipv6 --disable-nls --disable-static --enable-shared
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
mesa
# for mesa
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/himesa -b minigui-backend ./Source/himesa
cd ./Source/himesa
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
rm -rf builddir
meson --cross-file cross_compile.txt -Dvulkan-drivers= -Dllvm=false -Degl-lib-suffix=hos -Dgles-lib-suffix=hos -Dgl-lib-suffix=hos -Dplatforms=surfaceless -Dgallium-drivers=swrast -Dglx=disabled builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
libgmp
# for libgmp
wget -c https://gmplib.org/download/gmp/gmp-6.2.0.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/gmp-6.2.0.tar.xz
cd gmp-6.2.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libnettle
# for libnettle
wget -c https://ftp.gnu.org/gnu/nettle/nettle-3.6.tar.gz -P ./dl/
cd ./Source
tar xvf ../dl/nettle-3.6.tar.gz
cd nettle-3.6
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libtasn1
# for libtasn1
#wget -c http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.9.tar.gz -P ./dl/
cd ./Source
#tar xvf ../dl/libtasn1-4.9.tar.gz
cd libtasn1-4.9
# 手工注释掉 configure.ac 中:gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libunistring
# for libunistring
wget -c https://ftp.gnu.org/gnu/libunistring/libunistring-0.9.10.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libunistring-0.9.10.tar.gz
cd libunistring-0.9.10
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
openssl
wget -c https://www.openssl.org/source/old/1.1.0/openssl-1.1.0i.tar.gz -P ./dl
cd ./Source/
tar xf ../dl/openssl-1.1.0i.tar.gz
cd openssl-1.1.0i
patch -p1 < ../../patch/openssl-1.1.0i/0001-openssl_add_af_alg_cts.patch
patch -p1 < ../../patch/openssl-1.1.0i/0002-support_openssl_no_rsa.patch
patch -p1 < ../../patch/openssl-1.1.0i/100-Config-afalg-support.patch
patch -p1 < ../../patch/openssl-1.1.0i/110-openwrt_targets.patch
patch -p1 < ../../patch/openssl-1.1.0i/130-strip-cflags-from-binary.patch
patch -p1 < ../../patch/openssl-1.1.0i/180-fix_link_segfault.patch
patch -p1 < ../../patch/openssl-1.1.0i/200-crypto-ec-disable-SCA-mitigations-for-curves-with-in.patch
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS -Wl,-Bdynamic -lgcc_s" \
./Configure linux-aarch64-openwrt --prefix=/usr --openssldir=/etc/ssl -I$SYSROOT_DIR/usr/include -I/home/xue/work/cross/r818/prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain/usr/include -I/home/xue/work/cross/r818/prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain/include enable-shared --api=1.0.0 no-afalgeng no-asan no-async no-camellia no-cms no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dtls no-dtls1 no-dtls1_2 no-ec2m no-ec_nistp_64_gcc_128 no-egd no-err no-fuzz-afl no-fuzz-libfuzzer no-gost no-heartbeats no-idea no-md2 no-mdc2 no-msan no-rc5 no-rfc3779 no-sctp no-seed no-ssl-trace no-ssl3 no-ssl3-method no-tls1 no-tls1-method no-tls1_1 no-tls1_1-method no-ubsan no-unit-test no-weak-ssl-ciphers no-whirlpool no-zlib no-zlib-dynamic
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make VERBOSE=1 -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libunbound
# for libunbound
#wget -c http://www.unbound.net/downloads/unbound-1.12.0.tar.gz -P ./dl/
cd ./Source
tar xvf ../dl/unbound-1.12.0.tar.gz
cd unbound-1.12.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libgnutls
# for libgnutls
wget -c https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.15.tar.xz -P ./dl/
cd ./Source
tar xvf ../dl/gnutls-3.6.15.tar.xz
cd gnutls-3.6.15
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-nettle-mini=no --without-p11-kit
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
glib-networking
# for glib-networking
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/glib-networking/2.58/glib-networking-2.58.0.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/glib-networking-2.58.0.tar.xz
cd glib-networking-2.58.0
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt . builddir/ -Dgnome_proxy_support=false
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
libbrotlidec
# for libbrotlidec
wget -c https://github.com/google/brotli/archive/v1.0.9/brotli-1.0.9.tar.gz -P ./dl
cd ./Source
tar xf ../dl/brotli-1.0.9.tar.gz
cd brotli-1.0.9
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j8
sudo make DESTDIR=$WEBKIT_OUTPUT install
libwebp
# for libwebp
wget -c http://downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz -P ./dl/
cd ./Source
tar xf ../dl/libwebp-1.1.0.tar.gz
cd libwebp-1.1.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-libwebpmux --enable-libwebpdemux --enable-libwebpdecoder --enable-libwebpextras --enable-swap-16bit-csp --disable-static
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libenchant
# for libenchant
wget -c https://github.com/AbiWord/enchant/releases/download/v2.2.12/enchant-2.2.12.tar.gz -P ./dl/
cd ./Source
tar xf ../dl/enchant-2.2.12.tar.gz
cd enchant-2.2.12
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libsoup
# for libsoup
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/sources/libsoup/2.69/libsoup-2.69.90.tar.xz -P ./dl/
cd ./Source
#tar xvf ../dl/libsoup-2.69.90.tar.xz
cd libsoup-2.69.90
#cp ../../libsoup.build meson.build
#sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
#sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
#rm -f cross_compile1.txt
#meson --cross-file cross_compile.txt . builddir/ -Dintrospection=disabled -Dgssapi=disabled -Dvapi=disabled
# 手工修改builddir/build.ninja文件,去掉里面的-R/usr/lib选项。该选项在本版本的aarch64 gcc中不支持。哪里来的我也不知道
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../
libwoff2
# for libwoff2
wget -c https://github.com/google/woff2/archive/v1.0.2/woff2-1.0.2.tar.gz -P ./dl/
cd ./Source
tar xf ../dl/woff2-1.0.2.tar.gz
cd woff2-1.0.2
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j8
sudo make DESTDIR=$WEBKIT_OUTPUT install
cd ../../
libhyphen
# for libhyphen
git clone https://github.com/hunspell/hyphen.git ./Source/hyphen
cd ./Source/hyphen
autoreconf -fvi
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
lzma
# for lzma
git clone https://github.com/kobolabs/liblzma.git ./Source/liblzma
cd ./Source/liblzma
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
libseccomp
# for libseccomp
wget -c https://github.com/seccomp/libseccomp/releases/download/v2.5.0/libseccomp-2.5.0.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/libseccomp-2.5.0.tar.gz
cd libseccomp-2.5.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
orc
# for orc
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/orc/orc-0.4.30.tar.xz -P ./dl/
cd ./Source
tar xvf ../dl/orc-0.4.30.tar.xz
cd orc-0.4.30
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false builddir/ . -Dgtk_doc=disabled
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
icu
# for icu
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/icu4c-63_1-src.tgz -P ./dl
cd ./Source
tar xf ../dl/icu4c-63_1-src.tgz
mkdir icupc
cd icupc
../icu/source/runConfigureICU Linux/gcc
make -j$NRJOBS
cd ..
mkdir icuarm
cd icuarm
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
../icu/source/configure $COMMON_OPTION --with-cross-build="$WEBKIT_TOP_PATH/Source/icupc" --disable-samples --enable-weak-threads
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
hiwebkit
# for hiwebkit
#git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hiwebkit -b dev .Source/hiwebkit
cd ./Source/hiwebkit/
cp -f /home/xue/work/cross/hybirdosR818/OptionsHBD.cmake ./Source/cmake
cmake -DCMAKE_TOOLCHAIN_FILE=../../hiwebkit.cmake . -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DDEVELOPER_MODE=ON -DENABLE_ACCELERATED_2D_CANVAS=OFF -DENABLE_WEBGL=OFF -DENABLE_WEBGL2=OFF -DENABLE_MINIBROWSER=ON -DCMAKE_BUILD_TYPE=debug -DPORT=HBD -DENABLE_RSQL=OFF -DENABLE_NOTIFICATIONS=OFF -DENABLE_WEB_AUDIO=OFF -DENABLE_VIDEO=OFF -DENABLE_VIDEO_PRESENTATION_MODE=OFF -DENABLE_VIDEO_USES_ELEMENT_FULLSCREEN=OFF -DENABLE_ENCRYPTED_MEDIA=OFF -DENABLE_LEGACY_ENCRYPTED_MEDIA=OFF -DENABLE_MEDIA_CAPTURE=OFF -DENABLE_MEDIA_CONTROLS_SCRIPT=OFF -DENABLE_MEDIA_SESSION=OFF -DENABLE_MEDIA_SOURCE=OFF -DENABLE_MEDIA_STATISTICS=OFF -DENABLE_MEDIA_STREAM=OFF -DENABLE_RESOLUTION_MEDIA_QUERY=OFF -DUSE_GSTREAMER_GL=OFF -DENABLE_NETSCAPE_PLUGIN_API=OFF -DENABLE_PDFKIT_PLUGIN=OFF -DENABLE_BUBBLEWRAP_SANDBOX=OFF
ninja -j16 all
cd lib
sudo cp * $SYSROOT_DIR/usr/lib -a
cd ../../../
mgutils
# for mgutils
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgutils -b rel-5-0 ./Source/mgutils
cd ./Source/mgutils
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
mgplus
# for mgplus
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgplus -b rel-5-0 ./Source/mgplus
cd ./Source/mgplus
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
mgeff
# for mgeff
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgeff -b rel-5-0 ./Source/mgeff
cd ./Source/mgeff
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
mgncs
# for mgncs
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgncs -b rel-5-0 ./Source/mgncs
cd ./Source/mgncs
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-dbxml
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
jerryscript
git clone git4os@gitlab.fmsoft.cn:hybridos/hiACEJS.git ./Source/hiacejs
cd ./Source/hiacejs
cd src/third_party/jerryscript/
cmake -DCMAKE_TOOLCHAIN_FILE=../../../../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_BUILD_TYPE=MinSizeRel -DEXTERNAL_COMPILE_FLAGS=-Wno-unused-function -DBUILD_SHARED_LIBS=ON -DJERRY_CMDLINE_SNAPSHOT=ON -DJERRY_ERROR_MESSAGES=ON -DJERRY_LOGGING=ON -DJERRY_GLOBAL_HEAP_SIZE=20480 -DJERRY_MEM_STATS=ON -DJERRY_PROFILE=es5.1 -DJERRY_SNAPSHOT_EXEC=ON -DJERRY_SNAPSHOT_SAVE=ON -DEXTERNAL_COMPILE_FLAGS="-Wno-unused-function" .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd -
cd ../../
sec_config
git clone git4os@gitlab.fmsoft.cn:hybridos/hiACEJS.git ./Source/hiacejs
cd ./Source/hiacejs
cd src/third_party/bounds_checking_function
cmake -DCMAKE_TOOLCHAIN_FILE=../../../../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd -
cd ../../
mbedtls
git clone git4os@gitlab.fmsoft.cn:3rd-party/mbedtls.git -b mbedtls-2.16.6 ./Source/mbedtls
cd ./Source/mbedtls
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" -DUSE_SHARED_MBEDTLS_LIBRARY=On .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
hiacejs
git clone git4os@gitlab.fmsoft.cn:hybridos/hiACEJS.git ./Source/hiacejs
cd ./Source/hiacejs
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make VERBOSE=1
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
hishell
# for hishell
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hishell -b dev ./Source/hishell
cd ./Source/hishell
cp ../../hishell_cmakelist.txt CMakeLists.txt
cp ../../appagentcmakelist.txt ./appagent/CMakeLists.txt
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake
make -j$NRJOBS
hiview-render
# for hiview lib
git clone git4os@gitlab.fmsoft.cn:hybridos/hiviewrenderer.git -b master ./Source/hiviewrenderer
cd ./Source/hiviewrenderer
mkdir view-renderers
cd view-renderers
mkdir 'views.fmsoft.cn'
cd ..
cd animation
cp ../../../animationmakefile Makefile
make -j$NRJOBS
cp libanimationrender.so ../view-renderers/views.fmsoft.cn/libanimation-default.so
cd ..
cd stopwatch
cp ../../../stopwatchmakefile Makefile
make -j$NRJOBS
cp libstopwatchrender.so ../view-renderers/views.fmsoft.cn/libstopwatch-default.so
cd ..
cd watchface
cp ../../../watchfacemakefile Makefile
make -j$NRJOBS
cp libwatchfacerender.so ../view-renderers/views.fmsoft.cn/libwatchface-default.so
cd ../../../
mg-samples
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mg-samples -b rel-5-0 ./Source/mg-samples
cd ./Source/mg-samples
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
XXFLAGS="$COMMON_CXXFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " CCFLAGS="$COMMON_CCFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
LDFLAGS="$COMMON_LDFLAGS -ldl" \
./configure $COMMON_OPTION
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
Run
-
copy host:/usr/share/mime/mime.cache to device:/usr/share/mime/mime.cache
-
download Output/HBD/Root/ as device /mnt/UDISK/sysroot/
-
modify /etc/profile
export LD_LIBRARY_PATH=/mnt/UDISK/sysroot/usr/lib:/mnt/UDISK/sysroot/lib:/mnt/webkitlib:$LD_LIBRARY_PATH
export MG_RUNTIME_TMPDIR=/mnt/UDISK/tmp/
export GIO_EXTRA_MODULES=/mnt/UDISK/sysroot/usr/lib/gio/modules/
- install fonts
1. copy fonts to device:/usr/share/fonts
2. fc-list
- install hiwebkit process
mkdir -p /usr/local/libexec/webkit2hbd-1.0/
cp WebKitNetworkProcess /usr/local/libexec/webkit2hbd-1.0/
cp WebKitWebDriver /usr/local/libexec/webkit2hbd-1.0/
cp WebKitWebProcess /usr/local/libexec/webkit2hbd-1.0/
- install hiwebkit hiviewrenderer
cp view-renderers /opt/
ln -sf /opt/view-renderers/views.fmsoft.cn /opt/view-renderers/views.default
- run hishell
cd /mnt/UDISK/hishell/bin
./mginit
r818
#!/bin/bash
# for arch
export TOOLCHAIN=aarch64-openwrt-linux-gnu
# for path
BSP_DIR=/home/xue/work/cross/r818
export TOOLCHAIN_DIR=$BSP_DIR/prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain
export PATH="$TOOLCHAIN_DIR/bin:$PATH"
# for Output
WEBKIT_TOP_PATH=$(pwd)
WEBKIT_OUTPUT=$WEBKIT_TOP_PATH/Output/HBD/Root
export WEBKIT_INCLUDE_DIR=$WEBKIT_OUTPUT/include
export WEBKIT_LIB_DIR=$WEBKIT_OUTPUT/lib
export SYSROOT_DIR=$WEBKIT_OUTPUT
#export STAGING_DIR=$WEBKIT_OUTPUT
# for gcc
export AR="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ar"
export AS="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-as.bin"
export LD="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ld.bin"
export NM="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-nm"
export CC="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-gcc.bin --sysroot=$SYSROOT_DIR"
export GCC="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-gcc.bin --sysroot=$SYSROOT_DIR"
export CPP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-cpp.bin --sysroot=$SYSROOT_DIR"
export CXX="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-g++.bin --sysroot=$SYSROOT_DIR"
export RANLIB="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ranlib"
export STRIP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-strip"
export OBJCOPY="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-objcopy"
export OBJDUMP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-objdump"
export SIZE="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-size"
# for pkg_config
export PKG_CONFIG_SYSROOT_DIR=$SYSROOT_DIR
export PKG_CONFIG="/usr/bin/pkg-config"
export PKG_CONFIG_PATH="$SYSROOT_DIR/usr/lib/pkgconfig:$SYSROOT_DIR/usr/share/pkgconfig"
export PKG_CONFIG_LIBDIR="$SYSROOT_DIR/usr/lib/pkgconfig:$SYSROOT_DIR/usr/share/pkgconfig"
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
# for cmake
export CMAKE_INCLUDE_PATH=$SYSROOT_DIR/usr/include
export CMAKE_LIBRARY_PATH=$SYSROOT_DIR/usr/lib:$SYSROOT_DIR/lib
# for common compile options
COMMON_CFLAGS="-I$SYSROOT_DIR/usr/include -I$SYSROOT_DIR/usr/include/freetype2 -I$SYSROOT_DIR/usr/include/GL -I$SYSROOT_DIR/usr/include/glib-2.0 \
-I$SYSROOT_DIR/usr/lib/glib-2.0/include -I$SYSROOT_DIR/usr/include/harfbuzz -I$SYSROOT_DIR/usr/include/cairo -I$SYSROOT_DIR/usr/include/librsvg-2.0 --sysroot=$SYSROOT_DIR -O2"
COMMON_CXXFLAGS=$COMMON_CFLAGS
COMMON_CCFLAGS=$COMMON_CFLAGS
COMMON_LDFLAGS="-Wl,-rpath-link,$SYSROOT_DIR/lib:$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/lib --sysroot=$SYSROOT_DIR -O2 -Wl,-rpath,$SYSROOT_DIR/usr/lib"
COMMON_OPTION="--host=aarch64-linux-gnu --target=aarch64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no"
build_ncurses()
{
wget -c https://invisible-mirror.net/archives/ncurses/ncurses-6.0.tar.gz -P ./dl/
cd ./Source/
tar xvf ../dl/ncurses-6.0.tar.gz
cd ncurses-6.0
patch -p1 < ../../patch/ncurses-6.0/0001-gcc-5.x-MKlib_gen.patch
patch -p1 < ../../patch/ncurses-6.0/0002-recognise-uclinux.patch
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --without-cxx --without-cxx-binding --without-ada --without-tests --disable-big-core --without-profile --disable-rpath --disable-rpath-hack --enable-echo --enable-const --enable-overwrite --enable-pc-files --with-pkg-config-libdir=/usr/lib/pkgconfig --without-progs --without-manpages --with-shared --without-normal --without-gpm --without-debug
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make V=1 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_readline()
{
wget -c ftp://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz -P ./Source/
cd ./Source/
tar xvf readline-7.0.tar.gz
cd readline-7.0
patch -p1 < ../../patch/readline-7.0/0000-curses-link.patch
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make V=1 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_util-linux()
{
# libuuid libmount libblkid
# rebuild utils-linux to remove some error in rootfs
wget -c http://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-2.35.tar.xz -P ./dl
cd ./Source
rm -rf util-linux-2.35
tar xvf ../dl/util-linux-2.35.tar.xz
cd util-linux-2.35
./autogen.sh
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-rpath --disable-makeinstall-chown --without-systemd --with-systemdsystemunitdir=no --without-ncursesw --with-ncurses --disable-widechar --without-selinux --disable-all-programs --disable-agetty --disable-bfs --disable-cal --disable-chfn-chsh --disable-chmem --disable-cramfs --disable-eject --disable-fallocate --disable-fdformat --disable-fsck --disable-hwclock --disable-ipcrm --disable-ipcs --disable-kill --disable-last --enable-libblkid --disable-libfdisk --enable-libmount --disable-libsmartcols --enable-libuuid --disable-line --disable-logger --disable-login --disable-losetup --disable-lslogins --disable-lsmem --disable-mesg --disable-minix --disable-more --disable-mount --disable-mountpoint --disable-newgrp --disable-nologin --disable-nsenter --disable-partx --disable-pg --disable-pivot_root --disable-raw --disable-rename --disable-rfkill --disable-runuser --disable-schedutils --disable-setpriv --disable-setterm --disable-su --disable-sulogin --disable-switch_root --disable-tunelp --disable-ul --disable-unshare --disable-utmpdump --disable-uuidd --disable-vipw --disable-wall --disable-wdctl --disable-write --disable-zramctl --without-python --with-readline --without-audit
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_freetype()
{
# libfreetype
# for freetype
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/freetype/freetype-2.9.1.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/freetype-2.9.1.tar.bz2
cd freetype-2.9.1
export TOP_DIR=$(pwd)
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-harfbuzz=no
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
export TOP_DIR=
cd ../../
}
build_z()
{
wget -c http://www.zlib.net/zlib-1.2.11.tar.xz -P ./dl/
cd Source
tar xvf ../dl/zlib-1.2.11.tar.xz
cd zlib-1.2.11
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure --prefix=/usr
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_png()
{
wget -c https://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.34/libpng-1.6.34.tar.xz -P ./dl/
cd Source
tar xvf ../dl/libpng-1.6.34.tar.xz
cd libpng-1.6.34
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_jpeg()
{
wget -c http://www.ijg.org/files/jpegsrc.v9d.tar.gz -P ./dl/
cd Source
tar xvf ../dl/jpegsrc.v9d.tar.gz
cd jpeg-9d
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../
}
build_libgpg-error()
{
# for libgpg-error
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libgpg-error/libgpg-error-1.36.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/libgpg-error-1.36.tar.bz2
cd libgpg-error-1.36
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libgcrypt()
{
# for libgcrypt
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libgcrypt/libgcrypt-1.8.4.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/libgcrypt-1.8.4.tar.bz2
cd libgcrypt-1.8.4
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libxml2()
{
wget -c ftp://xmlsoft.org/libxml2/libxml2-2.9.7.tar.gz -P ./dl/
cd Source
tar xvf ../dl/libxml2-2.9.7.tar.gz
cd libxml2-2.9.7
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION -disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --with-gnu-ld --without-python --without-debug --with-zlib=$SYSROOT_DIR/usr --without-lzma --with-iconv
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../..
}
build_libxslt()
{
# for libxslt
wget -c http://xmlsoft.org/sources/libxslt-1.1.34.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/libxslt-1.1.34.tar.gz
cd libxslt-1.1.34
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-python=no
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_mtdev()
{
# http://bitmath.org/code/mtdev/
wget -c http://bitmath.org/code/mtdev/mtdev-1.1.4.tar.gz -P ./dl
cd Source
tar xvf ../dl/mtdev-1.1.4.tar.gz
cd mtdev-1.1.4
cp ../../patch/mtdev-1.1.4/config.guess config-aux/
cp ../../patch/mtdev-1.1.4/config.sub config-aux/
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_kmod()
{
wget -c https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/snapshot/kmod-24.tar.gz -P ./dl
cd Source
tar xvf ../dl/kmod-24.tar.gz
cd kmod-24
patch -p1 < ../../patch/kmod-24/0001-fix-O_CLOEXEC.patch
patch -p1 < ../../patch/kmod-24/0002-shared-util.c-assert_cc-can-only-be-used-inside-func.patch
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-static --enable-shared --disable-manpages --with-zlib --disable-tools
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_eudev()
{
wget -c https://dev.gentoo.org/~blueness/eudev/eudev-3.2.7.tar.gz -P ./dl
cd Source
tar xvf ../dl/eudev-3.2.7.tar.gz
cd eudev-3.2.7
patch -p1 < ../../patch/eudev-3.2.7/0001-Only-use-pragma-for-ignoring-diagnostics-if-.patch
patch -p1 < ../../patch/eudev-3.2.7/0002-missing.h-add-KEY_ALS_TOGGLE.patch
patch -p1 < ../../patch/eudev-3.2.7/0003-missing.h-add-BTN_DPAD_UP.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-manpages --sbindir=/sbin --libexecdir=/lib --disable-introspection --enable-kmod --enable-blkid --with-rootlibdir=/lib --enable-split-usr --disable-rule-generator --enable-hwdb --disable-selinux
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libevdev()
{
wget -c https://www.freedesktop.org/software/libevdev/libevdev-1.5.8.tar.xz -P ./dl
cd Source
tar xvf ../dl/libevdev-1.5.8.tar.xz
cd libevdev-1.5.8
patch -p1 < ../../patch/libevdev-1.5.8/0001-configure-add-disable-runtime-tests-option.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-runtime-tests
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libinput()
{
#wget -c https://www.freedesktop.org/software/libinput/libinput-1.8.2.tar.xz -P ./dl
wget -c https://www.freedesktop.org/software/libinput/libinput-1.10.902.tar.xz -P ./dl
cd Source
tar xvf ../dl/libinput-1.10.902.tar.xz
cd libinput-1.10.902
#CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
#./configure $COMMON_OPTION --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-tests --disable-libwacom --disable-debug-gui
#find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
#make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
#sudo make install DESTDIR=$WEBKIT_OUTPUT
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false -Dlibwacom=false -Ddocumentation=false -Ddebug-gui=false -Dtests=false builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../
}
build_sqlite3()
{
# for sqlite3
wget -c https://www.sqlite.org/snapshot/sqlite-snapshot-202010201440.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/sqlite-snapshot-202010201440.tar.gz
cd sqlite-snapshot-202010201440
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -O2" CXXFLAGS="$COMMON_CXXFLAGS -O2" CCFLAGS="$COMMON_CCFLAGS -O2" LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_chipmunk()
{
git clone git4os@gitlab.fmsoft.cn:VincentWei/chipmunk.git ./dl/chipmunk
cd ./Source/
cp -r ../dl/chipmunk .
cd chipmunk
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" -D CMAKE_BUILD_TYPE=Release .
make -j8
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_pcre()
{
wget -c https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.bz2 -P ./dl
cd ./Source
tar xvf ../dl/pcre-8.41.tar.bz2
cd pcre-8.41
patch -p1 < ../../patch/pcre-8.41/0001-Kill-compatibility-bits.patch
patch -p1 < ../../patch/pcre-8.41/0002-Disable-C-unit-tests.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --enable-pcre8 --disable-pcre16 --disable-pcre32 --enable-utf --enable-unicode-properties
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_fontconfig()
{
# libfontconfig
# for fontconfig
wget https://files.fmsoft.cn/hiwebkit/dependencies/software/fontconfig/release/fontconfig-2.13.1.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/fontconfig-2.13.1.tar.bz2
cd fontconfig-2.13.1
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-libxml2 --disable-docs
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_harfbuzz()
{
# for harfbuzz
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/software/harfbuzz/release/harfbuzz-2.2.0.tar.bz2 -P ./dl
cd ./Source
tar -xvf ../dl/harfbuzz-2.2.0.tar.bz2
cd harfbuzz-2.2.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-icu=no --with-glib=yes --with-freetype=yes --with-fontconfig=yes LIBS="-lz -lpng -lpthread -lpcre "
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libdrm()
{
wget -c https://dri.freedesktop.org/libdrm/libdrm-2.4.89.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/libdrm-2.4.89.tar.gz
cd libdrm-2.4.89
patch -p1 < ../../patch/libdrm-2.4.89/0001-Add-ARM-support-into-xf86drm.h.patch
patch -p1 < ../../patch/libdrm-2.4.89/0002-xf86atomic-require-CAS-support-in-libatomic_ops.patch
patch -p1 < ../../patch/libdrm-2.4.89/0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
patch -p1 < ../../patch/libdrm-2.4.89/0004-drm_fourcc-add-DRM_FORMAT_NV12_10.patch
patch -p1 < ../../patch/libdrm-2.4.89/0005-CHROMIUM-libdrm-add-support-for-rockchip.patch
patch -p1 < ../../patch/libdrm-2.4.89/0006-CHROMIUM-rockchip-Add-API-to-create-BO-object-from-e.patch
patch -p1 < ../../patch/libdrm-2.4.89/0007-Skip-busid-check-in-drmOpenByName.patch
patch -p1 < ../../patch/libdrm-2.4.89/0008-modetest-Speed-up-dumping-info.patch
patch -p1 < ../../patch/libdrm-2.4.89/0009-modetest-Add-option-to-enable-atomic-capabilities.patch
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-cairo-tests --disable-manpages --disable-intel --disable-radeon --disable-amdgpu --disable-nouveau --disable-vmwgfx --disable-omap-experimental-api --disable-etnaviv-experimental-api --disable-exynos-experimental-api --disable-freedreno --disable-tegra-experimental-api --disable-vc4 --enable-rockchip-experimental-api --enable-udev --disable-valgrind --enable-install-test-programs
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libffi()
{
wget -c https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz -P ./dl
cd Source
tar xvf ../dl/libffi-3.2.1.tar.gz
cd libffi-3.2.1
patch -p1 < ../../patch/libffi-3.2.1/0001-Fix-installation-location-of-libffi.patch
patch -p1 < ../../patch/libffi-3.2.1/0002-Fix-use-of-compact-eh-frames-on-MIPS.patch
patch -p1 < ../../patch/libffi-3.2.1/0003-libffi-enable-hardfloat-in-the-MIPS-assembly-code.patch
patch -p1 < ../../patch/libffi-3.2.1/0004-m68k-support-ISA-A-Coldfire-CPUs.patch
patch -p1 < ../../patch/libffi-3.2.1/0005-mips-use-__linux__-and-not-linux.patch
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
sudo cp $WEBKIT_OUTPUT/usr/lib/libffi-3.2.1/include/*.h $WEBKIT_OUTPUT/usr/include/
# 手工修改了libffi.la
cd ../../
}
build_glib()
{
# for glib
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/glib/2.58/glib-2.58.1.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/glib-2.58.1.tar.xz
cd glib-2.58.1
make distclean
#ln -s $SYSROOT_DIR/usr/include/GLES $SYSROOT_DIR/usr/include/GL
./autogen.sh
cp ../../glib.cache .
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --cache-file=glib.cache --disable-selinux --disable-xattr --disable-libelf
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_minigui()
{
# for minigui
#git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/minigui -b rel-5-0 ./Source/minigui
cd ./Source/minigui
#./autogen.sh
#CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
#CXXFLAGS="$COMMON_CXXFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " CCFLAGS="$COMMON_CCFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
#LDFLAGS="$COMMON_LDFLAGS " \
#./configure $COMMON_OPTION --enable-procs --enable-compositing --with-ttfsupport=ft2 --enable-develmode --disable-splash --disable-videopcxvfb --enable-virtualwindow
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_minigui-res()
{
# for minigui-res
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/minigui-res -b rel-5-0 ./Source/minigui-res
cd ./Source/minigui-res
./autogen.sh
./configure --prefix=/usr --build=x86_64-linux-gnu
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_pixman()
{
# for pixman
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/releases/pixman-0.36.0.tar.gz -P ./dl
cd ./Source
tar xf ../dl/pixman-0.36.0.tar.gz
cd pixman-0.36.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-gtk=no --disable-arm-iwmmxt
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_hicairo()
{
# build hicairo to support minigui
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hicairo -b minigui-backend ./Source/hicairo
cd ./Source/hicairo
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DGL_MIRRORED_REPEAT=0x8370 " CXXFLAGS="$COMMON_CXXFLAGS -DGL_MIRRORED_REPEAT=0x8370 " \
CCFLAGS="$COMMON_CCFLAGS -DGL_MIRRORED_REPEAT=0x8370 " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-drm=no --enable-glesv3=no --enable-egl=no --enable-glx=no
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libcroco()
{
# for libcroco
wget -c http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.8.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/libcroco-0.6.8.tar.xz
cd libcroco-0.6.8
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libpsl()
{
# for libpsl
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/rockdaboot/libpsl/releases/download/libpsl-0.20.2/libpsl-0.20.2.tar.gz -P ./dl
cd ./Source
tar xf ../dl/libpsl-0.20.2.tar.gz
cd libpsl-0.20.2
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-runtime
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_adwaita-icon-theme()
{
# for adwaita-icon-theme
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/adwaita-icon-theme/3.24/adwaita-icon-theme-3.24.0.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/adwaita-icon-theme-3.24.0.tar.xz
cd adwaita-icon-theme-3.24.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libsecret()
{
# for libsecret
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/libsecret/0.18/libsecret-0.18.5.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/libsecret-0.18.5.tar.xz
cd libsecret-0.18.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libproxy()
{
# for libproxy
wget -c https://github.com/libproxy/libproxy/releases/download/0.4.15/libproxy-0.4.15.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/libproxy-0.4.15.tar.xz
cd libproxy-0.4.15
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_openjpeg()
{
# for openjpeg
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/uclouvain/openjpeg/archive/v2.3.0.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/v2.3.0.tar.gz
cd openjpeg-2.3.0
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make VERBOSE=1 -j8
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_atk()
{
# for atk
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/atk/2.33/atk-2.33.3.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/atk-2.33.3.tar.xz
cd atk-2.33.3
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
}
build_libpango()
{
# for libpango
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/pango-1.40.5.tar.xz
cd pango-1.40.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " \
LDFLAGS="-Wl,-rpath-link,$SYSROOT_DIR/lib:$SYSROOT_DIR/usr/lib:../pango/.libs -L$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/lib --sysroot=$SYSROOT_DIR " \
./configure $COMMON_OPTION --with-cairo --disable-introspection \
HARFBUZZ_CFLAGS="-I$SYSROOT_DIR/usr/include" HARFBUZZ_LIBS="-L$SYSROOT_DIR/usr/lib -lharfbuzz" \
FONTCONFIG_CFLAGS="-I$SYSROOT_DIR/usr/include" FONTCONFIG_LIBS="-L$SYSROOT_DIR/usr/lib -lfontconfig" \
FREETYPE_CFLAGS="-I$SYSROOT_DIR/usr/include" FREETYPE_LIBS="-L$SYSROOT_DIR/usr/lib -lfreetype" \
CAIRO_CFLAGS="-I$SYSROOT_DIR/usr/include" CAIRO_LIBS="-L$SYSROOT_DIR/usr/lib -lcairo -lcairo-gobject -lcairo-script-interpreter" \
GLIB_CFLAGS="-I$SYSROOT_DIR/usr/include" GLIB_LIBS="-L$SYSROOT_DIR/usr/lib -lglib-2.0 -lgobject-2.0 "
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_hirsvg()
{
# for hirsvg
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hirsvg -b minigui-backend ./Source/hirsvg
cd ./Source/hirsvg
cp ../../hirsvg_configure.ac configure.ac
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-introspection --disable-pixbuf-loader --enable-minigui-backend
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
LIBTOOL_PATH=$(find -name libtool)
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_hidriver()
{
#for hidriver
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hidrmdrivers -b master ./Source/hidrmdrivers
cd ./Source/hidrmdrivers
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_expat()
{
wget -c https://github.com/libexpat/libexpat/releases/download/R_2_2_5/expat-2.2.5.tar.bz2 -P ./dl/
cd Source
tar xvf ../dl/expat-2.2.5.tar.bz2
cd expat-2.2.5
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-ipv6 --disable-nls --disable-static --enable-shared
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_mesa()
{
# for mesa
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/himesa -b minigui-backend ./Source/himesa
cd ./Source/himesa
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
rm -rf builddir
meson --cross-file cross_compile.txt -Dvulkan-drivers= -Dllvm=false -Degl-lib-suffix=hos -Dgles-lib-suffix=hos -Dgl-lib-suffix=hos -Dplatforms=surfaceless -Dgallium-drivers=swrast -Dglx=disabled builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
}
build_libgmp()
{
# for libgmp
wget -c https://gmplib.org/download/gmp/gmp-6.2.0.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/gmp-6.2.0.tar.xz
cd gmp-6.2.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libnettle()
{
# for libnettle
wget -c https://ftp.gnu.org/gnu/nettle/nettle-3.6.tar.gz -P ./dl/
cd ./Source
tar xvf ../dl/nettle-3.6.tar.gz
cd nettle-3.6
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libtasn1()
{
# for libtasn1
#wget -c http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.9.tar.gz -P ./dl/
cd ./Source
#tar xvf ../dl/libtasn1-4.9.tar.gz
cd libtasn1-4.9
# 手工注释掉 configure.ac 中:gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libunistring()
{
# for libunistring
wget -c https://ftp.gnu.org/gnu/libunistring/libunistring-0.9.10.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libunistring-0.9.10.tar.gz
cd libunistring-0.9.10
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_openssl()
{
wget -c https://www.openssl.org/source/old/1.1.0/openssl-1.1.0i.tar.gz -P ./dl
cd ./Source/
tar xf ../dl/openssl-1.1.0i.tar.gz
cd openssl-1.1.0i
patch -p1 < ../../patch/openssl-1.1.0i/0001-openssl_add_af_alg_cts.patch
patch -p1 < ../../patch/openssl-1.1.0i/0002-support_openssl_no_rsa.patch
patch -p1 < ../../patch/openssl-1.1.0i/100-Config-afalg-support.patch
patch -p1 < ../../patch/openssl-1.1.0i/110-openwrt_targets.patch
patch -p1 < ../../patch/openssl-1.1.0i/130-strip-cflags-from-binary.patch
patch -p1 < ../../patch/openssl-1.1.0i/180-fix_link_segfault.patch
patch -p1 < ../../patch/openssl-1.1.0i/200-crypto-ec-disable-SCA-mitigations-for-curves-with-in.patch
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS -Wl,-Bdynamic -lgcc_s" \
./Configure linux-aarch64-openwrt --prefix=/usr --openssldir=/etc/ssl -I$SYSROOT_DIR/usr/include -I/home/xue/work/cross/r818/prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain/usr/include -I/home/xue/work/cross/r818/prebuilt/gcc/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain/include enable-shared --api=1.0.0 no-afalgeng no-asan no-async no-camellia no-cms no-comp no-crypto-mdebug no-crypto-mdebug-backtrace no-dtls no-dtls1 no-dtls1_2 no-ec2m no-ec_nistp_64_gcc_128 no-egd no-err no-fuzz-afl no-fuzz-libfuzzer no-gost no-heartbeats no-idea no-md2 no-mdc2 no-msan no-rc5 no-rfc3779 no-sctp no-seed no-ssl-trace no-ssl3 no-ssl3-method no-tls1 no-tls1-method no-tls1_1 no-tls1_1-method no-ubsan no-unit-test no-weak-ssl-ciphers no-whirlpool no-zlib no-zlib-dynamic
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make VERBOSE=1 -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libunbound()
{
# for libunbound
#wget -c http://www.unbound.net/downloads/unbound-1.12.0.tar.gz -P ./dl/
cd ./Source
tar xvf ../dl/unbound-1.12.0.tar.gz
cd unbound-1.12.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libgnutls()
{
# for libgnutls
wget -c https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.15.tar.xz -P ./dl/
cd ./Source
tar xvf ../dl/gnutls-3.6.15.tar.xz
cd gnutls-3.6.15
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-nettle-mini=no --without-p11-kit
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_glib-networking()
{
# for glib-networking
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/glib-networking/2.58/glib-networking-2.58.0.tar.xz -P ./dl
cd ./Source
tar xvf ../dl/glib-networking-2.58.0.tar.xz
cd glib-networking-2.58.0
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt . builddir/ -Dgnome_proxy_support=false
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
}
build_libbrotlidec()
{
# for libbrotlidec
wget -c https://github.com/google/brotli/archive/v1.0.9/brotli-1.0.9.tar.gz -P ./dl
cd ./Source
tar xf ../dl/brotli-1.0.9.tar.gz
cd brotli-1.0.9
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j8
sudo make DESTDIR=$WEBKIT_OUTPUT install
}
build_libwebp()
{
# for libwebp
wget -c http://downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz -P ./dl/
cd ./Source
tar xf ../dl/libwebp-1.1.0.tar.gz
cd libwebp-1.1.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-libwebpmux --enable-libwebpdemux --enable-libwebpdecoder --enable-libwebpextras --enable-swap-16bit-csp --disable-static
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libenchant()
{
# for libenchant
wget -c https://github.com/AbiWord/enchant/releases/download/v2.2.12/enchant-2.2.12.tar.gz -P ./dl/
cd ./Source
tar xf ../dl/enchant-2.2.12.tar.gz
cd enchant-2.2.12
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libsoup()
{
# for libsoup
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/sources/libsoup/2.69/libsoup-2.69.90.tar.xz -P ./dl/
cd ./Source
#tar xvf ../dl/libsoup-2.69.90.tar.xz
cd libsoup-2.69.90
#cp ../../libsoup.build meson.build
#sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
#sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
#rm -f cross_compile1.txt
#meson --cross-file cross_compile.txt . builddir/ -Dintrospection=disabled -Dgssapi=disabled -Dvapi=disabled
# 手工修改builddir/build.ninja文件,去掉里面的-R/usr/lib选项。该选项在本版本的aarch64 gcc中不支持。哪里来的我也不知道
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../
}
build_libwoff2()
{
# for libwoff2
wget -c https://github.com/google/woff2/archive/v1.0.2/woff2-1.0.2.tar.gz -P ./dl/
cd ./Source
tar xf ../dl/woff2-1.0.2.tar.gz
cd woff2-1.0.2
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j8
sudo make DESTDIR=$WEBKIT_OUTPUT install
cd ../../
}
build_libhyphen()
{
# for libhyphen
git clone https://github.com/hunspell/hyphen.git ./Source/hyphen
cd ./Source/hyphen
autoreconf -fvi
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_lzma()
{
# for lzma
git clone https://github.com/kobolabs/liblzma.git ./Source/liblzma
cd ./Source/liblzma
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_libseccomp()
{
# for libseccomp
wget -c https://github.com/seccomp/libseccomp/releases/download/v2.5.0/libseccomp-2.5.0.tar.gz -P ./dl
cd ./Source
tar xvf ../dl/libseccomp-2.5.0.tar.gz
cd libseccomp-2.5.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make -j8 libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_orc()
{
# for orc
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/orc/orc-0.4.30.tar.xz -P ./dl/
cd ./Source
tar xvf ../dl/orc-0.4.30.tar.xz
cd orc-0.4.30
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false builddir/ . -Dgtk_doc=disabled
ninja -C builddir/
cd builddir
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
}
build_icu()
{
# for icu
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/icu4c-63_1-src.tgz -P ./dl
cd ./Source
tar xf ../dl/icu4c-63_1-src.tgz
mkdir icupc
cd icupc
../icu/source/runConfigureICU Linux/gcc
make -j$NRJOBS
cd ..
mkdir icuarm
cd icuarm
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
../icu/source/configure $COMMON_OPTION --with-cross-build="$WEBKIT_TOP_PATH/Source/icupc" --disable-samples --enable-weak-threads
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_hiwebkit()
{
# for hiwebkit
#git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hiwebkit -b dev .Source/hiwebkit
cd ./Source/hiwebkit/
cp -f /home/xue/work/cross/hybirdosR818/OptionsHBD.cmake ./Source/cmake
cmake -DCMAKE_TOOLCHAIN_FILE=../../hiwebkit.cmake . -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DDEVELOPER_MODE=ON -DENABLE_ACCELERATED_2D_CANVAS=OFF -DENABLE_WEBGL=OFF -DENABLE_WEBGL2=OFF -DENABLE_MINIBROWSER=ON -DCMAKE_BUILD_TYPE=debug -DPORT=HBD -DENABLE_RSQL=OFF -DENABLE_NOTIFICATIONS=OFF -DENABLE_WEB_AUDIO=OFF -DENABLE_VIDEO=OFF -DENABLE_VIDEO_PRESENTATION_MODE=OFF -DENABLE_VIDEO_USES_ELEMENT_FULLSCREEN=OFF -DENABLE_ENCRYPTED_MEDIA=OFF -DENABLE_LEGACY_ENCRYPTED_MEDIA=OFF -DENABLE_MEDIA_CAPTURE=OFF -DENABLE_MEDIA_CONTROLS_SCRIPT=OFF -DENABLE_MEDIA_SESSION=OFF -DENABLE_MEDIA_SOURCE=OFF -DENABLE_MEDIA_STATISTICS=OFF -DENABLE_MEDIA_STREAM=OFF -DENABLE_RESOLUTION_MEDIA_QUERY=OFF -DUSE_GSTREAMER_GL=OFF -DENABLE_NETSCAPE_PLUGIN_API=OFF -DENABLE_PDFKIT_PLUGIN=OFF -DENABLE_BUBBLEWRAP_SANDBOX=OFF
ninja -j16 all
cd lib
sudo cp * $SYSROOT_DIR/usr/lib -a
cd ../../../
}
build_mgutils()
{
# for mgutils
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgutils -b rel-5-0 ./Source/mgutils
cd ./Source/mgutils
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_mgplus()
{
# for mgplus
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgplus -b rel-5-0 ./Source/mgplus
cd ./Source/mgplus
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_mgeff()
{
# for mgeff
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgeff -b rel-5-0 ./Source/mgeff
cd ./Source/mgeff
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_mgncs()
{
# for mgncs
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgncs -b rel-5-0 ./Source/mgncs
cd ./Source/mgncs
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-dbxml
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
build_hishell()
{
# for hishell
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hishell -b dev ./Source/hishell
cd ./Source/hishell
cp ../../hishell_cmakelist.txt CMakeLists.txt
cp ../../appagentcmakelist.txt ./appagent/CMakeLists.txt
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake
make -j$NRJOBS
}
build_hiview-render()
{
# for hiview lib
git clone git4os@gitlab.fmsoft.cn:hybridos/hiviewrenderer.git -b master ./Source/hiviewrenderer
cd ./Source/hiviewrenderer
mkdir view-renderers
cd view-renderers
mkdir 'views.fmsoft.cn'
cd ..
cd animation
cp ../../../animationmakefile Makefile
make -j$NRJOBS
cp libanimationrender.so ../view-renderers/views.fmsoft.cn/libanimation-default.so
cd ..
cd stopwatch
cp ../../../stopwatchmakefile Makefile
make -j$NRJOBS
cp libstopwatchrender.so ../view-renderers/views.fmsoft.cn/libstopwatch-default.so
cd ..
cd watchface
cp ../../../watchfacemakefile Makefile
make -j$NRJOBS
cp libwatchfacerender.so ../view-renderers/views.fmsoft.cn/libwatchface-default.so
cd ../../../
}
build_mg-samples()
{
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mg-samples -b rel-5-0 ./Source/mg-samples
cd ./Source/mg-samples
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
XXFLAGS="$COMMON_CXXFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " CCFLAGS="$COMMON_CCFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
LDFLAGS="$COMMON_LDFLAGS -ldl" \
./configure $COMMON_OPTION
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
}
#build_ncurses
#build_readline
#build_util-linux
#build_z
#build_png
#build_jpeg
#build_libgpg-error
#build_libgcrypt
#build_libxml2
#build_libxslt
#build_freetype
#build_mtdev
#build_kmod
#build_eudev
#build_libevdev
#build_libinput
#build_sqlite3
#build_chipmunk
#build_pcre
#build_fontconfig
#build_libdrm
#build_libffi
#build_glib
#build_harfbuzz
build_minigui
#build_minigui-res
#build_pixman
#build_hicairo
#build_libcroco
#build_libpsl
#build_adwaita-icon-theme
#build_libsecret
#build_libproxy
#build_openjpeg
#build_atk
#build_libpango
#build_hirsvg
#build_hidriver
#build_expat
#build_mesa
#build_libgmp
#build_libnettle
#build_libtasn1
#build_libunistring
#build_libgnutls
#build_openssl
#build_libunbound
#build_glib-networking
#build_libbrotlidec
#build_libwebp
#build_libenchant
#build_libsoup
#build_libwoff2
#build_libhyphen
#build_lzma
#build_libseccomp
#build_orc
#build_icu
#build_hiwebkit
#build_mgutils
#build_mgplus
#build_mgeff
#build_mgncs
#build_mg-samples
#build_hishell
#build_hiview-render
px30
#!/bin/bash
# for arch
export ARCH="RK_ARCH"
export TOOLCHAIN=aarch64-linux-gnu
# for path
BSP_DIR=/home/gengyue/px30/px30_linux_sdk_release_v1.3.0_20200224
export HOST_DIR=$BSP_DIR/buildroot/output/rockchip_px30_64/host
export TARGET_DIR=$BSP_DIR/buildroot/output/rockchip_px30_64/target
export SYSROOT_DIR=$HOST_DIR/aarch64-buildroot-linux-gnu/sysroot
export STAGING_DIR=$SYSROOT_DIR
export TOOLCHAIN_DIR=$BSP_DIR/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
export PATH="$TOOLCHAIN_DIR/bin:$PATH"
# for gcc
export AR="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ar"
export AS="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-as"
export LD="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ld"
export NM="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-nm"
export CC="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-gcc --sysroot=$SYSROOT_DIR"
export GCC="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-gcc --sysroot=$SYSROOT_DIR"
export CPP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-cpp --sysroot=$SYSROOT_DIR"
export CXX="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-g++ --sysroot=$SYSROOT_DIR"
export RANLIB="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-ranlib"
export STRIP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-strip"
export OBJCOPY="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-objcopy"
export OBJDUMP="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-objdump"
export SIZE="$TOOLCHAIN_DIR/bin/$TOOLCHAIN-size"
NRJOBS=`getconf _NPROCESSORS_ONLN`
# for Output
WEBKIT_TOP_PATH=$(pwd)
WEBKIT_OUTPUT=$WEBKIT_TOP_PATH/Output/HBD/Root
export WEBKIT_INCLUDE_DIR=$WEBKIT_OUTPUT/include
export WEBKIT_LIB_DIR=$WEBKIT_OUTPUT/lib
# for pkg_config
export PKG_CONFIG_SYSROOT_DIR=$SYSROOT_DIR
export PKG_CONFIG="/usr/bin/pkg-config"
export PKG_CONFIG_PATH="$SYSROOT_DIR/usr/lib/pkgconfig:$SYSROOT_DIR/usr/share/pkgconfig"
export PKG_CONFIG_LIBDIR="$SYSROOT_DIR/usr/lib/pkgconfig:$SYSROOT_DIR/usr/share/pkgconfig"
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
# for cmake
export CMAKE_INCLUDE_PATH=$SYSROOT_DIR/usr/include
export CMAKE_LIBRARY_PATH=$SYSROOT_DIR/usr/lib:$SYSROOT_DIR/lib
# for common compile options
COMMON_CFLAGS="-I$SYSROOT_DIR/usr/include -I$SYSROOT_DIR/usr/include/freetype2 -I$SYSROOT_DIR/usr/include/GL -I$SYSROOT_DIR/usr/include/glib-2.0 \
-I$SYSROOT_DIR/usr/lib/glib-2.0/include -I$SYSROOT_DIR/usr/include/harfbuzz -I$SYSROOT_DIR/usr/include/cairo -I$SYSROOT_DIR/usr/include/librsvg-2.0 --sysroot=$SYSROOT_DIR -O2"
COMMON_CXXFLAGS=$COMMON_CFLAGS
COMMON_CCFLAGS=$COMMON_CFLAGS
COMMON_LDFLAGS="-Wl,-rpath-link,$SYSROOT_DIR/lib:$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/lib --sysroot=$SYSROOT_DIR -O2 -Wl,-rpath,$SYSROOT_DIR/usr/lib"
COMMON_OPTION="--host=aarch64-linux-gnu --target=aarch64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html"
# In original rootfs, because of some errors in compile process, in some *.la files, will link glib's
# and cairo's la files in build directory. But glib and cairo's la file in build dirctory, the search
# directroy is /usr/lib.
# When compile other softwares, linked with *.la files in build directory, and ld will search glib2.0
# or cairo, in /usr/lib.
# So have to recompile utils-linux, glib2.0, cairo, gstreamer to solve this problem.
# The sequency is :
# 1. utils-linux
# 2. cairo: with old glib's *.la file, search glib in /usr/lib
# 3. harfbuzz: it depends on cairo, and glib depends on harfbuzz
# 4. glib: with new la files
# 5. rebuild cairo: rebuild it with new glib's *.la file
# 6. rebuild harfbuzz
# 7. python:
# 8. gobject-introspection
notExec_Start()
{
# rebuild utils-linux to remove some error in rootfs
wget -c http://www.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-2.35.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/util-linux-2.35.tar.xz
cd util-linux-2.35
./autogen.sh
CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --disable-rpath --disable-makeinstall-chown --without-systemd --with-systemdsystemunitdir=no --without-ncursesw --with-ncurses --disable-widechar --without-selinux --disable-all-programs --disable-agetty --disable-bfs --disable-cal --disable-chfn-chsh --disable-chmem --disable-cramfs --disable-eject --disable-fallocate --disable-fdformat --disable-fsck --disable-hwclock --disable-ipcrm --disable-ipcs --disable-kill --disable-last --enable-libblkid --disable-libfdisk --enable-libmount --disable-libsmartcols --enable-libuuid --disable-line --disable-logger --disable-login --disable-losetup --disable-lslogins --disable-lsmem --disable-mesg --disable-minix --disable-more --disable-mount --disable-mountpoint --disable-newgrp --disable-nologin --disable-nsenter --disable-partx --disable-pg --disable-pivot_root --disable-raw --disable-rename --disable-rfkill --disable-runuser --disable-schedutils --disable-setpriv --disable-setterm --disable-su --disable-sulogin --disable-switch_root --disable-tunelp --disable-ul --disable-unshare --disable-utmpdump --disable-uuidd --disable-vipw --disable-wall --disable-wdctl --disable-write --disable-zramctl --without-python --with-readline --without-audit
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib" prefix="$SYSROOT_DIR" usrlib_execdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib" prefix="$WEBKIT_OUTPUT/usr" usrlib_execdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for freetype
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/freetype/freetype-2.9.1.tar.bz2 -P ./dl
cd ./Source
tar -jxvf ../dl/freetype-2.9.1.tar.bz2
cd freetype-2.9.1
export TOP_DIR=$(pwd)
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-harfbuzz=no
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
export TOP_DIR=
cd ../../
# for fontconfig
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/software/fontconfig/release/fontconfig-2.13.1.tar.bz2 -P ./dl
cd ./Source
tar -jxvf ../dl/fontconfig-2.13.1.tar.bz2
cd fontconfig-2.13.1
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-libxml2 --disable-docs
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for icu
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/icu4c-63_1-src.tgz -P ./dl
cd ./Source
tar zxvf ../dl/icu4c-63_1-src.tgz
mkdir icupc
cd icupc
../icu/source/runConfigureICU Linux/gcc
make -j$NRJOBS
cd ..
mkdir icuarm
cd icuarm
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
../icu/source/configure $COMMON_OPTION --with-cross-build="$WEBKIT_TOP_PATH/Source/icupc" --disable-samples --enable-weak-threads
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
#for hidrm
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hidrm -b hybridos ./Source/hidrm
cd ./Source/hidrm
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for hicairo
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hicairo -b minigui-backend ./Source/hicairo
cd ./Source/hicairo
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DGL_MIRRORED_REPEAT=0x8370 " CXXFLAGS="$COMMON_CXXFLAGS -DGL_MIRRORED_REPEAT=0x8370 " \
CCFLAGS="$COMMON_CCFLAGS -DGL_MIRRORED_REPEAT=0x8370 " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-drm=no --enable-glesv3=no --enable-egl=no --enable-glx=no
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for harfbuzz
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/software/harfbuzz/release/harfbuzz-2.2.0.tar.bz2 -P ./dl
cd ./Source
tar -jxvf ../dl/harfbuzz-2.2.0.tar.bz2
cd harfbuzz-2.2.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-icu=yes --with-freetype=yes --with-fontconfig=yes LIBS="-lz -lpng -lpthread -lpcre "
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for glib
COMMON_CFLAGS="-I$SYSROOT_DIR/usr/include -I$SYSROOT_DIR/usr/include/freetype2 -I$SYSROOT_DIR/usr/include/GL -I$SYSROOT_DIR/usr/include/glib-2.0 \
-I$SYSROOT_DIR/usr/lib/glib-2.0/include -I$SYSROOT_DIR/usr/include/harfbuzz -I$SYSROOT_DIR/usr/include/cairo --sysroot=$SYSROOT_DIR -O2"
COMMON_CXXFLAGS=$COMMON_CFLAGS
COMMON_CCFLAGS=$COMMON_CFLAGS
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/glib/2.58/glib-2.58.1.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/glib-2.58.1.tar.xz
cd glib-2.58.1
ln -s $SYSROOT_DIR/usr/include/GLES $SYSROOT_DIR/usr/include/GL
./autogen.sh
cp ../../glib.cache .
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION LIBFFI_CFLAGS="-I$SYSROOT_DIR/usr/include" LIBFFI_LIBS="-lffi -L$SYSROOT_DIR/usr/lib" ZLIB_CFLAGS="-I$SYSROOT_DIR/usr/include" ZLIB_LIBS="-lz -L$SYSROOT_DIR/usr/lib" --cache-file=glib.cache --disable-selinux --disable-xattr --disable-libelf
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
COMMON_CFLAGS="-I$SYSROOT_DIR/usr/include -I$SYSROOT_DIR/usr/include/freetype2 -I$SYSROOT_DIR/usr/include/GL -I$SYSROOT_DIR/usr/include/glib-2.0 \
-I$SYSROOT_DIR/usr/lib/glib-2.0/include -I$SYSROOT_DIR/usr/include/harfbuzz -I$SYSROOT_DIR/usr/include/cairo -I$SYSROOT_DIR/usr/include/librsvg-2.0 --sysroot=$SYSROOT_DIR -O2"
COMMON_CXXFLAGS=$COMMON_CFLAGS
COMMON_CCFLAGS=$COMMON_CFLAGS
# rebuild hicairo to resolve some error in rootfs
cd ./Source/hicairo
sudo make uninstall
make clean
make distclean
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DGL_MIRRORED_REPEAT=0x8370 " CXXFLAGS="$COMMON_CXXFLAGS -DGL_MIRRORED_REPEAT=0x8370 " \
CCFLAGS="$COMMON_CCFLAGS -DGL_MIRRORED_REPEAT=0x8370 " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-drm=no --enable-glesv3=no --enable-egl=no --enable-glx=no
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for pixman
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/releases/pixman-0.36.0.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/pixman-0.36.0.tar.gz
cd pixman-0.36.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-gtk=no --disable-arm-iwmmxt
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libxml2
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/sources/libxml2-2.9.5.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libxml2-2.9.5.tar.gz
cd libxml2-2.9.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-python=no
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libwpe
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libwpe-1.4.0.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/libwpe-1.4.0.tar.xz
cd libwpe-1.4.0
cp ../../FindEGL.cmake ./cmake
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$SYSROOT_DIR
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for wpebackend-fdo
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/wpebackend-fdo-1.4.1.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/wpebackend-fdo-1.4.1.tar.xz
cd wpebackend-fdo-1.4.1
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$SYSROOT_DIR
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libcroco
wget -c http://ftp.gnome.org/pub/gnome/sources/libcroco/0.6/libcroco-0.6.8.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/libcroco-0.6.8.tar.xz
cd libcroco-0.6.8
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libpsl
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/rockdaboot/libpsl/releases/download/libpsl-0.20.2/libpsl-0.20.2.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libpsl-0.20.2.tar.gz
cd libpsl-0.20.2
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for adwaita-icon-theme
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/adwaita-icon-theme/3.24/adwaita-icon-theme-3.24.0.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/adwaita-icon-theme-3.24.0.tar.xz
cd adwaita-icon-theme-3.24.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libgpg-error
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libgpg-error/libgpg-error-1.36.tar.bz2 -P ./dl
cd ./Source
tar -jxvf ../dl/libgpg-error-1.36.tar.bz2
cd libgpg-error-1.36
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libgcrypt
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/libgcrypt/libgcrypt-1.8.4.tar.bz2 -P ./dl
cd ./Source
tar -jxvf ../dl/libgcrypt-1.8.4.tar.bz2
cd libgcrypt-1.8.4
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libsecret
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/libsecret/0.18/libsecret-0.18.5.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/libsecret-0.18.5.tar.xz
cd libsecret-0.18.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libproxy
wget -c https://github.com/libproxy/libproxy/releases/download/0.4.15/libproxy-0.4.15.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/libproxy-0.4.15.tar.xz
cd libproxy-0.4.15
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
sudo make install DESTDIR=$SYSROOT_DIR
cd ../../
# for openjpeg
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/uclouvain/openjpeg/archive/v2.3.0.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/v2.3.0.tar.gz
cd openjpeg-2.3.0
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
sudo make install DESTDIR=$SYSROOT_DIR
cd ../../
# for atk
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/atk/2.33/atk-2.33.3.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/atk-2.33.3.tar.xz
cd atk-2.33.3
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false . builddir/
ninja -C builddir/
cd builddir
sudo DESTDIR=$SYSROOT_DIR ninja install
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
# for wayland
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/releases/wayland-1.16.0.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/wayland-1.16.0.tar.xz
cd wayland-1.16.0
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared --with-host-scanner --disable-tests
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for wayland-protocols
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/releases/wayland-protocols-1.16.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/wayland-protocols-1.16.tar.xz
cd wayland-protocols-1.16
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for hirsvg
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hirsvg -b minigui-backend ./Source/hirsvg
cd ./Source/hirsvg
cp ../../hirsvg_configure.ac configure.ac
cp ../../librsvg.pc.in .
cp ../../librsvg-uninstalled.pc.in .
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-introspection --disable-pixbuf-loader --enable-minigui-backend
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for minigui
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/minigui -b rel-5-0 ./Source/minigui
cd ./Source/minigui
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
CXXFLAGS="$COMMON_CXXFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " CCFLAGS="$COMMON_CCFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-procs --enable-compositing --with-ttfsupport=ft2 --enable-develmode --disable-splash --disable-videopcxvfb --enable-virtualwindow --enable-videodrm
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for minigui-res
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/minigui-res -b rel-5-0 ./Source/minigui-res
cd ./Source/minigui-res
./autogen.sh
./configure --prefix=/usr --build=x86_64-linux-gnu
make -j$NRJOBS
sudo make install DESTDIR=$WEBKIT_OUTPUT
sudo make install DESTDIR=$SYSROOT_DIR
cd ../../
# for mgutils
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgutils -b rel-5-0 ./Source/mgutils
cd ./Source/mgutils
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for mgplus
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgplus -b rel-5-0 ./Source/mgplus
cd ./Source/mgplus
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for mgeff
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgeff -b rel-5-0 ./Source/mgeff
cd ./Source/mgeff
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for mgncs
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mgncs -b rel-5-0 ./Source/mgncs
cd ./Source/mgncs
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-dbxml
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# rebuild hicairo to support minigui
cd ./Source/hicairo
sudo make uninstall
make clean
make distclean
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DGL_MIRRORED_REPEAT=0x8370 " CXXFLAGS="$COMMON_CXXFLAGS -DGL_MIRRORED_REPEAT=0x8370 " \
CCFLAGS="$COMMON_CCFLAGS -DGL_MIRRORED_REPEAT=0x8370 " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-drm=no --enable-glesv3=no --enable-egl=no --enable-glx=no --disable-xlib --disable-xlib-xrender --disable-xcb --enable-minigui
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libpango
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/pango/1.40/pango-1.40.5.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/pango-1.40.5.tar.xz
cd pango-1.40.5
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " \
LDFLAGS="-Wl,-rpath-link,$SYSROOT_DIR/lib:$SYSROOT_DIR/usr/lib:../pango/.libs -L$SYSROOT_DIR/usr/lib -L$SYSROOT_DIR/lib --sysroot=$SYSROOT_DIR" \
./configure $COMMON_OPTION --disable-introspection --with-sysroot=$SYSROOT_DIR/usr/lib \
HARFBUZZ_CFLAGS="-I$SYSROOT_DIR/usr/include" HARFBUZZ_LIBS="-L$SYSROOT_DIR/usr/lib -lharfbuzz -lharfbuzz-icu" \
FONTCONFIG_CFLAGS="-I$SYSROOT_DIR/usr/include" FONTCONFIG_LIBS="-L$SYSROOT_DIR/usr/lib -lfontconfig" \
FREETYPE_CFLAGS="-I$SYSROOT_DIR/usr/include" FREETYPE_LIBS="-L$SYSROOT_DIR/usr/lib -lfreetype" \
CAIRO_CFLAGS="-I$SYSROOT_DIR/usr/include" CAIRO_LIBS="-L$SYSROOT_DIR/usr/lib -lcairo -lcairo-gobject -lcairo-script-interpreter" \
GLIB_CFLAGS="-I$SYSROOT_DIR/usr/include" GLIB_LIBS="-L$SYSROOT_DIR/usr/lib -lglib-2.0 -lgobject-2.0 "
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
#for hidriver
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hidrmdrivers -b master ./Source/hidrmdrivers
cd ./Source/hidrmdrivers
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for mesa
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/himesa -b minigui-backend ./Source/himesa
cd ./Source/himesa
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dvulkan-drivers= -Dllvm=false -Degl-lib-suffix=hos -Dgles-lib-suffix=hos -Dgl-lib-suffix=hos -Dplatforms=wayland -Dgallium-drivers=swrast -Dglx=disabled builddir/ .
ninja -C builddir/
cd builddir
sudo DESTDIR=$SYSROOT_DIR ninja install
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
# for libgmp
wget -c https://gmplib.org/download/gmp/gmp-6.2.0.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/gmp-6.2.0.tar.xz
cd gmp-6.2.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libnettle
wget -c https://ftp.gnu.org/gnu/nettle/nettle-3.6.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/nettle-3.6.tar.gz
cd nettle-3.6
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libtasn1
wget -c http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.9.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libtasn1-4.9.tar.gz
cd libtasn1-4.9
cp ../../libtasn1-configure.ac configure.ac
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libunistring
wget -c https://ftp.gnu.org/gnu/libunistring/libunistring-0.9.10.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libunistring-0.9.10.tar.gz
cd libunistring-0.9.10
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libunbound
wget -c http://www.unbound.net/downloads/unbound-1.12.0.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/unbound-1.12.0.tar.gz
cd unbound-1.12.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --disable-doc
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libgnutls
wget -c https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.15.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/gnutls-3.6.15.tar.xz
cd gnutls-3.6.15
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-nettle-mini=no --without-p11-kit
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for glib-networking
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/pub/GNOME/sources/glib-networking/2.58/glib-networking-2.58.0.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/glib-networking-2.58.0.tar.xz
cd glib-networking-2.58.0
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt . builddir/ -Dgnome_proxy_support=false
ninja -C builddir/
cd builddir
sudo DESTDIR=$SYSROOT_DIR ninja install
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
# for sqlite3
wget -c https://www.sqlite.org/snapshot/sqlite-snapshot-202010201440.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/sqlite-snapshot-202010201440.tar.gz
cd sqlite-snapshot-202010201440
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -O2" CXXFLAGS="$COMMON_CXXFLAGS -O2" CCFLAGS="$COMMON_CCFLAGS -O2" LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libbrotlidec
wget -c https://github.com/google/brotli/archive/v1.0.9/brotli-1.0.9.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/brotli-1.0.9.tar.gz
cd brotli-1.0.9
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make DESTDIR=$SYSROOT_DIR install
sudo make DESTDIR=$WEBKIT_OUTPUT install
# for libwebp
wget -c http://downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libwebp-1.1.0.tar.gz
cd libwebp-1.1.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --enable-libwebpmux --enable-libwebpdemux --enable-libwebpdecoder --enable-libwebpextras --enable-swap-16bit-csp --disable-static
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libenchant
wget -c https://github.com/AbiWord/enchant/releases/download/v2.2.12/enchant-2.2.12.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/enchant-2.2.12.tar.gz
cd enchant-2.2.12
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libsoup
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/sources/libsoup/2.69/libsoup-2.69.90.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/libsoup-2.69.90.tar.xz
cd libsoup-2.69.90
cp ../../libsoup.build meson.build
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt . builddir/ -Dintrospection=disabled -Dgssapi=disabled -Dvapi=disabled
# 手工修改builddir/build.ninja文件,去掉里面的-R/usr/lib选项。该选项在本版本的aarch64 gcc中不支持。哪里来的我也不知道
ninja -C builddir/
cd builddir
sudo DESTDIR=$SYSROOT_DIR ninja install
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../
# for libwoff2
wget -c https://github.com/google/woff2/archive/v1.0.2/woff2-1.0.2.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/woff2-1.0.2.tar.gz
cd woff2-1.0.2
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake -DCMAKE_INSTALL_PREFIX="/usr" .
make -j$NRJOBS
sudo make DESTDIR=$WEBKIT_OUTPUT install
sudo make DESTDIR=$SYSROOT_DIR install
cd ../../
# for libhyphen
git clone https://github.com/hunspell/hyphen.git ./Source/hyphen
cd ./Source/hyphen
autoreconf -fvi
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for lzma
git clone https://github.com/kobolabs/liblzma.git ./Source/liblzma
cd ./Source/liblzma
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libxslt
wget -c http://xmlsoft.org/sources/libxslt-1.1.34.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libxslt-1.1.34.tar.gz
cd libxslt-1.1.34
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION --with-python=no
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for libseccomp
wget -c https://github.com/seccomp/libseccomp/releases/download/v2.5.0/libseccomp-2.5.0.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/libseccomp-2.5.0.tar.gz
cd libseccomp-2.5.0
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
./configure $COMMON_OPTION
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# for orc
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/orc/orc-0.4.30.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/orc-0.4.30.tar.xz
cd orc-0.4.30
sed "s#SYSROOT_DIR#$SYSROOT_DIR#g" ../../meson_tools.txt > cross_compile1.txt
sed "s#TOOLCHAIN#$TOOLCHAIN_DIR#g" cross_compile1.txt > cross_compile.txt
rm -f cross_compile1.txt
meson --cross-file cross_compile.txt -Dintrospection=false builddir/ . -Dgtk_doc=disabled
ninja -C builddir/
cd builddir
sudo DESTDIR=$SYSROOT_DIR ninja install
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../../
# for openh264
wget -c https://files.fmsoft.cn/hiwebkit/dependencies/cisco/openh264/archive/v1.5.0.tar.gz -P ./dl
cd ./Source
tar zxf ../dl/v1.5.0.tar.gz
cd openh264-1.5.0/
make OS=linux ARCH=aarch64 -j4
sudo make DESTDIR=$SYSROOT_DIR OS=linux ARCH=aarch64 install
sudo make DESTDIR=$WEBKIT_OUTPUT OS=linux ARCH=aarch64 install
cd ../../
# for hiwebkit
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hiwebkit -b dev ./Source/hiwebkit
cd ./Source/hiwebkit
cp -f ../../OptionsHBD.cmake ./Source/cmake
cmake -DCMAKE_TOOLCHAIN_FILE=../../webkit.cmake . -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DDEVELOPER_MODE=ON -DENABLE_ACCELERATED_2D_CANVAS=OFF -DENABLE_WEBGL=OFF -DENABLE_WEBGL2=OFF -DENABLE_MINIBROWSER=ON -DCMAKE_BUILD_TYPE=release -DPORT=HBD -DENABLE_RSQL=OFF -DENABLE_NOTIFICATIONS=OFF -DENABLE_WEB_AUDIO=OFF -DENABLE_VIDEO=OFF -DENABLE_VIDEO_PRESENTATION_MODE=OFF -DENABLE_VIDEO_USES_ELEMENT_FULLSCREEN=OFF -DENABLE_ENCRYPTED_MEDIA=OFF -DENABLE_LEGACY_ENCRYPTED_MEDIA=OFF -DENABLE_MEDIA_CAPTURE=OFF -DENABLE_MEDIA_CONTROLS_SCRIPT=OFF -DENABLE_MEDIA_SESSION=OFF -DENABLE_MEDIA_SOURCE=OFF -DENABLE_MEDIA_STATISTICS=OFF -DENABLE_MEDIA_STREAM=OFF -DENABLE_RESOLUTION_MEDIA_QUERY=OFF -DUSE_GSTREAMER_GL=OFF -DENABLE_NETSCAPE_PLUGIN_API=OFF -DENABLE_PDFKIT_PLUGIN=OFF -DENABLE_BUBBLEWRAP_SANDBOX=OFF
ninja all
cd lib
cp * $SYSROOT_DIR/usr/lib -a
cd ../../../
# for hishell
git clone ssh://git4os@gitlab.fmsoft.cn/hybridos/hishell -b dev ./Source/hishell
cd ./Source/hishell
cp ../../hishell_cmakelist.txt CMakeLists.txt
cp ../../appagentcmakelist.txt ./appagent/CMakeLists.txt
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake
make -j$NRJOBS
# for hiview lib
git clone git4os@gitlab.fmsoft.cn:hybridos/hiviewrenderer.git -b master ./Source/hiviewrenderer
cd ./Source/hiviewrenderer
mkdir view-renderers
cd view-renderers
mkdir 'views.fmsoft.cn'
cd ..
cd animation
cp ../../../animationmakefile Makefile
make -j$NRJOBS
cp libanimationrender.so ../view-renderers/views.fmsoft.cn/libanimation-default.so
cd ..
cd stopwatch
cp ../../../stopwatchmakefile Makefile
make -j$NRJOBS
cp libstopwatchrender.so ../view-renderers/views.fmsoft.cn/libstopwatch-default.so
cd ..
cd watchface
cp ../../../watchfacemakefile Makefile
make -j$NRJOBS
cp libwatchfacerender.so ../view-renderers/views.fmsoft.cn/libwatchface-default.so
cd ../../../
}
notExce_end()
{
# for python
wget -c https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz -P ./dl
cd ./Source
tar xvJf ../dl/Python-3.6.12.tar.xz
cd Python-3.6.12/
cp ../../config.site .
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS " CXXFLAGS="$COMMON_CXXFLAGS " CCFLAGS="$COMMON_CCFLAGS " LDFLAGS="$COMMON_LDFLAGS " \
CONFIG_SITE=config.site \
./configure $COMMON_OPTION --disable-ipv6
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib" prefix="$SYSROOT_DIR/usr"
sudo make install DESTDIR=$SYSROOT_DIR
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib" prefix="$WEBKIT_OUTPUT/usr"
sudo make install DESTDIR=$WEBKIT_OUTPUT
cd ../../
# 如果最后报错:
# subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
# 则删除: rm -rf /usr/bin/lsb_release
# 然后make clean; 重新编译
###################### an example for cmake + ninja #######################
# for libwpe
cd ./Source
cd libwpe-1.4.0
cp ../../FindEGL.cmake ./cmake
rm -fr CMakeCache.txt CMakeFiles/
cmake -DCMAKE_TOOLCHAIN_FILE=../../rockchip.cmake . -GNinja
ninja all
sudo DESTDIR=$SYSROOT_DIR ninja install
sudo DESTDIR=$WEBKIT_OUTPUT ninja install
cd ../../
###################### an example for cmake + ninja #######################
# for lglibc
wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.29.tar.xz -P ./Source
cd ./Source
tar xvJf glibc-2.29.tar.xz
rm -f glibc-2.29.tar.xz
cd glibc-2.29
mkdir build
cd build
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -O2" CXXFLAGS="$COMMON_CXXFLAGS -O2" CCFLAGS="$COMMON_CCFLAGS -O2" LDFLAGS="$COMMON_LDFLAGS " \
..//configure $COMMON_OPTION --enable-shared --with-pkgversion=Buildroot --without-cvs --disable-profile --without-gd --enable-obsolete-rpc --enable-kernel=4.4 --disable-experimental-malloc --with-headers=/home/gengyue/px30/px30_linux_sdk_release_v1.3.0_20200224/buildroot/output/rockchip_px30_64/host/aarch64-buildroot-linux-gnu/sysroot/usr/include
make -j$NRJOBS
LIBTOOL_PATH=$(find -name libtool)
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$SYSROOT_DIR/usr/lib"
sudo make DESTDIR=$SYSROOT_DIR install
find . -name \*.la | xargs $LIBTOOL_PATH --mode=clean rm -f
make libdir="$WEBKIT_OUTPUT/usr/lib"
sudo make DESTDIR=$WEBKIT_OUTPUT install
cd ../../
# for mg-samples
git clone ssh://git4os@gitlab.fmsoft.cn/VincentWei/mg-samples -b rel-5-0 ./Source/mg-samples
cd ./Source/mg-samples
./autogen.sh
CROSS_COMPILE="aarch64-linux-gnu-" CFLAGS="$COMMON_CFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
CXXFLAGS="$COMMON_CXXFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " CCFLAGS="$COMMON_CCFLAGS -DDRM_MODE_OBJECT_PLANE=0xeeeeeeee " \
LDFLAGS="$COMMON_LDFLAGS -ldl" \
./configure $COMMON_OPTION
make -j$NRJOBS
cd ../../
}
# 在PC机上的操作步骤:
# 1、在PC机上设置NFS服务并启动,本地的NFS的路径为:/share;
# 2、将#SYSROOT目录拷贝到:/share/sysroot
# 3、将hiwebkit/lib,拷贝到:/share/webkitlib
# 4、将hiwebkit/bin,拷贝到:/share/webkit
# 5、将hishell/bin目录,拷贝到:/share/bin
# 6、将hiviewrenderer/view-renderers,拷贝到/share/view-renderers
# 7、修改/share/bin/MiniGUI.cfg文件:
# [system]
# gal_engine=fbcon
# defaultmode=720x1280-32bpp
# ial_engine=console
# mdev=/dev/input/mice
#
# [fbcon]
# defaultmode=720x1280-32bpp
# dpi=96
#
# [cursorinfo]
# cursorpath=/mnt/sysroot/usr/share/minigui/res/cursor/
#
# [resinfo]
# respath=/mnt/sysroot/usr/share/minigui/res/
# 在PX30上的操作步骤:
# 1、在px30插上RJ45网络头;
# 2、启动px30,在串口终端,设置root的passwd,以及ifconfig知道IP地址;
# 3、在串口终端,输入:mount -t nfs -o nolock PC_ip:/shre /mnt
# 4、至此,可以从串口终端进行操作,也可以通过ssh登陆:ssh -l root PX30_IP
# 5、修改/etc/profile文件,在末尾添加:
# export LD_LIBRARY_PATH=/mnt/sysroot/usr/lib:/mnt/sysroot/lib:/mnt/webkitlib:/userdata/sysroot/usr/lib:/userdata/sysroot/lib:/userdata/webkitlib:$LD_LIBRARY_PATH
# 6、在终端中输入:
# cd /usr/
# mkdir local
# cd local
# mkdir share
# cd share
# ln -s /mnt/sysroot/usr/share/minigui/ minigui
# cd /usr/share
# mkdir fonts
# cd fonts
# cp /mnt/sysroot/usr/share/minigui/res/font/* .
# fc-list
# cd /usr/local
# mkdir libexec
# cd libexec
# ln -s /mnt/webkit webkit2hbd-1.0
# cd /mnt/sysroot/usr/lib
# cp -a ./gio /usr/lib
# cd /mnt
# cp view-renderers /opt -a
# ln -sf /opt/view-renderers/views.fmsoft.cn /opt/view-renderers/views.default
# 设置默认路由
# route add default gw 192.168.1.1