-
Notifications
You must be signed in to change notification settings - Fork 318
compile
This is for building the Qt5 based version, which is used in release 700 and above. For the Qt4 based version, see compile-qt4.
Dynamically linked builds are most useful for packaging into Linux distributions. If you are attempting to build a standalone version for deployment on Windows, go to the statically linked section. If you are attempting to build a standalone version for deployment on Mac OS X, go to the Mac OS X section.
Latest tarball at http://unetbootin.sourceforge.net/unetbootin-source-latest.tar.gz
qt5-qmake (for the qmake command)
qtbase5-dev (for the Qt5 headers)
qttools5-dev-tools (for the lupdate and lrelease commands)
build-essential (for make)
g++
1. Extract the tarball and cd to it
2. Run the following commands:
lupdate unetbootin.pro
lrelease unetbootin.pro
qmake
make
(Note that if you are instead building from git or bzr or the source .zip file, you will need to instead use the following):
sed -i '/^RESOURCES/d' unetbootin.pro
lupdate unetbootin.pro
lrelease unetbootin.pro
qmake "DEFINES += NOSTATIC" "RESOURCES -= unetbootin.qrc"
make
3. A dynamically linked executable which you can package will then be generated at "unetbootin"
4. If building a package, place the unetbootin_*.qm files (which were generated from the .ts files when lrelease-qt4 was run) in the /usr/share/unetbootin/ directory to enable the usage of localization.
5. If building a package, add "syslinux", "p7zip-full", "libqt5core5a" (libQtCore.so.5), "libqt5gui5" (libQtGui.so.5), and "libqt5network5" (libQtNetwork.so.5) as dependencies.
Statically linked builds are most useful for standalone deployment, not packaging. They are the type that is available for download on the website.
The Windows builds are built with mingw64, on Ubuntu 20.04. Use Qt 5.12.9.
Install prerequisites:
sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev
I use the following configuration:
./configure -xplatform win32-g++ -device-option CROSS_COMPILE=/usr/bin/i686-w64-mingw32- -prefix /usr/local/Qt-5.12.9-win32 -static -static-runtime -optimize-size -release -nomake examples -nomake tests -skip qtconnectivity -skip qtserialbus -skip qtserialport -skip qtsvg -skip qtwebengine -skip qtdeclarative -skip qtlocation -no-opengl -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-avx512 -opensource -confirm-license -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-tds -no-sqlite -no-gif -no-ico -no-libpng -no-libjpeg -no-tslib -no-mtdev -no-libinput -no-imf -no-evdev -no-xcb -no-mirclient -no-linuxfb -no-kms -no-gbm -no-eglfs -no-directfb -no-direct2d -no-xcb-xlib -no-combined-angle-lib -no-angle -no-opengles3 -no-opengl -no-lgmon -no-cups -no-harfbuzz -no-fontconfig -no-freetype -no-libproxy -no-sctp -no-journald -no-syslog -no-slog2 -no-zlib -no-pps -no-icu -no-iconv -no-inotify -no-eventfd -no-glib -no-dbus -skip qtconnectivity -skip qtsensors -skip qtwebchannel -skip qtwebview -skip qtserialbus -skip qtserialport -skip qtsvg -skip qtmultimedia -skip qtdatavis3d -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtvirtualkeyboard -skip qtxmlpatterns -skip qtwebsockets -skip qtmultimedia -skip qtcharts -skip qtcanvas3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtmacextras -skip qtwinextras -skip qtspeech -skip qtdeclarative -no-sql-sqlite -skip qtquickcontrols -skip qtquickcontrols2 -skip qtpurchasing -skip qtscript -skip qtscxml -skip qtgraphicaleffects -skip qtwebglplugin -no-sse2 -skip qtwinextras -qpa windows
The macOS builds are built with clang, on macOS Mojave. Use Qt 5.12.9.
I use the following configuration:
./configure -static -optimize-size -release -nomake examples -nomake tests -skip qtconnectivity -skip qtserialbus -skip qtserialport -skip qtsvg -skip qtwebengine -skip qtdeclarative -skip qtlocation -no-opengl -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-avx512 -opensource -confirm-license -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-tds -no-sqlite -no-gif -no-ico -no-libpng -no-libjpeg -no-tslib -no-mtdev -no-libinput -no-imf -no-evdev -no-xcb -no-mirclient -no-linuxfb -no-kms -no-gbm -no-eglfs -no-directfb -no-direct2d -no-xcb-xlib -no-combined-angle-lib -no-angle -no-opengles3 -no-opengl -no-lgmon -no-cups -no-harfbuzz -no-fontconfig -no-freetype -no-libproxy -no-sctp -no-journald -no-syslog -no-slog2 -no-zlib -no-pps -no-icu -no-iconv -no-inotify -no-eventfd -no-glib -no-dbus -skip qtconnectivity -skip qtsensors -skip qtwebchannel -skip qtwebview -skip qtserialbus -skip qtserialport -skip qtsvg -skip qtmultimedia -skip qtdatavis3d -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtvirtualkeyboard -skip qtxmlpatterns -skip qtwebsockets -skip qtmultimedia -skip qtcharts -skip qtcanvas3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtmacextras -skip qtwinextras -skip qtspeech -skip qtdeclarative -no-sql-sqlite -skip qtquickcontrols -skip qtquickcontrols2 -skip qtpurchasing -skip qtscript -skip qtscxml -skip qtgraphicaleffects -skip qtwebglplugin
The 32-bit and 64-bit Linux builds are both built on Ubuntu 16.04 (32-bit and 64-bit versions, respectively). Use Qt 5.12.9.
Install prerequisites:
sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev
I use the following configuration:
./configure -static -optimize-size -release -nomake examples -nomake tests -skip qtconnectivity -skip qtserialbus -skip qtserialport -skip qtsvg -skip qtwebengine -skip qtdeclarative -skip qtlocation -no-opengl -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-avx512 -opensource -confirm-license -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite2 -no-sql-tds -no-sqlite -no-tslib -no-mtdev -no-libinput -no-imf -no-evdev -no-mirclient -no-linuxfb -no-kms -no-gbm -no-eglfs -no-directfb -no-direct2d -no-xcb-xlib -no-combined-angle-lib -no-angle -no-opengles3 -no-opengl -no-lgmon -no-cups -no-libproxy -no-sctp -no-journald -no-syslog -no-slog2 -no-zlib -no-pps -no-icu -no-iconv -no-eventfd -no-glib -no-dbus -skip qtconnectivity -skip qtsensors -skip qtwebchannel -skip qtwebview -skip qtserialbus -skip qtserialport -skip qtsvg -skip qtmultimedia -skip qtdatavis3d -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtvirtualkeyboard -skip qtxmlpatterns -skip qtwebsockets -skip qtmultimedia -skip qtcharts -skip qtcanvas3d -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtmacextras -skip qtwinextras -skip qtspeech -skip qtdeclarative -no-sql-sqlite -skip qtquickcontrols -skip qtquickcontrols2 -skip qtpurchasing -skip qtscript -skip qtscxml -skip qtgraphicaleffects -skip qtwebglplugin -xcb
Development Guide
Building a Custom UNetbootin Version
Building a UNetbootin Plugin
List of Custom UNetbootin Versions and Plugins (publicly editable)