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
/host
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 MAINTAINER
:=Michael Buesch
<mb@bu3sch.de
>
33 URL
:=http
://www.riverbankcomputing.
co.uk
/software
/pyqt
/download
34 DEPENDS
:=+qt4
+dbus-python
+python-sip @FEATURE_drawing-backend_libX11
37 define Package
/pyqt4
/Description
38 Python QT4 framework bindings.
41 TARGET_INCDIRS
+=$(STAGING_DIR
)/include \
42 $(STAGING_DIR
)/usr
/include \
43 $(STAGING_DIR
)/usr
/include/Qt \
44 $(STAGING_DIR
)/usr
/include/Qt3Support \
45 $(STAGING_DIR
)/usr
/include/QtCore \
46 $(STAGING_DIR
)/usr
/include/QtDBus \
47 $(STAGING_DIR
)/usr
/include/QtGui \
48 $(STAGING_DIR
)/usr
/include/QtNetwork \
49 $(STAGING_DIR
)/usr
/include/QtSql \
50 $(STAGING_DIR
)/usr
/include/QtSvg \
51 $(STAGING_DIR
)/usr
/include/QtTest \
52 $(STAGING_DIR
)/usr
/include/QtXml \
53 $(STAGING_DIR
)/usr
/include/python
$(PYTHON_VERSION
) \
54 $(STAGING_DIR
)/usr
/lib
/dbus-1.0
/include \
55 $(TOOLCHAIN_DIR
)/include \
56 $(TOOLCHAIN_DIR
)/usr
/include
58 TARGET_LIBDIRS
+=$(STAGING_DIR
)/lib \
59 $(STAGING_DIR
)/usr
/lib \
60 $(TOOLCHAIN_DIR
)/lib \
61 $(TOOLCHAIN_DIR
)/usr
/lib
64 EXTRA_LDFLAGS
:=-Wl
,-rpath-link
=$(STAGING_DIR
)/usr
/lib \
67 QTDIRSFILE
:=$(PKG_BUILD_DIR
)/qtdirs.out
68 SIPCFGFILE
:=$(PKG_BUILD_DIR
)/sipconfig.macros
70 QT_VERSION
:=.
/files
/qt_versioning.sh version
"$(STAGING_DIR)/usr/include" "$(PKG_BUILD_DIR)/qtver.tmp"
71 QT_EDITION
:=.
/files
/qt_versioning.sh edition
"$(STAGING_DIR)/usr/include" "$(PKG_BUILD_DIR)/qtver.tmp"
73 # Welcome to cross compilation hell. Dinner is served!
75 define Build
/Configure
76 echo
"$(STAGING_DIR)/usr" > $(QTDIRSFILE
); \
77 echo
"$(STAGING_DIR)/usr/include" >> $(QTDIRSFILE
); \
78 echo
"$(STAGING_DIR)/usr/lib" >> $(QTDIRSFILE
); \
79 echo
"$(STAGING_DIR)/usr/bin" >> $(QTDIRSFILE
); \
80 echo
"$(STAGING_DIR)/usr/share" >> $(QTDIRSFILE
); \
81 echo
"$(STAGING_DIR)/usr/lib/Qt/plugins" >> $(QTDIRSFILE
); \
82 $(QT_VERSION
) >> $(QTDIRSFILE
); \
83 $(QT_EDITION
) >> $(QTDIRSFILE
); \
84 echo
"Open Source" >> $(QTDIRSFILE
); \
85 echo
"shared" >> $(QTDIRSFILE
); \
87 $(CP
) "$(PYTHON_SIP_CONFIG_TEMPLATE)" "$(SIPCFGFILE)"; \
88 echo
"INCDIR_QT $(STAGING_DIR)/usr/include" >> $(SIPCFGFILE
); \
89 echo
"LIBDIR_QT $(STAGING_DIR)/usr/lib" >> $(SIPCFGFILE
); \
90 echo
"MOC $(STAGING_DIR_HOST)/bin/moc" >> $(SIPCFGFILE
); \
91 echo
"QT_INSTALL_BINS $(STAGING_DIR)/usr/bin" >> $(SIPCFGFILE
); \
92 echo
"QT_INSTALL_HEADERS $(STAGING_DIR)/usr/include" >> $(SIPCFGFILE
); \
93 echo
"QT_INSTALL_LIBS $(STAGING_DIR)/usr/lib" >> $(SIPCFGFILE
); \
94 echo
"INCDIR $(TARGET_INCDIRS)" >> $(SIPCFGFILE
); \
95 echo
"INCDIR_OPENGL $(TARGET_INCDIRS)" >> $(SIPCFGFILE
); \
96 echo
"INCDIR_X11 $(TARGET_INCDIRS)" >> $(SIPCFGFILE
); \
97 echo
"LIBDIR $(TARGET_LIBDIRS)" >> $(SIPCFGFILE
); \
98 echo
"LIBDIR_OPENGL $(TARGET_LIBDIRS)" >> $(SIPCFGFILE
); \
99 echo
"LIBDIR_X11 $(TARGET_LIBDIRS)" >> $(SIPCFGFILE
); \
101 cd
"$(PKG_BUILD_DIR)"; \
102 export PYTHONPATH
="$(STAGING_DIR_HOST)/$(PYTHON_PKG_DIR)"; \
103 export PYTHONDONTWRITEBYTECODE
=1; \
104 python .
/configure.py \
105 --use-arch
="$(ARCH)" \
106 --qmake
="$(STAGING_DIR_HOST)/bin/qmake" \
107 --qmake-spec
="$(STAGING_DIR)/usr/share/mkspecs/linux-openwrt-g++" \
108 --qmake-prefix
='TARGET_CC="$(TARGET_CROSS)gcc"' \
109 --qmake-prefix
='TARGET_CXX="$(TARGET_CROSS)g++"' \
110 --qmake-prefix
='TARGET_AR="$(TARGET_CROSS)ar cqs"' \
111 --qmake-prefix
='TARGET_OBJCOPY="$(TARGET_CROSS)objcopy"' \
112 --qmake-prefix
='TARGET_RANLIB="$(TARGET_CROSS)ranlib"' \
113 --qmake-prefix
='TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)"' \
114 --qmake-prefix
='TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)"' \
115 --qmake-prefix
='TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)"' \
116 --qmake-prefix
='TARGET_INCDIRS="$(TARGET_INCDIRS)"' \
117 --qmake-prefix
='TARGET_LIBDIRS="$(TARGET_LIBDIRS)"' \
118 --qmake-prefix
='STAGING_DIR_HOST="$(STAGING_DIR)/../host"' \
119 --qtdirs-file
="$(QTDIRSFILE)" \
120 --sipconfig-macros
="$(SIPCFGFILE)" \
121 --dbus
="$(STAGING_DIR)/usr/include/dbus-1.0" \
122 --bindir="$(PKG_INSTALL_DIR)/usr/bin" \
123 --destdir
="$(PKG_INSTALL_DIR)/$(PYTHON_PKG_DIR)" \
124 --plugin-destdir
="$(PKG_INSTALL_DIR)/usr/lib/Qt/plugins" \
125 --pydbus-installdir
="$(PKG_INSTALL_DIR)/$(PYTHON_PKG_DIR)" \
126 --sipdir
="$(PKG_INSTALL_DIR)/usr/share/sip" \
127 --protected-is-public \
129 --no-designer-plugin \
134 .
/files
/fixup.sh
"$(PKG_BUILD_DIR)"
137 #FIXME: Something still puts the host Python include path into the CFLAGS.
138 # I'm currently unsure who does this. Most likely SIP. arghh..
141 $(MAKE_VARS
) $(MAKE
) $(PKG_JOBS
) -C
$(PKG_BUILD_DIR
)
145 $(MAKE_VARS
) DESTDIR
="" $(MAKE
) -C
$(PKG_BUILD_DIR
) install
148 define Package
/pyqt4
/install
149 $(INSTALL_DIR
) $(1)/usr
/bin
150 $(INSTALL_DIR
) $(1)/$(PYTHON_PKG_DIR
)/PyQt4
151 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/{pylupdate4
,pyrcc4
,pyuic4
} $(1)/usr
/bin
152 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/$(PYTHON_PKG_DIR
)/qt.so
$(1)/$(PYTHON_PKG_DIR
)
153 $(CP
) $(PKG_INSTALL_DIR
)/$(PYTHON_PKG_DIR
)/PyQt4
$(1)/$(PYTHON_PKG_DIR
)
156 $(eval
$(call RequireCommand
,python
, \
157 Please
install Python
2.x \
160 $(eval
$(call BuildPackage
,pyqt4
))