This repo contains some scripts and dependencies to build MiniGUI 4.0.x
This instruction assumes that you are using Ubuntu Linux 16.04 LTS or 18.04 LTS.
Note that, we have switched the repos to branch rel-4-0.
You should run apt install <package_name>
to install the following packages
on your Ubuntu Linux.
- Building tools:
- git
- gcc/g++
- binutils
- autoconf/automake
- libtool
- make
- cmake
- pkg-config
- Dependent libraries:
- libgtk2.0-dev
- libjpeg-dev
- libpng12-dev (libpng-dev on Ubuntu Linux 18.04 instead)
- libfreetype6-dev
- libinput-dev
- libdrm-dev
- libsqlite3-dev
- libxml2-dev
- libssl1.0-dev
- electric-fence (used by mg-tests)
If you are using Ubuntu Linux 18.04, please install libpng-dev
. Ubuntu 18.04
does not provide support for libpng12-dev.
Please make sure that you can visit GitHub and you can do sudo
on your Linux box.
- Clone this repo from GitHub:
$ git clone https://github.com/VincentWei/build-minigui-4.0.git
$ cd build-minigui-4.0/
- Copy
config.sh
tomyconfig.sh
and editmyconfig.sh
to match your needs:
$ cp config.sh myconfig.sh
- Run
fetch-all.sh
to fetch all source from GitHub:
$ ./fetch-all.sh
- Run
build-deps.sh
to build and install gvfb, chipmunk, and harfbuzz:
$ ./build-deps.sh
- Run
build-all.sh
to build all:
$ ./build-all.sh
- Run
mguxdemo
:
$ cd /usr/local/bin
$ ./mguxdemo
When there were some updates in the remote repos, you can run update-all.sh
to
update them. You can run clean-build-all.sh
to uninstall, clean,
and re-install them.
Note that you might need to run ldconfig
to refresh the shared libraries cache
when running mguxdemo
.
The following steps are those ones in build-deps.sh
. We list them here for
your information:
- Make and install
gvfb
:
$ cd gvfb
$ cmake .
$ make; sudo make install
$ cd ..
- Make and install
chipmunk
library (DO NOT use the chipmunk-dev package which is provided by Ubuntu):
$ cd 3rd-party/chipmunk
$ cmake .
$ make; sudo make install
$ cd ../..
- Make and install
harfbuzz
library (DO NOT use the harfbuzz-dev package which is provided by Ubuntu):
$ cd 3rd-party/harfbuzz
$ ./autogen.sh
$ ./config-extern.sh
$ make; sudo make install
$ cd ../..
MiniGUI 4.0.x can run on lots of CPUs with different architechtures, such as ARM, MIPS and so on, after cross compiled. There is a directory named "cross-build", in which there are some scripts for cross compile.
As an example, there is a directory name "arm-r16-linux", which means: This directory is for ARM CPU --- r16, and the Operation System is Linux. In this directory, there are two scipts for download packages, and build MiniGUI 4.0.x for ARM version. You can read the README.md in this directory in detail:
Of course you can build your own directory for your developped CPU and OS.
Currently, this repo just includes some scripts to build MiniGUI 4.0.x core, components, and demonstration apps.
Copyright (C) 2020 Beijing FMSoft Technologies Co., Ltd.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The above open source or free software license does not apply to any entity in the Exception List published by Beijing FMSoft Technologies Co., Ltd.
If you are or the entity you represent is listed in the Exception List, the above open source or free software license does not apply to you or the entity you represent. Regardless of the purpose, you should not use the software in any way whatsoever, including but not limited to downloading, viewing, copying, distributing, compiling, and running. If you have already downloaded it, you MUST destroy all of its copies.
The Exception List is published by FMSoft and may be updated from time to time. For more information, please see https://www.fmsoft.cn/exception-list.
Also note that the software in 3rd-party/
may use different licenses.
Please refer to the LICENSE
or COPYING
files in the source trees for more
information.
Note that the software fetched from remote repositories may use different
licenses. Please refer to the LICENSE
or COPYING
files in the source trees
for more information.