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
libqt4-dev
g++
1. Extract the tarball and cd to it
2. Run the following commands:
lupdate-qt4 unetbootin.pro lrelease-qt4 unetbootin.pro qmake-qt4 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-qt4 unetbootin.pro lrelease-qt4 unetbootin.pro qmake-qt4 "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", "libqt4-core" (libQtCore.so.4), "libqt4-gui" (libQtGui.so.4), and "libqt4-network" (libQtNetwork.so.4) 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.
I build on Fedora 10 and Ubuntu 8.04 with g++ and mingw32, though it should work on other distributions as well.
Latest source zip package at http://unetbootin.sourceforge.net/unetbootin-source-latest.zip
libqt4-dev
mingw32 (Fedora users see http://www.annexia.org/tmp/mingw/ for RPM packages)
g++
These instructions use pre-compiled versions of static Qt4 for Windows and Linux. If you'd like to build statically linked versions of Qt4 yourself, use the manual instructions instead.
1. Go to http://launchpad.net/unetbootin/+download and download these files:
For Mac OS X: qt4.8.7-mac-x86.tar.xz https://launchpad.net/unetbootin/trunk/trunk/+download/qt4.8.7-mac-x86.tar.xz
For Windows: qt4-win.7z http://launchpad.net/unetbootin/trunk/trunk/+download/qt4-win.7z
For Linux: qt4-x11-glibc23.7z http://launchpad.net/unetbootin/trunk/trunk/+download/qt4-x11-glibc23.7z
2. Extract those files using 7-zip http://www.7-zip.org/ or p7zip-full on Linux, to get the directories "qt4-win" and "qt4-x11"
3. Move the qt4-win and qt4-x11 directories into the UNetbootin build directory (the same directory containing the files unetbootin.cpp and unetbootin.pro, which is src/unetbootin in the git repository.
4. cd to the UNetbootin build directory, and run the script "./build"
5. Statically linked UNetbootin binaries should be generated in the release subdirectory.
1) Build a statically linked Qt4 for Windows (instructions from http://doc.trolltech.com/4.3/deployment-windows.html#static-linking and http://qtnode.net/wiki?title=Building_static )
cd C:\Qt4 configure -static make sub-src
2) Set up cross-compile environment (instructions from http://gentoo-wiki.com/HOWTO_MinGW_and_Qt4 )
If cross-compiling on Ubuntu, simply copy the file qmake.conf to /usr/share/qt4/mkspecs/win32-g++/qmake.conf
3) Copy over your statically linked Windows qt4 install directory to /usr/i586-mingw32msvc/Qt/
4) Go to the directory containing the source files (unetbootin.cpp, main.cpp, unetbootin.pro, etc.), and run "./build" to automate steps 4 and 5, or to do it manually, run the following commands:
qmake -spec win32-g++ "DEFINES += STATICWINDOWS" "RESOURCES += unetbootin-windows.qrc unetbootin-sevnz.qrc" "RC_FILE += ubnembed.rc" "QMAKE_LFLAGS += -Wl,-subsystem,windows"
make
5) You should now have a Windows .exe file at release/unetbootin.exe
To reduce file size, compress the executable using upx ( http://upx.sourceforge.net/ )
./upx --lzma ./unetbootin.exe
You can also use Microsoft Visual C++ 2005 as your compiler to reduce executable size for Windows. In that case, download and use:
qt4.5.1-static-msvc2005-release-minimal.7z http://gkovacs.xvm.mit.edu/qt4.5.1-static-msvc2005-release-minimal.7z
To build, extract the file to C:\Qt\qt4-msvc2005, cd to the unetbootin source directory, open the Visual Studio 2005 command line and enter the following commands:
set QTDIR=c:\Qt\qt4-msvc2005 set PATH=%PATH%;c:\Qt\qt4-msvc2005\bin set QMAKESPEC=win32-msvc2005 qmake "DEFINES += STATICWINDOWS" "RESOURCES += unetbootin-windows.qrc unetbootin-sevnz.qrc" "RC_FILE += ubnembed.rc" nmake upx --lzma release\unetbootin.exe
For more information see Compiling Qt Projects with Microsoft Visual C++
Download and install XCode, and install the XCode Command Line Tools from there.
Next download qt4.8.7-mac-x86.tar.xz https://launchpad.net/unetbootin/trunk/trunk/+download/qt4.8.7-mac-x86.tar.xz
Extract qt4.8.7-mac-x86.tar.xz using The Unarchiver, to get the directory qt4-mac. Then move the qt4-mac folder into the src/unetbootin directory (same one containing unetbootin.pro)
Then go to the src/unetbootin directory and run ./build-mac
If you run into errors while running qmake or other qt build commands, make sure you're using the qt4 version not the qt3 one by adding -qt4 to the end of the commands (qmake-qt4). You can check the version by running "qmake --version".
If you get mingw errors relating to "qatomic-windows.h" or "InterlockedCompareExchange" open the file src/corelib/arch/qatomic_windows.h find this section and add the declarations:
extern "C" { #ifndef __INTERLOCKED_DECLARED #define __INTERLOCKED_DECLARED __declspec(dllimport) long __stdcall InterlockedCompareExchange(long *, long, long); __declspec(dllimport) long __stdcall InterlockedIncrement(long *); __declspec(dllimport) long __stdcall InterlockedDecrement(long *); __declspec(dllimport) long __stdcall InterlockedExchange(long *, long); __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, long); #endif }
Development Guide
Building a Custom UNetbootin Version
Building a UNetbootin Plugin
List of Custom UNetbootin Versions and Plugins (publicly editable)
Wiki: Home
Wiki: buildcustomversion
Wiki: createplugin
Wiki: devdocs
Wiki: development
Wiki: listcustomversion
Wiki: msvc
Wiki: public