genode/libports/tool/qt5/Makefile
Christian Prochaska 7b54eaaee1 libports: add Qt5
Fixes #345.
2013-08-13 17:27:40 +02:00

97 lines
2.7 KiB
Makefile

#
# \brief Makefile for building the Qt4 tools
# \author Christian Prochaska
# \author Norman Feske
# \date 2009-05-15
#
REP_DIR := $(realpath ../..)
include $(REP_DIR)/lib/mk/qt5_version.inc
#
# Compound rule for building the tools in the right order
#
all: qmake/qmake moc/moc rcc/rcc uic/uic
#
# Determine qmakespec to be passed to the sub makefiles
#
ifeq ($(shell uname -m),x86_64)
HOST_ARCH := 64
else
HOST_ARCH := 32
endif
QMAKESPEC = $(REP_DIR)/contrib/$(QT5)/qtbase/mkspecs/linux-g++-$(HOST_ARCH)
#
# Build qmake
#
qmake/qmake:
QMAKESPEC=$(QMAKESPEC) make -C qmake
#
# Build the other tools using qmake
#
vpath bootstrap.pro $(REP_DIR)/contrib/$(QT5)/qtbase/src/tools/bootstrap
vpath moc.pro $(REP_DIR)/contrib/$(QT5)/qtbase/src/tools/moc
vpath rcc.pro $(REP_DIR)/contrib/$(QT5)/qtbase/src/tools/rcc
vpath uic.pro $(REP_DIR)/contrib/$(QT5)/qtbase/src/tools/uic
#
# The Makefile needs to rebuild itself to get the correct source paths.
# This gets done by the 'qmake' target.
#
bootstrap/libQtBootstrap.a: bootstrap/Makefile
QMAKESPEC=$(QMAKESPEC) make -C bootstrap qmake
QMAKESPEC=$(QMAKESPEC) make -C bootstrap
moc/moc: bootstrap/libQtBootstrap.a moc/Makefile
QMAKESPEC=$(QMAKESPEC) make -C moc qmake
QMAKESPEC=$(QMAKESPEC) make -C moc
rcc/rcc: rcc/Makefile bootstrap/libQtBootstrap.a
QMAKESPEC=$(QMAKESPEC) make -C rcc qmake
QMAKESPEC=$(QMAKESPEC) make -C rcc
uic/uic: uic/Makefile bootstrap/libQtBootstrap.a
QMAKESPEC=$(QMAKESPEC) make -C uic qmake
QMAKESPEC=$(QMAKESPEC) make -C uic
#
# Rule to generate tool Makefiles from the respective pro files via qmake
#
# The second include path is required to resolve the Genode-specific
# 'gconfig.cpp' file. Even though this is a 'cpp' file, it is used via
# '#include'. So we have to make its location known to the 'INCLUDEPATH'.
#
%/Makefile: %.pro
QMAKESPEC=$(QMAKESPEC) qmake/qmake -o $*/Makefile \
QT_BUILD_TREE=$(REP_DIR)/contrib/$(QT5)/qtbase \
QT_CONFIG+=zlib \
INCLUDEPATH+=$(REP_DIR)/include/qt5 \
INCLUDEPATH+=$(REP_DIR)/contrib/$(QT5)/qtbase/include \
INCLUDEPATH+=$(REP_DIR)/include/qt5/qtbase \
INCLUDEPATH+=$(REP_DIR)/contrib/$(QT5)/qtbase/include \
INCLUDEPATH+=$(REP_DIR)/include/qt5/qtbase/QtCore \
INCLUDEPATH+=$(REP_DIR)/contrib/$(QT5)/qtbase/include/QtCore \
INCLUDEPATH+=$(REP_DIR)/src/lib/qt5/qtbase/src/corelib/global \
INCLUDEPATH+=$(REP_DIR)/contrib/$(QT5)/qtbase/include/QtCore/5.1.0 \
INCLUDEPATH+=$(REP_DIR)/contrib/$(QT5)/qtbase/include/QtCore/5.1.0/QtCore \
INCLUDEPATH+=$(REP_DIR)/include/qt5/qtbase/QtXml \
INCLUDEPATH+=$(REP_DIR)/contrib/$(QT5)/qtbase/include/QtXml \
-after DESTDIR= \
-after "LIBS+=-lQtBootstrap -L../bootstrap" \
$^
#
# Clean rule
#
clean:
make -C qmake clean
rm -rf bootstrap moc rcc uic
distclean: clean