#
# Use this Makefile to compile qtopia for a native machine.
# Files need to be in the sources directory.
# Notes:
#   you need byacc to compile qtopia, because bison doesn't work.
#

# Fichier installer dans CROSSPATH
#   /lib/libqte*

# GLOBAL VARIABLES #

TOPDIR=$(PWD)
SRCS=$(TOPDIR)/sources


CROSS_COMPILE=1
CROSSPATH=/mnt/linux/srcs/zaurus/runtime
CROSSPATH=/mnt/bordel/tmp/qt
TARGET=arm-linux-


QTX_VERSION=2.3.2
QTE_VERSION=2.3.4-beta2
QPE_VERSION=1.6.0-beta2

QTX=$(TOPDIR)/qt-x11-$(QTX_VERSION)
QTE=$(TOPDIR)/qte-$(QTE_VERSION)
QPE=$(TOPDIR)/qtopia-free-$(QPE_VERSION)

YACC=byacc -d
export YACC

all: .stage1 .stage2 .stage3 .stage4


env:
	@echo export QTDIR=$(QTE)
	@echo export QPEDIR=$(QPE)
	@echo export PATH=\$$QTDIR/bin:\$$QPEDIR/bin:\$$PATH
	@echo export LD_LIBRARY_PATH=\$$QTDIR/lib:\$$LD_LIBRARY_PATH
	@echo export TMAKEPATH=\$$QTDIR/tmake/qws/linux-x86-g++

test:
	export QTDIR=$(QTE); export QPEDIR=$(QPE);\
	 export PATH=$$QTDIR/bin:$$QPEDIR/bin:$$PATH ;\
	 qvfb &
	sleep 2
	export QTDIR=$(QTE); export QPEDIR=$(QPE);\
	 export PATH=$$QTDIR/bin:$$QPEDIR/bin:$$PATH ;\
	 qpe
	

.stage1:
	$(RM) -r $(QTX) $(QTE) $(QPE) qt-$(QTX_VERSION) 
	tar -xzf $(SRCS)/qt-x11-$(QTX_VERSION).tar.gz
	mv qt-$(QTX_VERSION) $(QTX)
	tar -xzf $(SRCS)/qt-embedded-$(QTE_VERSION).tar.gz
	mv qt-$(QTE_VERSION) $(QTE)
	tar -xzf $(SRCS)/qtopia-free-$(QPE_VERSION).tar.gz
	touch .stage1

.stage2: .stage1
	perl -pi -e 's/sub-tutorial sub-examples//g;' $(QTX)/Makefile
	(cd $(QTX) ; export QTDIR=$(QTX) ; make clean ;\
	 echo yes | ./configure -static -no-xft -no-opengl -no-sm ;\
	 make -C src/moc ;\
	 cp src/moc/moc bin ;\
	 for t in src tools/designer tools/qvfb ; do make -C $$t ; done ;\
	 cp tools/qvfb/qvfb bin;\
	 strip bin/uic bin/moc bin/designer bin/qvfb )
	cp -f $(QTX)/bin/* $(QTE)/bin
	$(RM) -rf $(QTX)
	touch .stage2

.stage3: .stage2
	cp -f $(QPE)/src/qt/qconfig-qpe.h $(QTE)/src/tools
	perl -pi -e 's/sub-tutorial sub-examples//g;' $(QPE)/Makefile
	( cd $(QTE) ; export QTDIR=$(QTE) ; make clean ;\
	 echo yes | ./configure -qconfig qpe -depths v,4,8,16,24,32 -qvfb ;\
	 make -C src )
	touch .stage3

.stage4: .stage3
	( cd $(QPE) ; export QTDIR=$(QTE) ; export QPEDIR=$(QPE) ; cd src ; \
	 ./configure && make )
	cd $(QTE)/include ; if [ ! -e qpe ] ; then ln -s $(QPE)/include/qpe ; fi
	touch .stage4

# Stage for ipaq target

.stage31: .stage2
	cp -f $(QPE)/qt/qconfig-qpe.h $(QTE)/src/tools
	( cd $(QTE) ; export QTDIR=$(QTE) ; PATH=$(CROSSPATH)/bin:$$PATH ;\
	 echo yes | ./configure -xplatform linux-ipaq-g++ -qconfig qpe -depths 16,32 -qvfb ;\
	 make -C src)
	$(CROSSPATH)/bin/$(TARGET)strip -R .note -R .comment $(QTE)/lib/libqte.so*
	mv $(QTE)/lib/libqte* $(CROSSPATH)/lib
	touch .stage31

.stage41: .stage31
	( cd $(QPE) ; export QTDIR=$(QTE) ; export QPEDIR=$(QPE) ;\
	  PATH=$(CROSSPATH)/bin:$$PATH  ; ./configure -platform ipaq && make )
	touch .stage41

#
# Build sip
#

sip: .stage51

clean-sip:
	$(RM) -r sip-*
	$(RM) .stage5*

.stage50:
	tar -xzf $(SRCS)/sip-*.tar.gz
	touch .stage50

.stage51: .stage50
	( cd sip-* ; export QTDIR=$(QTE) ; export QPEDIR=$(QPE) ;\
	  ./configure --prefix=$(QTE) --with-python-modules=$(QTE)/lib/python1.5/site-packages && make && \
	  make install SIP_SIPINCDIR=$(QTE)/include/python1.5 )
	touch .stage51

#
# Build Python-QT
#

pyqt: .stage61

clean-pyqt:
	$(RM) -r .stage6*
	$(RM) -r PyQt-3.1

.stage60:
	tar -xzf $(SRCS)/PyQt-3.1-Qt-Qtopia.tar.gz
	touch .stage60

.stage61: .stage60
	( cd PyQt-3.1 ; export QTDIR=$(QTE) ; export QPEDIR=$(QPE) ;\
	  export LD_LIBRARY_PATH=$(QTE)/lib ;\
	 ./configure --prefix=$(QTE) \
	 --with-python-modules=$(QTE)/lib/python1.5/site-packages \
	 --with-sip-includes=$(QTE)/include/python1.5 \
	 --with-sip-module=$(QTE)/lib/python1.5/site-packages && make && make install)
	 touch .stage61

clean:
	@echo "Cleaning everything up..."
	$(RM) -r $(QTX) $(QTE) $(QPE)
	$(RM) .stage*


