2 # Copyright (C) 2010 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
14 PKG_SOURCE
:=PyQt-x11-gpl-
$(PKG_VERSION
).
tar.gz
15 PKG_SOURCE_URL
:=http
://www.riverbankcomputing.
co.uk
/static
/Downloads
/PyQt4
16 PKG_MD5SUM
:=88e9f1bc467cccf424d2032e3470982c
17 PKG_BUILD_DIR
:=$(BUILD_DIR
)/PyQt-x11-gpl-
$(PKG_VERSION
)
21 PKG_BUILD_DEPENDS
:=python-sip qt4
23 include $(INCLUDE_DIR
)/package.mk
24 $(call include_mk
, python-package.mk
)
25 $(call include_mk
, python-sip-package.mk
)
28 SECTION
:=language-python
32 URL
:=http
://www.riverbankcomputing.
co.uk
/software
/pyqt
/download
33 DEPENDS
:=+qt4
+dbus-python
+python-sip @QT4_WS_X11
36 define Package
/pyqt4
/Description
37 Python QT4 framework bindings.
40 TARGET_INCDIRS
+=$(STAGING_DIR
)/include \
41 $(STAGING_DIR
)/usr
/include \
42 $(STAGING_DIR
)/usr
/include/Qt \
43 $(STAGING_DIR
)/usr
/include/Qt3Support \
44 $(STAGING_DIR
)/usr
/include/QtCore \
45 $(STAGING_DIR
)/usr
/include/QtDBus \
46 $(STAGING_DIR
)/usr
/include/QtGui \
47 $(STAGING_DIR
)/usr
/include/QtNetwork \
48 $(STAGING_DIR
)/usr
/include/QtSql \
49 $(STAGING_DIR
)/usr
/include/QtSvg \
50 $(STAGING_DIR
)/usr
/include/QtTest \
51 $(STAGING_DIR
)/usr
/include/QtXml \
52 $(STAGING_DIR
)/usr
/include/python
$(PYTHON_VERSION
) \
53 $(STAGING_DIR
)/usr
/lib
/dbus-1.0
/include \
54 $(TOOLCHAIN_DIR
)/include \
55 $(TOOLCHAIN_DIR
)/usr
/include
57 TARGET_LIBDIRS
+=$(STAGING_DIR
)/lib \
58 $(STAGING_DIR
)/usr
/lib \
59 $(TOOLCHAIN_DIR
)/lib \
60 $(TOOLCHAIN_DIR
)/usr
/lib
63 EXTRA_LDFLAGS
:=-Wl
,-rpath-link
=$(STAGING_DIR
)/usr
/lib \
66 QTDIRSFILE
:=$(PKG_BUILD_DIR
)/qtdirs.out
67 SIPCFGFILE
:=$(PKG_BUILD_DIR
)/sipconfig.macros
69 QT_VERSION
:=.
/files
/qt_versioning.sh version
"$(STAGING_DIR)/usr/include" "$(PKG_BUILD_DIR)/qtver.tmp"
70 QT_EDITION
:=.
/files
/qt_versioning.sh edition
"$(STAGING_DIR)/usr/include" "$(PKG_BUILD_DIR)/qtver.tmp"
72 # Welcome to cross compilation hell. Dinner is served!
74 define Build
/Configure
75 echo
"$(STAGING_DIR)/usr" > $(QTDIRSFILE
); \
76 echo
"$(STAGING_DIR)/usr/include" >> $(QTDIRSFILE
); \
77 echo
"$(STAGING_DIR)/usr/lib" >> $(QTDIRSFILE
); \
78 echo
"$(STAGING_DIR)/usr/bin" >> $(QTDIRSFILE
); \
79 echo
"$(STAGING_DIR)/usr/share" >> $(QTDIRSFILE
); \
80 echo
"$(STAGING_DIR)/usr/lib/Qt/plugins" >> $(QTDIRSFILE
); \
81 $(QT_VERSION
) >> $(QTDIRSFILE
); \
82 $(QT_EDITION
) >> $(QTDIRSFILE
); \
83 echo
"Open Source" >> $(QTDIRSFILE
); \
84 echo
"shared" >> $(QTDIRSFILE
); \
86 $(CP
) "$(PYTHON_SIP_CONFIG_TEMPLATE)" "$(SIPCFGFILE)"; \
87 echo
"INCDIR_QT $(STAGING_DIR)/usr/include" >> $(SIPCFGFILE
); \
88 echo
"LIBDIR_QT $(STAGING_DIR)/usr/lib" >> $(SIPCFGFILE
); \
89 echo
"MOC $(STAGING_DIR_HOST)/bin/moc" >> $(SIPCFGFILE
); \
90 echo
"QT_INSTALL_BINS $(STAGING_DIR)/usr/bin" >> $(SIPCFGFILE
); \
91 echo
"QT_INSTALL_HEADERS $(STAGING_DIR)/usr/include" >> $(SIPCFGFILE
); \
92 echo
"QT_INSTALL_LIBS $(STAGING_DIR)/usr/lib" >> $(SIPCFGFILE
); \
93 echo
"INCDIR $(TARGET_INCDIRS)" >> $(SIPCFGFILE
); \
94 echo
"INCDIR_OPENGL $(TARGET_INCDIRS)" >> $(SIPCFGFILE
); \
95 echo
"INCDIR_X11 $(TARGET_INCDIRS)" >> $(SIPCFGFILE
); \
96 echo
"LIBDIR $(TARGET_LIBDIRS)" >> $(SIPCFGFILE
); \
97 echo
"LIBDIR_OPENGL $(TARGET_LIBDIRS)" >> $(SIPCFGFILE
); \
98 echo
"LIBDIR_X11 $(TARGET_LIBDIRS)" >> $(SIPCFGFILE
); \
100 export PYTHONPATH
="$(STAGING_DIR_HOST)/$(PYTHON_PKG_DIR)"; \
101 cd
"$(PKG_BUILD_DIR)"; \
102 python
-B .
/configure.py \
103 --use-arch
="$(ARCH)" \
104 --qmake
="$(STAGING_DIR_HOST)/bin/qmake" \
105 --qmake-spec
="$(STAGING_DIR)/usr/share/mkspecs/linux-openwrt-g++" \
106 --qmake-prefix
='TARGET_CC="$(TARGET_CROSS)gcc"' \
107 --qmake-prefix
='TARGET_CXX="$(TARGET_CROSS)g++"' \
108 --qmake-prefix
='TARGET_AR="$(TARGET_CROSS)ar cqs"' \
109 --qmake-prefix
='TARGET_OBJCOPY="$(TARGET_CROSS)objcopy"' \
110 --qmake-prefix
='TARGET_RANLIB="$(TARGET_CROSS)ranlib"' \
111 --qmake-prefix
='TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)"' \
112 --qmake-prefix
='TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)"' \
113 --qmake-prefix
='TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"' \
114 --qmake-prefix
='TARGET_INCDIRS="$(TARGET_INCDIRS)"' \
115 --qmake-prefix
='TARGET_LIBDIRS="$(TARGET_LIBDIRS)"' \
116 --qmake-prefix
='STAGING_DIR_HOST="$(STAGING_DIR)/../host"' \
117 --qtdirs-file
="$(QTDIRSFILE)" \
118 --sipconfig-macros
="$(SIPCFGFILE)" \
119 --dbus
="$(STAGING_DIR)/usr/include/dbus-1.0" \
120 --bindir="$(PKG_INSTALL_DIR)/usr/bin" \
121 --destdir
="$(PKG_INSTALL_DIR)/$(PYTHON_PKG_DIR)" \
122 --plugin-destdir
="$(PKG_INSTALL_DIR)/usr/lib/Qt/plugins" \
123 --pydbus-installdir
="$(PKG_INSTALL_DIR)/$(PYTHON_PKG_DIR)" \
124 --sipdir
="$(PKG_INSTALL_DIR)/usr/share/sip" \
125 --protected-is-public \
127 --no-designer-plugin \
132 .
/files
/fixup.sh
"$(PKG_BUILD_DIR)"
135 #FIXME: Something still puts the host Python include path into the CFLAGS.
136 # I'm currently unsure who does this. Most likely SIP. arghh..
139 $(MAKE_VARS
) $(MAKE
) $(PKG_JOBS
) -C
$(PKG_BUILD_DIR
)
143 $(MAKE_VARS
) DESTDIR
="" $(MAKE
) -C
$(PKG_BUILD_DIR
) install
146 define Package
/pyqt4
/install
147 $(INSTALL_DIR
) $(1)/usr
/bin
148 $(INSTALL_DIR
) $(1)/$(PYTHON_PKG_DIR
)/PyQt4
149 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/{pylupdate4
,pyrcc4
,pyuic4
} $(1)/usr
/bin
150 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/$(PYTHON_PKG_DIR
)/qt.so
$(1)/$(PYTHON_PKG_DIR
)
151 $(CP
) $(PKG_INSTALL_DIR
)/$(PYTHON_PKG_DIR
)/PyQt4
$(1)/$(PYTHON_PKG_DIR
)
154 $(eval
$(call RequireCommand
,python
, \
155 Please
install Python
2.x \
158 $(eval
$(call BuildPackage
,pyqt4
))